@raruto/leaflet-elevation 1.9.6 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- .leaflet-hidden{visibility:hidden}.legend{cursor:pointer}.leaflet-container{z-index:0}.elevation-detached{font:12px/1.5 Helvetica Neue,Arial,Helvetica,sans-serif;height:auto;width:100%;position:relative;z-index:0}.elevation-detached .elevation{width:100%}.elevation-detached .background{max-width:100%}.elevation-control.elevation .background{background-color:rgba(70,130,180,.2);border-radius:5px;overflow:visible;display:block;touch-action:none;user-select:none}.elevation-control.elevation .axis line,.elevation-control.elevation .axis path{stroke:#2d1130;stroke-width:1;fill:none}.elevation-control.elevation .grid .tick line{stroke:#eee;stroke-width:1px;shape-rendering:crispEdges}.elevation-control.elevation .grid path{stroke-width:0;pointer-events:none}.elevation-control.elevation .axis text,.elevation-control.elevation .point text{fill:#000;font-weight:700;paint-order:stroke fill;stroke:#fff;stroke-width:2px}.elevation-control.elevation .y.axis text{text-anchor:end}.elevation-control.elevation .area{fill:#4682b4;stroke:#000;stroke-width:1.2;paint-order:stroke fill}.elevation-detached .elevation-control.elevation .area{fill-opacity:.8}.elevation-control.elevation .horizontal-drag-line{stroke:transparent;cursor:row-resize;stroke-width:1.1;stroke-dasharray:5}.elevation-control.elevation .active .horizontal-drag-line{stroke:#000}.elevation-control.elevation .horizontal-drag-label{font-weight:700;fill:#000;paint-order:stroke;stroke:#fff;stroke-width:2px;pointer-events:none}.elevation-control.elevation .ruler{cursor:row-resize;color:#000}.elevation-control.elevation .mouse-focus-line{stroke:#0d1821;stroke-width:1;pointer-events:none}.elevation-control.elevation .mouse-focus-label-rect{fill:#000;fill-opacity:.75;pointer-events:none;stroke-width:1;stroke:#444}.elevation-control.elevation .mouse-focus-label-text{fill:#fff;pointer-events:none;font-size:10px}.elevation-control.elevation .brush .overlay{cursor:unset}.elevation-control.elevation .brush .selection{fill:rgba(23,74,117,.4);stroke:none;fill-opacity:unset}.elevation-control.elevation .elevation-toggle{cursor:pointer;box-shadow:0 1px 7px rgba(0,0,0,.4);border-radius:5px;width:36px;height:36px;background-color:#f8f8f9}.elevation-summary{font-family:Lucida Grande,Lucida Sans Unicode,Verdana,Arial,Helvetica,sans-serif;font-size:12px;margin:0 auto}.leaflet-control-container .elevation-summary{text-shadow:1.5px 0 0 #fff,-1.5px 0 0 #fff,0 1.5px 0 #fff,0 -1.5px 0 #fff,1px 1px #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff}.elevation-detached .elevation-summary{margin:0 45px}.elevation-summary.multiline-summary{margin-right:30px}.elevation-detached .elevation-summary.multiline-summary{margin-bottom:12px;margin-top:12px;line-height:2}.elevation-summary.inline-summary>span:not(:last-child):after{content:"\0020\2014\0020"}.elevation-summary.multiline-summary>span{display:block}.elevation-summary.multiline-summary .download{float:right;margin-top:-2.5em;font-weight:700;font-size:1.2em}.elevation-detached .elevation-summary.multiline-summary .download{margin-top:-3.5em}.elevation-summary .summaryvalue{font-weight:700}.elevation-control.elevation-collapsed .background,.elevation-control.elevation-collapsed .elevation-summary{display:none}.elevation-control.elevation-collapsed .elevation-toggle{display:block}.elevation-control.elevation .elevation-toggle-icon{background:url(../images/elevation.svg) no-repeat 50%}.elevation-control.elevation.elevation-expanded .elevation-toggle-icon.close-button{background:transparent;position:absolute;right:5px;top:5px;height:20px;width:20px}.elevation-control.elevation.elevation-expanded .elevation-toggle-icon.close-button:before{content:"\2716";display:inline-block;color:#000;position:absolute;left:0;right:0;top:0;bottom:0;line-height:20px;text-align:center;font-weight:700;font-size:15px}.elevation-control.elevation g.area>foreignObject{pointer-events:none}.leaflet-elevation-pane .height-focus,.leaflet-overlay-pane .height-focus{stroke:#000;fill:#fff}.leaflet-elevation-pane .height-focus.line,.leaflet-overlay-pane .height-focus.line{pointer-events:none;stroke-width:2}.leaflet-elevation-pane .height-focus-label,.leaflet-overlay-pane .height-focus-label{font-size:12px;font-weight:600;fill:#000;paint-order:stroke;stroke:#fff;stroke-width:2px}.elevation-waypoint-icon:before{background:url(../images/elevation-pushpin.svg) no-repeat 50%/contain;content:"";width:100%;height:100%;display:inline-block}.elevation-position-icon:before{background:url(../images/elevation-position.svg) no-repeat 50%/contain;content:"";width:100%;height:100%;display:inline-block}.elevation-polyline{filter:drop-shadow(1px 1px 0 #FFF) drop-shadow(-1px -1px 0 #FFF) drop-shadow(1px -1px 0 #FFF) drop-shadow(-1px 1px 0 #FFF)}.elevation-placeholder{margin:auto;height:auto;width:100%}.elevation-placeholder~*{display:none!important}.lime-theme.elevation-control.elevation .background{background-color:rgba(156,194,34,.2)}.lime-theme.elevation-control.elevation .axis line,.lime-theme.elevation-control.elevation .axis path{stroke:#566b13}.lime-theme.elevation-control.elevation .grid .tick line{stroke:#ccc}.lime-theme.elevation-control.elevation .brush .selection{fill:rgba(99,126,11,.4)}.lime-theme.elevation-control.elevation .elevation-toggle-icon{background:url(../images/elevation-lime.svg) no-repeat 50%}.lime-theme.elevation-control.elevation .area{fill:#9cc222}.lime-theme.elevation-control.elevation .mouse-focus-line{stroke:#101404}.lime-theme.height-focus{stroke:#000;fill:#9cc222}.lime-theme.elevation-polyline{stroke:#566b13}.steelblue-theme.elevation-control.elevation .background{background-color:rgba(70,130,180,.2)}.steelblue-theme.elevation-control.elevation .axis line,.steelblue-theme.elevation-control.elevation .axis path{stroke:#0d1821}.steelblue-theme.elevation-control.elevation .brush .selection{fill:rgba(23,74,117,.4)}.steelblue-theme.elevation-control.elevation .elevation-toggle-icon{background:url(../images/elevation-steelblue.svg) no-repeat 50%}.steelblue-theme.elevation-control.elevation .area{fill:#4682b4}.steelblue-theme.elevation-control.elevation .mouse-focus-line{stroke:#0d1821}.steelblue-theme.height-focus{stroke:#000;fill:#4682b4}.steelblue-theme.elevation-polyline{stroke:#4682b4}.purple-theme.elevation-control.elevation .background{background-color:rgba(115,44,123,.2)}.purple-theme.elevation-control.elevation .axis line,.purple-theme.elevation-control.elevation .axis path{stroke:#2d1130}.purple-theme.elevation-control.elevation .brush .selection{fill:rgba(74,14,80,.4)}.purple-theme.elevation-control.elevation .elevation-toggle-icon{background:url(../images/elevation-purple.svg) no-repeat 50%}.purple-theme.elevation-control.elevation .area{fill:#732c7b}.purple-theme.elevation-control.elevation .mouse-focus-line{stroke:#000}.purple-theme.height-focus{stroke:#000;fill:#732c7b}.purple-theme.elevation-polyline{stroke:#732c7b}.yellow-theme.elevation-control.elevation .area{fill:#ff0}.yellow-theme.elevation-polyline{stroke:#ff0}.red-theme.elevation-control.elevation .area{fill:red}.red-theme.elevation-polyline{stroke:red}.magenta-theme.elevation-control.elevation .background{background-color:hsla(0,0%,100%,.47)}.magenta-theme.elevation-control.elevation .area{fill:#ff005e}.magenta-theme.elevation-polyline{stroke:#ff005e}.lightblue-theme.elevation-control.elevation .area{fill:#36c;stroke:#000}.elevation-detached .lightblue-theme.elevation-control.elevation .area{fill-opacity:.45;stroke:#36c}.lightblue-theme.height-focus{stroke:#000;fill:#fff}.lightblue-theme.elevation-polyline{stroke:#36c}.dist-marker{font-size:.5rem;border:1px solid #777;border-radius:10px;text-align:center;color:#000;background:#fff}
1
+ .leaflet-hidden{visibility:hidden}.legend{cursor:pointer}.leaflet-container{z-index:0}.elevation-detached{font:12px/1.5 Helvetica Neue,Arial,Helvetica,sans-serif;height:auto;position:relative;width:100%;z-index:0}.elevation-detached .elevation{width:100%}.elevation-detached .background{max-width:100%}.elevation-control.elevation .background{background-color:var(--ele-bg,rgba(70,130,180,.2));border-radius:5px;display:block;overflow:visible;touch-action:none;user-select:none}.elevation-control.elevation .axis .domain,.elevation-control.elevation .axis .tick{pointer-events:none}.elevation-control.elevation .axis line,.elevation-control.elevation .axis path{stroke:var(--ele-axis,#2d1130);stroke-width:1;fill:none}.elevation-control.elevation .grid .tick line{stroke:var(--ele-grid,#eee);stroke-width:1px;shape-rendering:crispEdges}.elevation-control.elevation .grid path{stroke-width:0;pointer-events:none}.elevation-control.elevation .axis text,.elevation-control.elevation .point text{fill:#000;stroke:#fff;stroke-width:2px;font-weight:700;paint-order:stroke fill}.elevation-control.elevation .y.axis text{text-anchor:end}.elevation-control.elevation .area{fill:var(--ele-area,#4682b4);stroke:var(--ele-stroke,#000);stroke-width:1.2;paint-order:stroke fill}.elevation-detached .elevation-control.elevation .area{fill-opacity:var(--ele-alpha,.8)}.elevation-control.elevation .horizontal-drag-line{stroke:transparent;stroke-width:1.1;stroke-dasharray:5;cursor:row-resize}.elevation-control.elevation .active .horizontal-drag-line{stroke:#000}.elevation-control.elevation .horizontal-drag-label{fill:#000;stroke:#fff;stroke-width:2px;font-weight:700;paint-order:stroke;pointer-events:none}.elevation-control.elevation .ruler{color:#000;cursor:row-resize}.elevation-control.elevation .mouse-focus-line{stroke:#000;stroke-width:1;pointer-events:none}.elevation-control.elevation .mouse-focus-label-rect{fill:#000;fill-opacity:.75;stroke-width:1;stroke:#444;pointer-events:none}.elevation-control.elevation .mouse-focus-label-text{fill:#fff;font-size:10px;pointer-events:none}.elevation-control.elevation .brush .overlay{cursor:unset}.elevation-control.elevation .brush .selection{fill:var(--ele-brush,rgba(23,74,117,.4));stroke:none;fill-opacity:unset}.elevation-control.elevation .elevation-toggle{background-color:#f8f8f9;border-radius:5px;box-shadow:0 1px 7px rgba(0,0,0,.4);cursor:pointer;height:36px;width:36px}.elevation-summary{font-family:Lucida Grande,Lucida Sans Unicode,Verdana,Arial,Helvetica,sans-serif;font-size:12px;margin:0 auto}.leaflet-control-container .elevation-summary{text-shadow:1.5px 0 0 #fff,-1.5px 0 0 #fff,0 1.5px 0 #fff,0 -1.5px 0 #fff,1px 1px #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff}.elevation-detached .elevation-summary{margin:0 45px}.elevation-summary.multiline-summary{margin-right:30px}.elevation-detached .elevation-summary.multiline-summary{line-height:2;margin-bottom:12px;margin-top:12px}.elevation-summary.inline-summary>span:not(:last-child):after{content:"\0020\2014\0020"}.elevation-summary.multiline-summary>span{display:block}.elevation-summary.multiline-summary .download{float:right;font-size:1.2em;font-weight:700;margin-top:-2.5em}.elevation-detached .elevation-summary.multiline-summary .download{margin-top:-3.5em}.elevation-summary .summaryvalue{font-weight:700}.elevation-control.elevation-collapsed .background,.elevation-control.elevation-collapsed .elevation-summary{display:none}.elevation-control.elevation-collapsed .elevation-toggle{display:block}.elevation-control.elevation .elevation-toggle-icon{background:var(--ele-icon,url(../images/elevation-lime.svg)) no-repeat center center}.elevation-control.elevation.elevation-expanded .elevation-toggle-icon.close-button{background:transparent;height:20px;position:absolute;right:5px;top:5px;width:20px}.elevation-control.elevation.elevation-expanded .elevation-toggle-icon.close-button:before{bottom:0;color:#000;content:"\2716";display:inline-block;font-size:15px;font-weight:700;left:0;line-height:20px;position:absolute;right:0;text-align:center;top:0}.elevation-control.elevation g.area>foreignObject{pointer-events:none}.leaflet-elevation-pane .height-focus,.leaflet-overlay-pane .height-focus{stroke:#000;fill:var(--ele-circle,var(--ele-area,#fff))}.leaflet-elevation-pane .height-focus.line,.leaflet-overlay-pane .height-focus.line{stroke-width:2;pointer-events:none}.leaflet-elevation-pane .height-focus-label,.leaflet-overlay-pane .height-focus-label{fill:#000;stroke:#fff;stroke-width:2px;font-size:12px;font-weight:600;paint-order:stroke}.elevation-position-icon:before,.elevation-waypoint-icon:before{content:"";display:inline-block;height:100%;width:100%}.elevation-waypoint-icon:before{background:url(../images/elevation-pushpin.svg) no-repeat 50%/contain}.elevation-position-icon:before{background:url(../images/elevation-position.svg) no-repeat 50%/contain}.elevation-polyline{stroke:var(--ele-poly,var(--ele-area,#000));filter:drop-shadow(1px 1px 0 #FFF) drop-shadow(-1px -1px 0 #FFF) drop-shadow(1px -1px 0 #FFF) drop-shadow(-1px 1px 0 #FFF)}.lime-theme{--ele-bg:rgba(156,194,34,.2);--ele-axis:#566b13;--ele-area:#9cc222;--ele-grid:#ccc;--ele-brush:rgba(99,126,11,.4);--ele-icon:url(../images/elevation-lime.svg);--ele-poly:#566b13}.steelblue-theme{--ele-axis:#0d1821;--ele-area:#4682b4;--ele-brush:rgba(23,74,117,.4);--ele-icon:url(../images/elevation-steelblue.svg)}.purple-theme{--ele-bg:rgba(115,44,123,.2);--ele-area:#732c7b;--ele-brush:rgba(74,14,80,.4);--ele-icon:url(../images/elevation-purple.svg)}.yellow-theme{--ele-area:#ff0}.red-theme{--ele-area:red}.magenta-theme{--ele-bg:hsla(0,0%,100%,.47);--ele-area:#ff005e}.lightblue-theme{--ele-area:#36c;--ele-alpha:0.45;--ele-stroke:#4682b4;--ele-circle:#fff}.elevation-detached .lightblue-theme.elevation-control.elevation .area{stroke:#36c}.dist-marker{background:#fff;border:1px solid #777;border-radius:10px;color:#000;font-size:.5rem;text-align:center}
@@ -1,4 +1,2 @@
1
- !function(t){"function"==typeof define&&define.amd?define(t):t()}((function(){"use strict";!function(t,e){"function"==typeof define&&define.amd?define(["leaflet"],t):"object"==typeof exports&&(module.exports=t(require("leaflet"))),void 0!==e&&e.L&&t(e.L)}((function(t){return t.locales={},t.locale=null,t.registerLocale=function(e,a){t.locales[e]=t.Util.extend({},t.locales[e],a)},t.setLocale=function(e){t.locale=e},t.i18n=t._=function(e,a){t.locale&&t.locales[t.locale]&&t.locales[t.locale][e]&&(e=t.locales[t.locale][e]);try{e=t.Util.template(e,a)}catch(t){}return e}}),window);var t=6e4,e=60*t,a=24*e;function i(i){var n=Math.floor(i/a),r=Math.floor((i-n*a)/e),o=Math.floor((i-n*a-r*e)/t),s=Math.round((i-n*a-r*e-o*t)/1e3);return 60===s&&(o++,s=0),60===o&&(r++,o=0),24===r&&(n++,r=0),(n?n+"d ":"")+r.toString().padStart(2,0)+":"+o.toString().padStart(2,0)+"'"+s.toString().padStart(2,0)+'"'}function n(t,e){var a=m("a","",{href:t,target:"_new",download:e||"",style:"display:none;"}),i=document.body;i.appendChild(a),a.click(),i.removeChild(a)}function r(t,e,a){return!1===e?Promise.resolve():a instanceof Promise?a:new Promise((function(e,a){var i=document.createElement("script");i.addEventListener("load",e,{once:!0}),i.src=t,document.head.appendChild(i)}))}function o(t,e){e.classed("canvas-path",!0),t.beginPath(),t.moveTo(0,0);var a=new Path2D(e.attr("d"));t.strokeStyle=e.attr("stroke"),t.fillStyle=e.attr("fill"),t.lineWidth=1.25,t.globalCompositeOperation="source-over",t.globalAlpha=e.attr("stroke-opacity")||.3,t.stroke(a),t.globalAlpha=e.attr("fill-opacity")||.45,t.fill(a),t.globalAlpha=1,t.closePath()}function s(t,e){return e?t<e[0]?e[0]:t>e[1]?e[1]:t:t}function l(t,e){t&&e.split(" ").every((function(e){return e&&L.DomUtil.addClass(t,e)}))}function c(t,e){t&&e.split(" ").every((function(e){return e&&L.DomUtil.removeClass(t,e)}))}function h(t,e,a){return(a?l:c).call(null,t,e)}function d(t,e,a){e&&c(t,e),a&&l(t,a)}function u(t,e,a){return void 0===a?L.DomUtil.getStyle(t,e):t.style.setProperty(e,a)}function _(t,e,a,i){return u(t,e,i?a:"")}function p(t,e,a,i){return t[i?"on":"off"](e,a)}function m(t,e,a,i){var n=L.DomUtil.create(t,e||"");return a&&v(n,a),i&&f(i,n),n}function f(t,e){return t.appendChild(e)}function g(t,e,a){return t.insertAdjacentElement(a,e)}function v(t,e){for(var a in e)t.setAttribute(a,e[a])}function y(t,e){return(e||document).querySelector(t)}var x=L.DomEvent.on,b=L.DomEvent.off,k=L.DomUtil.hasClass;function w(){return Math.random().toString(36).substr(2,9)}function M(t,e){for(var a in t)e(t[a],a)}var C=Object.freeze({__proto__:null,formatTime:i,saveFile:n,lazyLoader:r,drawCanvas:o,clamp:s,addClass:l,removeClass:c,toggleClass:h,replaceClass:d,style:u,toggleStyle:_,toggleEvent:p,create:m,append:f,insert:g,setAttributes:v,select:y,on:x,off:b,hasClass:k,randomId:w,each:M}),A={lightblue:{area:"#3366CC",alpha:.45,stroke:"#3366CC"},magenta:{area:"#FF005E"},yellow:{area:"#FF0"},purple:{area:"#732C7B"},steelblue:{area:"#4682B4"},red:{area:"#F00"},lime:{area:"#9CC222",line:"#566B13"}},S=function(t){t.width;var e=t.height,a=t.xAttr,i=t.yAttr,n=t.scaleX,r=t.scaleY,o=t.interpolation,s=void 0===o?"curveLinear":o;return d3.area().curve("string"==typeof s?d3[s]:s).x((function(t){return t.xDiagCoord=n(t[a])})).y0(e).y1((function(t){return r(t[i])}))},z=function(t){var e=t.name,a=t.color,i=t.strokeColor,n=t.strokeOpacity,r=t.fillOpacity,o=d3.create("svg:path");return e&&o.classed(e,!0),o.style("pointer-events","none"),o.attr("fill",a||"#3366CC").attr("stroke",i||"#000").attr("stroke-opacity",n||"1").attr("fill-opacity",r||"0.8"),o},D=function(t){var e=t.type,a=void 0===e?"axis":e,i=t.tickSize,n=void 0===i?6:i,r=t.tickPadding,o=void 0===r?3:r,s=t.position,l=t.height,c=t.width,h=t.axis,d=t.scale,u=t.ticks,_=t.tickFormat,p=t.label,m=t.labelX,f=t.labelY,g=t.name,v=void 0===g?"":g,y=t.onAxisMount;return function(t){var e=0,i=0;"bottom"==s&&(i=l),"right"==s&&(e=c),"x"==h&&"grid"==a?n=-l:"y"==h&&"grid"==a&&(n=-c);var r=d3["axis"+s.replace(/\b\w/g,(function(t){return t.toUpperCase()}))]().scale(d).ticks(u).tickPadding(o).tickSize(n).tickFormat(_),g=t.append("g").attr("class",[h,a,s,v].join(" ")).attr("transform","translate("+e+","+i+")").call(r);return p&&g.append("svg:text").attr("x",m).attr("y",f).text(p),y&&g.call(y),g}},F=function(t){return t.type="grid",D(t)},E=function(t){var e=t.theme,a=t.xCoord,i=void 0===a?0:a,n=t.yCoord,r=void 0===n?0:n,o=t.labels,s=void 0===o?{}:o,l=t.item,c=void 0===l?{}:l,h=t.length,d=void 0===h?0:h;return function(t){t.attr("class","height-focus-group");var a,n=t.select(".height-focus.line"),o=t.select(".height-focus.circle-lower"),l=t.select(".height-focus-label");return n.node()||(n=t.append("svg:line")),o.node()||(o=t.append("svg:circle")),l.node()||(l=t.append("svg:text")),isNaN(i)||isNaN(r)||(o.attr("class",e+" height-focus circle-lower").attr("transform","translate("+i+","+r+")").attr("r",6).attr("cx",0).attr("cy",0),n.attr("class",e+" height-focus line").attr("x1",i).attr("x2",i).attr("y1",r).attr("y2",d),l.attr("class",e+" height-focus-label").style("pointer-events","none").attr("x",i+5).attr("y",d),Object.keys(s).sort((function(t,e){return s[t].order-s[e].order})).forEach((function(t){(a=l.select(".height-focus-"+s[t].name)).size()||(a=l.append("svg:tspan").attr("class","height-focus-"+s[t].name).attr("dy","1.5em")),a.text("function"!=typeof s[t].value?s[t].value:s[t].value(c))})),l.select("tspan").attr("dy",l.selectAll("tspan").size()>1?"-1.5em":"0em"),l.selectAll("tspan").attr("x",i+5)),t}},T=function(t){var e=t.name,a=t.label,i=t.width,n=t.height,r=t.margins,o=void 0===r?{}:r,s=t.color,l=t.path;return function(t){return t.attr("class","legend-item legend-"+e.toLowerCase()).attr("data-name",e),t.on("click.legend",(function(){return d3.select(t.node().ownerSVGElement||t).dispatch("legend_clicked",{detail:{path:l.node(),name:e,legend:t.node(),enabled:!l.classed("leaflet-hidden")}})})),t.append("svg:rect").attr("x",i/2-50).attr("y",n+o.bottom/2).attr("width",50).attr("height",10).attr("fill",s).attr("stroke","#000").attr("stroke-opacity","0.5").attr("fill-opacity","0.25"),t.append("svg:text").text(L._(a||e)).attr("x",i/2+5).attr("font-size",10).style("text-decoration-thickness","2px").style("font-weight","700").attr("y",n+o.bottom/2).attr("dy","0.75em"),t}},I=function(t){var e=t.xCoord,a=t.yCoord,i=t.width,n=t.height,r=t.labels,o=void 0===r?{}:r,s=t.item,l=void 0===s?{}:s;return function(t){var r=t.select(".mouse-focus-line"),s=t.select(".mouse-focus-label");r.node()||(r=t.append("svg:line")),s.node()||(s=t.append("g"));var c=s.select(".mouse-focus-label-rect"),h=s.select(".mouse-focus-label-text");c.node()||(c=s.append("svg:rect")),h.node()||(h=s.append("svg:text"));var d,u=0,_=0,p={width:0,height:0};try{p=h.node().getBBox()}catch(e){return t}return e&&(u=e+(e<i/2?10:-p.width-10)),a&&(_=Math.max(a-p.height,L.Browser.webkit?0:-1/0)),r.attr("class","mouse-focus-line").attr("x2",e).attr("y2",0).attr("x1",e).attr("y1",n),s.attr("class","mouse-focus-label"),c.attr("class","mouse-focus-label-rect").attr("x",u-5).attr("y",_-5).attr("width",p.width+10).attr("height",p.height+10).attr("rx",3).attr("ry",3),h.attr("class","mouse-focus-label-text").style("font-weight","700").attr("y",_),Object.keys(o).sort((function(t,e){return o[t].order-o[e].order})).forEach((function(t){(d=h.select(".mouse-focus-label-"+o[t].name)).size()||(d=h.append("svg:tspan",".mouse-focus-label-x").attr("class","mouse-focus-label-"+o[t].name).attr("dy","1.5em")),d.text("function"!=typeof o[t].value?o[t].value:o[t].value(l))})),h.select("tspan").attr("dy","1em"),h.selectAll("tspan").attr("x",u),t}},O=function(t){var e=t.height,a=t.width;return function(t){t.data([{x:0,y:e}]).attr("transform",(function(t){return"translate("+t.x+","+t.y+")"}));var i=t.selectAll(".horizontal-drag-rect").data([{w:a}]),n=t.selectAll(".horizontal-drag-line").data([{w:a}]),r=t.selectAll(".horizontal-drag-label").data([{w:a-8}]),o=t.selectAll(".horizontal-drag-symbol").data([{type:d3.symbolTriangle,x:a+7,y:0,angle:-90,size:50}]);return i.exit().remove(),n.exit().remove(),r.exit().remove(),o.exit().remove(),i.enter().append("svg:rect").attr("class","horizontal-drag-rect").attr("x",0).attr("y",-8).attr("height",8).attr("fill","none").attr("pointer-events","all").merge(i).attr("width",(function(t){return t.w})),n.enter().append("svg:line").attr("class","horizontal-drag-line").attr("x1",0).merge(n).attr("x2",(function(t){return t.w})),r.enter().append("svg:text").attr("class","horizontal-drag-label").attr("text-anchor","end").attr("y",-8).merge(r).attr("x",(function(t){return t.w})),o.enter().append("svg:path").attr("class","horizontal-drag-symbol").merge(o).attr("d",d3.symbol().type((function(t){return t.type})).size((function(t){return t.size}))).attr("transform",(function(t){return"translate("+t.x+","+t.y+") rotate("+t.angle+")"})),t}},N=function(t){var e=t.point,a=t.height,i=t.width,n=t.x,r=t.y;return function(t){return isNaN(n)||isNaN(r)||(e.item&&e.item.property("isConnected")||(e.position=e.position||"bottom",e.item=t.append("g"),e.item.append("svg:line").attr("y1",0).attr("x1",0).attr("style","stroke: rgb(51, 51, 51); stroke-width: 0.5; stroke-dasharray: 2, 2;"),e.item.append("svg:circle").attr("class"," height-focus circle-lower").attr("r",3),e.label&&e.item.append("svg:text").attr("dx","4px").attr("dy","-4px")),e.item.datum({pos:e.position,x:n,y:r}).attr("class",(function(t){return"point "+t.pos})).attr("transform",(function(t){return"translate("+t.x+","+t.y+")"})),e.item.select("line").datum({y2:{top:-r,bottom:a-r}[e.position],x2:{left:-n,right:i-n}[e.position]||0}).attr("y2",(function(t){return t.y2})).attr("x2",(function(t){return t.x2})),e.label&&e.item.select("text").text(e.label)),t}},P=function(t){var e=t.min,a=t.max,i=t.attr,n=t.name,r=t.forceBounds,o=t.scale;return function(t){i=i||n,o&&o.attr&&(i=o.attr);var s=t&&t.length?d3.extent(t,(function(t){return t[i]})):[0,1];return void 0!==e&&(e<s[0]||r)&&(s[0]=e),void 0!==a&&(a>s[1]||r)&&(s[1]=a),s}},B=function(t){var e=t.axis;return function(t,a){return"x"==e?[0,t]:"y"==e?[a,0]:void 0}},G=function(t){var e=t.data,a=t.attr,i=t.min,n=t.max,r=t.forceBounds,o=t.range;return d3.scaleLinear().range(o).domain(P({min:i,max:n,attr:a,forceBounds:r})(e))},H=function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=(t.ruler,e-n.left-n.right),o=a-n.top-n.bottom,s=d3.create("svg:svg").attr("class","background"),l=s.append("g"),c={grid:l.append("g").attr("class","grid"),area:l.append("g").attr("class","area"),axis:l.append("g").attr("class","axis"),point:l.append("g").attr("class","point"),brush:l.append("g").attr("class","brush"),tooltip:l.append("g").attr("class","tooltip").attr("display","none"),ruler:l.append("g").attr("class","ruler"),legend:l.append("g").attr("class","legend")},h=c.area.append("svg:mask").attr("id","elevation-clipper").attr("fill-opacity",1),d=h.append("svg:rect").attr("class","zoom").attr("fill","white"),u=c.area.append("svg:foreignObject").attr("mask","url(#"+h.attr("id")+")"),_=u.append("xhtml:canvas").attr("class","canvas-plot"),p=_.node().getContext("2d");c.tooltip.call(I({xCoord:0,yCoord:0,height:o,width:r,labels:{}}));var m=d3.brushX().on("start.cursor end.cursor brush.cursor",(function(){return c.brush.select(".overlay").attr("cursor",null)})),f={mask:h,canvas:_,context:p,brush:m},g={svg:s,g:l,panes:c,utils:f,scale:function(t){return{x:G(t.x),y:G(t.y)}},_resize:function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=t.ruler,o=e-n.left-n.right,h=a-n.top-n.bottom;s.attr("viewBox","0 0 ".concat(e," ").concat(a)).attr("width",e).attr("height",a),l.attr("transform","translate("+n.left+","+n.top+")"),/Mac|iPod|iPhone|iPad/.test(navigator.platform)&&/AppleWebkit/i.test(navigator.userAgent)&&_.style("transform","translate("+n.left+"px,"+n.top+"px)"),d.attr("x",0).attr("y",0).attr("width",o).attr("height",h),u.attr("width",o).attr("height",h),_.attr("width",o).attr("height",h),r&&c.ruler.call(O({height:h,width:o})),c.brush.call(m.extent([[0,0],[o,h]])),c.brush.select(".overlay").attr("cursor",null),g._width=o,g._height=h,g.svg.dispatch("resize",{detail:{width:o,height:h}})},pane:function(t){return c[t]||(c[t]=l.append("g").attr("class",t)),c[t]},get:function(t){return f[t]}};return g._resize({width:e,height:a,margins:n}),g},X=Object.freeze({__proto__:null,Colors:A,Area:S,Path:z,Axis:D,Grid:F,PositionMarker:E,LegendItem:T,Tooltip:I,Ruler:O,CheckPoint:N,Domain:P,Range:B,Scale:G,Bisect:function(t){var e=t.data,a=void 0===e?[0,1]:e,i=t.scale,n=t.x,r=t.attr;return d3.bisector((function(t){return t[r]})).left(a,i.invert(n))},Chart:H}),U=L.Class.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,initialize:function(t,e){var a=this;this.options=t,this.control=e,this._data=[],this._props={scales:{},paths:{},areas:{},grids:{},axes:{},legendItems:{},tooltipItems:{}},this._scales={},this._domains={},this._ranges={},this._paths={},this._brushEnabled=t.dragging,this._zoomEnabled=t.zooming;var i=this._chart=H(t);this._container=i.svg;this._grid=i.pane("grid"),this._area=i.pane("area"),this._point=i.pane("point"),this._axis=i.pane("axis"),this._legend=i.pane("legend"),this._tooltip=i.pane("tooltip"),this._ruler=i.pane("ruler"),this._initScale(),this._mask=i.get("mask"),this._context=i.get("context"),this._brush=i.get("brush"),this._zoom=d3.zoom(),this._drag=d3.drag(),this._initInteractions(),this._maskGaps=[],e.on("eletrack_added",(function(t){a._maskGaps.push(t.index),e.once("eledata_updated",(function(t){return a._maskGaps.push(t.index)}))}))},update:function(t){return t&&(t.data&&(this._data=t.data),t.options&&(this.options=t.options)),this._updateScale(),this._updateArea(),this._updateAxis(),this._updateLegend(),this._updateClipper(),this},render:function(){var t=this;return function(e){return e.append((function(){return t._container.node()}))}},clear:function(){this._resetDrag(),this._hideDiagramIndicator(),this._area.selectAll("path").attr("d","M0 0"),this._context.clearRect(0,0,this._width(),this._height()),this._maskGaps=[],this._mask.selectAll(".gap").remove()},_drawPath:function(t){var e=this._paths[t],a=this._props.areas[t];e.datum(this._data).attr("d",S(L.extend({},a,{width:this._width(),height:this._height(),scaleX:this._scales[a.scaleX],scaleY:this._scales[a.scaleY]}))),e.classed("leaflet-hidden")||(this.options.preferCanvas?o(this._context,e):this._area.append((function(){return e.node()})))},_hasActiveLayers:function(){var t=this._paths;for(var e in t)if(!t[e].classed("leaflet-hidden"))return!0;return!1},_initBrush:function(t){var e=this,a=function(t){if(e._data.length&&("brush"!=t.type||t.sourceEvent)){var a=e._chart.panes.brush.select(".overlay").node(),i=d3.pointers(t,a)[0][0],n=e._data[e._findIndexForXCoord(i)];e.fire("mouse_move",{item:n,xCoord:i})}};this._brush.filter((function(t){return e._brushEnabled&&!t.shiftKey&&!t.button})).on("end.update",(function(t){if(e._data.length){var a=t.selection;if(a){var i=e._findIndexForXCoord(a[0]),n=e._findIndexForXCoord(a[1]);e.fire("dragged",{dragstart:e._data[i],dragend:e._data[n]})}}})).on("brush.update",a),this._chart.panes.brush.on("mouseenter.focus touchstart.focus",this.fire.bind(this,"mouse_enter")).on("mouseout.focus touchend.focus",this.fire.bind(this,"mouse_out")).on("mousemove.focus touchmove.focus",a)},_initClipper:function(){var t=this,e=this._container,a=this.options.margins,i=this._zoom;i.scaleExtent([1,10]).extent([[a.left,0],[this._width()-a.right,this._height()]]).translateExtent([[a.left,-1/0],[this._width()-a.right,1/0]]).filter((function(e){return t._zoomEnabled&&(e.shiftKey||4==e.buttons)})).on("start",(function(a){a.sourceEvent&&"mousedown"==a.sourceEvent.type&&e.style("cursor","grabbing"),1==a.transform.k&&0==a.transform.x&&(t._container.classed("zoomed",!0),t._mask&&t._point.attr("mask","url(#"+t._mask.attr("id")+")")),t.zooming=!0})).on("end",(function(a){1==a.transform.k&&0==a.transform.x&&(t._container.classed("zoomed",!1),t._mask&&t._point.attr("mask",null)),t.zooming=!1,e.style("cursor","")})).on("zoom",(function(e){t.zooming=!1,t._updateScale(),t.zooming=!0,t._scales.distance=t._x=e.transform.rescaleX(t._x),t._scales.time&&(t._scales.time=e.transform.rescaleX(t._scales.time)),t._resetDrag(),e.sourceEvent&&"mousemove"==e.sourceEvent.type&&t._hideDiagramIndicator(),t.fire("zoom")})),e.call(i)},_initInteractions:function(){this._initBrush(),this._initRuler(),this._initClipper(),this._initLegend()},_initLegend:function(){var t=this;this._container.on("legend_clicked",(function(e){var a=e.detail,i=a.path,n=a.legend,r=a.name,o=a.enabled;if(i){var s=y("text",n),l=y("rect",n);_(s,"text-decoration-line","line-through",o),_(l,"fill-opacity","0",o),h(i,"leaflet-hidden",o),t._updateArea(),t.fire("elepath_toggle",{path:i,name:r,legend:n,enabled:o})}}))},_initRuler:function(){var t=this;if(this.options.ruler){var e=d3.format(".0f"),a=this._drag;a.on("start end",(function(e,a){var i=t._height(),n=t._ruler.data()[0].y;(n>=i||n<=0)&&t._ruler.select(".horizontal-drag-label").text(""),t._hideDiagramIndicator()})).on("drag",(function(a,i){var n=t._height(),r=d3.pointers(a,t._area.node())[0][1],o=r>0?r<n?r:n:0,s=t._y.invert(o),l=L.extend(t._ruler.data()[0],{y:o});t._ruler.data([l]).attr("transform",(function(t){return"translate("+t.x+","+t.y+")"})).classed("active",o<n),t._container.select(".horizontal-drag-label").text(e(s)+" "+(t.options.imperial?"ft":"m")),t.fire("ruler_filter",{coords:r<n&&r>0?t._findCoordsForY(r):[]})})),this._ruler.call(a)}},_initScale:function(){var t=this.options;this._registerAxisScale({axis:"x",position:"bottom",attr:t.xAttr,min:t.xAxisMin,max:t.xAxisMax,name:"distance"}),this._registerAxisScale({axis:"y",position:"left",attr:t.yAttr,min:t.yAxisMin,max:t.yAxisMax,name:"altitude"}),this._x=this._scales.distance,this._y=this._scales.altitude},_registerAreaPath:function(t){"y"==t.scale?t.scale=this._y:"x"==t.scale&&(t.scale=this._x);var e=this.options;t.xAttr||(t.xAttr=e.xAttr),t.yAttr||(t.yAttr=e.yAttr),void 0===t.preferCanvas&&(t.preferCanvas=e.preferCanvas);var a=z(t);this._paths[t.name]=a,this._props.areas[t.name]=t,e.legend&&(this._props.legendItems[t.name]={name:t.name,label:t.label,color:t.color,path:a})},_registerAxisGrid:function(t){"y"==t.scale?t.scale=this._y:"x"==t.scale&&(t.scale=this._x),this._props.grids[t.name||t.axis]=t},_registerAxisScale:function(t){"y"==t.scale?t.scale=this._y:"x"==t.scale&&(t.scale=this._x);var e=this.options,a=t.scale;if("function"==typeof this._scales[t.name])t.scale=this._scales[t.name];else if("function"!=typeof a){(a=L.extend({data:this._data,forceBounds:e.forceAxisBounds},a)).attr=a.attr||t.name;var i=this._domains[t.name]=P(t),n=this._ranges[t.name]=B(t);a.range=a.range||n(this._width(),this._height()),a.domain=a.domain||i(this._data),this._props.scales[t.name]=a,t.scale=this._scales[t.name]=G(a)}return t.ticks||("x"==t.axis?t.ticks=e.xTicks:"y"==t.axis&&(t.ticks=e.yTicks)),this._props.axes[t.name]=t,a},_registerCheckPoint:function(t){var e,a,i;this._data.length&&(t.latlng?(e=this._data[this._findIndexForLatLng(t.latlng)],a=this._x(e.dist),i=this._y(e.z)):isNaN(t.dist)||(a=this._x(t.dist),e=this._data[this._findIndexForXCoord(a)],i=this._y(e.z)),this._point.call(N({point:t,width:this._width(),height:this._height(),x:a,y:i})))},_registerTooltip:function(t){var e;t.order=null!==(e=t.order)&&void 0!==e?e:100,this._props.tooltipItems[t.name]=t},_updateArea:function(){var t=this._paths;for(var e in this._context.clearRect(0,0,this._width(),this._height()),t)t[e].classed("leaflet-hidden")||this._drawPath(e)},_updateAxis:function(){var t=this.options;this._grid.selectAll("g").remove(),this._axis.selectAll("g").remove();var e,a,i,n=this._props.grids,r=this._props.axes,o={width:this._width(),height:this._height(),tickFormat:""},s={width:this._width(),height:this._height()};for(var l in n)e=L.extend({},o,n[l]),i=F(e),this._grid.call(i);for(var c in r)!1!==t[c]&&"summary"!==t[c]&&(e=L.extend({},s,r[c]),a=D(e),this._axis.call(a));this._axis.selectAll(".y.axis.right").each((function(t,e,a){var i=d3.select(a[e]),n=i.attr("transform"),r=n.substring(n.indexOf("(")+1,n.indexOf(")")).split(",");i.attr("transform","translate("+(+r[0]+40*e)+","+r[1]+")"),e>0&&(i.select(":scope > path").attr("opacity",.25),i.selectAll(":scope > .tick line").attr("opacity",.75))}))},_updateClipper:function(){var t=this,e=this.options.margins;this._zoom.scaleExtent([1,10]).extent([[e.left,0],[this._width()-e.right,this._height()]]).translateExtent([[e.left,-1/0],[this._width()-e.right,1/0]]),this._mask.selectAll(".gap").remove(),this._maskGaps.forEach((function(e,a){if(!(a>=t._maskGaps.length-2)){var i=t._data[t._maskGaps[a]],n=t._data[t._maskGaps[a+1]],r=t._x(t._data[t._findIndexForLatLng(i.latlng)].dist),o=t._x(t._data[t._findIndexForLatLng(n.latlng)].dist);t._mask.append("rect").attr("x",r).attr("y",0).attr("width",o-r).attr("height",t._height()).attr("class","gap").attr("fill-opacity","0.8").attr("fill","black")}}))},_updateLegend:function(){var t=this;if(!1!==this.options.legend){var e,a=this._props.legendItems;for(var i in this._legend.selectAll("g").remove(),a)e=T(L.extend({width:this._width(),height:this._height(),margins:this.options.margins},a[i])),this._legend.append("g").call(e);var n=this._legend.selectAll(".legend-item"),r=n.nodes().length,o=Array(Math.floor(r/2)).fill(null).map((function(t,e){return 2*(e+1)-(1-Math.sign(r%2))})),s=o.slice().reverse().map((function(t){return-t}));r%2!=0&&s.push(0),o=s.concat(o);var l=this._axis.selectAll(".x.axis.bottom").nodes().length,c=30+2*l,h=30*r;r&&this.options.margins.right<h&&(this.options.margins.right=h,this.fire("margins_updated")),l&&this.options.margins.bottom<c&&(this.options.margins.bottom=c,this.fire("margins_updated")),n.each((function(e,a,i){var n=d3.select(i[a]),r=(n.select("rect"),n.attr("data-name")),s=t._paths[r],c=55*o[a],h=2*l;n.attr("transform","translate("+c+", "+h+")"),r in t.options&&"disabled"==t.options[r]&&(s.classed("leaflet-hidden",!0),n.select("text").style("text-decoration-line","line-through"),n.select("rect").style("fill-opacity","0")),t._mask&&s.attr("mask","url(#"+t._mask.attr("id")+")")}))}},_updateScale:function(){if(this.zooming)return{x:this._x,y:this._y};for(var t in this._scales)this._scales[t].domain(this._domains[t](this._data)).range(this._ranges[t](this._width(),this._height()));return{x:this._x,y:this._y}},_width:function(){return this._chart._width},_height:function(){return this._chart._height},_findCoordsForY:function(t){var e,a=this._data,i=this._y.invert(t),n=a.reduce((function(t,e,a){return e.z>=i&&t.push(a),t}),[]),r=0;return n.reduce((function(t,i,o){return n[e=o+1]===n[o]+1&&e!==n.length||(t.push(n.slice(r,e).map((function(t){return a[t].latlng}))),r=e),t}),[])},_findIndexForXCoord:function(t){var e=this;return d3.bisector((function(t){return t[e.options.xAttr]})).left(this._data||[0,1],this._x.invert(t))},_findIndexForLatLng:function(t){var e=null,a=1/0;return this._data.forEach((function(i,n){var r=t.distanceTo(i.latlng);r<a&&(a=r,e=n)})),e},_resetDrag:function(){this._chart.panes.brush.select(".selection").attr("width")&&(this._chart.panes.brush.call(this._brush.clear),this._hideDiagramIndicator(),this.fire("reset_drag"))},_resetZoom:function(){this._zoom&&this._zoom.transform(this._chart.svg,d3.zoomIdentity)},_showDiagramIndicator:function(t,e){this._tooltip.attr("display",null).call(I({xCoord:e,yCoord:this._y(t[this.options.yAttr]),height:this._height(),width:this._width(),labels:this._props.tooltipItems,item:t}))},_hideDiagramIndicator:function(){this._tooltip.attr("display","none")}});function j(t){return(j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var R,J=L.Class.extend({initialize:function(t){switch(this.options=t,this.options.marker){case"elevation-line":break;case"position-marker":this._marker=L.marker([0,0],{icon:this.options.markerIcon,zIndexOffset:1e6,interactive:!1})}return this._labels={},this},addTo:function(t){switch(this._map=t,this.options.marker){case"elevation-line":this._container=d3.select(t.getPane("elevationPane")).select("svg > g").call(E({}));break;case"position-marker":this._marker.addTo(t,{pane:"overlayPane"})}return this},update:function(t){if(t?this._props=t:t=this._props,t)switch(t.options&&(this.options=t.options),this._map||this.addTo(t.map),this._latlng=t.item.latlng,this.options.marker){case"elevation-line":if(this._container){var e=this._map.latLngToLayerPoint(this._latlng);e=L.extend({},t.item,this._map._rotate?this._map.rotatedPointToMapPanePoint(e):e),this._container.classed("leaflet-hidden",!1),this._container.call(E({theme:this.options.theme,xCoord:e.x,yCoord:e.y,length:e.y-this._height()/t.maxElevation*e.z,labels:this._labels,item:e}))}break;case"position-marker":c(this._marker.getElement(),"leaflet-hidden"),this._marker.setLatLng(this._latlng)}},remove:function(){switch(this._props=null,this.options.marker){case"elevation-line":this._container&&this._container.classed("leaflet-hidden",!0);break;case"position-marker":l(this._marker.getElement(),"leaflet-hidden")}},getLatLng:function(){return this._latlng},_height:function(){var t=this.options;return t.height-t.margins.top-t.margins.bottom},_registerTooltip:function(t){this._labels[t.name]=t}}),Y=L.Class.extend({initialize:function(t,e){this.options=t,this.control=e,this.labels={},u(this._container=m("div","elevation-summary "+(t.summary?t.summary+"-summary":"")),"max-width",t.width?t.width+"px":"")},render:function(){var t=this;return function(e){return e.append((function(){return t._container}))}},reset:function(){this._container.innerHTML=""},append:function(t,e,a){return this._container.innerHTML+='<span class="'.concat(t,'"><span class="summarylabel">').concat(e,'</span><span class="summaryvalue">').concat(a,"</span></span>"),this},update:function(){var t=this;Object.keys(this.labels).sort((function(e,a){return t.labels[e].order-t.labels[a].order})).forEach((function(e){t.append(e,L._(t.labels[e].label),"function"!=typeof t.labels[e].value?t.labels[e].value:t.labels[e].value(t.control.track_info))}))},_registerSummary:function(t){for(var e in t){var a;t[e].order=null!==(a=t[e].order)&&void 0!==a?a:100,this.labels[e]=t[e]}}}),V={autofitBounds:!0,autohide:!L.Browser.mobile,autohideMarker:!0,almostover:!0,altitude:!0,collapsed:!1,detached:!0,distance:!0,distanceMarkers:{lazy:!0,distance:!0,direction:!0},decimalsX:2,decimalsY:0,dragging:!L.Browser.mobile,downloadLink:"link",elevationDiv:"#elevation-div",followMarker:!0,forceAxisBounds:!1,height:200,imperial:!1,interpolation:"curveLinear",lazyLoadJS:!0,legend:!0,margins:{top:30,right:30,bottom:30,left:40},marker:"elevation-line",markerIcon:L.divIcon({className:"elevation-position-marker",html:'<i class="elevation-position-icon"></i>',iconSize:[32,32],iconAnchor:[16,16]}),position:"topright",polyline:{className:"elevation-polyline",color:"#000",opacity:.75,weight:5,lineCap:"round"},polylineSegments:{className:"elevation-polyline-segments",color:"#F00",interactive:!1},preferCanvas:!1,reverseCoords:!1,ruler:!0,skipNullZCoords:!1,theme:"lightblue-theme",summary:"inline",slope:!1,slopeDeltaMax:void 0,slopeRange:void 0,speed:!1,speedDeltaMax:void 0,speedRange:void 0,time:!1,timeFactor:3600,timeFormat:!1,timestamps:!1,width:600,waypoints:!0,wptIcons:{"":L.divIcon({className:"elevation-waypoint-marker",html:'<i class="elevation-waypoint-icon default"></i>',iconSize:[30,30],iconAnchor:[8,30]})},wptLabels:!0,xAttr:"dist",xLabel:"km",xTicks:void 0,yAttr:"z",yAxisMax:void 0,yAxisMin:void 0,yLabel:"m",yTicks:void 0,zFollow:!1,zooming:!L.Browser.Mobile},W=L.Control.Elevation=L.Control.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,options:V,__mileFactor:.621371,__footFactor:3.28084,__D3:"https://unpkg.com/d3@6.5.0/dist/d3.min.js",__TOGEOJSON:"https://unpkg.com/@tmcw/togeojson@4.5.0/dist/togeojson.umd.js",__LGEOMUTIL:"https://unpkg.com/leaflet-geometryutil@0.9.3/src/leaflet.geometryutil.js",__LALMOSTOVER:"https://unpkg.com/leaflet-almostover@1.0.1/src/leaflet.almostover.js",__LDISTANCEM:"https://unpkg.com/@raruto/leaflet-elevation@1.9.6/libs/leaflet-distance-marker.min.js",addData:function(t,e){var a=this;this.lazyLoad(this.__D3).then((function(){void 0===e&&t.on&&(e=t),a._addData(t),a._addLayer(e),a._fireEvt("eledata_added",{data:t,layer:e,track_info:a.track_info})}))},addTo:function(t){if(this.options.detached){var e=this._initElevationDiv();e.isConnected||g(t.getContainer(),e,"afterend"),f(e,this.onAdd(t))}else L.Control.prototype.addTo.call(this,t);return this},clear:function(){this._marker&&this._marker.remove(),this._chart&&this._clearChart(),this._layers&&this._clearLayers(),this._markers&&this._clearMarkers(),this._data=[],this.track_info={},this._fireEvt("eledata_clear"),this._updateChart()},_clearChart:function(){var t=this;this._events&&this._events.elechart_updated&&this._events.elechart_updated.forEach((function(e){return t.off("elechart_updated",e.fn,e.ctx)})),this._chart&&this._chart._container&&(this._chart._container.selectAll("g.point .point").remove(),this._chart.clear())},_clearLayers:function(){this._layers&&this._layers.eachLayer&&(this._layers.eachLayer((function(t){return t.remove()})),this._layers.clearLayers())},_clearMarkers:function(){this._markers&&this._markers.eachLayer&&(this._markers.eachLayer((function(t){return t.remove()})),this._markers.clearLayers())},disableBrush:function(){this._chart._brushEnabled=!1,this._resetDrag()},enableBrush:function(){this._chart._brushEnabled=!0},disableZoom:function(){this._chart._zoomEnabled=!1,this._chart._resetZoom()},enableZoom:function(){this._chart._zoomEnabled=!0},fitBounds:function(t){t=t||this.getBounds(),this._map&&t.isValid()&&this._map.fitBounds(t)},getBounds:function(t){return t=t||this._data,L.latLngBounds(t.map((function(t){return t.latlng})))},getZFollow:function(){return this.options.zFollow},hide:function(){u(this._container,"display","none")},initialize:function(t){this._data=[],this._layers=L.featureGroup(),this._markers=L.featureGroup(),this._markedSegments=L.polyline([]),this._chartEnabled=!0,this.track_info={},this.handlers=[],L.setOptions(this,t),this.options.followMarker&&(this._setMapView=L.Util.throttle(this._setMapView,300,this)),this.options.legend&&(this.options.margins.bottom+=30),this.options.theme&&(this.options.polylineSegments.className+=" "+this.options.theme),!0===this.options.wptIcons&&(this.options.wptIcons=V.wptIcons),!0===this.options.distanceMarkers&&(this.options.distanceMarkers=V.distanceMarkers),this._markedSegments.setStyle(this.options.polylineSegments),L.extend(A,this.options.colors||{}),this._fixCanvasPaths(),this._fixTooltipSize()},lazyLoad:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(!this.options.lazyLoadJS)return Promise.resolve();switch(t){case this.__D3:a="_d3LazyLoader",e="object"!==("undefined"==typeof d3?"undefined":j(d3));break;case this.__TOGEOJSON:a="_togeojsonLazyLoader",e="object"!==("undefined"==typeof toGeoJSON?"undefined":j(toGeoJSON));break;case this.__LGEOMUTIL:a="_geomutilLazyLoader",e="object"!==j(L.GeometryUtil);break;case this.__LALMOSTOVER:a="_almostoverLazyLoader",e="function"!=typeof L.Handler.AlmostOver;break;case this.__LDISTANCEM:a="_distanceMarkersLazyLoader",e="function"!=typeof L.DistanceMarkers}return L.Control.Elevation[a]=r(t,e,L.Control.Elevation[a])},load:function(t){var e=this;this._parseFromString(t).then((function(a){return a?e._loadLayer(a):e._loadFile(t)}))},onAdd:function(t){var e=this;this._map=t;var a=this._container=m("div","elevation-control elevation "+this.options.theme+" "+(this.options.detached?"":"leaflet-control"));return this.lazyLoad(this.__D3).then((function(){e._initButton(a),e._initChart(a),e._initSummary(a),e._initMarker(t),e._initLayer(t),t.on("zoom viewreset zoomanim",e._hideMarker,e).on("resize",e._resetView,e).on("resize",e._resizeChart,e).on("rotate",e._rotateMarker,e).on("mousedown",e._resetDrag,e),x(t.getContainer(),"mousewheel",e._resetDrag,e),x(t.getContainer(),"touchstart",e._resetDrag,e),x(document,"keydown",e._keydownHandler,e),e.on("eledata_added eledata_loaded",e._updateChart,e).on("eledata_added eledata_loaded",e._updateSummary,e),e._updateChart(),e._updateSummary()})),a},onRemove:function(t){this._container=null,t.off("zoom viewreset zoomanim",this._hideMarker,this).off("resize",this._resetView,this).off("resize",this._resizeChart,this).off("mousedown",this._resetDrag,this),b(t.getContainer(),"mousewheel",this._resetDrag,this),b(t.getContainer(),"touchstart",this._resetDrag,this),b(document,"keydown",this._keydownHandler,this),this.off("eledata_added eledata_loaded",this._updateChart,this).off("eledata_added eledata_loaded",this._updateSummary,this)},redraw:function(){this._resizeChart()},setZFollow:function(t){this.options.zFollow=t},show:function(){u(this._container,"display","block")},_addData:function(t){var e=this;if(t){var a=t.geometry;if(a)switch(a.type){case"LineString":this._addGeoJSONData(a.coordinates);break;case"MultiLineString":M(a.coordinates,(function(t){return e._addGeoJSONData(t)}));break;default:console.warn("Unsopperted GeoJSON feature geometry type:"+a.type)}"FeatureCollection"===t.type&&M(t.features,(function(t){return e._addData(t)})),t._latlngs&&this._addGeoJSONData(t._latlngs,t.feature&&t.feature.properties)}},_addGeoJSONData:function(t,e){var a=this;t.forEach((function(t,i){var n,r,o,s,l;t.meta=null!==(n=t.meta)&&void 0!==n?n:{time:null,ele:null,hr:null,cad:null,atemp:null};var c=e&&e.coordinateProperties||e;a.fire("elepoint_init",{point:t,props:c,id:i}),a._addPoint(null!==(r=t.lat)&&void 0!==r?r:t[1],null!==(o=t.lng)&&void 0!==o?o:t[0],null!==(s=null!==(l=t.alt)&&void 0!==l?l:t.meta.ele)&&void 0!==s?s:t[2]),a.fire("elepoint_added",{point:t,index:a._data.length-1})})),this.fire("eletrack_added",{coords:t,index:this._data.length-1})},_addPoint:function(t,e,a){if(this.options.reverseCoords){var i=[e,t];t=i[0],e=i[1]}this._data.push({x:t,y:e,z:a,latlng:L.latLng(t,e,a)}),this.fire("eledata_updated",{index:this._data.length-1})},_addLayer:function(t){t&&this._layers.addLayer(t),t&&this.options.distanceMarkers&&this.options.distanceMarkers.lazy&&t.on("add remove",(function(t){return L.DistanceMarkers&&t.target instanceof L.Polyline&&t.target[t.type+"DistanceMarkers"]()}))},_addMarker:function(t){t&&this._markers.addLayer(t)},_initAlmostOverHandler:function(t,e){var a=this;t&&this.options.almostOver&&this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LALMOSTOVER)})).then((function(){t.addHandler("almostOver",L.Handler.AlmostOver),L.GeometryUtil&&t.almostOver&&t.almostOver.enabled()&&(t.almostOver.addLayer(e),t.on("almost:move",(function(t){return a._mousemoveLayerHandler(t)})).on("almost:out",(function(t){return a._mouseoutHandler(t)})))}))},_initDistanceMarkers:function(t,e){var a=this;t&&(this.options.distanceMarkers?this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LDISTANCEM)})).then((function(){return a.options.polyline&&e.addTo(t)})):this.options.polyline&&e.addTo(t))},_initElevationDiv:function(){var t=y(this.options.elevationDiv);return t||(this.options.elevationDiv="#elevation-div_"+w(),t=m("div","leaflet-control elevation elevation-div",{id:this.options.elevationDiv.substr(1)})),this.options.detached&&d(t,"leaflet-control","elevation-detached"),this.eleDiv=t},_initMapIntegrations:function(t,e){var a=t._map;t._map?(a.once("layeradd",(function(a){return t.options.autofitBounds&&t.fitBounds(e.getBounds())})),L.Browser.mobile?t.options.polyline&&e.addTo(a):(t._initAlmostOverHandler(a,e),t._initDistanceMarkers(a,e))):console.warn("Undefined elevation map object")},_collapse:function(){d(this._container,"elevation-expanded","elevation-collapsed")},_expand:function(){d(this._container,"elevation-collapsed","elevation-expanded")},_fixCanvasPaths:function(){var t=L.Canvas.prototype._fillStroke,e=this;L.Canvas.include({_fillStroke:function(a,i){if(e._layers.hasLayer(i)){var n=e.options.theme.replace("-theme",""),r=A[n]||{},o=i.options;if(o.color=r.line||r.area||n,o.stroke=!!o.color,t.call(this,a,i),o.stroke&&0!==o.weight){var s=a.globalCompositeOperation||"source-over";a.globalCompositeOperation="destination-over",a.strokeStyle=r.outline||"#FFF",a.lineWidth=1.75*o.weight,a.stroke(),a.globalCompositeOperation=s}}else t.call(this,a,i)}})},_fixTooltipSize:function(){var t=this;this.on("elechart_init",(function(){return t.once("elechart_change elechart_hover",(function(e){t._chartEnabled&&(t._chart._showDiagramIndicator(e.data,e.xCoord),t._chart._showDiagramIndicator(e.data,e.xCoord)),t._updateMarker(e.data)}))}))},_findItemForLatLng:function(t){return this._data[this._chart._findIndexForLatLng(t)]},_findItemForX:function(t){return this._data[this._chart._findIndexForXCoord(t)]},_fireEvt:function(t,e,a){this.fire&&this.fire(t,e,a),this._map&&this._map.fire(t,e,a)},_height:function(){if(this._chart)return this._chart._height();var t=this.options;return t.height-t.margins.top-t.margins.bottom},_hideMarker:function(){this.options.autohideMarker&&this._marker.remove()},_initChart:function(t){var e=this.options;if(e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),e.detached){var a=this.eleDiv,i=a.offsetWidth,n=a.offsetHeight;i>0&&(e.width=i),n>20&&(e.height=n-20)}else{var r=this._map.getContainer().clientWidth;e._maxWidth=e._maxWidth>e.width?e._maxWidth:e.width,this._container.style.maxWidth=e._maxWidth+"px",e._maxWidth>r&&(e.width=r-30)}var o=this._chart=new U(e,this);this._x=this._chart._x,this._y=this._chart._y,d3.select(t).call(o.render()),o.on("reset_drag",this._hideMarker,this).on("mouse_enter",this._mouseenterHandler,this).on("dragged",this._dragendHandler,this).on("mouse_move",this._mousemoveHandler,this).on("mouse_out",this._mouseoutHandler,this).on("ruler_filter",this._rulerFilterHandler,this).on("zoom",this._updateChart,this).on("elepath_toggle",this._toggleChartHandler,this).on("margins_updated",this._resizeChart,this),this.fire("elechart_axis"),this.options.legend&&this.fire("elechart_legend"),this.fire("elechart_init")},_initLayer:function(){var t=this;this._layers.on("layeradd layerremove",(function(e){var a=e.layer;h(a.getElement&&a.getElement(),t.options.polyline.className+" "+t.options.theme,"layeradd"==e.type),p(a,"mousemove",t._mousemoveLayerHandler.bind(t),"layeradd"==e.type),p(a,"mouseout",t._mouseoutHandler.bind(t),"layeradd"==e.type)}))},_initMarker:function(t){var e=t.getPane("elevationPane");e||((e=this._pane=t.createPane("elevationPane",t.getPane("norotatePane")||t.getPane("mapPane"))).style.zIndex=625,e.style.pointerEvents="none"),this._renderer&&this._renderer.remove(),this._renderer=L.svg({pane:"elevationPane"}).addTo(this._map),this._marker=new J(this.options),this.fire("elechart_marker")},_initButton:function(t){if(!L.Browser.mobile&&this.options.detached||L.DomEvent.disableClickPropagation(t).disableScrollPropagation(t),!this.options.detached){var e=this._button=m("a","elevation-toggle elevation-toggle-icon"+(this.options.autohide?"":" close-button"),{href:"#",title:L._("Elevation")},t);this.options.collapsed&&(this._collapse(),this.options.autohide?(x(t,"mouseover",this._expand,this),x(t,"mouseout",this._collapse,this)):(x(e,"click",L.DomEvent.stop),x(e,"click",this._toggle,this)),x(e,"focus",this._toggle,this),this._map.on("click",this._collapse,this))}},_initSummary:function(t){this._summary=new Y({summary:this.options.summary},this),d3.select(t).call(this._summary.render())},_keydownHandler:function(t){this.options.detached||"Escape"!==t.key||this._collapse()},_loadFile:function(t){var e=this;fetch(t).then((function(t){return t.text()})).then((function(a){e._downloadURL=t,e._parseFromString(a).then((function(t){return t&&e._loadLayer(t)}))})).catch((function(t){return console.warn(t)}))},_loadLayer:function(t){var e=this,a=e.options,i=a.wptIcons,n=a.wptLabels,r=L.geoJson(t,{distanceMarkers:e.options.distanceMarkers,style:function(t){var a=L.extend({},e.options.polyline);return e.options.theme&&(a.className+=" "+e.options.theme),a},pointToLayer:function(t,a){var r,o,s;if(e.options.waypoints){var l=t.properties,c=null!==(r=l.desc)&&void 0!==r?r:"",h=null!==(o=l.name)&&void 0!==o?o:"",d=(null!==(s=l.sym)&&void 0!==s?s:h).replace(" ","-").replace('"',"").replace("'","").toLowerCase();if([!0,"dots"].includes(e.options.waypoints)&&e._registerCheckPoint({latlng:a,label:[!0,"dots"].includes(n)?h:""}),[!0,"markers"].includes(e.options.waypoints)&&0!=i){i.hasOwnProperty(d)||(i[d]=L.divIcon(L.extend({},i[""].options,{html:'<i class="elevation-waypoint-icon '+d+'"></i>'})));var u=L.marker(a,{icon:i[d]});if([!0,"markers"].includes(n)&&(h||c)){var _=decodeURI("<b>"+h+"</b>"+(c.length>0?"<br>"+c:""));u.bindPopup(_,{className:"elevation-popup",keepInView:!0}).openPopup(),u.bindTooltip(_,{className:"elevation-tooltip",direction:"auto",sticky:!0,opacity:1}).openTooltip()}return e._addMarker(u),e.fire("waypoint_added",{point:u,element:a,properties:l}),u}}},onEachFeature:function(a,i){a.geometry&&"Point"!=a.geometry.type&&(e.addData(i),e.track_info=L.extend({},e.track_info,{name:t.name}))}});return e.lazyLoad(e.__D3).then((function(){e._initMapIntegrations(e,r),e._fireEvt("eledata_loaded",{data:t,layer:r,name:e.track_info.name,track_info:e.track_info})})),r},_dragendHandler:function(t){this._hideMarker(),this.fitBounds(L.latLngBounds([t.dragstart.latlng,t.dragend.latlng])),this.fire("elechart_dragged")},_mouseenterHandler:function(t){this.fire("elechart_enter")},_mousemoveHandler:function(t){if(this._data.length&&this._chartEnabled){var e=this._findItemForX(t.xCoord);if(e){var a=t.xCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this._setMapView(e),this._map&&l(this._map.getContainer(),"elechart-hover"),this.fire("elechart_change",{data:e,xCoord:a}),this.fire("elechart_hover",{data:e,xCoord:a})}}},_mousemoveLayerHandler:function(t){if(this._data.length){var e=this._findItemForLatLng(t.latlng);if(e){var a=e.xDiagCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this.fire("elechart_change",{data:e,xCoord:a})}}},_mouseoutHandler:function(){this.options.detached||(this._hideMarker(),this._chart._hideDiagramIndicator()),this._map&&c(this._map.getContainer(),"elechart-hover"),this.fire("elechart_leave")},_parseFromGeoJSONString:function(t){try{return JSON.parse(t)}catch(t){}},_parseFromString:function(t){var e=this;return new Promise((function(a){return e.lazyLoad(e.__TOGEOJSON).then((function(){var i;try{i=e._parseFromXMLString(t.trim())}catch(a){i=e._parseFromGeoJSONString(t.toString())}i&&(i=e._prepareMultiLineStrings(i),i=e._prepareAdditionalProperties(i)),a(i)}))}))},_parseFromXMLString:function(t){var e;if(0!=t.indexOf("<"))throw"Invalid XML";var a=(new DOMParser).parseFromString(t,"text/xml"),i=a.documentElement.tagName.toLowerCase(),n=a.getElementsByTagName("name");if(a.getElementsByTagName("parsererror").length)throw"Invalid XML";i in toGeoJSON||(i="TrainingCenterDatabase"==a.documentElement.tagName?"tcx":"gpx");var r=toGeoJSON[i](a);return r.name=n.length>0?(null!==(e=Array.from(n).find((function(t){return"trk"==t.parentElement.tagName})))&&void 0!==e?e:n[0]).textContent:"",r},_prepareAdditionalProperties:function(t){return!t.name&&this._downloadURL&&(t.name=this._downloadURL.split("/").pop().split("#")[0].split("?")[0]),t},_prepareMultiLineStrings:function(t){return t.features.forEach((function(e){"MultiLineString"==e.geometry.type&&e.geometry.coordinates.forEach((function(a){t.features.push({geometry:{type:"LineString",coordinates:a},properties:e.properties,type:"Feature"})}))})),t.features.filter((function(t){return"MultiLineString"!=t.geometry.type}))},_registerAreaPath:function(t){var e=this;this.on("elechart_init",(function(){return e._chart._registerAreaPath(t)}))},_registerAxisGrid:function(t){var e=this;this.on("elechart_axis",(function(){return e._chart._registerAxisGrid(t)}))},_registerAxisScale:function(t){var e=this;this.on("elechart_axis",(function(){return e._chart._registerAxisScale(t)}))},_registerCheckPoint:function(t){var e=this;this.on("elechart_updated",(function(){return e._chart._registerCheckPoint(t)}))},_registerDataAttribute:function(t){var e=this,a=null;t.init&&this.on("elepoint_init",(function(a){return t.init.call(e,a)})),this.on("elepoint_added",(function(i){if(!1===t.skipNull){var n=e._data[i.index][t.name];if(i.index>0){var r=e._data[i.index-1][t.name];if(isNaN(r)){if(isNaN(a)||isNaN(n)?isNaN(a)?isNaN(n)||(r=n):r=a:r=(a+n)/2,!isNaN(r))return e._data.splice(i.index-1,1);e._data[i.index-1][t.name]=r}}isNaN(n)||(a=n)}e._data[i.index][t.name]=t.fetch.call(e,i.index,i.point),t.update&&(e._data[i.index][t.name]=t.update.call(e,e._data[i.index][t.name],i.index,i.point))}))},_registerTooltip:function(t){var e=this;if(t.chart){var a=L.extend({},t,{value:t.chart});this.on("elechart_init",(function(){return e._chart._registerTooltip(a)}))}if(t.marker){var i=L.extend({},t,{value:t.marker});this.on("elechart_marker",(function(){return e._marker._registerTooltip(i)}))}},_registerSummary:function(t){var e=this;this.on("elechart_summary",(function(){return e._summary._registerSummary(t)}))},_resetDrag:function(){this._chart._resetDrag(),this._hideMarker()},_resetView:function(){this._map&&this._map._isFullscreen||(this._resetDrag(),this._hideMarker(),this.options.autofitBounds&&this.fitBounds())},_resizeChart:function(){if(this._container&&"none"!=u(this._container,"display")){var t,e=this.options;if(e.detached)t=(this.eleDiv||this._container).offsetWidth;else{var a=this._map.getContainer().clientWidth;t=e._maxWidth>a?a-30:e._maxWidth}if(t){var i=this._chart;e.width=t,i&&i._chart&&(i._chart._resize(e),e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),this._updateChart())}this._updateMapSegments()}},_rulerFilterHandler:function(t){this._updateMapSegments(t.coords)},_toggle:function(){k(this._container,"elevation-expanded")?this._collapse():this._expand()},_setMapView:function(t){if(this.options.followMarker&&this._map){var e=this._map.getZoom(),a=this.options.zFollow;"number"==typeof a?this._map.setView(t.latlng,e<a?a:e,{animate:!0,duration:.25}):this._map.getBounds().contains(t.latlng)||this._map.setView(t.latlng,e,{animate:!0,duration:.25})}},_toggleChartHandler:function(t){var e=this,a=t.name,i=t.enabled;this._chartEnabled=this._chart._hasActiveLayers(),this._layers.eachLayer((function(t){return h(t.getElement&&t.getElement(),e.options.polyline.className+" "+e.options.theme,e._chartEnabled)})),this.options[a]=i||"disabled"!=this.options[a]?"disabled":"enabled",this._chartEnabled||(this._chart._hideDiagramIndicator(),this._marker.remove())},_updateChart:function(){
2
- /*!this._data.length ||*/
3
- this._chart&&this._container&&(this.fire("elechart_axis"),this.fire("elechart_area"),this._chart.update({data:this._data,options:this.options}),this._x=this._chart._x,this._y=this._chart._y,this.fire("elechart_updated"))},_updateMarker:function(t){this._marker&&this._marker.update({map:this._map,item:t,maxElevation:this.track_info.elevation_max||0,options:this.options})},_rotateMarker:function(){this._marker&&this._marker.update()},_updateMapSegments:function(t){this._markedSegments.setLatLngs(t||[]),t&&this._map&&!this._map.hasLayer(this._markedSegments)&&this._markedSegments.addTo(this._map)},_updateSummary:function(){var t=this;this._summary.reset(),this.options.summary&&(this.fire("elechart_summary"),this._summary.update()),this.options.downloadLink&&this._downloadURL&&(this._summary._container.innerHTML+='<span class="download"><a href="#">'+L._("Download")+"</a></span>",y(".download a",this._summary._container).onclick=function(e){e.preventDefault();var a={downloadLink:t.options.downloadLink,confirm:n.bind(t,t._downloadURL)};"modal"==t.options.downloadLink&&"function"==typeof CustomEvent?document.dispatchEvent(new CustomEvent("eletrack_download",{detail:a})):"link"!=t.options.downloadLink&&!0!==t.options.downloadLink||a.confirm(),t.fire("eletrack_download",a)})},_width:function(){if(this._chart)return this._chart._width();var t=this.options;return t.width-t.margins.left-t.margins.right},_xTicks:function(){return this.__xTicks&&(this.__xTicks=this.options.xTicks),this.__xTicks||Math.round(this._width()/75)},_yTicks:function(){return this.__yTicks&&(this.__yTicks=this.options.yTicks),this.__yTicks||Math.round(this._height()/30)}});W.addInitHook((function(){var t=this,e=this.options,a={};e.imperial?(e.distanceFactor=this.__mileFactor,a.label="mi"):(e.distanceFactor=e.distanceFactor||1,a.label=e.xLabel),this._registerDataAttribute({name:"dist",init:function(){},fetch:function(a){var i=t._data[a].latlng.distanceTo(t._data[a>0?a-1:a].latlng)*e.distanceFactor;return Math.round(i/1e3*1e5)/1e5},update:function(e){return t.track_info.distance=t.track_info.distance||0,t.track_info.distance+=e,t.track_info.distance}}),"summary"!=this.options.distance&&this._registerAxisScale({axis:"x",position:"bottom",scale:"x",label:a.label,labelY:25,labelX:function(){return t._width()+6},name:"distance"}),this._registerAxisGrid({axis:"x",position:"bottom",scale:"x"}),this._registerTooltip({name:"x",chart:function(t){return L._("x: ")+d3.format("."+e.decimalsX+"f")(t[e.xAttr])+" "+a.label},order:20}),this._registerSummary({totlen:{label:"Total Length: ",value:function(t){return(t.distance||0).toFixed(2)+"&nbsp;"+a.label},order:10}})})),W.addInitHook((function(){var t=this,e=this.options,a={};a.label=e.timeLabel||"t",e.timeFactor=e.timeFactor||3600,this._timeAVGSpeed=(e.timeAVGSpeed||3.6)*(e.speedFactor||1),e.timeFormat?"time"==e.timeFormat?e.timeFormat=function(t){return new Date(t).toLocaleTimeString()}:"date"==e.timeFormat&&(e.timeFormat=function(t){return new Date(t).toLocaleDateString()}):e.timeFormat=function(t){return new Date(t).toLocaleString().replaceAll("/","-").replaceAll(","," ")},e.xTimeFormat=e.xTimeFormat||function(t){return i(t).split("'")[0]},this._registerDataAttribute({name:"time",init:function(t){var e=t.point,a=t.props,i=t.id;a&&("coordTimes"in a?e.meta.time=new Date(Date.parse(a.coordTimes[i])):"times"in a?e.meta.time=new Date(Date.parse(a.times[i])):"time"in a&&(e.meta.time=new Date(Date.parse("object"===j(a.time)?a.time[i]:a.time))))},fetch:function(t,e){if(!e.meta||!e.meta.time)if(e.meta=e.meta||{},t>0){var a=this._data[t].dist-this._data[t-1].dist,i=this._data[t-1].time.getTime(),n=a/this._timeAVGSpeed*this.options.timeFactor*1e3;e.meta.time=new Date(i+n)}else e.meta.time=new Date(Date.now());var r=e.meta.time;return r.getTime()-60*r.getTimezoneOffset()*1e3==0&&(r=0),r},update:function(t,e){return this.track_info.time=(this.track_info.time||0)+Math.abs(this._data[e].time-this._data[e>0?e-1:e].time),this._data[e].duration=this.track_info.time,t}}),e.time&&"summary"!=e.time&&!L.Browser.mobile&&this._registerAxisScale({axis:"x",position:"top",scale:{attr:"duration",min:0},label:a.label,labelY:-10,labelX:function(){return t._width()},name:"time",tickFormat:function(t){return 0==t?"":e.xTimeFormat(t)},onAxisMount:function(e){e.select(".domain").remove(),e.selectAll("text").attr("opacity",.65).style("font-family","Monospace").style("font-size","110%"),e.selectAll(".tick line").attr("y2",t._height()).attr("stroke-dasharray",2).attr("opacity",.75)}}),this.options.timestamps&&this._registerTooltip({name:"date",chart:function(e){return L._("t: ")+t.options.timeFormat(e.time)},order:20}),this.options.time&&(this._registerTooltip({name:"time",chart:function(t){return L._("T: ")+i(t.duration||0)},order:20}),this._registerSummary({tottime:{label:"Total Time: ",value:function(t){return i(t.time||0)},order:20}}))})),W.addInitHook((function(){var t=this,e=this.options,a={},i=e.theme.replace("-theme",""),n=A[i]||{};e.imperial?(e.altitudeFactor=this.__footFactor,a.label="ft"):(e.altitudeFactor=e.heightFactor||e.altitudeFactor||1,a.label=e.yLabel),this._registerDataAttribute({name:"z",skipNull:this.options.skipNullZCoords,init:function(t){var e=t.point;"alt"in e&&(e.meta.ele=e.alt)},fetch:function(a){return t._data[a].z*e.altitudeFactor},update:function(e,a){t.track_info.elevation_max=t.track_info.elevation_max||-1/0,t.track_info.elevation_min=t.track_info.elevation_max||1/0,t.track_info.elevation_avg=t.track_info.elevation_avg||0;var i=t._data,n=t.track_info;if(t.options.altitudeDeltaMax){var r=e-i[a>0?a-1:a].z,o=t.options.altitudeDeltaMax;Math.abs(r)>o&&(e=i[a-1].z+o*Math.sign(r))}return(e=s(e,t.options.altitudeRange))>n.elevation_max&&(n.elevation_max=e),e<n.elevation_min&&(n.elevation_min=e),n.elevation_avg=(e+n.elevation_avg)/2,e}}),this._registerAxisScale({axis:"y",position:"left",scale:"y",label:a.label,labelX:-3,labelY:-8,name:"altitude",visbile:"summary"!=this.options.altitude}),this._registerAxisGrid({axis:"y",position:"left",scale:"y"}),this._registerAreaPath({name:"altitude",label:"Altitude",scaleX:"distance",scaleY:"altitude",color:n.area||i,strokeColor:e.detached?n.stroke:"#000",strokeOpacity:"1",fillOpacity:e.detached?n.alpha||"0.8":1,preferCanvas:e.preferCanvas,visbile:"summary"!=this.options.altitude}),this._registerTooltip({name:"y",chart:function(t){return L._("y: ")+d3.format("."+e.decimalsY+"f")(t[e.yAttr])+" "+a.label},marker:function(t){return d3.format("."+e.decimalsY+"f")(t[e.yAttr])+" "+a.label},order:10}),this._registerSummary({maxele:{label:"Max Elevation: ",value:function(t){return(t.elevation_max||0).toFixed(2)+"&nbsp;"+a.label},order:30},minele:{label:"Min Elevation: ",value:function(t){return(t.elevation_min||0).toFixed(2)+"&nbsp;"+a.label},order:30},avgele:{label:"Avg Elevation: ",value:function(t){return(t.elevation_avg||0).toFixed(2)+"&nbsp;"+a.label},order:30}})})),W.addInitHook((function(){var t=this;if(this.options.slope){var e=this.options,a={};a.label=e.slopeLabel||"%",this._registerDataAttribute({name:"slope",fetch:function(e){var a=t._data,i=1e3*(a[e].dist-a[e>0?e-1:e].dist),n=a[e].z-a[e>0?e-1:e].z;return isNaN(n)||0===i?0:n/i*100},update:function(e,a){t.track_info.ascent=t.track_info.ascent||0,t.track_info.descent=t.track_info.descent||0,t.track_info.slope_max=t.track_info.slope_max||-1/0,t.track_info.slope_min=t.track_info.slope_min||1/0,t.track_info.slope_avg=t.track_info.slope_avg||0;var i=t.track_info,n=t._data,r=n[a].z-n[a>0?a-1:a].z;if(t.options.slopeDeltaMax){var o=slop-n[a>0?a-1:a].slope,l=t.options.slopeDeltaMax;Math.abs(o)>l&&(e=n[a-1].slope+l*Math.sign(o))}return e=s(e,t.options.slopeRange),r>0?t.track_info.ascent+=r:r<0&&(t.track_info.descent-=r),e>i.slope_max&&(i.slope_max=e),e<i.slope_min&&(i.slope_min=e),i.slope_avg=(e+i.slope_avg)/2,L.Util.formatNum(e,2)}}),this._registerAxisScale({axis:"y",position:"right",scale:{min:-1,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:"slope",visbile:"summary"!=this.options.slope}),this._registerAreaPath({name:"slope",label:"Slope",yAttr:"slope",scaleX:"distance",scaleY:"slope",color:"#F00",strokeColor:"#000",strokeOpacity:"0.5",fillOpacity:"0.25",visbile:"summary"!=this.options.slope}),this._registerTooltip({name:"slope",chart:function(t){return L._("m: ")+t.slope+a.label},marker:function(t){return Math.round(t.slope)+a.label},order:40}),this._registerSummary({ascent:{label:"Total Ascent: ",value:function(e){return Math.round(e.ascent||0)+"&nbsp;"+(t.options.imperial?"ft":"m")},order:40},descent:{label:"Total Descent: ",value:function(e){return Math.round(e.descent||0)+"&nbsp;"+(t.options.imperial?"ft":"m")},order:40},minslope:{label:"Min Slope: ",value:function(t){return Math.round(t.slope_min||0)+"&nbsp;"+a.label},order:40},maxslope:{label:"Max Slope: ",value:function(t){return Math.round(t.slope_max||0)+"&nbsp;"+a.label},order:40},avgslope:{label:"Avg Slope: ",value:function(t){return Math.round(t.slope_avg||0)+"&nbsp;"+a.label},order:40}})}})),W.addInitHook((function(){var t=this;if(this.options.speed||this.options.acceleration){var e=this.options,a={};a.label=e.speedLabel||L._(e.imperial?"mph":"km/h"),e.speedFactor=e.speedFactor||1,this._registerDataAttribute({name:"speed",init:function(){},fetch:function(a){var i=t._data,n=1e3*(i[a].dist-i[a>0?a-1:a].dist),r=i[a].time-i[a>0?a-1:a].time;return r>0?Math.abs(n/r*e.timeFactor)*e.speedFactor:0},update:function(e,a){t.track_info.speed_max=t.track_info.speed_max||-1/0,t.track_info.speed_min=t.track_info.speed_min||1/0,t.track_info.speed_avg=t.track_info.speed_avg||0;var i=t._data,n=t.track_info;if(t.options.speedDeltaMax){var r=e-i[a>0?a-1:a].speed,o=t.options.speedDeltaMax;Math.abs(r)>o&&(e=i[a-1].speed+o*Math.sign(r))}return(e=s(e,t.options.speedRange))>n.speed_max&&(n.speed_max=e),e<n.speed_min&&(n.speed_min=e),n.speed_avg=(e+n.speed_avg)/2,L.Util.formatNum(e,2)}}),this.options.speed&&"summary"!=this.options.speed&&(this._registerAxisScale({axis:"y",position:"right",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:"speed"}),this._registerAreaPath({name:"speed",label:"Speed",yAttr:"speed",scaleX:"distance",scaleY:"speed",color:"#03ffff",strokeColor:"#000",strokeOpacity:"0.5",fillOpacity:"0.25"})),this.options.speed&&(this._registerTooltip({name:"speed",chart:function(t){return L._("v: ")+t.speed+" "+a.label},marker:function(t){return Math.round(t.speed)+" "+a.label},order:50}),this._registerSummary({minspeed:{label:"Min Speed: ",value:function(t){return Math.round(t.speed_min||0)+"&nbsp;"+a.label},order:50},maxspeed:{label:"Max Speed: ",value:function(t){return Math.round(t.speed_max||0)+"&nbsp;"+a.label},order:50},avgspeed:{label:"Avg Speed: ",value:function(t){return Math.round(t.speed_avg||0)+"&nbsp;"+a.label},order:50}}))}})),W.addInitHook((function(){var t=this;if(this.options.acceleration){var e=this.options,a={};a.label=e.accelerationLabel||L._(e.imperial?"ft/s²":"m/s²"),e.accelerationFactor=e.accelerationFactor||1,this._registerDataAttribute({name:"acceleration",init:function(){},fetch:function(a){var i=t._data,n=(i[a].speed-i[a>0?a-1:a].speed)*(1e3/e.timeFactor),r=(i[a].time-i[a>0?a-1:a].time)/1e3;return r>0?Math.abs(n/r)*e.accelerationFactor:0},update:function(e,a){t.track_info.acceleration_max=t.track_info.acceleration_max||-1/0,t.track_info.acceleration_min=t.track_info.acceleration_min||1/0,t.track_info.acceleration_avg=t.track_info.acceleration_avg||0;var i=t._data,n=t.track_info;if(t.options.accelerationDeltaMax){var r=e-i[a>0?a-1:a].acceleration,o=t.options.accelerationDeltaMax;Math.abs(r)>o&&(e=i[a-1].acceleration+o*Math.sign(r))}return(e=s(e,t.options.accelerationRange))>n.acceleration_max&&(n.acceleration_max=e),e<n.acceleration_min&&(n.acceleration_min=e),n.acceleration_avg=(e+n.acceleration_avg)/2,L.Util.formatNum(e,2)}}),"summary"!=this.options.acceleration&&(this._registerAxisScale({axis:"y",position:"right",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:"acceleration"}),this._registerAreaPath({name:"acceleration",label:"Acceleration",yAttr:"acceleration",scaleX:"distance",scaleY:"acceleration",color:"#050402",strokeColor:"#000",strokeOpacity:"0.5",fillOpacity:"0.25"})),this._registerTooltip({name:"acceleration",chart:function(t){return L._("a: ")+t.acceleration+" "+a.label},marker:function(t){return Math.round(t.acceleration)+" "+a.label},order:60}),this._registerSummary({minacceleration:{label:"Min Acceleration: ",value:function(t){return Math.round(t.acceleration_min||0)+"&nbsp;"+a.label},order:60},maxacceleration:{label:"Max Acceleration: ",value:function(t){return Math.round(t.acceleration_max||0)+"&nbsp;"+a.label},order:60},avgacceleration:{label:"Avg Acceleration: ",value:function(t){return Math.round(t.acceleration_avg||0)+"&nbsp;"+a.label},order:60}})}})),W.Utils=C,W.Components=X,W.Chart=U,R=L.i18n.bind({}),L.i18n=L._=function(t,e){return L.locale&&L.locales[L.locale]&&""==L.locales[L.locale][t]&&(L.locales[L.locale][t]="​"),R.call(null,t,e)},W.addInitHook((function(){this.enableDragging=this.enableBrush,this.disableDragging=this.disableBrush,this.loadChart=this.addTo,this.loadData=this.load,this.loadGPX=this.load,this.loadGeoJSON=this.load,this.loadXML=this.load,this.loadFile=this.load,this._addGPXData=this._addGeoJSONData,this._registerFocusLabel=this._registerTooltip})),L.control.elevation=function(t){return new W(t)}}));
1
+ !function(t){"function"==typeof define&&define.amd?define(t):t()}((function(){"use strict";!function(t,e){"function"==typeof define&&define.amd?define(["leaflet"],t):"object"==typeof exports&&(module.exports=t(require("leaflet"))),void 0!==e&&e.L&&t(e.L)}((function(t){return t.locales={},t.locale=null,t.registerLocale=function(e,i){t.locales[e]=t.Util.extend({},t.locales[e],i)},t.setLocale=function(e){t.locale=e},t.i18n=t._=function(e,i){t.locale&&t.locales[t.locale]&&t.locales[t.locale][e]&&(e=t.locales[t.locale][e]);try{e=t.Util.template(e,i)}catch(t){}return e}}),window);const t={lightblue:{area:"#3366CC",alpha:.45,stroke:"#3366CC"},magenta:{area:"#FF005E"},yellow:{area:"#FF0"},purple:{area:"#732C7B"},steelblue:{area:"#4682B4"},red:{area:"#F00"},lime:{area:"#9CC222",line:"#566B13"}},e=6e4,i=60*e,a=24*i;function o(t,e){let i=p("a","",{href:t,target:"_new",download:e||"",style:"display:none;"}),a=document.body;a.appendChild(i),i.click(),a.removeChild(i)}function s(t,e,i){return t&&(({props:a,point:o,id:s,isMulti:r})=>{if(a)for(const l of t)if(l in a){o.meta[e]=(i||n).call(this,r?a[l][r]:a[l],s);break}})}const n=(t,e)=>window.parseInt("object"==typeof t?t[e]:t),r=(t,e)=>t&&e.split(" ").every((e=>e&&L.DomUtil.addClass(t,e))),l=(t,e)=>t&&e.split(" ").every((e=>e&&L.DomUtil.removeClass(t,e))),h=(t,e,i)=>(i?r:l)(t,e),d=(t,e,i)=>e&&l(t,e)||i&&r(t,i),c=(t,e,i)=>void 0===i&&L.DomUtil.getStyle(t,e)||t.style.setProperty(e,i),_=(t,e)=>{for(let i in e)t.setAttribute(i,e[i])},m=(t,e,i,a)=>t[a?"on":"off"](e,i),p=(t,e,i,a)=>{let o=L.DomUtil.create(t,e||"");return i&&_(o,i),a&&u(a,o),o},u=(t,e)=>t.appendChild(e),f=(t,e,i)=>t.insertAdjacentElement(i,e),g=(t,e)=>(e||document).querySelector(t),y=(t,e)=>{for(let i in t)e(t[i],i)},k=()=>Math.random().toString(36).substr(2,9),{on:v,off:M}=L.DomEvent,{throttle:w}=L.Util,{hasClass:C}=L.DomUtil,b=L.Util.formatNum,S=(t,e)=>e?t<e[0]?e[0]:t>e[1]?e[1]:t:t,x=(t,e,i)=>Math.abs(t-e)>i?e+i*Math.sign(t-e):t;var D=Object.freeze({__proto__:null,Colors:t,formatTime:function(t){let o=Math.floor(t/a),s=Math.floor((t-o*a)/i),n=Math.floor((t-o*a-s*i)/e),r=Math.round((t-o*a-s*i-n*e)/1e3);return 60===r&&(n++,r=0),60===n&&(s++,n=0),24===s&&(o++,s=0),(o?o+"d ":"")+s.toString().padStart(2,0)+":"+n.toString().padStart(2,0)+"'"+r.toString().padStart(2,0)+'"'},formatDate:function(t){return t?"time"==t?t=>new Date(t).toLocaleTimeString():"date"==t?t=>new Date(t).toLocaleDateString():e=>t(e):t=>new Date(t).toLocaleString().replaceAll("/","-").replaceAll(","," ")},saveFile:o,drawCanvas:function(t,e){e.classed("canvas-path",!0),t.beginPath(),t.moveTo(0,0);let i=new Path2D(e.attr("d"));t.strokeStyle=e.attr("stroke"),t.fillStyle=e.attr("fill"),t.lineWidth=1.25,t.globalCompositeOperation="source-over",t.globalAlpha=e.attr("stroke-opacity")||.3,t.stroke(i),t.globalAlpha=e.attr("fill-opacity")||.45,t.fill(i),t.globalAlpha=1,t.closePath()},coordPropsToMeta:s,parseInt:n,parseDate:(t,e)=>new Date(Date.parse("object"==typeof t?t[e]:t)),addClass:r,removeClass:l,toggleClass:h,replaceClass:d,style:c,toggleStyle:(t,e,i,a)=>c(t,e,a?i:""),setAttributes:_,toggleEvent:m,create:p,append:u,insert:f,select:g,each:y,randomId:k,iMax:(t,e)=>(t>e?t:e)||-1/0,iMin:(t,e)=>(t<e?t:e)||1/0,iAvg:(t,e)=>(t+(e||0))/2,iSum:(t,e)=>t+(e||0),on:v,off:M,throttle:w,hasClass:C,round:b,clamp:S,wrapDelta:x}),E={autofitBounds:!0,autohide:!L.Browser.mobile,autohideMarker:!0,almostover:!0,altitude:!0,collapsed:!1,detached:!0,distance:!0,distanceMarkers:{lazy:!0,distance:!0,direction:!0},dragging:!L.Browser.mobile,downloadLink:"link",elevationDiv:"#elevation-div",followMarker:!0,imperial:!1,legend:!0,handlers:[],marker:"elevation-line",markerIcon:L.divIcon({className:"elevation-position-marker",html:'<i class="elevation-position-icon"></i>',iconSize:[32,32],iconAnchor:[16,16]}),position:"topright",polyline:{className:"elevation-polyline",color:"#000",opacity:.75,weight:5,lineCap:"round"},polylineSegments:{className:"elevation-polyline-segments",color:"#F00",interactive:!1},preferCanvas:!1,reverseCoords:!1,ruler:!0,theme:"lightblue-theme",summary:"inline",slope:!1,speed:!1,time:!1,timeFactor:3600,timestamps:!1,trkStart:L.circleMarker([0,0],{className:"start-marker",radius:6,weight:2,color:"#fff",fillColor:"#00d800",fillOpacity:1,interactive:!1}),trkEnd:L.circleMarker([0,0],{className:"end-marker",radius:6,weight:2,color:"#fff",fillColor:"#ff0606",fillOpacity:1,interactive:!1}),waypoints:!0,wptIcons:{"":L.divIcon({className:"elevation-waypoint-marker",html:'<i class="elevation-waypoint-icon default"></i>',iconSize:[30,30],iconAnchor:[8,30]})},wptLabels:!0,xAttr:"dist",xLabel:"km",yAttr:"z",yLabel:"m",zFollow:!1,zooming:!L.Browser.Mobile,decimalsX:2,decimalsY:0,forceAxisBounds:!1,interpolation:"curveLinear",skipNullZCoords:!1,yAxisMax:void 0,yAxisMin:void 0,margins:{top:30,right:30,bottom:30,left:40},height:200,width:600,xTicks:void 0,yTicks:void 0};const A=L.Control.Elevation=L.Control.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,options:E,__mileFactor:.621371,__footFactor:3.28084,__D3:"https://unpkg.com/d3@6.5.0/dist/d3.min.js",__TOGEOJSON:"https://unpkg.com/@tmcw/togeojson@4.6.0/dist/togeojson.umd.js",__LGEOMUTIL:"https://unpkg.com/leaflet-geometryutil@0.9.3/src/leaflet.geometryutil.js",__LALMOSTOVER:"https://unpkg.com/leaflet-almostover@1.0.1/src/leaflet.almostover.js",__LDISTANCEM:"../libs/leaflet-distance-marker.min.js",__LCHART:"../src/components/chart.js",__LMARKER:"../src/components/marker.js",__LSUMMARY:"../src/components/summary.js",__modulesFolder:"../src/handlers/",addData:function(t,e){this.import(this.__D3).then((()=>{e=e??(t.on&&t),this._addData(t),this._addLayer(e),this._fireEvt("eledata_added",{data:t,layer:e,track_info:this.track_info})}))},addTo:function(t){if(this.options.detached){let e=this._initElevationDiv();e.isConnected||f(t.getContainer(),e,"afterend"),u(e,this.onAdd(t))}else L.Control.prototype.addTo.call(this,t);return this},clear:function(){this._marker&&this._marker.remove(),this._chart&&this._clearChart(),this._layers&&this._clearLayers(this._layers),this._markers&&this._clearLayers(this._markers),this._circleMarkers&&this._clearLayers(this._circleMarkers),this._data=[],this.track_info={},this._fireEvt("eledata_clear"),this._updateChart()},_clearChart:function(){this._events&&this._events.elechart_updated&&this._events.elechart_updated.forEach((({fn:t,ctx:e})=>this.off("elechart_updated",t,e))),this._chart&&this._chart._container&&(this._chart._container.selectAll("g.point .point").remove(),this._chart.clear())},_clearLayers:function(t){(t=t||this._layers)&&t.eachLayer&&(t.eachLayer((t=>t.remove())),t.clearLayers())},disableBrush:function(){this._chart._brushEnabled=!1,this._resetDrag()},enableBrush:function(){this._chart._brushEnabled=!0},disableZoom:function(){this._chart._zoomEnabled=!1,this._chart._resetZoom()},enableZoom:function(){this._chart._zoomEnabled=!0},fitBounds:function(t){t=t||this.getBounds(),this._map&&t.isValid()&&this._map.fitBounds(t)},getBounds:function(t){return L.latLngBounds((t||this._data).map((t=>t.latlng)))},getZFollow:function(){return this.options.zFollow},hide:function(){c(this._container,"display","none")},initialize:function(e){e=L.setOptions(this,e),this._data=[],this._layers=L.featureGroup(),this._markers=L.featureGroup(),this._circleMarkers=L.featureGroup(),this._markedSegments=L.polyline([]),this._start=e.trkStart||E.trkStart,this._end=e.trkEnd||E.trkEnd,this._chartEnabled=!0,this._yCoordMax=-1/0,this.track_info={},e.followMarker&&(this._setMapView=w(this._setMapView,300,this)),e.legend&&(e.margins.bottom+=30),e.theme&&(e.polylineSegments.className+=" "+e.theme),!0===e.wptIcons&&(e.wptIcons=E.wptIcons),!0===e.distanceMarkers&&(e.distanceMarkers=E.distanceMarkers),e.trkStart&&this._start.addTo(this._circleMarkers),e.trkEnd&&this._end.addTo(this._circleMarkers),this._markedSegments.setStyle(e.polylineSegments),L.extend(t,e.colors||{}),this._fixCanvasPaths(),this._fixTooltipSize()},import:function(t,e){switch(t){case this.__D3:e="object"!=typeof d3;break;case this.__TOGEOJSON:e="object"!=typeof toGeoJSON;break;case this.__LGEOMUTIL:e="object"!=typeof L.GeometryUtil;break;case this.__LALMOSTOVER:e="function"!=typeof L.Handler.AlmostOver;break;case this.__LDISTANCEM:e="function"!=typeof L.DistanceMarkers}return!1!==e?import(t):Promise.resolve()},load:function(t){this._parseFromString(t).then((e=>e?this._loadLayer(e):this._loadFile(t)))},onAdd:function(t){this._map=t;let e=this._container=p("div","elevation-control elevation "+this.options.theme+" "+(this.options.detached?"":"leaflet-control")),i=["Distance","Time","Altitude","Slope","Speed","Acceleration",...this.options.handlers].filter((t=>!1!==this.options["string"==typeof t&&t.toLowerCase()]));return this._loadModules(i),this._initButton(e),this._initChart(e),this._initSummary(e),this._initMarker(t),this._initLayer(t),e},onRemove:function(t){this._container=null,t.off("zoom viewreset zoomanim",this._hideMarker,this).off("resize",this._resetView,this).off("resize",this._resizeChart,this).off("mousedown",this._resetDrag,this),M(t.getContainer(),"mousewheel",this._resetDrag,this),M(t.getContainer(),"touchstart",this._resetDrag,this),M(document,"keydown",this._onKeyDown,this),this.off("eledata_added eledata_loaded",this._updateChart,this).off("eledata_added eledata_loaded",this._updateSummary,this)},redraw:function(){this._resizeChart()},setZFollow:function(t){this.options.zFollow=t},show:function(){c(this._container,"display","block")},_addData:function(t){if(t){if("FeatureCollection"===t.type)return y(t.features,(t=>this._addData(t)));if("Feature"===t.type){let e=t.geometry;if(e)switch(e.type){case"LineString":return this._addGeoJSONData(e.coordinates,t.properties);case"MultiLineString":return y(e.coordinates,((e,i)=>this._addGeoJSONData(e,t.properties,i)));case"Point":default:return console.warn("Unsopperted GeoJSON feature geometry type:"+e.type)}}return t._latlngs?this._addGeoJSONData(t._latlngs,t.feature&&t.feature.properties):void 0}},_addGeoJSONData:function(t,e,i){let a=e&&e.coordinateProperties||e;t.forEach(((t,e)=>{t.meta=t.meta??{time:null,ele:null},t.prev=t=>t?this._data[e>0?e-1:0][t]:this._data[e>0?e-1:0],this.fire("elepoint_init",{point:t,props:a,id:e,isMulti:i}),this._addPoint(t.lat??t[1],t.lng??t[0],t.alt??t.meta.ele??t[2]),this.fire("elepoint_added",{point:t,index:this._data.length-1}),this._yCoordMax<this._data[this._data.length-1][this.options.yAttr]&&(this._yCoordMax=this._data[this._data.length-1][this.options.yAttr])})),this.fire("eletrack_added",{coords:t,index:this._data.length-1})},_addPoint:function(t,e,i){this.options.reverseCoords&&([t,e]=[e,t]),this._data.push({x:t,y:e,z:i,latlng:L.latLng(t,e,i)}),this.fire("eledata_updated",{index:this._data.length-1})},_addLayer:function(t){return t&&this._layers.addLayer(t),t&&this.options.distanceMarkers&&this.options.distanceMarkers.lazy&&t.on("add remove",(({target:t,type:e})=>L.DistanceMarkers&&t instanceof L.Polyline&&t[e+"DistanceMarkers"]())),t},_addMarker:function(t){return t&&this._markers.addLayer(t),t},_initAlmostOverHandler:function(t,e){t&&this.options.almostOver&&Promise.all([this.import(this.__LGEOMUTIL),this.import(this.__LALMOSTOVER)]).then((()=>{t.addHandler("almostOver",L.Handler.AlmostOver),L.GeometryUtil&&t.almostOver&&t.almostOver.enabled()&&(t.almostOver.addLayer(e),t.on("almost:move",(t=>this._onMouseMoveLayer(t))).on("almost:out",(t=>this._onMouseOut(t))))}))},_initDistanceMarkers:function(t,e){t&&(this.options.distanceMarkers?Promise.all([this.import(this.__LGEOMUTIL),this.import(this.__LDISTANCEM)]).then((()=>this.options.polyline&&e.addTo(t)&&this._circleMarkers.bringToFront())):this.options.polyline&&e.addTo(t))},_initElevationDiv:function(){let t=g(this.options.elevationDiv);return t||(this.options.elevationDiv="#elevation-div_"+k(),t=p("div","leaflet-control elevation elevation-div",{id:this.options.elevationDiv.substr(1)})),this.options.detached&&d(t,"leaflet-control","elevation-detached"),this.eleDiv=t},_initMapIntegrations:function(t,e){let i=t._map;t._data.length&&(t._start.setLatLng(t._data[0].latlng),t._end.setLatLng(t._data[t._data.length-1].latlng)),i?(t._circleMarkers.addTo(i),i.once("layeradd",(i=>t.options.autofitBounds&&t.fitBounds(e.getBounds()))),L.Browser.mobile?t.options.polyline&&e.addTo(i):(t._initAlmostOverHandler(i,e),t._initDistanceMarkers(i,e))):console.warn("Undefined elevation map object")},_collapse:function(){d(this._container,"elevation-expanded","elevation-collapsed")},_expand:function(){d(this._container,"elevation-collapsed","elevation-expanded")},_fixCanvasPaths:function(){let e=L.Canvas.prototype._fillStroke,i=this,a=this.options.theme.replace("-theme",""),o=t[a]||{};L.Canvas.include({_fillStroke:function(t,s){if(i._layers.hasLayer(s)){let i=s.options;if(i.color=o.line||o.area||a,i.stroke=!!i.color,e.call(this,t,s),i.stroke&&0!==i.weight){let e=t.globalCompositeOperation||"source-over";t.globalCompositeOperation="destination-over",t.strokeStyle=o.outline||"#FFF",t.lineWidth=1.75*i.weight,t.stroke(),t.globalCompositeOperation=e}}else e.call(this,t,s)}})},_fixTooltipSize:function(){this.on("elechart_init",(()=>this.once("elechart_change elechart_hover",(({data:t,xCoord:e})=>{this._chartEnabled&&(this._chart._showDiagramIndicator(t,e),this._chart._showDiagramIndicator(t,e)),this._updateMarker(t)}))))},_findItemForLatLng:function(t){return this._data[this._chart._findIndexForLatLng(t)]},_findItemForX:function(t){return this._data[this._chart._findIndexForXCoord(t)]},_fireEvt:function(t,e,i){this.fire&&this.fire(t,e,i),this._map&&this._map.fire(t,e,i)},_hideMarker:function(){this.options.autohideMarker&&this._marker.remove()},_initChart:function(t){let e=this.options;if(e.detached){let{offsetWidth:t,offsetHeight:i}=this.eleDiv;t>0&&(e.width=t),i>20&&(e.height=i-20)}else{let{clientWidth:t}=this._map.getContainer();e._maxWidth=e._maxWidth>e.width?e._maxWidth:e.width,this._container.style.maxWidth=e._maxWidth+"px",e._maxWidth>t&&(e.width=t-30)}Promise.all([this.import(this.__D3),this.import(this.__LCHART)]).then((i=>{let a=this._chart=new(i[1]||A).Chart(e,this);this._x=this._chart._x,this._y=this._chart._y,d3.select(t).call(a.render()),a.on("reset_drag",this._hideMarker,this).on("mouse_enter",this._onMouseEnter,this).on("dragged",this._onDragEnd,this).on("mouse_move",this._onMouseMove,this).on("mouse_out",this._onMouseOut,this).on("ruler_filter",this._onRulerFilter,this).on("zoom",this._updateChart,this).on("elepath_toggle",this._onToggleChart,this).on("margins_updated",this._resizeChart,this),this.fire("elechart_axis"),this.options.legend&&this.fire("elechart_legend"),this.fire("elechart_init"),map.on("zoom viewreset zoomanim",this._hideMarker,this).on("resize",this._resetView,this).on("resize",this._resizeChart,this).on("rotate",this._rotateMarker,this).on("mousedown",this._resetDrag,this),v(map.getContainer(),"mousewheel",this._resetDrag,this),v(map.getContainer(),"touchstart",this._resetDrag,this),v(document,"keydown",this._onKeyDown,this),this.on("eledata_added eledata_loaded",this._updateChart,this).on("eledata_added eledata_loaded",this._updateSummary,this),this._updateChart(),this._updateSummary()}))},_initLayer:function(){this._layers.on("layeradd layerremove",(({layer:t,type:e})=>{let i=t.getElement&&t.getElement();h(i,this.options.polyline.className+" "+this.options.theme,"layeradd"==e),m(t,"mousemove",this._onMouseMoveLayer.bind(this),"layeradd"==e),m(t,"mouseout",this._onMouseOut.bind(this),"layeradd"==e)}))},_initMarker:function(t){let e=t.getPane("elevationPane");e||(e=this._pane=t.createPane("elevationPane",t.getPane("norotatePane")||t.getPane("mapPane")),e.style.zIndex=625,e.style.pointerEvents="none"),this._renderer&&this._renderer.remove(),this._renderer=L.svg({pane:"elevationPane"}).addTo(this._map),Promise.all([this.import(this.__D3),this.import(this.__LMARKER)]).then((t=>{this._marker=new(t[1]||A).Marker(this.options,this),this.fire("elechart_marker")}))},_initButton:function(t){if(!L.Browser.mobile&&this.options.detached||L.DomEvent.disableClickPropagation(t).disableScrollPropagation(t),!this.options.detached){let e=this._button=p("a","elevation-toggle elevation-toggle-icon"+(this.options.autohide?"":" close-button"),{href:"#",title:L._("Elevation")},t);this.options.collapsed&&(this._collapse(),this.options.autohide?(v(t,"mouseover",this._expand,this),v(t,"mouseout",this._collapse,this)):(v(e,"click",L.DomEvent.stop),v(e,"click",this._toggle,this)),v(e,"focus",this._toggle,this),this._map.on("click",this._collapse,this))}},_initSummary:function(t){this.import(this.__LSUMMARY).then((e=>{this._summary=new(e||A).Summary({summary:this.options.summary},this),this.on("elechart_init",(()=>{d3.select(t).call(this._summary.render())}))}))},_loadFile:function(t){fetch(t).then((t=>t.text())).then((e=>{this._downloadURL=t,this._parseFromString(e).then((t=>t&&this._loadLayer(t)))})).catch((t=>console.warn(t)))},_loadModules:function(t){t=t.map((t=>"string"==typeof t&&void 0!==A[t]?A[t]:t)),Promise.all(t.filter((t=>"string"==typeof t||t instanceof Promise)).map((t=>t instanceof Promise?t:this.import(this.__modulesFolder+t.toLowerCase()+".js")))).then((e=>{y(e,(e=>{let i=Object.keys(e)[0];i&&void 0===A[i]&&(t[i]=A[i]=e[i])})),y(t,(t=>this._registerHandler(t)))}))},_loadLayer:function(t){let{polyline:e,theme:i,waypoints:a,wptIcons:o,wptLabels:s,distanceMarkers:n}=this.options,r=L.extend({},e);i&&(r.className+=" "+i),t.name&&(this.track_info.name=t.name);let l=L.geoJson(t,{distanceMarkers:n,style:r,pointToLayer:(t,e)=>{if(a){let{desc:i,name:n,sym:r}=t.properties;if(i=i||"",n=n||"",[!0,"dots"].includes(a)&&this._registerCheckPoint({latlng:e,label:[!0,"dots"].includes(s)?n:""}),[!0,"markers"].includes(a)&&0!=o)return this._registerMarker({latlng:e,sym:(r??n).replace(" ","-").replace('"',"").replace("'","").toLowerCase(),content:[!0,"markers"].includes(s)&&(n||i)&&decodeURI("<b>"+n+"</b>"+(i.length>0?"<br>"+i:""))})}},onEachFeature:(t,e)=>t.geometry&&"Point"!=t.geometry.type&&this.addData(t,e)});return this.import(this.__D3).then((()=>{this._initMapIntegrations(this,l),this._fireEvt("eledata_loaded",{data:t,layer:l,name:this.track_info.name,track_info:this.track_info})})),l},_onDragEnd:function({dragstart:t,dragend:e}){this._hideMarker(),this.fitBounds(L.latLngBounds([t.latlng,e.latlng])),this.fire("elechart_dragged")},_onKeyDown:function({key:t}){this.options.detached||"Escape"!==t||this._collapse()},_onMouseEnter:function(){this.fire("elechart_enter")},_onMouseMove:function({xCoord:t}){if(this._chartEnabled&&this._data.length){let e=this._findItemForX(t);e&&(this._chartEnabled&&this._chart._showDiagramIndicator(e,t),this._updateMarker(e),this._setMapView(e),this._map&&r(this._map.getContainer(),"elechart-hover"),this.fire("elechart_change",{data:e,xCoord:t}),this.fire("elechart_hover",{data:e,xCoord:t}))}},_onMouseMoveLayer:function({latlng:t}){if(this._data.length){let e=this._findItemForLatLng(t);if(e){let t=e.xDiagCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,t),this._updateMarker(e),this.fire("elechart_change",{data:e,xCoord:t})}}},_onMouseOut:function(){this.options.detached||(this._hideMarker(),this._chart._hideDiagramIndicator()),this._map&&l(this._map.getContainer(),"elechart-hover"),this.fire("elechart_leave")},_onRulerFilter:function({coords:t}){this._updateMapSegments(t)},_onToggleChart:function({name:t,enabled:e}){this._chartEnabled=this._chart._hasActiveLayers(),this._layers.eachLayer((t=>h(t.getElement&&t.getElement(),this.options.polyline.className+" "+this.options.theme,this._chartEnabled))),this.options[t]=e||"disabled"!=this.options[t]?"disabled":"enabled",this._chartEnabled||(this._chart._hideDiagramIndicator(),this._marker.remove())},_parseFromGeoJSONString:function(t){try{return JSON.parse(t)}catch(t){}},_parseFromString:function(t){return new Promise((e=>this.import(this.__TOGEOJSON).then((()=>{let i;try{i=this._parseFromXMLString(t.trim())}catch(e){i=this._parseFromGeoJSONString(t.toString())}i&&(i.name=i.name||(this._downloadURL||"").split("/").pop().split("#")[0].split("?")[0]),e(i)}))))},_parseFromXMLString:function(t){if(0!=t.indexOf("<"))throw"Invalid XML";let e=(new DOMParser).parseFromString(t,"text/xml"),i=e.documentElement.tagName.toLowerCase(),a=e.getElementsByTagName("name");if(e.getElementsByTagName("parsererror").length)throw"Invalid XML";i in toGeoJSON||(i="TrainingCenterDatabase"==e.documentElement.tagName?"tcx":"gpx");let o=toGeoJSON[i](e);return o.name=a.length>0?(Array.from(a).find((t=>"trk"==t.parentElement.tagName))??a[0]).textContent:"",o},_registerAreaPath:function(t){this.on("elechart_init",(()=>this._chart._registerAreaPath(t)))},_registerAxisGrid:function(t){this.on("elechart_axis",(()=>this._chart._registerAxisGrid(t)))},_registerAxisScale:function(t){this.on("elechart_axis",(()=>this._chart._registerAxisScale(t)))},_registerCheckPoint:function(t){this.on("elechart_updated",(()=>this._chart._registerCheckPoint(t)))},_registerDataAttribute:function(t){let e,i,a,o;t.coordPropsToMeta&&this.on("elepoint_init",(e=>t.coordPropsToMeta.call(this,e)));let s=null;this.on("elepoint_added",(({index:n,point:r})=>{if(e=n,a=i??this._data[e],i=this._data[e],o=t.attr||t.name,!1===t.skipNull){let t=this._data[e][o];if(e>0){let i=this._data[e-1][o];if(isNaN(i)){if(isNaN(s)||isNaN(t)?isNaN(s)?isNaN(t)||(i=t):i=s:i=(s+t)/2,!isNaN(i))return this._data.splice(e-1,1);this._data[e-1][o]=i}}isNaN(t)||(s=t)}if(i[o]=t.pointToAttr.call(this,r,e),t.stats)for(const e in t.stats){let a=(t.statsName||o)+(""!=e?"_":"");this.track_info[a+e]=t.stats[e].call(this,i[o],this.track_info[a+e])}t.deltaMax&&(i[o]=x(i[o],a[o],t.deltaMax)),t.clampRange&&(i[o]=S(i[o],t.clampRange)),isNaN(t.decimals)||(i[o]=b(i[o],t.decimals)),t.onPointAdded&&t.onPointAdded.call(this,i[o],e,r)}))},_registerHandler:function(t){if("function"==typeof t)return this._registerHandler(t.call(this));let{name:e,attr:i,required:a,skipNull:o,deltaMax:n,clampRange:r,decimals:l,meta:h,unit:d,coordinateProperties:c,coordPropsToMeta:_,pointToAttr:m,onPointAdded:p,stats:u,statsName:f,grid:g,scale:k,path:v,tooltip:M,summary:w}=t;(this.options[e]||a)&&(this._registerDataAttribute({name:e,attr:i,skipNull:o,deltaMax:n,clampRange:r,decimals:l,coordPropsToMeta:s(c,h||e,_),pointToAttr:m,onPointAdded:p,stats:u,statsName:f}),g&&this._registerAxisGrid(L.extend({name:e},g)),"summary"!==this.options[e]&&(k&&this._registerAxisScale(L.extend({name:e,label:d},k)),v&&this._registerAreaPath(L.extend({name:e},v))),(M||t.tooltips)&&y([M,...t.tooltips||[]],(t=>t&&this._registerTooltip(L.extend({name:e},t)))),w&&(y(w,((t,e)=>w[e]=L.extend({unit:d},t))),this._registerSummary(w)))},_registerMarker({latlng:t,sym:e,content:i}){let{wptIcons:a}=this.options;a.hasOwnProperty(e)||(a[e]=L.divIcon(L.extend({},a[""].options,{html:'<i class="elevation-waypoint-icon '+e+'"></i>'})));let o=L.marker(t,{icon:a[e]});return i&&(o.bindPopup(i,{className:"elevation-popup",keepInView:!0}).openPopup(),o.bindTooltip(i,{className:"elevation-tooltip",direction:"auto",sticky:!0,opacity:1}).openTooltip()),this._addMarker(o)},_registerTooltip:function(t){t.chart&&this.on("elechart_init",(()=>this._chart._registerTooltip(L.extend({},t,{value:t.chart})))),t.marker&&this.on("elechart_marker",(()=>this._marker._registerTooltip(L.extend({},t,{value:t.marker}))))},_registerSummary:function(t){this.on("elechart_summary",(()=>this._summary._registerSummary(t)))},_resetDrag:function(){this._chart._resetDrag(),this._hideMarker()},_resetView:function(){this._map&&this._map._isFullscreen||(this._resetDrag(),this._hideMarker(),this.options.autofitBounds&&this.fitBounds())},_resizeChart:function(){if(this._container&&"none"!=c(this._container,"display")){let t=this.options,e=t.detached?(this.eleDiv||this._container).offsetWidth:S(t._maxWidth,[0,this._map.getContainer().clientWidth-30]);e&&(t.width=e,this._chart&&this._chart._chart&&(this._chart._chart._resize(t),this._updateChart())),this._updateMapSegments()}},_toggle:function(){C(this._container,"elevation-expanded")?this._collapse():this._expand()},_setMapView:function(t){if(this._map&&this.options.followMarker){let e=this._map.getZoom(),i=this.options.zFollow;"number"==typeof i?this._map.setView(t.latlng,e<i?i:e,{animate:!0,duration:.25}):this._map.getBounds().contains(t.latlng)||this._map.setView(t.latlng,e,{animate:!0,duration:.25})}},_updateChart:function(){this._chart&&this._container&&(this.fire("elechart_axis"),this.fire("elechart_area"),this._chart.update({data:this._data,options:this.options}),this._x=this._chart._x,this._y=this._chart._y,this.fire("elechart_updated"))},_updateMarker:function(t){this._marker&&this._marker.update({map:this._map,item:t,yCoordMax:this._yCoordMax||0,options:this.options})},_rotateMarker:function(){this._marker&&this._marker.update()},_updateMapSegments:function(t){this._markedSegments.setLatLngs(t||[]),t&&this._map&&!this._map.hasLayer(this._markedSegments)&&this._markedSegments.addTo(this._map)},_updateSummary:function(){this._summary&&(this._summary.reset(),this.options.summary&&(this.fire("elechart_summary"),this._summary.update()),this.options.downloadLink&&this._downloadURL&&(this._summary._container.innerHTML+='<span class="download"><a href="#">'+L._("Download")+"</a></span>",g(".download a",this._summary._container).onclick=({preventDefault:t})=>{t();let e={downloadLink:this.options.downloadLink,confirm:o.bind(this,this._downloadURL)};"modal"==this.options.downloadLink&&"function"==typeof CustomEvent?document.dispatchEvent(new CustomEvent("eletrack_download",{detail:e})):"link"!=this.options.downloadLink&&!0!==this.options.downloadLink||e.confirm(),this.fire("eletrack_download",e)}))},_width:function(){if(this._chart)return this._chart._width();const{width:t,margins:e}=this.options;return t-e.left-e.right},_height:function(){if(this._chart)return this._chart._height();const{height:t,margins:e}=this.options;return t-e.top-e.bottom}});A.Utils=D,function(){let t=L.i18n.bind({});L.i18n=L._=(e,i)=>(L.locale&&L.locales[L.locale]&&""==L.locales[L.locale][e]&&(L.locales[L.locale][e]="​"),t.call(null,e,i))}(),L.control.elevation=t=>new A(t)}));
4
2
  //# sourceMappingURL=leaflet-elevation.min.js.map