",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html(" ")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1
+},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="
",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("
").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY
=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t(" | ",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)
+})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.0",defaultElement:"",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("").parent().append("")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.0",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href"),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.0",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("
").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("
").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("
").attr("role","tooltip"),s=t("
").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip});
\ No newline at end of file
diff --git a/reference/libs/lfx-timeslider-1.0.0/leaflet.SliderControl-bindings.js b/reference/libs/lfx-timeslider-1.0.0/leaflet.SliderControl-bindings.js
new file mode 100644
index 00000000..f3cbe6d8
--- /dev/null
+++ b/reference/libs/lfx-timeslider-1.0.0/leaflet.SliderControl-bindings.js
@@ -0,0 +1,93 @@
+/* global LeafletWidget, $, L */
+LeafletWidget.methods.addTimeslider = function(data, options, popupOptions, labelOptions) {
+ var map = this;
+ if (map.sliderCntr) {
+ map.sliderCntr.remove();
+ delete map.sliderCntr;
+ }
+
+ // Add popups
+ function onEachFeature(feature, layer) {
+ var popup = feature.properties.popup;
+ if (popup) layer.bindPopup(popup, popupOptions);
+
+ var label = feature.properties.label;
+ if (label) layer.bindTooltip(label, labelOptions);
+ };
+
+ //Create a marker layer
+ var layer = L.geoJson(data, {
+ style: function(feature) {
+ return {
+ radius: feature.properties.radius,
+ fillColor: feature.properties.fillColor,
+ color: feature.properties.color,
+ opacity: feature.properties.opacity,
+ weight: feature.properties.weight,
+ stroke: feature.properties.stroke,
+ fill: feature.properties.fill,
+ dashArray: feature.properties.dashArray,
+ fillOpacity: feature.properties.fillOpacity
+ }
+ },
+ pointToLayer: function (feature, latlng) {
+ var geojsonMarkerOptions = {
+ radius: feature.properties.radius,
+ fillColor: feature.properties.fillColor,
+ color: feature.properties.color,
+ opacity: feature.properties.opacity,
+ weight: feature.properties.weight,
+ stroke: feature.properties.stroke,
+ fill: feature.properties.fill,
+ dashArray: feature.properties.dashArray,
+ fillOpacity: feature.properties.fillOpacity
+ };
+ return L.circleMarker(latlng, geojsonMarkerOptions);
+ },
+ onEachFeature: onEachFeature
+ });
+
+ /*
+ // Multi Layer in layerGroup
+ var layer1 = L.geoJson(data, {
+ pointToLayer: function (feature, latlng) {
+ var geojsonMarkerOptions = {
+ radius: feature.properties.radius,
+ fillColor: feature.properties.fillColor,
+ color: feature.properties.color,
+ opacity: feature.properties.opacity,
+ weight: feature.properties.weight,
+ stroke: feature.properties.stroke,
+ fill: feature.properties.fill,
+ dashArray: feature.properties.dashArray,
+ fillOpacity: feature.properties.fillOpacity
+ };
+ return L.circleMarker(latlng, geojsonMarkerOptions);
+ },
+ onEachFeature: onEachFeature
+ });
+ var times = []
+ data.features.forEach(e=> times.push(e.properties.time))
+ layer.options.time = "1992";
+ layer1.options.time = "1993";
+ layer = L.layerGroup([layer, layer1]);
+ */
+ options.layer = layer;
+
+ // Init the slider
+ map.sliderCntr = L.control.sliderControl(options);
+ // Add the slider to the map
+ map.addControl(map.sliderCntr);
+ // Initialize the slider
+ map.sliderCntr.startSlider();
+};
+
+
+LeafletWidget.methods.removeTimeslider = function() {
+ var map = this;
+ if (map.sliderCntr) {
+ map.sliderCntr.remove();
+ delete map.sliderCntr;
+ }
+};
+
diff --git a/reference/libs/lfx-timeslider-1.0.0/leaflet.SliderControl.min.js b/reference/libs/lfx-timeslider-1.0.0/leaflet.SliderControl.min.js
new file mode 100644
index 00000000..60d6c65f
--- /dev/null
+++ b/reference/libs/lfx-timeslider-1.0.0/leaflet.SliderControl.min.js
@@ -0,0 +1,219 @@
+L.Control.SliderControl = L.Control.extend({
+ options: {
+ position: 'topright',
+ layers: null,
+ timeAttribute: 'time',
+ isEpoch: false, // whether the time attribute is seconds elapsed from epoch
+ startTimeIdx: 0, // where to start looking for a timestring
+ timeStrLength: 19, // the size of yyyy-mm-dd hh:mm:ss - if millis are present this will be larger
+ maxValue: -1,
+ minValue: 0,
+ showAllOnStart: false,
+ markers: null,
+ range: false,
+ follow: false,
+ sameDate: false,
+ alwaysShowDate : false,
+ rezoom: null
+ },
+
+ initialize: function (options) {
+ L.Util.setOptions(this, options);
+ this._layer = this.options.layer;
+
+ },
+
+ extractTimestamp: function(time, options) {
+ if (options.isEpoch) {
+ time = (new Date(parseInt(time))).toString(); // this is local time
+ }
+ return time.substr(options.startTimeIdx, options.startTimeIdx + options.timeStrLength);
+ },
+
+ setPosition: function (position) {
+ var map = this._map;
+
+ if (map) {
+ map.removeControl(this);
+ }
+
+ this.options.position = position;
+
+ if (map) {
+ map.addControl(this);
+ }
+ this.startSlider();
+ return this;
+ },
+
+ onAdd: function (map) {
+ this.options.map = map;
+
+ // Create a control sliderContainer with a jquery ui slider
+ var sliderContainer = L.DomUtil.create('div', 'slider', this._container);
+ $(sliderContainer).append('
');
+ //Prevent map panning/zooming while using the slider
+ $(sliderContainer).mousedown(function () {
+ map.dragging.disable();
+ });
+ $(document).mouseup(function () {
+ map.dragging.enable();
+ //Hide the slider timestamp if not range and option alwaysShowDate is set on false
+ if (options.range || !options.alwaysShowDate) {
+ $('#slider-timestamp').html('');
+ }
+ });
+
+ var options = this.options;
+ this.options.markers = [];
+
+ //If a layer has been provided: calculate the min and max values for the slider
+ if (this._layer) {
+ var index_temp = 0;
+ this._layer.eachLayer(function (layer) {
+ options.markers[index_temp] = layer;
+ ++index_temp;
+ });
+ options.maxValue = index_temp - 1;
+
+ var uniquetimes = [];
+ this._layer.eachLayer(function (layer) {
+ uniquetimes.push(layer.feature.properties[options.timeAttribute])
+ });
+ options.maxValueUnique = uniquetimes.filter((v, i, a) => a.indexOf(v) === i).length - 1;
+
+ this.options = options;
+ } else {
+ console.log("Error: You have to specify a layer via new SliderControl({layer: your_layer});");
+ }
+ return sliderContainer;
+ },
+
+ onRemove: function (map) {
+ //Delete all markers which where added via the slider and remove the slider div
+ for (i = this.options.minValue; i <= this.options.maxValue; i++) {
+ map.removeLayer(this.options.markers[i]);
+ }
+ $('#leaflet-slider').remove();
+
+ // unbind listeners to prevent memory leaks
+ $(document).off("mouseup");
+ $(".slider").off("mousedown");
+ },
+
+ startSlider: function () {
+ _options = this.options;
+ _extractTimestamp = this.extractTimestamp
+ var index_start = _options.minValue;
+ if(_options.showAllOnStart){
+ index_start = _options.maxValue;
+ if(_options.range) _options.values = [_options.minValue,_options.maxValue];
+ else _options.value = _options.maxValue;
+ }
+ $("#leaflet-slider").slider({
+ range: _options.range,
+ value: _options.value,
+ values: _options.values,
+ min: _options.minValue,
+ max: _options.maxValueUnique,
+ sameDate: _options.sameDate,
+ step: 1,
+ slide: function (e, ui) {
+ var map = _options.map;
+ var fg = L.featureGroup();
+ if(!!_options.markers[ui.value]) {
+ // If there is no time property, this line has to be removed (or exchanged with a different property)
+ if(_options.markers[ui.value].feature !== undefined) {
+ if(_options.markers[ui.value].feature.properties[_options.timeAttribute]){
+ if(_options.markers[ui.value]) $('#slider-timestamp').html(
+ _extractTimestamp(_options.markers[ui.value].feature.properties[_options.timeAttribute], _options));
+ }else {
+ console.error("Time property "+ _options.timeAttribute +" not found in data");
+ }
+ }else {
+ // set by leaflet Vector Layers
+ if(_options.markers [ui.value].options[_options.timeAttribute]){
+ if(_options.markers[ui.value]) $('#slider-timestamp').html(
+ _extractTimestamp(_options.markers[ui.value].options[_options.timeAttribute], _options));
+ }else {
+ console.error("Time property "+ _options.timeAttribute +" not found in data");
+ }
+ }
+
+ var i;
+ // clear markers
+ for (i = _options.minValue; i <= _options.maxValue; i++) {
+ if(_options.markers[i]) map.removeLayer(_options.markers[i]);
+ }
+ if(_options.range){
+ // jquery ui using range
+ for (i = ui.values[0]; i <= ui.values[1]; i++){
+ if(_options.markers[i]) {
+ map.addLayer(_options.markers[i]);
+ fg.addLayer(_options.markers[i]);
+ }
+ }
+ }else if(_options.follow){
+ for (i = ui.value - _options.follow + 1; i <= ui.value ; i++) {
+ if(_options.markers[i]) {
+ map.addLayer(_options.markers[i]);
+ fg.addLayer(_options.markers[i]);
+ }
+ }
+ }else if(_options.sameDate){
+ var currentTime;
+ if (_options.markers[ui.value].feature !== undefined) {
+ currentTime = _options.markers[ui.value].feature.properties[_options.timeAttribute];
+ } else {
+ currentTime = _options.markers[ui.value].options[_options.timeAttribute];
+ }
+ for (i = _options.minValue; i <= _options.maxValue; i++) {
+ if(_options.markers[i].feature.properties[_options.timeAttribute] == currentTime) {
+ map.addLayer(_options.markers[i]);
+ fg.addLayer(_options.markers[i]);
+ }
+ }
+ }else{
+ for (i = _options.minValue; i <= ui.value ; i++) {
+ if(_options.markers[i]) {
+ map.addLayer(_options.markers[i]);
+ fg.addLayer(_options.markers[i]);
+ }
+ }
+ }
+ };
+ if(_options.rezoom) {
+ map.fitBounds(fg.getBounds(), {
+ maxZoom: _options.rezoom
+ });
+ }
+ }
+ });
+ if (!_options.range && _options.alwaysShowDate) {
+ //$('#slider-timestamp').html(_extractTimestamp(_options.markers[index_start].feature.properties[_options.timeAttribute], _options));
+ if(_options.markers[index_start].feature !== undefined) {
+ if(_options.markers[index_start].feature.properties[_options.timeAttribute]){
+ if(_options.markers[index_start]) $('#slider-timestamp').html(
+ _extractTimestamp(_options.markers[index_start].feature.properties[_options.timeAttribute], _options));
+ } else {
+ console.error("Time property "+ _options.timeAttribute +" not found in data");
+ }
+ } else {
+ // set by leaflet Vector Layers
+ if(_options.markers [index_start].options[_options.timeAttribute]){
+ if(_options.markers[index_start]) $('#slider-timestamp').html(
+ _extractTimestamp(_options.markers[index_start].options[_options.timeAttribute], _options));
+ }else {
+ console.error("Time property "+ _options.timeAttribute +" not found in data");
+ }
+ }
+ }
+ for (i = _options.minValue; i <= index_start; i++) {
+ _options.map.addLayer(_options.markers[i]);
+ }
+ }
+});
+
+L.control.sliderControl = function (options) {
+ return new L.Control.SliderControl(options);
+};
diff --git a/reference/setBuildingStyle.html b/reference/setBuildingStyle.html
index f4239041..a457bdaa 100644
--- a/reference/setBuildingStyle.html
+++ b/reference/setBuildingStyle.html
@@ -77,8 +77,8 @@
+
+
diff --git a/reference/updateBuildingTime.html b/reference/updateBuildingTime.html
index b3fc7845..3d6bd420 100644
--- a/reference/updateBuildingTime.html
+++ b/reference/updateBuildingTime.html
@@ -72,8 +72,8 @@
+
+
diff --git a/search.json b/search.json
index 72d157fb..cf6f4c1d 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"https://trafficonese.github.io/leaflet.extras2/CODE_OF_CONDUCT.html","id":null,"dir":"","previous_headings":"","what":"Contributor Code of Conduct","title":"Contributor Code of Conduct","text":"contributors maintainers project, pledge respect people contribute reporting issues, posting feature requests, updating documentation, submitting pull requests patches, activities. committed making participation project harassment-free experience everyone, regardless level experience, gender, gender identity expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion. Examples unacceptable behavior participants include use sexual language imagery, derogatory comments personal attacks, trolling, public private harassment, insults, unprofessional conduct. Project maintainers right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct. Project maintainers follow Code Conduct may removed project team. Instances abusive, harassing, otherwise unacceptable behavior may reported opening issue contacting one project maintainers. Code Conduct adapted Contributor Covenant (https://www.contributor-covenant.org), version 1.0.0, available https://contributor-covenant.org/version/1/0/0/.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/HowTo.html","id":"how-to-include-a-new-plugin-","dir":"","previous_headings":"","what":"How to include a new plugin ❓","title":"NA","text":"Fork repo computer create new branch plugin name. plugin leaflet-arrowheads serve example tutorial. Create new directory ./inst/htmlwidgets/ prefix lfx- plugin name. snippet : Install dependencies via npm/bower etc available. package installed, either fork/download plugin-repo copy/paste JavaScript code manually. plugin can installed requires 2 dependencies. installed : add dependencies directory ./node_modules/. Find directories source files copy new directory lfx-arrowhead. case files: leaflet.geometryutil.js leaflet-arrowheads.js Create new R-file name plugin ./R/. case arrowhead.R copy/paste another R-file rename accordingly. copy/pasted antpath.R file search/replaced antpath arrowhead Antpath Arrowhead adapted functions options according plugin. Add JavaScript-binding file directory /inst/htmlwidgets/lfx-arrowhead. Look plugins bindings references examples. beginning use lot console.log() debugger statements JS-methods get idea data looks like, arguments passed correctly, etc. case also copy/pasted file lfx-ant-path-bindings.js, renamed leaflet-arrowheads-bindings.js adapted JavaScript code. plugin exposes several methods, can/write R-function every JS-method. R-function calls JS-method invokeMethod argument method correspond JavaScript method want invoke. arrowheads-plugin method deleteArrowheads. used method two R JS functions, one can remove arrowheads group (clearArrowhead) one layerId (removeArrowhead). JS methods always refers map-object. needed, can also use LeafletWidget object R-leaflet L object leaflet . Add example ./inst/examples/. use directory demonstrate/test plugins ShinyApps. Non-interactive examples go straight documentation function. Add test ./tests/testthat/ use function usethis::use_test(\"arrowhead\") Check package run devtools::test_coverage() try test R-code lines. ✅ can also check coverage just one file devtools::test_coverage_file(paste0(getwd(),\"/tests/testthat/test-arrowhead.R\")). may load libraries manually . Add new plugin README.md link github repo. Add short description NEWS.md file plugin now available. Add plugin _pkgdown.yml file make sure matches functions. everything works correctly, push fork open PR. happy merge soon possible! 💚 🤷 ’re stuck somewhere process just can’t get work, can still open PR explain problem . look . 🎉 Celebrate use 🏆","code":"usethis::use_directory(\"/inst/htmlwidgets/lfx-arrowhead\") npm install leaflet-arrowheads --save npm install leaflet-geometryutil --save"},{"path":"https://trafficonese.github.io/leaflet.extras2/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Gatscha Sebastian. Author, maintainer. Ricardo Rodrigo Basa. Contributor. Jeffrey O Hanson. Contributor.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Sebastian G (2024). leaflet.extras2: Extra Functionality 'leaflet' Package. R package version 1.2.2.9000, https://github.com/trafficonese/leaflet.extras2, https://trafficonese.github.io/leaflet.extras2/.","code":"@Manual{, title = {leaflet.extras2: Extra Functionality for 'leaflet' Package}, author = {Gatscha Sebastian}, year = {2024}, note = {R package version 1.2.2.9000, https://github.com/trafficonese/leaflet.extras2}, url = {https://trafficonese.github.io/leaflet.extras2/}, }"},{"path":"https://trafficonese.github.io/leaflet.extras2/index.html","id":"leafletextras2","dir":"","previous_headings":"","what":"Extra Functionality for leaflet Package","title":"Extra Functionality for leaflet Package","text":"goal leaflet.extras2 package provide extra functionality leaflet leaflet.extras R packages using various leaflet plugins.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Extra Functionality for leaflet Package","text":"CRAN version latest development version","code":"install.packages('leaflet.extras2') remotes::install_github('trafficonese/leaflet.extras2')"},{"path":"https://trafficonese.github.io/leaflet.extras2/index.html","id":"integrated-plugins","dir":"","previous_headings":"","what":"Integrated Plugins","title":"Extra Functionality for leaflet Package","text":"need plugin already implemented create issue. See FAQ section details. Ant Path Arrowheads ClusterCharts Contextmenu DivIcon Easy Print GIBS Heightgraph Hexbin-D3 History Labelgun Leaflet.Sync Mapkey Icons Moving Markers OpenWeatherMap OSMBuildings Playback Reachability Sidebar-v2 Side--Side Spin Timeslider Tangram Velocity WMS","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/index.html","id":"documentation","dir":"","previous_headings":"","what":"Documentation","title":"Extra Functionality for leaflet Package","text":"R functions documented using roxygen, provide enough help get started using feature. However plugins lots options ’s feasible document every single detail. cases encouraged check plugin’s documentation examples.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/index.html","id":"faq","dir":"","previous_headings":"","what":"FAQ","title":"Extra Functionality for leaflet Package","text":"want use certain leaflet plugin integrated far. Good Solution: Create issues plugins wish incorporated search existing issues see issue already exists comment issue instead creating duplicates. Better Solution: help prioritizing can include additional details like need plugin, helpful everyone etc. Best Solution: Code submit pull request. fastest way get plugin package. Checkout little tutorial. submitted issue plugin long time ago still available. package developed purely voluntary basis spare time without monetary compensation. development progress can stall times. may also possible prioritize one-requests one else interested . Getting people interested feature request help prioritize development. option contribute code. get added contributor list. found bug. Good Solution: Search existing issue list one reported create new issue. Better Solution: Along issue submission provide minimal reproducible code sample. Best Solution: Fix issue submit pull request. fastest way get bug fixed.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/index.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Extra Functionality for leaflet Package","text":"Please note project released Contributor Code Conduct. participating project agree abide terms.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addAntpath.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Antpath Lines — addAntpath","title":"Add Antpath Lines — addAntpath","text":"Can used almost exactly like addPolylines instead pathOptions can use antpathOptions adapt Antpath behaviour. See leaflet-ant-path details.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addAntpath.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Antpath Lines — addAntpath","text":"","code":"addAntpath( map, lng = NULL, lat = NULL, layerId = NULL, group = NULL, stroke = TRUE, color = \"#03F\", weight = 5, opacity = 0.5, fill = FALSE, fillColor = color, fillOpacity = 0.2, dashArray = NULL, smoothFactor = 1, noClip = FALSE, popup = NULL, popupOptions = NULL, label = NULL, labelOptions = NULL, options = antpathOptions(), highlightOptions = NULL, data = getMapData(map) )"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addAntpath.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Antpath Lines — addAntpath","text":"map map widget object created leaflet() lng numeric vector longitudes, one-sided formula form ~x x variable data; default (explicitly provided), automatically inferred data looking column named lng, long, longitude (case-insensitively) lat vector latitudes formula (similar lng argument; names lat latitude used guessing latitude column data) layerId layer id group name group newly created layers belong (clearGroup addLayersControl purposes). Human-friendly group names permitted–need short, identifier-style names. number layers even different types layers (e.g. markers polygons) can share group name. stroke whether draw stroke along path (e.g. borders polygons circles) color stroke color weight stroke width pixels opacity stroke opacity (layer opacity tile layers) fill whether fill path color (e.g. filling polygons circles) fillColor fill color fillOpacity fill opacity dashArray string defines stroke dash pattern smoothFactor much simplify polyline zoom level (means better performance less accurate representation) noClip whether disable polyline clipping popup character vector HTML content popups (recommended escape text using htmlEscape() security reasons) popupOptions Vector popupOptions provide popups label character vector HTML content labels labelOptions Vector labelOptions provide label options label. Default NULL options named list options. See antpathOptions highlightOptions Options highlighting shape mouse . data data object argument values derived; default, data object provided leaflet() initially, can overridden","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addAntpath.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add Antpath Lines — addAntpath","text":"modified leaflet map, 'ant-path' animated polyline","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addAntpath.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Add Antpath Lines — addAntpath","text":"https://github.com/rubenspgcavalcante/leaflet-ant-path","code":""},{"path":[]},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addAntpath.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Antpath Lines — addAntpath","text":"","code":"library(leaflet) leaflet() %>% addAntpath(data = atlStorms2005) #> Loading required package: sp {\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}}},\"calls\":[{\"method\":\"addAntpath\",\"args\":[[[[{\"lng\":[-67.5,-68.5,-69.59999999999999,-70.5,-71.3,-72.2,-72.7,-72.90000000000001,-73,-72.40000000000001,-70.8],\"lat\":[15.8,16.5,17.3,17.8,18.3,18.6,19.8,21.6,23.5,25.1,27.9]}]],[[{\"lng\":[-84,-83.90000000000001,-83.90000000000001,-84,-84.09999999999999,-84.2,-84.40000000000001,-84.5,-84.7,-85.09999999999999,-85.59999999999999,-85.59999999999999,-86.8,-87.2,-87.5,-87.5,-87.59999999999999,-87.7,-88,-87.8,-87.5,-86,-85,-84,-81.09999999999999,-77.59999999999999],\"lat\":[16.9,17.4,18.2,19,19.7,20.4,21.2,21.8,23,24.9,26.5,26.5,27.7,28.9,30.1,30.3,31.4,32.7,35,37,38.5,40.5,42,43,43.7,44.8]}]],[[{\"lng\":[-95.40000000000001,-95.7,-95.8,-96.40000000000001,-97.3,-98.09999999999999,-98.5],\"lat\":[19.7,19.9,20,20.4,20.8,21.4,22]}]],[[{\"lng\":[-86.7,-87.2,-87.59999999999999,-87.90000000000001,-88.5,-89,-89.7,-90.2,-90.40000000000001,-90.5,-90.3,-90.09999999999999,-90,-89.5,-88.90000000000001,-88.09999999999999,-87.2,-86.2,-84.09999999999999,-81.8,-80,-78.3,-76.7,-74.8,-72,-70.7,-69.8,-69.59999999999999,-69.8,-70,-67.59999999999999,-66.40000000000001,-64.5,-62.5],\"lat\":[18.3,18.6,19,19.3,20.9,22.3,23.9,25.1,26.4,27.6,28.5,29.2,29.6,30.2,30.8,31.6,32.4,33.2,34.6,35.6,37.1,37.8,38.4,39.1,39.5,40.8,41.6,43.5,44.9,45.5,46.5,48,48.5,48.5]}]],[[{\"lng\":[-48,-47.5,-46.7,-45.9,-44.8,-43.5,-42.2,-41.1,-40.1,-39.6,-40.1,-39.9,-39.8,-40.5,-40.9,-41.3,-41.2,-40.8,-40.2,-39.6,-39,-38.9,-39,-39.3,-39.6,-39.8,-39.8,-39.4,-38.4,-37.3,-35.8,-34,-31.9,-29.9,-27.5,-24.8,-21.6,-18.2,-14.6,-10.9,-6.6,-1],\"lat\":[27,26.7,26.7,27.2,27.7,28,28.3,29,29.9,30.9,31.5,31.4,31.2,30.7,29.9,28.8,27.4,26.4,25.5,25,24.8,24.6,24.1,23.8,23.3,22.8,22.3,21.8,22,22.6,23.5,24.8,26.7,28.3,29.1,29.9,30.2,30.2,30.2,30.7,32.6,35.3]}]],[[{\"lng\":[-60.8,-61.6,-62.5,-64.2,-65.90000000000001,-67.3,-68.5,-69.7,-70.90000000000001,-71.90000000000001,-73,-74.09999999999999,-74.90000000000001,-76.09999999999999,-77.09999999999999,-77.59999999999999,-78.40000000000001,-79.5,-80.59999999999999,-80.7,-81.59999999999999,-82.5,-83.40000000000001,-84.2,-85,-85.8,-86.3,-86.90000000000001,-87.09999999999999,-87.7,-88.5,-88.8,-89.09999999999999,-89.2,-89,-88.7,-88.3,-87.8,-87.2,-86.5,-85.8,-85.7,-85.59999999999999,-85.59999999999999,-85.59999999999999,-85.8,-86.2,-86.40000000000001,-86.59999999999999,-86.8,-86.5,-86.2,-85.2,-84.09999999999999,-83.2,-82.3,-81.40000000000001,-80.5,-79.8],\"lat\":[12,12.1,12.2,12.5,13,13.6,14.3,14.7,15.1,15.6,16.2,16.7,17.6,18.5,19.4,19.9,20.3,20.9,22,22.1,22.7,23.4,24.3,25.2,26.1,27.2,28.5,29.9,30.4,31.5,32.6,33.9,35.3,36.4,37.1,37.7,38.1,38.5,38.9,39.2,39.2,39.2,39,38.7,38.4,38.1,37.9,38.1,38.4,38.6,39.4,40.2,40.8,41.3,42.2,43.1,43.9,44.6,45.8]}]],[[{\"lng\":[-42.4,-43.4,-44.4,-45.4,-46.8,-48.5,-50.2,-52,-53.7,-55.4,-57.2,-58.9,-60.2,-61.5,-61.8,-63.2,-64.90000000000001,-66.7,-68.40000000000001,-70.09999999999999,-71.8,-73.40000000000001,-75,-76.5,-78,-79.5,-81.2,-82.8,-84.3,-85.8,-87.3,-87.40000000000001,-88.90000000000001,-90.3,-91.5,-92.8,-94,-95.09999999999999,-96.09999999999999,-96.90000000000001,-97.59999999999999,-98.7,-99.7,-100.5,-101.1],\"lat\":[10.7,10.8,10.9,11,11,11,11,11,11,11.1,11.2,11.4,11.6,11.9,12,12.4,12.9,13.3,13.7,14.1,14.5,14.9,15.4,15.9,16.4,17.1,17.7,18.3,18.9,19.5,20.3,20.3,21.3,22,22.6,23.2,23.7,24.1,24.4,24.6,24.8,25,25,25,25]}]],[[{\"lng\":[-49.2,-50,-50.8,-51.5,-52.5,-53.5,-54.2,-53.8,-52.7,-51.9,-51.3,-50.6,-49.8,-48.9,-47.9,-47.1,-46.2,-45,-43.7,-42.3,-41.1,-39.8,-38.8,-37.8,-36.7,-35.5,-34.6,-33.8,-33.7,-33.7,-34.2,-34.9,-36,-37.1,-38.1,-38.8,-39.3,-40,-40.5,-40.6,-40.4,-40.1,-39.2],\"lat\":[31.5,31.6,31.4,31.4,31.1,30.8,30.1,29.7,30,30.8,31.4,31.9,32.5,33.2,33.9,34.3,34.5,34.5,34.5,34.3,34.4,34.3,34.3,34.2,34,33.8,33.7,33.4,33.1,32.3,31.6,30.8,30.1,29.4,28.7,28.2,27.4,26.5,25.9,25.5,25.1,24.7,24.7]}]],[[{\"lng\":[-75,-75.90000000000001,-76.40000000000001,-76.8,-76.7,-76.59999999999999,-76.09999999999999,-75.40000000000001,-74.7,-73.5,-72.59999999999999,-71.90000000000001,-71.2,-71.2,-70.5,-69.8,-69.59999999999999,-68.59999999999999,-68.2,-68.09999999999999,-68.3,-68.5,-68.8,-69.09999999999999,-69.3,-69.40000000000001,-69.3,-69.09999999999999,-68,-66.59999999999999,-64.8,-62.8,-60.2,-57.5,-54.6,-51.7,-48.8,-46],\"lat\":[25,25.7,26.2,26.6,27.4,28.1,28.7,29.2,29.7,30.1,30.3,30.7,31.1,31.1,31,30.9,30.9,30.9,31.2,31.7,32.2,32.4,32.8,33.2,33.6,34.2,35,36,37.1,38.4,39.6,40.8,42.2,43.5,44.7,45.8,46.4,47.5]}]],[[{\"lng\":[-62.1,-62.8,-63.4,-64.2,-65,-66,-67.09999999999999,-68.40000000000001,-69.90000000000001,-71.5,-73.09999999999999,-75.40000000000001,-77.59999999999999,-79.7,-81.7,-83.09999999999999,-84.09999999999999,-84.8,-85.5,-85.59999999999999,-85.59999999999999,-85.59999999999999,-85.40000000000001,-85.2,-85,-85,-85.2,-85.5,-85.5,-85.2,-84.8,-84.3,-83.5],\"lat\":[13.2,13.6,13.8,14.1,14.2,14.3,14.4,14.7,14.8,14.8,14.7,14.8,15,15.3,15.6,15.8,15.8,15.7,15.5,15.7,16,16.1,16.1,16.2,16.4,16.6,16.7,16.9,17.1,17,16.7,16.4,15.4]}]],[[{\"lng\":[-92.90000000000001,-93.8,-95,-95.8,-96.59999999999999,-97.59999999999999,-98.59999999999999,-100,-101.4],\"lat\":[19.3,19.8,20.8,21,21.4,21.8,22.3,22.5,22.5]}]],[[{\"lng\":[-68.8,-68.7,-68.59999999999999,-68.3,-67.7,-66.40000000000001,-65,-63.6,-62.1,-60.5,-59.4,-58.5,-57.7,-57.1,-56.8,-56.7,-56.7,-55.5,-54.9,-54,-52.9,-51.9,-50.7,-48.6,-46.9,-45,-43,-41.1,-39,-37.1,-35.2,-34.1,-33.1,-32.2,-31.5,-31,-30.7,-30.5,-30.8,-31.4,-31.5,-31.5,-31.5,-31.5,-32,-32.5],\"lat\":[28.2,28.9,29.5,30.3,30.9,31.3,31.6,31.9,32,32.1,32.4,32.5,32.5,32.6,33,33.5,33.5,34.1,35.1,36,36.8,37.6,38.6,39.6,40.4,41.2,41.8,42.3,43,44,44.5,44.5,44.4,44.2,43.9,43.5,43.3,43,42.5,42,41.3,40.7,40.5,40.5,41.2,42]}]],[[{\"lng\":[-33.5,-34.5,-35.5,-36.8,-38.4,-39.8,-40.5,-41.6,-42.8,-43.5,-44.2,-45,-46,-47.2,-48.3,-49.9,-50.9,-52,-52.9,-53.7,-54.8,-55.7,-56.5,-57.2,-58.1,-59.3,-60.4,-61.7,-62.9,-63.8,-65.09999999999999,-66.3,-67.09999999999999,-67.7,-68.2,-69,-69.40000000000001,-69.90000000000001,-70.2,-70.09999999999999,-70,-69.5,-68.7,-67.7,-66.5,-65.09999999999999,-64,-63,-62,-61.3,-60.6,-59.1,-57.3,-55,-52.3,-48.9],\"lat\":[12.9,13.6,14.6,15.6,16.6,17.2,17.7,18.2,18.8,19.3,19.7,20.2,20.8,21.3,21.8,22.2,22.4,22.5,22.4,22.4,22.4,22.4,22.3,22.4,22.8,23.3,23.9,24.7,25.4,26.3,27.2,27.9,28.4,28.9,29.6,30,30.8,31.6,32.1,33.1,34,34.9,35.7,36.3,36.5,36.6,36.6,36.6,36.5,36.5,36.5,36.9,37.6,38.6,40.3,43.3]}]],[[{\"lng\":[-94.5,-95,-95.7,-96.40000000000001,-96.7,-97.7],\"lat\":[19.4,19.6,19.7,19.7,19.7,19.7]}]],[[{\"lng\":[-75.09999999999999,-75.7,-76.2,-76.5,-76.90000000000001,-77.7,-78.40000000000001,-79,-79.59999999999999,-80.09999999999999,-80.3,-81.3,-82,-82.59999999999999,-83.3,-84,-84.7,-85.3,-85.90000000000001,-86.7,-87.7,-88.59999999999999,-89.2,-89.59999999999999,-89.59999999999999,-89.59999999999999,-89.59999999999999,-89.59999999999999,-89.09999999999999,-88.59999999999999,-88,-87,-85.3,-82.90000000000001],\"lat\":[23.1,23.4,23.8,24.5,25.4,26,26.1,26.2,26.2,26,25.9,25.4,25.1,24.9,24.6,24.4,24.4,24.5,24.8,25.2,25.7,26.3,27.2,28.2,29.3,29.5,30.2,31.1,32.6,34.1,35.6,37,38.6,40.1]}]],[[{\"lng\":[-45.1,-46.4,-47.6,-48.9,-50.6,-52.5,-53.2,-53.6,-54.2,-53.6,-52.7,-51.6,-50.4,-50.1,-50.3,-51.2,-51.4,-51.5,-52,-52.3,-52.3,-52.7,-53.2,-53.9,-54.2,-53.9],\"lat\":[14,14.9,15.7,17,17.7,18.5,20.5,22.1,24.2,25.5,26.9,28,29,30.1,31.1,31.9,31.9,32.3,32.4,32.6,33.2,33.9,34.7,35.5,36.6,37.4]}]],[[{\"lng\":[-45.5,-46.2,-47.2,-48.3,-49.4,-50.2,-51,-52,-53.1,-54,-54.6,-55.1,-55.5,-56,-56.5,-56.8,-56.8,-56.7,-56.6,-56.5,-56,-55.4,-54.6,-53.3,-51.8,-50.8,-49.9,-49,-48,-47.2,-46.4,-44.9,-43.4,-42.1,-40.6,-39.2,-37.7,-36.3,-35,-34,-32.9,-32,-31,-29,-26,-23,-21,-19,-16,-10,0],\"lat\":[18.8,19.3,19.9,20.5,21.1,21.5,22,23,24.4,25.5,26.5,27.5,28.6,29.6,30.2,30.9,31.5,32.1,32.6,33,33.5,33.9,34.4,34.8,35.6,36.5,37.2,37.9,38.7,39.1,39.4,39.8,40.4,41.1,41.9,42.9,44.5,46,48,50,52,54,55.5,57,58.5,61,62,62.9,63.5,63,63]}]],[[{\"lng\":[-67,-66.59999999999999,-66.5,-66.5,-66.40000000000001,-66.3,-66.3,-66.2,-66,-65.7,-65,-63.8,-62.7,-61.1,-59.1,-55.8,-53.4,-50.8,-49,-45.9,-44.1,-42.1,-40.6,-38.3,-35.6,-33.3,-32,-28.1,-25],\"lat\":[28.4,28.4,28.5,28.5,28.6,28.7,28.7,28.9,29.3,29.6,30,30.5,31.4,32.6,33.4,34,34.5,34.7,34.6,34.5,34.9,35.2,36,37.4,39.2,41.6,43.5,44,46]}]],[[{\"lng\":[-78.59999999999999,-78.3,-78.3,-78.3,-78.5,-78.8,-79.2,-79.3,-79.3,-79.59999999999999,-79.59999999999999,-79.5,-79.3,-79.3,-79.09999999999999,-78.5,-77.5,-76.90000000000001,-76.59999999999999,-76.2,-75.90000000000001,-75.90000000000001,-75.7,-75.90000000000001,-76.2,-76.59999999999999,-76.90000000000001,-77.3,-77.7,-77.90000000000001,-78,-78.09999999999999,-78.09999999999999,-78,-77.7,-77.5,-76.90000000000001,-76.3,-75.8,-75.59999999999999,-75.09999999999999,-74.8,-74.40000000000001,-73.59999999999999,-72.7,-71.40000000000001,-69.7,-67.3,-64.90000000000001,-62.6,-59.9,-56.2,-52.3,-48.8,-45.7,-42.1,-38.5,-34.7,-30.5,-26.5,-22,-17.7,-14.6,-11.9,-8.4,-4.5,-1,1.9,6.6],\"lat\":[25.8,26.3,26.6,26.8,27.4,27.9,28.7,28.8,28.8,28.7,28.6,28.6,28.6,28.9,29.3,29.8,30.2,30.9,31.5,31.7,31.8,31.7,31.6,31.4,31.2,31.2,31.5,31.7,31.8,31.9,32.1,32.3,32.6,32.9,33.4,33.9,34.2,34.5,34.7,34.7,34.6,34.7,35.4,36.4,37.3,38.7,40,41.6,43.2,44.8,46.2,47.4,48.4,49,49.5,50,50.9,51.5,52.2,52.8,53.8,55.3,57.6,59.8,61.7,63.6,65.59999999999999,67.5,68.8]}]],[[{\"lng\":[-54.5,-54.9,-55.1,-55.3,-55.5,-55.7,-55.8,-55.9,-56.2,-56.4,-56.6,-56.8,-57,-57.2,-57.2,-57.1,-57,-56.9,-56.7,-56.8,-57.2,-57.6,-58.2,-60.1,-62.2,-63.7,-63.8,-62.8],\"lat\":[13.3,13.5,13.9,14.4,14.9,15.6,16.2,16.7,17.2,17.5,17.7,17.9,18.1,18.5,18.9,19.4,19.9,20.8,22.4,23.8,25.2,26.7,28.3,30.2,30.5,30.2,29.2,28.6]}]],[[{\"lng\":[-69.90000000000001,-70.7,-71.5,-72.3,-73,-73.8,-74.7,-75.90000000000001,-77.2,-78.8,-80.3,-81.59999999999999,-82.7,-84,-85.2,-86.2,-86.90000000000001,-87.3,-87.59999999999999,-88.3,-89.09999999999999,-89.90000000000001,-90.7,-91.5,-92.3,-93,-93.59999999999999,-93.7,-94.09999999999999,-94.09999999999999,-94,-93.59999999999999,-92.5,-91.40000000000001,-90.09999999999999,-88],\"lat\":[21.3,21.6,21.9,22.2,22.4,22.6,22.8,23.1,23.3,23.5,23.7,23.9,24.1,24.2,24.2,24.3,24.5,24.7,24.8,25.2,25.6,26,26.5,27.1,27.8,28.6,29.4,29.7,30.5,31.6,32.7,33.7,34.7,35.8,37,39.5]}]],[[{\"lng\":[-43.6,-44.7,-45.7,-46,-46.4,-46.7,-47.4,-48.4,-49.3,-49.9,-50.4,-51.1,-52,-53.2,-54.1,-54.9,-55.6,-56.6,-57.7,-58.9,-60.1],\"lat\":[13.3,13.8,13.8,13.4,13.5,13.9,14.4,14.5,14.6,14.8,15.1,15.5,16,16.1,16.1,16.1,16.7,17.1,17.3,17.6,18]}]],[[{\"lng\":[-57.4,-58.5,-60.1,-62,-63.3,-64.5,-65.2,-66,-67.5,-68.90000000000001,-70,-71,-71.7,-71.8,-71.7,-71.90000000000001,-72.40000000000001,-73,-73.5,-73.5,-73.5,-73,-73,-73.40000000000001,-73.8,-73.8,-73.8],\"lat\":[26.1,27.7,28.8,29.3,29.3,29.5,30,30.7,31.6,32.5,33.5,34.3,35.5,36.7,37.8,38.5,38.8,38.9,38.7,38.3,37.7,37.2,37.8,38,37.6,38.6,39.6]}]],[[{\"lng\":[-78.5,-78.8,-79,-79.2,-79.40000000000001,-79.59999999999999,-79.59999999999999,-79.7,-79.8,-79.90000000000001,-79.90000000000001,-80.3,-81.09999999999999,-81.8,-82.2,-82.8,-83.40000000000001,-84,-84.7,-85.2,-85.5,-85.8,-86.09999999999999,-86.40000000000001,-86.7,-86.8,-86.8,-86.90000000000001,-87,-87.09999999999999,-87.09999999999999,-87,-86.8,-86.09999999999999,-85.40000000000001,-84.3,-83.09999999999999,-81.7,-81,-78.8,-76,-72,-67.90000000000001,-63.5,-60,-57.5,-55,-52],\"lat\":[17.6,17.6,17.5,17.5,17.5,17.4,16.9,16.3,16,15.8,15.7,16.2,16.6,16.6,17,17.3,17.4,17.9,18.1,18.3,18.6,19.1,19.5,20.1,20.3,20.6,20.6,20.8,20.8,21,21.3,21.6,21.8,22.4,23.1,24,25,25.9,26.2,28,30.1,33.3,36.8,40.5,42.5,44,45,45.5]}]]],null,null,{\"delay\":400,\"paused\":false,\"reverse\":false,\"hardwareAccelerated\":false,\"dashArray\":[10,20],\"pulseColor\":\"#ffffff\",\"interactive\":true,\"className\":\"\",\"stroke\":true,\"color\":\"#03F\",\"weight\":5,\"opacity\":0.5,\"fill\":false,\"fillColor\":\"#03F\",\"fillOpacity\":0.2,\"smoothFactor\":1,\"noClip\":false},null,null,null,{\"interactive\":false,\"permanent\":false,\"direction\":\"auto\",\"opacity\":1,\"offset\":[0,0],\"textsize\":\"10px\",\"textOnly\":false,\"className\":\"\",\"sticky\":true},null]}],\"limits\":{\"lat\":[10.7,68.8],\"lng\":[-101.4,6.6]}},\"evals\":[],\"jsHooks\":[]}"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addArrowhead.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Lines with an arrowhead — addArrowhead","title":"Add Lines with an arrowhead — addArrowhead","text":"Can used almost exactly like addPolylines instead pathOptions can use arrowheadOptions. See leaflet-arrowheads details.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addArrowhead.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Lines with an arrowhead — addArrowhead","text":"","code":"addArrowhead( map, lng = NULL, lat = NULL, layerId = NULL, group = NULL, stroke = TRUE, color = \"#03F\", weight = 5, opacity = 0.5, fill = FALSE, fillColor = color, fillOpacity = 0.2, dashArray = NULL, smoothFactor = 1, noClip = FALSE, popup = NULL, popupOptions = NULL, label = NULL, labelOptions = NULL, options = arrowheadOptions(), highlightOptions = NULL, data = getMapData(map) )"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addArrowhead.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Lines with an arrowhead — addArrowhead","text":"map map widget object created leaflet() lng numeric vector longitudes, one-sided formula form ~x x variable data; default (explicitly provided), automatically inferred data looking column named lng, long, longitude (case-insensitively) lat vector latitudes formula (similar lng argument; names lat latitude used guessing latitude column data) layerId layer id group name group newly created layers belong (clearGroup addLayersControl purposes). Human-friendly group names permitted–need short, identifier-style names. number layers even different types layers (e.g. markers polygons) can share group name. stroke whether draw stroke along path (e.g. borders polygons circles) color stroke color weight stroke width pixels opacity stroke opacity (layer opacity tile layers) fill whether fill path color (e.g. filling polygons circles) fillColor fill color fillOpacity fill opacity dashArray string defines stroke dash pattern smoothFactor much simplify polyline zoom level (means better performance less accurate representation) noClip whether disable polyline clipping popup character vector HTML content popups (recommended escape text using htmlEscape() security reasons) popupOptions Vector popupOptions provide popups label character vector HTML content labels labelOptions Vector labelOptions provide label options label. Default NULL options named list options. See arrowheadOptions highlightOptions Options highlighting shape mouse . data data object argument values derived; default, data object provided leaflet() initially, can overridden","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addArrowhead.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add Lines with an arrowhead — addArrowhead","text":"modified leaflet map polyline arrowheads","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addArrowhead.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Add Lines with an arrowhead — addArrowhead","text":"https://github.com/slutske22/leaflet-arrowheads","code":""},{"path":[]},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addArrowhead.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Lines with an arrowhead — addArrowhead","text":"","code":"library(leaflet) leaflet() %>% addArrowhead(data = atlStorms2005) {\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}}},\"calls\":[{\"method\":\"addArrowhead\",\"args\":[[[[{\"lng\":[-67.5,-68.5,-69.59999999999999,-70.5,-71.3,-72.2,-72.7,-72.90000000000001,-73,-72.40000000000001,-70.8],\"lat\":[15.8,16.5,17.3,17.8,18.3,18.6,19.8,21.6,23.5,25.1,27.9]}]],[[{\"lng\":[-84,-83.90000000000001,-83.90000000000001,-84,-84.09999999999999,-84.2,-84.40000000000001,-84.5,-84.7,-85.09999999999999,-85.59999999999999,-85.59999999999999,-86.8,-87.2,-87.5,-87.5,-87.59999999999999,-87.7,-88,-87.8,-87.5,-86,-85,-84,-81.09999999999999,-77.59999999999999],\"lat\":[16.9,17.4,18.2,19,19.7,20.4,21.2,21.8,23,24.9,26.5,26.5,27.7,28.9,30.1,30.3,31.4,32.7,35,37,38.5,40.5,42,43,43.7,44.8]}]],[[{\"lng\":[-95.40000000000001,-95.7,-95.8,-96.40000000000001,-97.3,-98.09999999999999,-98.5],\"lat\":[19.7,19.9,20,20.4,20.8,21.4,22]}]],[[{\"lng\":[-86.7,-87.2,-87.59999999999999,-87.90000000000001,-88.5,-89,-89.7,-90.2,-90.40000000000001,-90.5,-90.3,-90.09999999999999,-90,-89.5,-88.90000000000001,-88.09999999999999,-87.2,-86.2,-84.09999999999999,-81.8,-80,-78.3,-76.7,-74.8,-72,-70.7,-69.8,-69.59999999999999,-69.8,-70,-67.59999999999999,-66.40000000000001,-64.5,-62.5],\"lat\":[18.3,18.6,19,19.3,20.9,22.3,23.9,25.1,26.4,27.6,28.5,29.2,29.6,30.2,30.8,31.6,32.4,33.2,34.6,35.6,37.1,37.8,38.4,39.1,39.5,40.8,41.6,43.5,44.9,45.5,46.5,48,48.5,48.5]}]],[[{\"lng\":[-48,-47.5,-46.7,-45.9,-44.8,-43.5,-42.2,-41.1,-40.1,-39.6,-40.1,-39.9,-39.8,-40.5,-40.9,-41.3,-41.2,-40.8,-40.2,-39.6,-39,-38.9,-39,-39.3,-39.6,-39.8,-39.8,-39.4,-38.4,-37.3,-35.8,-34,-31.9,-29.9,-27.5,-24.8,-21.6,-18.2,-14.6,-10.9,-6.6,-1],\"lat\":[27,26.7,26.7,27.2,27.7,28,28.3,29,29.9,30.9,31.5,31.4,31.2,30.7,29.9,28.8,27.4,26.4,25.5,25,24.8,24.6,24.1,23.8,23.3,22.8,22.3,21.8,22,22.6,23.5,24.8,26.7,28.3,29.1,29.9,30.2,30.2,30.2,30.7,32.6,35.3]}]],[[{\"lng\":[-60.8,-61.6,-62.5,-64.2,-65.90000000000001,-67.3,-68.5,-69.7,-70.90000000000001,-71.90000000000001,-73,-74.09999999999999,-74.90000000000001,-76.09999999999999,-77.09999999999999,-77.59999999999999,-78.40000000000001,-79.5,-80.59999999999999,-80.7,-81.59999999999999,-82.5,-83.40000000000001,-84.2,-85,-85.8,-86.3,-86.90000000000001,-87.09999999999999,-87.7,-88.5,-88.8,-89.09999999999999,-89.2,-89,-88.7,-88.3,-87.8,-87.2,-86.5,-85.8,-85.7,-85.59999999999999,-85.59999999999999,-85.59999999999999,-85.8,-86.2,-86.40000000000001,-86.59999999999999,-86.8,-86.5,-86.2,-85.2,-84.09999999999999,-83.2,-82.3,-81.40000000000001,-80.5,-79.8],\"lat\":[12,12.1,12.2,12.5,13,13.6,14.3,14.7,15.1,15.6,16.2,16.7,17.6,18.5,19.4,19.9,20.3,20.9,22,22.1,22.7,23.4,24.3,25.2,26.1,27.2,28.5,29.9,30.4,31.5,32.6,33.9,35.3,36.4,37.1,37.7,38.1,38.5,38.9,39.2,39.2,39.2,39,38.7,38.4,38.1,37.9,38.1,38.4,38.6,39.4,40.2,40.8,41.3,42.2,43.1,43.9,44.6,45.8]}]],[[{\"lng\":[-42.4,-43.4,-44.4,-45.4,-46.8,-48.5,-50.2,-52,-53.7,-55.4,-57.2,-58.9,-60.2,-61.5,-61.8,-63.2,-64.90000000000001,-66.7,-68.40000000000001,-70.09999999999999,-71.8,-73.40000000000001,-75,-76.5,-78,-79.5,-81.2,-82.8,-84.3,-85.8,-87.3,-87.40000000000001,-88.90000000000001,-90.3,-91.5,-92.8,-94,-95.09999999999999,-96.09999999999999,-96.90000000000001,-97.59999999999999,-98.7,-99.7,-100.5,-101.1],\"lat\":[10.7,10.8,10.9,11,11,11,11,11,11,11.1,11.2,11.4,11.6,11.9,12,12.4,12.9,13.3,13.7,14.1,14.5,14.9,15.4,15.9,16.4,17.1,17.7,18.3,18.9,19.5,20.3,20.3,21.3,22,22.6,23.2,23.7,24.1,24.4,24.6,24.8,25,25,25,25]}]],[[{\"lng\":[-49.2,-50,-50.8,-51.5,-52.5,-53.5,-54.2,-53.8,-52.7,-51.9,-51.3,-50.6,-49.8,-48.9,-47.9,-47.1,-46.2,-45,-43.7,-42.3,-41.1,-39.8,-38.8,-37.8,-36.7,-35.5,-34.6,-33.8,-33.7,-33.7,-34.2,-34.9,-36,-37.1,-38.1,-38.8,-39.3,-40,-40.5,-40.6,-40.4,-40.1,-39.2],\"lat\":[31.5,31.6,31.4,31.4,31.1,30.8,30.1,29.7,30,30.8,31.4,31.9,32.5,33.2,33.9,34.3,34.5,34.5,34.5,34.3,34.4,34.3,34.3,34.2,34,33.8,33.7,33.4,33.1,32.3,31.6,30.8,30.1,29.4,28.7,28.2,27.4,26.5,25.9,25.5,25.1,24.7,24.7]}]],[[{\"lng\":[-75,-75.90000000000001,-76.40000000000001,-76.8,-76.7,-76.59999999999999,-76.09999999999999,-75.40000000000001,-74.7,-73.5,-72.59999999999999,-71.90000000000001,-71.2,-71.2,-70.5,-69.8,-69.59999999999999,-68.59999999999999,-68.2,-68.09999999999999,-68.3,-68.5,-68.8,-69.09999999999999,-69.3,-69.40000000000001,-69.3,-69.09999999999999,-68,-66.59999999999999,-64.8,-62.8,-60.2,-57.5,-54.6,-51.7,-48.8,-46],\"lat\":[25,25.7,26.2,26.6,27.4,28.1,28.7,29.2,29.7,30.1,30.3,30.7,31.1,31.1,31,30.9,30.9,30.9,31.2,31.7,32.2,32.4,32.8,33.2,33.6,34.2,35,36,37.1,38.4,39.6,40.8,42.2,43.5,44.7,45.8,46.4,47.5]}]],[[{\"lng\":[-62.1,-62.8,-63.4,-64.2,-65,-66,-67.09999999999999,-68.40000000000001,-69.90000000000001,-71.5,-73.09999999999999,-75.40000000000001,-77.59999999999999,-79.7,-81.7,-83.09999999999999,-84.09999999999999,-84.8,-85.5,-85.59999999999999,-85.59999999999999,-85.59999999999999,-85.40000000000001,-85.2,-85,-85,-85.2,-85.5,-85.5,-85.2,-84.8,-84.3,-83.5],\"lat\":[13.2,13.6,13.8,14.1,14.2,14.3,14.4,14.7,14.8,14.8,14.7,14.8,15,15.3,15.6,15.8,15.8,15.7,15.5,15.7,16,16.1,16.1,16.2,16.4,16.6,16.7,16.9,17.1,17,16.7,16.4,15.4]}]],[[{\"lng\":[-92.90000000000001,-93.8,-95,-95.8,-96.59999999999999,-97.59999999999999,-98.59999999999999,-100,-101.4],\"lat\":[19.3,19.8,20.8,21,21.4,21.8,22.3,22.5,22.5]}]],[[{\"lng\":[-68.8,-68.7,-68.59999999999999,-68.3,-67.7,-66.40000000000001,-65,-63.6,-62.1,-60.5,-59.4,-58.5,-57.7,-57.1,-56.8,-56.7,-56.7,-55.5,-54.9,-54,-52.9,-51.9,-50.7,-48.6,-46.9,-45,-43,-41.1,-39,-37.1,-35.2,-34.1,-33.1,-32.2,-31.5,-31,-30.7,-30.5,-30.8,-31.4,-31.5,-31.5,-31.5,-31.5,-32,-32.5],\"lat\":[28.2,28.9,29.5,30.3,30.9,31.3,31.6,31.9,32,32.1,32.4,32.5,32.5,32.6,33,33.5,33.5,34.1,35.1,36,36.8,37.6,38.6,39.6,40.4,41.2,41.8,42.3,43,44,44.5,44.5,44.4,44.2,43.9,43.5,43.3,43,42.5,42,41.3,40.7,40.5,40.5,41.2,42]}]],[[{\"lng\":[-33.5,-34.5,-35.5,-36.8,-38.4,-39.8,-40.5,-41.6,-42.8,-43.5,-44.2,-45,-46,-47.2,-48.3,-49.9,-50.9,-52,-52.9,-53.7,-54.8,-55.7,-56.5,-57.2,-58.1,-59.3,-60.4,-61.7,-62.9,-63.8,-65.09999999999999,-66.3,-67.09999999999999,-67.7,-68.2,-69,-69.40000000000001,-69.90000000000001,-70.2,-70.09999999999999,-70,-69.5,-68.7,-67.7,-66.5,-65.09999999999999,-64,-63,-62,-61.3,-60.6,-59.1,-57.3,-55,-52.3,-48.9],\"lat\":[12.9,13.6,14.6,15.6,16.6,17.2,17.7,18.2,18.8,19.3,19.7,20.2,20.8,21.3,21.8,22.2,22.4,22.5,22.4,22.4,22.4,22.4,22.3,22.4,22.8,23.3,23.9,24.7,25.4,26.3,27.2,27.9,28.4,28.9,29.6,30,30.8,31.6,32.1,33.1,34,34.9,35.7,36.3,36.5,36.6,36.6,36.6,36.5,36.5,36.5,36.9,37.6,38.6,40.3,43.3]}]],[[{\"lng\":[-94.5,-95,-95.7,-96.40000000000001,-96.7,-97.7],\"lat\":[19.4,19.6,19.7,19.7,19.7,19.7]}]],[[{\"lng\":[-75.09999999999999,-75.7,-76.2,-76.5,-76.90000000000001,-77.7,-78.40000000000001,-79,-79.59999999999999,-80.09999999999999,-80.3,-81.3,-82,-82.59999999999999,-83.3,-84,-84.7,-85.3,-85.90000000000001,-86.7,-87.7,-88.59999999999999,-89.2,-89.59999999999999,-89.59999999999999,-89.59999999999999,-89.59999999999999,-89.59999999999999,-89.09999999999999,-88.59999999999999,-88,-87,-85.3,-82.90000000000001],\"lat\":[23.1,23.4,23.8,24.5,25.4,26,26.1,26.2,26.2,26,25.9,25.4,25.1,24.9,24.6,24.4,24.4,24.5,24.8,25.2,25.7,26.3,27.2,28.2,29.3,29.5,30.2,31.1,32.6,34.1,35.6,37,38.6,40.1]}]],[[{\"lng\":[-45.1,-46.4,-47.6,-48.9,-50.6,-52.5,-53.2,-53.6,-54.2,-53.6,-52.7,-51.6,-50.4,-50.1,-50.3,-51.2,-51.4,-51.5,-52,-52.3,-52.3,-52.7,-53.2,-53.9,-54.2,-53.9],\"lat\":[14,14.9,15.7,17,17.7,18.5,20.5,22.1,24.2,25.5,26.9,28,29,30.1,31.1,31.9,31.9,32.3,32.4,32.6,33.2,33.9,34.7,35.5,36.6,37.4]}]],[[{\"lng\":[-45.5,-46.2,-47.2,-48.3,-49.4,-50.2,-51,-52,-53.1,-54,-54.6,-55.1,-55.5,-56,-56.5,-56.8,-56.8,-56.7,-56.6,-56.5,-56,-55.4,-54.6,-53.3,-51.8,-50.8,-49.9,-49,-48,-47.2,-46.4,-44.9,-43.4,-42.1,-40.6,-39.2,-37.7,-36.3,-35,-34,-32.9,-32,-31,-29,-26,-23,-21,-19,-16,-10,0],\"lat\":[18.8,19.3,19.9,20.5,21.1,21.5,22,23,24.4,25.5,26.5,27.5,28.6,29.6,30.2,30.9,31.5,32.1,32.6,33,33.5,33.9,34.4,34.8,35.6,36.5,37.2,37.9,38.7,39.1,39.4,39.8,40.4,41.1,41.9,42.9,44.5,46,48,50,52,54,55.5,57,58.5,61,62,62.9,63.5,63,63]}]],[[{\"lng\":[-67,-66.59999999999999,-66.5,-66.5,-66.40000000000001,-66.3,-66.3,-66.2,-66,-65.7,-65,-63.8,-62.7,-61.1,-59.1,-55.8,-53.4,-50.8,-49,-45.9,-44.1,-42.1,-40.6,-38.3,-35.6,-33.3,-32,-28.1,-25],\"lat\":[28.4,28.4,28.5,28.5,28.6,28.7,28.7,28.9,29.3,29.6,30,30.5,31.4,32.6,33.4,34,34.5,34.7,34.6,34.5,34.9,35.2,36,37.4,39.2,41.6,43.5,44,46]}]],[[{\"lng\":[-78.59999999999999,-78.3,-78.3,-78.3,-78.5,-78.8,-79.2,-79.3,-79.3,-79.59999999999999,-79.59999999999999,-79.5,-79.3,-79.3,-79.09999999999999,-78.5,-77.5,-76.90000000000001,-76.59999999999999,-76.2,-75.90000000000001,-75.90000000000001,-75.7,-75.90000000000001,-76.2,-76.59999999999999,-76.90000000000001,-77.3,-77.7,-77.90000000000001,-78,-78.09999999999999,-78.09999999999999,-78,-77.7,-77.5,-76.90000000000001,-76.3,-75.8,-75.59999999999999,-75.09999999999999,-74.8,-74.40000000000001,-73.59999999999999,-72.7,-71.40000000000001,-69.7,-67.3,-64.90000000000001,-62.6,-59.9,-56.2,-52.3,-48.8,-45.7,-42.1,-38.5,-34.7,-30.5,-26.5,-22,-17.7,-14.6,-11.9,-8.4,-4.5,-1,1.9,6.6],\"lat\":[25.8,26.3,26.6,26.8,27.4,27.9,28.7,28.8,28.8,28.7,28.6,28.6,28.6,28.9,29.3,29.8,30.2,30.9,31.5,31.7,31.8,31.7,31.6,31.4,31.2,31.2,31.5,31.7,31.8,31.9,32.1,32.3,32.6,32.9,33.4,33.9,34.2,34.5,34.7,34.7,34.6,34.7,35.4,36.4,37.3,38.7,40,41.6,43.2,44.8,46.2,47.4,48.4,49,49.5,50,50.9,51.5,52.2,52.8,53.8,55.3,57.6,59.8,61.7,63.6,65.59999999999999,67.5,68.8]}]],[[{\"lng\":[-54.5,-54.9,-55.1,-55.3,-55.5,-55.7,-55.8,-55.9,-56.2,-56.4,-56.6,-56.8,-57,-57.2,-57.2,-57.1,-57,-56.9,-56.7,-56.8,-57.2,-57.6,-58.2,-60.1,-62.2,-63.7,-63.8,-62.8],\"lat\":[13.3,13.5,13.9,14.4,14.9,15.6,16.2,16.7,17.2,17.5,17.7,17.9,18.1,18.5,18.9,19.4,19.9,20.8,22.4,23.8,25.2,26.7,28.3,30.2,30.5,30.2,29.2,28.6]}]],[[{\"lng\":[-69.90000000000001,-70.7,-71.5,-72.3,-73,-73.8,-74.7,-75.90000000000001,-77.2,-78.8,-80.3,-81.59999999999999,-82.7,-84,-85.2,-86.2,-86.90000000000001,-87.3,-87.59999999999999,-88.3,-89.09999999999999,-89.90000000000001,-90.7,-91.5,-92.3,-93,-93.59999999999999,-93.7,-94.09999999999999,-94.09999999999999,-94,-93.59999999999999,-92.5,-91.40000000000001,-90.09999999999999,-88],\"lat\":[21.3,21.6,21.9,22.2,22.4,22.6,22.8,23.1,23.3,23.5,23.7,23.9,24.1,24.2,24.2,24.3,24.5,24.7,24.8,25.2,25.6,26,26.5,27.1,27.8,28.6,29.4,29.7,30.5,31.6,32.7,33.7,34.7,35.8,37,39.5]}]],[[{\"lng\":[-43.6,-44.7,-45.7,-46,-46.4,-46.7,-47.4,-48.4,-49.3,-49.9,-50.4,-51.1,-52,-53.2,-54.1,-54.9,-55.6,-56.6,-57.7,-58.9,-60.1],\"lat\":[13.3,13.8,13.8,13.4,13.5,13.9,14.4,14.5,14.6,14.8,15.1,15.5,16,16.1,16.1,16.1,16.7,17.1,17.3,17.6,18]}]],[[{\"lng\":[-57.4,-58.5,-60.1,-62,-63.3,-64.5,-65.2,-66,-67.5,-68.90000000000001,-70,-71,-71.7,-71.8,-71.7,-71.90000000000001,-72.40000000000001,-73,-73.5,-73.5,-73.5,-73,-73,-73.40000000000001,-73.8,-73.8,-73.8],\"lat\":[26.1,27.7,28.8,29.3,29.3,29.5,30,30.7,31.6,32.5,33.5,34.3,35.5,36.7,37.8,38.5,38.8,38.9,38.7,38.3,37.7,37.2,37.8,38,37.6,38.6,39.6]}]],[[{\"lng\":[-78.5,-78.8,-79,-79.2,-79.40000000000001,-79.59999999999999,-79.59999999999999,-79.7,-79.8,-79.90000000000001,-79.90000000000001,-80.3,-81.09999999999999,-81.8,-82.2,-82.8,-83.40000000000001,-84,-84.7,-85.2,-85.5,-85.8,-86.09999999999999,-86.40000000000001,-86.7,-86.8,-86.8,-86.90000000000001,-87,-87.09999999999999,-87.09999999999999,-87,-86.8,-86.09999999999999,-85.40000000000001,-84.3,-83.09999999999999,-81.7,-81,-78.8,-76,-72,-67.90000000000001,-63.5,-60,-57.5,-55,-52],\"lat\":[17.6,17.6,17.5,17.5,17.5,17.4,16.9,16.3,16,15.8,15.7,16.2,16.6,16.6,17,17.3,17.4,17.9,18.1,18.3,18.6,19.1,19.5,20.1,20.3,20.6,20.6,20.8,20.8,21,21.3,21.6,21.8,22.4,23.1,24,25,25.9,26.2,28,30.1,33.3,36.8,40.5,42.5,44,45,45.5]}]]],null,null,{\"stroke\":true,\"color\":\"#03F\",\"weight\":5,\"opacity\":0.5,\"fill\":false,\"fillColor\":\"#03F\",\"fillOpacity\":0.2,\"smoothFactor\":1,\"noClip\":false,\"yawn\":60,\"size\":\"15%\",\"frequency\":\"allvertices\",\"proportionalToTotal\":false},null,null,null,{\"interactive\":false,\"permanent\":false,\"direction\":\"auto\",\"opacity\":1,\"offset\":[0,0],\"textsize\":\"10px\",\"textOnly\":false,\"className\":\"\",\"sticky\":true},null,{\"yawn\":60,\"size\":\"15%\",\"frequency\":\"allvertices\",\"proportionalToTotal\":false}]}],\"limits\":{\"lat\":[10.7,68.8],\"lng\":[-101.4,6.6]}},\"evals\":[],\"jsHooks\":[]}"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addBuildings.html","id":null,"dir":"Reference","previous_headings":"","what":"Add OSM-Buildings to a Leaflet Map — addBuildings","title":"Add OSM-Buildings to a Leaflet Map — addBuildings","text":"function adds 2.5D buildings Leaflet map using OSM Buildings plugin.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addBuildings.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add OSM-Buildings to a Leaflet Map — addBuildings","text":"","code":"addBuildings( map, buildingURL = \"https://{s}.data.osmbuildings.org/0.2/59fcc2e8/tile/{z}/{x}/{y}.json\", group = NULL, eachFn = NULL, clickFn = NULL, data = NULL )"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addBuildings.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add OSM-Buildings to a Leaflet Map — addBuildings","text":"map map widget object created leaflet. buildingURL URL template building data. Default OSM Buildings tile server: \"https://{s}.data.osmbuildings.org/0.2/59fcc2e8/tile/{z}/{x}/{y}.json\". group name group buildings added . eachFn JavaScript function (using JS) called building feature. Use apply custom logic feature. clickFn JavaScript function (using JS) called building clicked. Use handle click events buildings. data GeoJSON object containing Polygon features representing buildings. properties polygons can include attributes like height, color, roofColor, others specified OSM Buildings documentation.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addBuildings.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add OSM-Buildings to a Leaflet Map — addBuildings","text":"`data` parameter allows provide custom building data GeoJSON object. following properties can used within GeoJSON: height minHeight color/wallColor material roofColor roofMaterial shape roofShape roofHeight See OSM Wiki: Simple_3D_Buildings","code":""},{"path":[]},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addBuildings.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add OSM-Buildings to a Leaflet Map — addBuildings","text":"","code":"library(leaflet) library(leaflet.extras2) leaflet() %>% addProviderTiles(\"CartoDB\") %>% addBuildings(group = \"Buildings\") %>% addLayersControl(overlayGroups = \"Buildings\") %>% setView(lng = 13.4, lat = 52.51, zoom = 15) {\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}}},\"calls\":[{\"method\":\"addProviderTiles\",\"args\":[\"CartoDB\",null,null,{\"errorTileUrl\":\"\",\"noWrap\":false,\"detectRetina\":false}]},{\"method\":\"addBuilding\",\"args\":[\"https://{s}.data.osmbuildings.org/0.2/59fcc2e8/tile/{z}/{x}/{y}.json\",\"Buildings\",null,null,null]},{\"method\":\"addLayersControl\",\"args\":[[],\"Buildings\",{\"collapsed\":true,\"autoZIndex\":true,\"position\":\"topright\"}]}],\"setView\":[[52.51,13.4],15,[]]},\"evals\":[],\"jsHooks\":[]}"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addClusterCharts.html","id":null,"dir":"Reference","previous_headings":"","what":"addClusterCharts — addClusterCharts","title":"addClusterCharts — addClusterCharts","text":"Clusters markers Leaflet map visualizes using customizable charts, pie bar charts, showing counts category. using \"custom\" type, pie chart rendered aggregated data, employing methods like sum, min, max, mean, median.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addClusterCharts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"addClusterCharts — addClusterCharts","text":"","code":"addClusterCharts( map, layerId = NULL, group = NULL, type = c(\"pie\", \"bar\", \"horizontal\", \"custom\"), aggregation = c(\"sum\", \"min\", \"max\", \"mean\", \"median\"), valueField = NULL, options = clusterchartOptions(), icon = NULL, html = NULL, popup = NULL, popupOptions = NULL, label = NULL, labelOptions = NULL, clusterOptions = NULL, clusterId = NULL, categoryField, categoryMap, popupFields = NULL, popupLabels = NULL, markerOptions = NULL, legendOptions = list(title = \"\", position = \"topright\"), data = getMapData(map) )"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addClusterCharts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"addClusterCharts — addClusterCharts","text":"map map widget object created leaflet() layerId layer id group name group newly created layers belong (clearGroup addLayersControl purposes). Human-friendly group names permitted–need short, identifier-style names. number layers even different types layers (e.g. markers polygons) can share group name. type type chart use clusters: \"pie\", \"bar\", \"horizontal\", \"custom\". aggregation Aggregation method \"custom\" charts (e.g., sum, min, max, mean, median). valueField Column name values aggregate \"custom\" charts. options Additional options cluster charts (see clusterchartOptions). icon icon set icons include, created makeIcon iconList. html column name containing HTML content include markers. popup column name used retrieve feature properties popup. popupOptions Vector popupOptions provide popups label character vector HTML content labels labelOptions Vector labelOptions provide label options label. Default NULL clusterOptions NULL, markers clustered using Leaflet.markercluster; can use markerClusterOptions() specify marker cluster options clusterId id marker cluster layer categoryField Column name categorizing charts. categoryMap data.frame mapping categories chart properties (e.g., label, color, icons, stroke). popupFields string vector strings indicating column names include popups. popupLabels string vector strings indicating labels popup fields. markerOptions Additional options markers (see markerOptions::markerOptions()). legendOptions list options legend, including title position. data data object argument values derived; default, data object provided leaflet() initially, can overridden","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addClusterCharts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"addClusterCharts — addClusterCharts","text":"`clusterCharts` use Leaflet's `L.DivIcon`, allowing fully customize styling individual markers clusters using CSS. individual marker within cluster assigned CSS class `clustermarker`, entire cluster assigned class `clustermarker-cluster`. can modify appearance elements targeting classes custom CSS.","code":""},{"path":[]},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addClusterCharts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"addClusterCharts — addClusterCharts","text":"","code":"# Example usage: library(sf) #> Linking to GEOS 3.10.2, GDAL 3.4.1, PROJ 8.2.1; sf_use_s2() is TRUE library(leaflet) library(leaflet.extras2) data <- sf::st_as_sf(breweries91) categories <- c(\"Schwer\", \"Mäßig\", \"Leicht\", \"kein Schaden\") data$category <- sample(categories, size = nrow(data), replace = TRUE) ## Pie Chart leaflet() %>% addProviderTiles(\"CartoDB.Positron\") %>% leaflet::addLayersControl(overlayGroups = \"clustermarkers\") %>% addClusterCharts(data = data , categoryField = \"category\" , categoryMap = data.frame(labels = categories, colors = c(\"#F88\", \"#FA0\", \"#FF3\", \"#BFB\"), strokes = \"gray\") , group = \"clustermarkers\" , popupFields = c(\"brewery\", \"address\", \"zipcode\", \"category\") , popupLabels = c(\"Brauerei\", \"Adresse\", \"PLZ\", \"Art\") , label = \"brewery\" ) {\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}}},\"calls\":[{\"method\":\"addProviderTiles\",\"args\":[\"CartoDB.Positron\",null,null,{\"errorTileUrl\":\"\",\"noWrap\":false,\"detectRetina\":false}]},{\"method\":\"addLayersControl\",\"args\":[[],\"clustermarkers\",{\"collapsed\":true,\"autoZIndex\":true,\"position\":\"topright\"}]},{\"method\":\"addClusterCharts\",\"args\":[{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Rittmayer\",\"address\":\"Aischer Hauptstrasse 5\",\"zipcode\":91325,\"village\":\"Adelsdorf\",\"state\":\"Bayern\",\"web\":\"www.rittmayer-aisch.de\\u003c/a>\",\"founded\":1422,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.889217,49.71979]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Aufsesser Brauerei\",\"address\":\"Im Tal 70b\",\"zipcode\":91347,\"village\":\"Aufsess\",\"state\":\"Bayern\",\"web\":\"www.aufsesser.de\\u003c/a>\",\"founded\":1886,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.228988,49.884051]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauhaus Doebler\",\"address\":\"Kornmarkt 6\",\"zipcode\":91438,\"village\":\"Bad Windsheim\",\"state\":\"Bayern\",\"web\":\"www.brauhaus-doebler.de\\u003c/a>\",\"founded\":1867,\"category\":\"kein Schaden\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.416021,49.502098]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gundel GmbH\",\"address\":\"Noerdlinger Strasse 15\",\"zipcode\":91126,\"village\":\"Barthelmesaurach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-gundel.de\\u003c/a>\",\"founded\":1887,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.928096,49.274716]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Krug-Braeu\",\"address\":\"Breitenlesau 1b\",\"zipcode\":91344,\"village\":\"Waischenfeld\",\"state\":\"Bayern\",\"web\":\"www.krug-braeu.de\\u003c/a>\",\"founded\":1834,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.291932,49.861905]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei-Gasthof Herold\",\"address\":\"Marktstrasse 29\",\"zipcode\":91257,\"village\":\"Buechenbach\",\"state\":\"Bayern\",\"web\":\"www.beckn-bier.de\\u003c/a>\",\"founded\":1568,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.509409,49.794334]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Alt Dietzhof\",\"address\":\"Dietzhof 42\",\"zipcode\":91359,\"village\":\"Leutenbach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-alt.de\\u003c/a>\",\"founded\":1886,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.163238,49.701477]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hauf KG\",\"address\":\"Heiningerstrasse 28\",\"zipcode\":91550,\"village\":\"Dinkelsbuehl\",\"state\":\"Bayern\",\"web\":\"www.hauf-bier.de\\u003c/a>\",\"founded\":1901,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.34418,49.067436]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Weib's Brauhaus Dinkelsbuehl\",\"address\":\"Untere Schmiedgasse 13\",\"zipcode\":91550,\"village\":\"Dinkelsbuehl\",\"state\":\"Bayern\",\"web\":\"www.weibsbrauhaus.de\\u003c/a>\",\"founded\":1999,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.316987,49.070292]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Schwanenbraeu\",\"address\":\"Am Marktplatz 2\",\"zipcode\":91320,\"village\":\"Ebermannstadt\",\"state\":\"Bayern\",\"web\":\"www.schwanenbraeu.de\\u003c/a>\",\"founded\":null,\"category\":\"kein Schaden\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.186931,49.77994]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Fuerst Carl Schlossbrauerei Ellingen\",\"address\":\"Schloss-Strasse 10\",\"zipcode\":91792,\"village\":\"Ellingen\",\"state\":\"Bayern\",\"web\":\"www.fuerst-carl.de\\u003c/a>\",\"founded\":1690,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.965571,49.060542]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Enzensteiner\",\"address\":\"Enzenreuth 8\",\"zipcode\":91220,\"village\":\"Schnaittach\",\"state\":\"Bayern\",\"web\":\"www.enzensteiner.de\\u003c/a>\",\"founded\":1998,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.368508,49.561804]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Kitzmann-Braeu GmbH & Co. Kg\",\"address\":\"Suedliche Stadtmauerstrasse 25\",\"zipcode\":91054,\"village\":\"Erlangen\",\"state\":\"Bayern\",\"web\":\"www.kitzmann.de\\u003c/a>\",\"founded\":1712,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.009011,49.595108]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Steinbach Braeu\",\"address\":\"Vierzigmannstrasse 4\",\"zipcode\":91054,\"village\":\"Erlangen\",\"state\":\"Bayern\",\"web\":\"www.steinbach-braeu.de\\u003c/a>\",\"founded\":1861,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.005049,49.602554]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Greif\",\"address\":\"Serlbacher Strasse 10\",\"zipcode\":91301,\"village\":\"Forchheim\",\"state\":\"Bayern\",\"web\":\"www.brauerei-greif.de\\u003c/a>\",\"founded\":1848,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.059662,49.72581]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hebendanz GmbH\",\"address\":\"Sattlertorstrasse 14\",\"zipcode\":91301,\"village\":\"Forchheim\",\"state\":\"Bayern\",\"web\":\"www.brauerei-hebendanz.de\\u003c/a>\",\"founded\":1579,\"category\":\"kein Schaden\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.056749,49.7202]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Friedmann\",\"address\":\"Jaegersberg 16\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.brauerei-friedmann.de\\u003c/a>\",\"founded\":1875,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.252699,49.644533]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Lindenbraeu\",\"address\":\"Am Bach 3\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.lindenbraeu.de\\u003c/a>\",\"founded\":1932,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.248618,49.645651]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Windsheimer GmbH\",\"address\":\"Hauptstrasse 13\",\"zipcode\":91468,\"village\":\"Gutenstetten\",\"state\":\"Bayern\",\"web\":\"www.brauerei-windsheimer.de\\u003c/a>\",\"founded\":1767,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.630027,49.615866]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Buergerbraeu Hersbruck, Deinlein & Co.\",\"address\":\"Lohweg 38\",\"zipcode\":91217,\"village\":\"Hersbruck\",\"state\":\"Bayern\",\"web\":\"www.hersbrucker-bier.de\\u003c/a>\",\"founded\":1920,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.428338,49.50683]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Hochholzer Brauhaus Poeverlein GbR\",\"address\":\"Hochholz 4a\",\"zipcode\":91807,\"village\":\"Solnhofen\",\"state\":\"Bayern\",\"web\":\"www.hochholzer-brauhaus.de\\u003c/a>\",\"founded\":2005,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.029479,48.900742]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauhaus Hoechstadt\",\"address\":\"Kellerstrasse 11\",\"zipcode\":91315,\"village\":\"Hoechstadt\",\"state\":\"Bayern\",\"web\":\"www.brauhaus-hoechstadt.de\\u003c/a>\",\"founded\":1926,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.806113,49.707329]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei und Gasthof Reichold GmbH\",\"address\":\"Hochstahl 24\",\"zipcode\":91347,\"village\":\"Aufsess\",\"state\":\"Bayern\",\"web\":\"www.brauerei-reichold.de\\u003c/a>\",\"founded\":1906,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.267583,49.884229]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hofmann/Nentwig GbR\",\"address\":\"Hohenschwaerz 16\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.brauerei-hofmann.de\\u003c/a>\",\"founded\":1897,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.252911,49.677827]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Leinburger Bier\",\"address\":\"Marktplatz 14\",\"zipcode\":91227,\"village\":\"Leinburg\",\"state\":\"Bayern\",\"web\":\"www.leinburgerbier.de\\u003c/a>\",\"founded\":1617,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.308721,49.450083]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gasthof Drummer\",\"address\":\"Dorfstrasse 10\",\"zipcode\":91359,\"village\":\"Lautenbach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-gasthof-drummer.de\\u003c/a>\",\"founded\":1738,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.172792,49.710838]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Hauff Braeu Lichtnerau GmbH & Co. KG\",\"address\":\"Marktplatz 1\",\"zipcode\":91586,\"village\":\"Lichtenau\",\"state\":\"Bayern\",\"web\":\"www.hauff-braeu.com\\u003c/a>\",\"founded\":null,\"category\":\"kein Schaden\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.685605,49.276265]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Wiethaler\",\"address\":\"Welserplatz 6-7\",\"zipcode\":91207,\"village\":\"Neunhof bei Lauf a.d. Pegnitz\",\"state\":\"Bayern\",\"web\":\"www.brauerei-wiethaler.de\\u003c/a>\",\"founded\":1498,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.22997,49.554706]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gasthof Ott\",\"address\":\"Oberleinleiter 6\",\"zipcode\":91332,\"village\":\"Heiligenstadt i. Ofr.\",\"state\":\"Bayern\",\"web\":\"www.brauerei-ott.de\\u003c/a>\",\"founded\":1678,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.129541,49.882777]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Penning-Zeissler\",\"address\":\"Hetzelsdorf 9\",\"zipcode\":91362,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":null,\"founded\":1623,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.202701,49.727998]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Meister\",\"address\":\"Unterzaunsbach 8\",\"zipcode\":91362,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":\"www.meisterbr%C3%A4u.de\\u003c/a>\",\"founded\":1865,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.223148,49.737703]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Nikl\",\"address\":\"Egloffsteiner Strasse 19\",\"zipcode\":91363,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":\"www.brauerei-nikl.de\\u003c/a>\",\"founded\":2008,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.175664,49.755953]}}]},null,\"clustermarkers\",\"pie\",{\"rmax\":30,\"size\":[20,20],\"width\":40,\"height\":50,\"strokeWidth\":1,\"innerRadius\":10,\"labelBackground\":false,\"labelFill\":\"white\",\"labelStroke\":\"black\",\"labelColor\":\"black\",\"labelOpacity\":0.9,\"digits\":2,\"sortTitlebyCount\":true,\"aggregation\":\"sum\"},null,null,null,null,\"brewery\",{\"interactive\":false,\"permanent\":false,\"direction\":\"auto\",\"opacity\":1,\"offset\":[0,0],\"textsize\":\"10px\",\"textOnly\":false,\"className\":\"\",\"sticky\":true},null,null,\"category\",{\"1\":\"Schwer\",\"2\":\"Mäßig\",\"3\":\"Leicht\",\"4\":\"kein Schaden\"},[\"brewery\",\"address\",\"zipcode\",\"category\"],[\"Brauerei\",\"Adresse\",\"PLZ\",\"Art\"],null,{\"title\":\"\",\"position\":\"topright\"}]}],\"limits\":{\"lat\":[48.900742,49.884229],\"lng\":[10.316987,11.509409]}},\"evals\":[],\"jsHooks\":[]} ## Bar Chart leaflet() %>% addProviderTiles(\"CartoDB.Positron\") %>% leaflet::addLayersControl(overlayGroups = \"clustermarkers\") %>% addClusterCharts(data = data , type = \"bar\" , categoryField = \"category\" , categoryMap = data.frame(labels = categories, colors = c(\"#F88\", \"#FA0\", \"#FF3\", \"#BFB\"), strokes = \"gray\") , group = \"clustermarkers\" , popupFields = c(\"brewery\", \"address\", \"zipcode\", \"category\") , popupLabels = c(\"Brauerei\", \"Adresse\", \"PLZ\", \"Art\") , label = \"brewery\") {\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}}},\"calls\":[{\"method\":\"addProviderTiles\",\"args\":[\"CartoDB.Positron\",null,null,{\"errorTileUrl\":\"\",\"noWrap\":false,\"detectRetina\":false}]},{\"method\":\"addLayersControl\",\"args\":[[],\"clustermarkers\",{\"collapsed\":true,\"autoZIndex\":true,\"position\":\"topright\"}]},{\"method\":\"addClusterCharts\",\"args\":[{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Rittmayer\",\"address\":\"Aischer Hauptstrasse 5\",\"zipcode\":91325,\"village\":\"Adelsdorf\",\"state\":\"Bayern\",\"web\":\"www.rittmayer-aisch.de\\u003c/a>\",\"founded\":1422,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.889217,49.71979]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Aufsesser Brauerei\",\"address\":\"Im Tal 70b\",\"zipcode\":91347,\"village\":\"Aufsess\",\"state\":\"Bayern\",\"web\":\"www.aufsesser.de\\u003c/a>\",\"founded\":1886,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.228988,49.884051]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauhaus Doebler\",\"address\":\"Kornmarkt 6\",\"zipcode\":91438,\"village\":\"Bad Windsheim\",\"state\":\"Bayern\",\"web\":\"www.brauhaus-doebler.de\\u003c/a>\",\"founded\":1867,\"category\":\"kein Schaden\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.416021,49.502098]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gundel GmbH\",\"address\":\"Noerdlinger Strasse 15\",\"zipcode\":91126,\"village\":\"Barthelmesaurach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-gundel.de\\u003c/a>\",\"founded\":1887,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.928096,49.274716]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Krug-Braeu\",\"address\":\"Breitenlesau 1b\",\"zipcode\":91344,\"village\":\"Waischenfeld\",\"state\":\"Bayern\",\"web\":\"www.krug-braeu.de\\u003c/a>\",\"founded\":1834,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.291932,49.861905]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei-Gasthof Herold\",\"address\":\"Marktstrasse 29\",\"zipcode\":91257,\"village\":\"Buechenbach\",\"state\":\"Bayern\",\"web\":\"www.beckn-bier.de\\u003c/a>\",\"founded\":1568,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.509409,49.794334]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Alt Dietzhof\",\"address\":\"Dietzhof 42\",\"zipcode\":91359,\"village\":\"Leutenbach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-alt.de\\u003c/a>\",\"founded\":1886,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.163238,49.701477]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hauf KG\",\"address\":\"Heiningerstrasse 28\",\"zipcode\":91550,\"village\":\"Dinkelsbuehl\",\"state\":\"Bayern\",\"web\":\"www.hauf-bier.de\\u003c/a>\",\"founded\":1901,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.34418,49.067436]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Weib's Brauhaus Dinkelsbuehl\",\"address\":\"Untere Schmiedgasse 13\",\"zipcode\":91550,\"village\":\"Dinkelsbuehl\",\"state\":\"Bayern\",\"web\":\"www.weibsbrauhaus.de\\u003c/a>\",\"founded\":1999,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.316987,49.070292]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Schwanenbraeu\",\"address\":\"Am Marktplatz 2\",\"zipcode\":91320,\"village\":\"Ebermannstadt\",\"state\":\"Bayern\",\"web\":\"www.schwanenbraeu.de\\u003c/a>\",\"founded\":null,\"category\":\"kein Schaden\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.186931,49.77994]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Fuerst Carl Schlossbrauerei Ellingen\",\"address\":\"Schloss-Strasse 10\",\"zipcode\":91792,\"village\":\"Ellingen\",\"state\":\"Bayern\",\"web\":\"www.fuerst-carl.de\\u003c/a>\",\"founded\":1690,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.965571,49.060542]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Enzensteiner\",\"address\":\"Enzenreuth 8\",\"zipcode\":91220,\"village\":\"Schnaittach\",\"state\":\"Bayern\",\"web\":\"www.enzensteiner.de\\u003c/a>\",\"founded\":1998,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.368508,49.561804]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Kitzmann-Braeu GmbH & Co. Kg\",\"address\":\"Suedliche Stadtmauerstrasse 25\",\"zipcode\":91054,\"village\":\"Erlangen\",\"state\":\"Bayern\",\"web\":\"www.kitzmann.de\\u003c/a>\",\"founded\":1712,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.009011,49.595108]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Steinbach Braeu\",\"address\":\"Vierzigmannstrasse 4\",\"zipcode\":91054,\"village\":\"Erlangen\",\"state\":\"Bayern\",\"web\":\"www.steinbach-braeu.de\\u003c/a>\",\"founded\":1861,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.005049,49.602554]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Greif\",\"address\":\"Serlbacher Strasse 10\",\"zipcode\":91301,\"village\":\"Forchheim\",\"state\":\"Bayern\",\"web\":\"www.brauerei-greif.de\\u003c/a>\",\"founded\":1848,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.059662,49.72581]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hebendanz GmbH\",\"address\":\"Sattlertorstrasse 14\",\"zipcode\":91301,\"village\":\"Forchheim\",\"state\":\"Bayern\",\"web\":\"www.brauerei-hebendanz.de\\u003c/a>\",\"founded\":1579,\"category\":\"kein Schaden\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.056749,49.7202]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Friedmann\",\"address\":\"Jaegersberg 16\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.brauerei-friedmann.de\\u003c/a>\",\"founded\":1875,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.252699,49.644533]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Lindenbraeu\",\"address\":\"Am Bach 3\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.lindenbraeu.de\\u003c/a>\",\"founded\":1932,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.248618,49.645651]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Windsheimer GmbH\",\"address\":\"Hauptstrasse 13\",\"zipcode\":91468,\"village\":\"Gutenstetten\",\"state\":\"Bayern\",\"web\":\"www.brauerei-windsheimer.de\\u003c/a>\",\"founded\":1767,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.630027,49.615866]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Buergerbraeu Hersbruck, Deinlein & Co.\",\"address\":\"Lohweg 38\",\"zipcode\":91217,\"village\":\"Hersbruck\",\"state\":\"Bayern\",\"web\":\"www.hersbrucker-bier.de\\u003c/a>\",\"founded\":1920,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.428338,49.50683]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Hochholzer Brauhaus Poeverlein GbR\",\"address\":\"Hochholz 4a\",\"zipcode\":91807,\"village\":\"Solnhofen\",\"state\":\"Bayern\",\"web\":\"www.hochholzer-brauhaus.de\\u003c/a>\",\"founded\":2005,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.029479,48.900742]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauhaus Hoechstadt\",\"address\":\"Kellerstrasse 11\",\"zipcode\":91315,\"village\":\"Hoechstadt\",\"state\":\"Bayern\",\"web\":\"www.brauhaus-hoechstadt.de\\u003c/a>\",\"founded\":1926,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.806113,49.707329]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei und Gasthof Reichold GmbH\",\"address\":\"Hochstahl 24\",\"zipcode\":91347,\"village\":\"Aufsess\",\"state\":\"Bayern\",\"web\":\"www.brauerei-reichold.de\\u003c/a>\",\"founded\":1906,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.267583,49.884229]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hofmann/Nentwig GbR\",\"address\":\"Hohenschwaerz 16\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.brauerei-hofmann.de\\u003c/a>\",\"founded\":1897,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.252911,49.677827]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Leinburger Bier\",\"address\":\"Marktplatz 14\",\"zipcode\":91227,\"village\":\"Leinburg\",\"state\":\"Bayern\",\"web\":\"www.leinburgerbier.de\\u003c/a>\",\"founded\":1617,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.308721,49.450083]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gasthof Drummer\",\"address\":\"Dorfstrasse 10\",\"zipcode\":91359,\"village\":\"Lautenbach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-gasthof-drummer.de\\u003c/a>\",\"founded\":1738,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.172792,49.710838]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Hauff Braeu Lichtnerau GmbH & Co. KG\",\"address\":\"Marktplatz 1\",\"zipcode\":91586,\"village\":\"Lichtenau\",\"state\":\"Bayern\",\"web\":\"www.hauff-braeu.com\\u003c/a>\",\"founded\":null,\"category\":\"kein Schaden\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.685605,49.276265]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Wiethaler\",\"address\":\"Welserplatz 6-7\",\"zipcode\":91207,\"village\":\"Neunhof bei Lauf a.d. Pegnitz\",\"state\":\"Bayern\",\"web\":\"www.brauerei-wiethaler.de\\u003c/a>\",\"founded\":1498,\"category\":\"Schwer\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.22997,49.554706]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gasthof Ott\",\"address\":\"Oberleinleiter 6\",\"zipcode\":91332,\"village\":\"Heiligenstadt i. Ofr.\",\"state\":\"Bayern\",\"web\":\"www.brauerei-ott.de\\u003c/a>\",\"founded\":1678,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.129541,49.882777]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Penning-Zeissler\",\"address\":\"Hetzelsdorf 9\",\"zipcode\":91362,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":null,\"founded\":1623,\"category\":\"Mäßig\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.202701,49.727998]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Meister\",\"address\":\"Unterzaunsbach 8\",\"zipcode\":91362,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":\"www.meisterbr%C3%A4u.de\\u003c/a>\",\"founded\":1865,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.223148,49.737703]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Nikl\",\"address\":\"Egloffsteiner Strasse 19\",\"zipcode\":91363,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":\"www.brauerei-nikl.de\\u003c/a>\",\"founded\":2008,\"category\":\"Leicht\"},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.175664,49.755953]}}]},null,\"clustermarkers\",\"bar\",{\"rmax\":30,\"size\":[20,20],\"width\":40,\"height\":50,\"strokeWidth\":1,\"innerRadius\":10,\"labelBackground\":false,\"labelFill\":\"white\",\"labelStroke\":\"black\",\"labelColor\":\"black\",\"labelOpacity\":0.9,\"digits\":2,\"sortTitlebyCount\":true,\"aggregation\":\"sum\"},null,null,null,null,\"brewery\",{\"interactive\":false,\"permanent\":false,\"direction\":\"auto\",\"opacity\":1,\"offset\":[0,0],\"textsize\":\"10px\",\"textOnly\":false,\"className\":\"\",\"sticky\":true},null,null,\"category\",{\"1\":\"Schwer\",\"2\":\"Mäßig\",\"3\":\"Leicht\",\"4\":\"kein Schaden\"},[\"brewery\",\"address\",\"zipcode\",\"category\"],[\"Brauerei\",\"Adresse\",\"PLZ\",\"Art\"],null,{\"title\":\"\",\"position\":\"topright\"}]}],\"limits\":{\"lat\":[48.900742,49.884229],\"lng\":[10.316987,11.509409]}},\"evals\":[],\"jsHooks\":[]} ## Custom Pie Chart with \"mean\" aggregation on column \"value\" data <- sf::st_as_sf(breweries91) categories <- c(\"Schwer\", \"Mäßig\", \"Leicht\", \"kein Schaden\") data$category <- sample(categories, size = nrow(data), replace = TRUE) data$value <- round(runif(nrow(data), 0, 100), 0) leaflet() %>% addProviderTiles(\"CartoDB.Positron\") %>% leaflet::addLayersControl(overlayGroups = \"clustermarkers\") %>% addClusterCharts(data = data , type = \"custom\" , valueField = \"value\" , aggregation = \"mean\" , categoryField = \"category\" , categoryMap = data.frame(labels = categories, colors = c(\"#F88\", \"#FA0\", \"#FF3\", \"#BFB\"), strokes = \"gray\") , options = clusterchartOptions(rmax=50, digits=0, innerRadius = 20) , group = \"clustermarkers\" , popupFields = c(\"brewery\", \"address\", \"zipcode\", \"category\",\"value\") , popupLabels = c(\"Brauerei\", \"Adresse\", \"PLZ\", \"Art\", \"Value\") , label = \"brewery\" ) {\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}}},\"calls\":[{\"method\":\"addProviderTiles\",\"args\":[\"CartoDB.Positron\",null,null,{\"errorTileUrl\":\"\",\"noWrap\":false,\"detectRetina\":false}]},{\"method\":\"addLayersControl\",\"args\":[[],\"clustermarkers\",{\"collapsed\":true,\"autoZIndex\":true,\"position\":\"topright\"}]},{\"method\":\"addClusterCharts\",\"args\":[{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Rittmayer\",\"address\":\"Aischer Hauptstrasse 5\",\"zipcode\":91325,\"village\":\"Adelsdorf\",\"state\":\"Bayern\",\"web\":\"www.rittmayer-aisch.de\\u003c/a>\",\"founded\":1422,\"category\":\"kein Schaden\",\"value\":60.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.889217,49.71979]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Aufsesser Brauerei\",\"address\":\"Im Tal 70b\",\"zipcode\":91347,\"village\":\"Aufsess\",\"state\":\"Bayern\",\"web\":\"www.aufsesser.de\\u003c/a>\",\"founded\":1886,\"category\":\"kein Schaden\",\"value\":19.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.228988,49.884051]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauhaus Doebler\",\"address\":\"Kornmarkt 6\",\"zipcode\":91438,\"village\":\"Bad Windsheim\",\"state\":\"Bayern\",\"web\":\"www.brauhaus-doebler.de\\u003c/a>\",\"founded\":1867,\"category\":\"Mäßig\",\"value\":95.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.416021,49.502098]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gundel GmbH\",\"address\":\"Noerdlinger Strasse 15\",\"zipcode\":91126,\"village\":\"Barthelmesaurach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-gundel.de\\u003c/a>\",\"founded\":1887,\"category\":\"Leicht\",\"value\":54.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.928096,49.274716]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Krug-Braeu\",\"address\":\"Breitenlesau 1b\",\"zipcode\":91344,\"village\":\"Waischenfeld\",\"state\":\"Bayern\",\"web\":\"www.krug-braeu.de\\u003c/a>\",\"founded\":1834,\"category\":\"Schwer\",\"value\":54.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.291932,49.861905]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei-Gasthof Herold\",\"address\":\"Marktstrasse 29\",\"zipcode\":91257,\"village\":\"Buechenbach\",\"state\":\"Bayern\",\"web\":\"www.beckn-bier.de\\u003c/a>\",\"founded\":1568,\"category\":\"Mäßig\",\"value\":28.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.509409,49.794334]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Alt Dietzhof\",\"address\":\"Dietzhof 42\",\"zipcode\":91359,\"village\":\"Leutenbach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-alt.de\\u003c/a>\",\"founded\":1886,\"category\":\"Leicht\",\"value\":45.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.163238,49.701477]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hauf KG\",\"address\":\"Heiningerstrasse 28\",\"zipcode\":91550,\"village\":\"Dinkelsbuehl\",\"state\":\"Bayern\",\"web\":\"www.hauf-bier.de\\u003c/a>\",\"founded\":1901,\"category\":\"Leicht\",\"value\":37.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.34418,49.067436]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Weib's Brauhaus Dinkelsbuehl\",\"address\":\"Untere Schmiedgasse 13\",\"zipcode\":91550,\"village\":\"Dinkelsbuehl\",\"state\":\"Bayern\",\"web\":\"www.weibsbrauhaus.de\\u003c/a>\",\"founded\":1999,\"category\":\"kein Schaden\",\"value\":3.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.316987,49.070292]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Schwanenbraeu\",\"address\":\"Am Marktplatz 2\",\"zipcode\":91320,\"village\":\"Ebermannstadt\",\"state\":\"Bayern\",\"web\":\"www.schwanenbraeu.de\\u003c/a>\",\"founded\":null,\"category\":\"Schwer\",\"value\":47.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.186931,49.77994]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Fuerst Carl Schlossbrauerei Ellingen\",\"address\":\"Schloss-Strasse 10\",\"zipcode\":91792,\"village\":\"Ellingen\",\"state\":\"Bayern\",\"web\":\"www.fuerst-carl.de\\u003c/a>\",\"founded\":1690,\"category\":\"Mäßig\",\"value\":39.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.965571,49.060542]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Enzensteiner\",\"address\":\"Enzenreuth 8\",\"zipcode\":91220,\"village\":\"Schnaittach\",\"state\":\"Bayern\",\"web\":\"www.enzensteiner.de\\u003c/a>\",\"founded\":1998,\"category\":\"Schwer\",\"value\":2.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.368508,49.561804]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Kitzmann-Braeu GmbH & Co. Kg\",\"address\":\"Suedliche Stadtmauerstrasse 25\",\"zipcode\":91054,\"village\":\"Erlangen\",\"state\":\"Bayern\",\"web\":\"www.kitzmann.de\\u003c/a>\",\"founded\":1712,\"category\":\"Mäßig\",\"value\":38.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.009011,49.595108]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Steinbach Braeu\",\"address\":\"Vierzigmannstrasse 4\",\"zipcode\":91054,\"village\":\"Erlangen\",\"state\":\"Bayern\",\"web\":\"www.steinbach-braeu.de\\u003c/a>\",\"founded\":1861,\"category\":\"Leicht\",\"value\":56.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.005049,49.602554]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Greif\",\"address\":\"Serlbacher Strasse 10\",\"zipcode\":91301,\"village\":\"Forchheim\",\"state\":\"Bayern\",\"web\":\"www.brauerei-greif.de\\u003c/a>\",\"founded\":1848,\"category\":\"Mäßig\",\"value\":86.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.059662,49.72581]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hebendanz GmbH\",\"address\":\"Sattlertorstrasse 14\",\"zipcode\":91301,\"village\":\"Forchheim\",\"state\":\"Bayern\",\"web\":\"www.brauerei-hebendanz.de\\u003c/a>\",\"founded\":1579,\"category\":\"kein Schaden\",\"value\":38.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.056749,49.7202]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Friedmann\",\"address\":\"Jaegersberg 16\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.brauerei-friedmann.de\\u003c/a>\",\"founded\":1875,\"category\":\"Schwer\",\"value\":53.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.252699,49.644533]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Lindenbraeu\",\"address\":\"Am Bach 3\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.lindenbraeu.de\\u003c/a>\",\"founded\":1932,\"category\":\"Mäßig\",\"value\":60.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.248618,49.645651]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Windsheimer GmbH\",\"address\":\"Hauptstrasse 13\",\"zipcode\":91468,\"village\":\"Gutenstetten\",\"state\":\"Bayern\",\"web\":\"www.brauerei-windsheimer.de\\u003c/a>\",\"founded\":1767,\"category\":\"Schwer\",\"value\":26.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.630027,49.615866]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Buergerbraeu Hersbruck, Deinlein & Co.\",\"address\":\"Lohweg 38\",\"zipcode\":91217,\"village\":\"Hersbruck\",\"state\":\"Bayern\",\"web\":\"www.hersbrucker-bier.de\\u003c/a>\",\"founded\":1920,\"category\":\"kein Schaden\",\"value\":29.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.428338,49.50683]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Hochholzer Brauhaus Poeverlein GbR\",\"address\":\"Hochholz 4a\",\"zipcode\":91807,\"village\":\"Solnhofen\",\"state\":\"Bayern\",\"web\":\"www.hochholzer-brauhaus.de\\u003c/a>\",\"founded\":2005,\"category\":\"kein Schaden\",\"value\":48.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.029479,48.900742]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauhaus Hoechstadt\",\"address\":\"Kellerstrasse 11\",\"zipcode\":91315,\"village\":\"Hoechstadt\",\"state\":\"Bayern\",\"web\":\"www.brauhaus-hoechstadt.de\\u003c/a>\",\"founded\":1926,\"category\":\"Mäßig\",\"value\":92.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.806113,49.707329]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei und Gasthof Reichold GmbH\",\"address\":\"Hochstahl 24\",\"zipcode\":91347,\"village\":\"Aufsess\",\"state\":\"Bayern\",\"web\":\"www.brauerei-reichold.de\\u003c/a>\",\"founded\":1906,\"category\":\"Leicht\",\"value\":40.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.267583,49.884229]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Hofmann/Nentwig GbR\",\"address\":\"Hohenschwaerz 16\",\"zipcode\":91322,\"village\":\"Graefenberg\",\"state\":\"Bayern\",\"web\":\"www.brauerei-hofmann.de\\u003c/a>\",\"founded\":1897,\"category\":\"Schwer\",\"value\":21.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.252911,49.677827]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Leinburger Bier\",\"address\":\"Marktplatz 14\",\"zipcode\":91227,\"village\":\"Leinburg\",\"state\":\"Bayern\",\"web\":\"www.leinburgerbier.de\\u003c/a>\",\"founded\":1617,\"category\":\"Mäßig\",\"value\":67.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.308721,49.450083]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gasthof Drummer\",\"address\":\"Dorfstrasse 10\",\"zipcode\":91359,\"village\":\"Lautenbach\",\"state\":\"Bayern\",\"web\":\"www.brauerei-gasthof-drummer.de\\u003c/a>\",\"founded\":1738,\"category\":\"Mäßig\",\"value\":6.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.172792,49.710838]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Hauff Braeu Lichtnerau GmbH & Co. KG\",\"address\":\"Marktplatz 1\",\"zipcode\":91586,\"village\":\"Lichtenau\",\"state\":\"Bayern\",\"web\":\"www.hauff-braeu.com\\u003c/a>\",\"founded\":null,\"category\":\"Leicht\",\"value\":100.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[10.685605,49.276265]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Wiethaler\",\"address\":\"Welserplatz 6-7\",\"zipcode\":91207,\"village\":\"Neunhof bei Lauf a.d. Pegnitz\",\"state\":\"Bayern\",\"web\":\"www.brauerei-wiethaler.de\\u003c/a>\",\"founded\":1498,\"category\":\"Mäßig\",\"value\":15.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.22997,49.554706]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Gasthof Ott\",\"address\":\"Oberleinleiter 6\",\"zipcode\":91332,\"village\":\"Heiligenstadt i. Ofr.\",\"state\":\"Bayern\",\"web\":\"www.brauerei-ott.de\\u003c/a>\",\"founded\":1678,\"category\":\"Schwer\",\"value\":52.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.129541,49.882777]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Penning-Zeissler\",\"address\":\"Hetzelsdorf 9\",\"zipcode\":91362,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":null,\"founded\":1623,\"category\":\"Schwer\",\"value\":85.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.202701,49.727998]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Meister\",\"address\":\"Unterzaunsbach 8\",\"zipcode\":91362,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":\"www.meisterbr%C3%A4u.de\\u003c/a>\",\"founded\":1865,\"category\":\"Leicht\",\"value\":72.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.223148,49.737703]}},{\"type\":\"Feature\",\"properties\":{\"brewery\":\"Brauerei Nikl\",\"address\":\"Egloffsteiner Strasse 19\",\"zipcode\":91363,\"village\":\"Pretzfeld\",\"state\":\"Bayern\",\"web\":\"www.brauerei-nikl.de\\u003c/a>\",\"founded\":2008,\"category\":\"Mäßig\",\"value\":24.0},\"geometry\":{\"type\":\"Point\",\"coordinates\":[11.175664,49.755953]}}]},null,\"clustermarkers\",\"custom\",{\"rmax\":50,\"size\":[20,20],\"width\":40,\"height\":50,\"strokeWidth\":1,\"innerRadius\":20,\"labelBackground\":false,\"labelFill\":\"white\",\"labelStroke\":\"black\",\"labelColor\":\"black\",\"labelOpacity\":0.9,\"digits\":0,\"sortTitlebyCount\":true,\"aggregation\":\"mean\",\"valueField\":\"value\"},null,null,null,null,\"brewery\",{\"interactive\":false,\"permanent\":false,\"direction\":\"auto\",\"opacity\":1,\"offset\":[0,0],\"textsize\":\"10px\",\"textOnly\":false,\"className\":\"\",\"sticky\":true},null,null,\"category\",{\"1\":\"Schwer\",\"2\":\"Mäßig\",\"3\":\"Leicht\",\"4\":\"kein Schaden\"},[\"brewery\",\"address\",\"zipcode\",\"category\",\"value\"],[\"Brauerei\",\"Adresse\",\"PLZ\",\"Art\",\"Value\"],null,{\"title\":\"\",\"position\":\"topright\"}]}],\"limits\":{\"lat\":[48.900742,49.884229],\"lng\":[10.316987,11.509409]}},\"evals\":[],\"jsHooks\":[]} ## For Shiny examples, please run: # runApp(system.file(\"examples/clusterCharts_app.R\", package = \"leaflet.extras2\")) # runApp(system.file(\"examples/clustercharts_sum.R\", package = \"leaflet.extras2\"))"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":null,"dir":"Reference","previous_headings":"","what":"Add contextmenu Plugin — addContextmenu","title":"Add contextmenu Plugin — addContextmenu","text":"Add contextmenu map markers/vector layers.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add contextmenu Plugin — addContextmenu","text":"","code":"addContextmenu(map)"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add contextmenu Plugin — addContextmenu","text":"map map widget object created leaflet","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add contextmenu Plugin — addContextmenu","text":"leaflet map object","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add contextmenu Plugin — addContextmenu","text":"function used include required JavaScript CSS bindings set Shiny event handlers.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":"contextmenu-initialization","dir":"Reference","previous_headings":"","what":"Contextmenu initialization","title":"Add contextmenu Plugin — addContextmenu","text":"contextmenu map must defined leafletOptions. markers/vector layers must defined markerOptions pathOptions.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":"contextmenu-selection","dir":"Reference","previous_headings":"","what":"Contextmenu selection","title":"Add contextmenu Plugin — addContextmenu","text":"contextmenu selected, Shiny input ID \"MAPID_contextmenu_select\" set (`MAPID` refers map's id). selected contextmenu item triggered : map, returned list contains text item. markers, returned list also contains layerId, group, lat, lng label. vector layers, returned list also contains layerId, group label.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Add contextmenu Plugin — addContextmenu","text":"https://github.com/aratcliffe/Leaflet.contextmenu","code":""},{"path":[]},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addContextmenu.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add contextmenu Plugin — addContextmenu","text":"","code":"library(leaflet) leaflet(options = leafletOptions( contextmenu = TRUE, contextmenuWidth = 200, contextmenuItems = context_mapmenuItems( context_menuItem(\"Zoom Out\", \"function(e) {this.zoomOut()}\", disabled=FALSE), \"-\", context_menuItem(\"Zoom In\", \"function(e) {this.zoomIn()}\")))) %>% addTiles(group = \"base\") %>% addContextmenu() %>% addMarkers(data = breweries91, label = ~brewery, layerId = ~founded, group = \"marker\", options = markerOptions( contextmenu = TRUE, contextmenuWidth = 200, contextmenuItems = context_markermenuItems( context_menuItem(text = \"Show Marker Coords\", callback = \"function(e) {alert(e.latlng);}\", index = 1) ) )) {\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}},\"contextmenu\":true,\"contextmenuWidth\":200,\"contextmenuItems\":[{\"text\":\"Zoom Out\",\"callback\":\"function(e) {this.zoomOut()}\",\"disabled\":false},\"-\",{\"text\":\"Zoom In\",\"callback\":\"function(e) {this.zoomIn()}\"}]},\"calls\":[{\"method\":\"addTiles\",\"args\":[\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",null,\"base\",{\"minZoom\":0,\"maxZoom\":18,\"tileSize\":256,\"subdomains\":\"abc\",\"errorTileUrl\":\"\",\"tms\":false,\"noWrap\":false,\"zoomOffset\":0,\"zoomReverse\":false,\"opacity\":1,\"zIndex\":1,\"detectRetina\":false,\"attribution\":\"© OpenStreetMap<\\/a>, ODbL<\\/a>\"}]},{\"method\":\"addContextmenu\",\"args\":[]},{\"method\":\"addMarkers\",\"args\":[[49.71979,49.884051,49.502098,49.274716,49.861905,49.794334,49.701477,49.067436,49.070292,49.77994,49.060542,49.561804,49.595108,49.602554,49.72581,49.7202,49.644533,49.645651,49.615866,49.50683,48.900742,49.707329,49.884229,49.677827,49.450083,49.710838,49.276265,49.554706,49.882777,49.727998,49.737703,49.755953],[10.889217,11.228988,10.416021,10.928096,11.291932,11.509409,11.163238,10.34418,10.316987,11.186931,10.965571,11.368508,11.009011,11.005049,11.059662,11.056749,11.252699,11.248618,10.630027,11.428338,11.029479,10.806113,11.267583,11.252911,11.308721,11.172792,10.685605,11.22997,11.129541,11.202701,11.223148,11.175664],null,[1422,1886,1867,1887,1834,1568,1886,1901,1999,null,1690,1998,1712,1861,1848,1579,1875,1932,1767,1920,2005,1926,1906,1897,1617,1738,null,1498,1678,1623,1865,2008],\"marker\",{\"interactive\":true,\"draggable\":false,\"keyboard\":true,\"title\":\"\",\"alt\":\"\",\"zIndexOffset\":0,\"opacity\":1,\"riseOnHover\":false,\"riseOffset\":250,\"contextmenu\":true,\"contextmenuWidth\":200,\"contextmenuItems\":[[{\"text\":\"Show Marker Coords\",\"callback\":\"function(e) {alert(e.latlng);}\",\"index\":1}]]},null,null,null,null,[\"Brauerei Rittmayer\",\"Aufsesser Brauerei\",\"Brauhaus Doebler\",\"Brauerei Gundel GmbH\",\"Krug-Braeu\",\"Brauerei-Gasthof Herold\",\"Brauerei Alt Dietzhof\",\"Brauerei Hauf KG\",\"Weib's Brauhaus Dinkelsbuehl\",\"Schwanenbraeu\",\"Fuerst Carl Schlossbrauerei Ellingen\",\"Brauerei Enzensteiner\",\"Kitzmann-Braeu GmbH & Co. Kg\",\"Steinbach Braeu\",\"Brauerei Greif\",\"Brauerei Hebendanz GmbH\",\"Brauerei Friedmann\",\"Lindenbraeu\",\"Brauerei Windsheimer GmbH\",\"Buergerbraeu Hersbruck, Deinlein & Co.\",\"Hochholzer Brauhaus Poeverlein GbR\",\"Brauhaus Hoechstadt\",\"Brauerei und Gasthof Reichold GmbH\",\"Brauerei Hofmann/Nentwig GbR\",\"Leinburger Bier\",\"Brauerei Gasthof Drummer\",\"Hauff Braeu Lichtnerau GmbH & Co. KG\",\"Brauerei Wiethaler\",\"Brauerei Gasthof Ott\",\"Brauerei Penning-Zeissler\",\"Brauerei Meister\",\"Brauerei Nikl\"],{\"interactive\":false,\"permanent\":false,\"direction\":\"auto\",\"opacity\":1,\"offset\":[0,0],\"textsize\":\"10px\",\"textOnly\":false,\"className\":\"\",\"sticky\":true},null]}],\"limits\":{\"lat\":[48.900742,49.884229],\"lng\":[10.316987,11.509409]}},\"evals\":[\"options.contextmenuItems.0.callback\",\"options.contextmenuItems.2.callback\",\"calls.2.args.5.contextmenuItems.0.0.callback\"],\"jsHooks\":[]}"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addDivicon.html","id":null,"dir":"Reference","previous_headings":"","what":"Add DivIcon Markers to a Leaflet Map — addDivicon","title":"Add DivIcon Markers to a Leaflet Map — addDivicon","text":"Adds customizable DivIcon markers Leaflet map. function can accept either spatial data (lines points) form Simple Feature (sf) object numeric vectors latitude longitude coordinates. allows application custom HTML content CSS classes marker, providing high flexibility marker design.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addDivicon.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add DivIcon Markers to a Leaflet Map — addDivicon","text":"","code":"addDivicon( map, lng = NULL, lat = NULL, layerId = NULL, group = NULL, popup = NULL, popupOptions = NULL, label = NULL, labelOptions = NULL, className = NULL, html = NULL, options = markerOptions(), clusterOptions = NULL, clusterId = NULL, divOptions = list(), data = getMapData(map) )"},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addDivicon.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add DivIcon Markers to a Leaflet Map — addDivicon","text":"map Leaflet map object DivIcon markers added. lng numeric vector longitudes, one-sided formula form ~x x variable data; default (explicitly provided), automatically inferred data looking column named lng, long, longitude (case-insensitively) lat vector latitudes formula (similar lng argument; names lat latitude used guessing latitude column data) layerId layer id group name group newly created layers belong (clearGroup addLayersControl purposes). Human-friendly group names permitted–need short, identifier-style names. number layers even different types layers (e.g. markers polygons) can share group name. popup character vector HTML content popups (recommended escape text using htmlEscape() security reasons) popupOptions Vector popupOptions provide popups label character vector HTML content labels labelOptions Vector labelOptions provide label options label. Default NULL className single CSS class vector CSS classes apply DivIcon markers. html single HTML string vector HTML strings display within DivIcon markers. options list extra options markers. See markerOptions details. clusterOptions NULL, markers clustered using Leaflet.markercluster; can use markerClusterOptions() specify marker cluster options clusterId id marker cluster layer divOptions list extra options Leaflet DivIcon. data data object argument values derived; default, data object provided leaflet() initially, can overridden","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addDivicon.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add DivIcon Markers to a Leaflet Map — addDivicon","text":"modified Leaflet map object.","code":""},{"path":"https://trafficonese.github.io/leaflet.extras2/reference/addDivicon.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add DivIcon Markers to a Leaflet Map — addDivicon","text":"","code":"library(sf) library(leaflet) library(leaflet.extras2) # Sample data df <- sf::st_as_sf(atlStorms2005) df <- suppressWarnings(st_cast(df, \"POINT\")) df <- df[sample(1:nrow(df), 50, replace = FALSE),] df$classes = sample(x = c(\"myclass1\",\"myclass2\",\"myclass3\"), nrow(df), replace = TRUE) df$ID <- paste0(\"ID_\", 1:nrow(df)) leaflet() %>% addTiles() %>% addDivicon(data = df , html = ~paste0( '', '
', Name, '<\/div>', '
MaxWind: ', MaxWind, '<\/div>', '<\/div>' ) , label = ~Name , layerId = ~ID , group = \"Divicons\" , popup = ~paste(\"ID: \", ID, \"
\", \"Name: \", Name, \"
\", \"MaxWind:\", MaxWind, \"
\", \"MinPress:\", MinPress) , options = markerOptions(draggable = TRUE) ) {\"x\":{\"options\":{\"crs\":{\"crsClass\":\"L.CRS.EPSG3857\",\"code\":null,\"proj4def\":null,\"projectedBounds\":null,\"options\":{}}},\"calls\":[{\"method\":\"addTiles\",\"args\":[\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",null,null,{\"minZoom\":0,\"maxZoom\":18,\"tileSize\":256,\"subdomains\":\"abc\",\"errorTileUrl\":\"\",\"tms\":false,\"noWrap\":false,\"zoomOffset\":0,\"zoomReverse\":false,\"opacity\":1,\"zIndex\":1,\"detectRetina\":false,\"attribution\":\"©
OpenStreetMap<\\/a>, ODbL<\\/a>\"}]},{\"method\":\"addDivicon\",\"args\":[[16.9,36.5,21.8,20.8,30.5,23.8,17.9,29,26.2,38,37,39.6,29.3,16,17.4,28.9,22.4,36,32.2,13.3,23,25.9,67.5,24.4,39.4,23.1,13.6,32.6,18.5,32.5,33.9,39,18.3,20.3,21.3,39.4,17.8,22.8,27.2,28.6,16.4,19.1,43.3,26.1,26,17.6,25.7,32.1,22,32.6],[-84,-66.5,-86.8,-97.3,-63.8,-39.3,-84,-50.4,-76.40000000000001,-73.40000000000001,-87,-48.6,-62,-79.8,-83.90000000000001,-79.3,-57.2,-40.6,-68.3,-66.7,-52,-40.5,1.9,-84.7,-46.4,-75.09999999999999,-62.8,-57.1,-57.2,-49.8,-55.4,-85.59999999999999,-86.7,-87.3,-47.2,-86.5,-70.5,-58.1,-45.9,-79.59999999999999,-78,-85.8,-30.7,-85,-89.90000000000001,-58.9,-75.90000000000001,-70.2,-90.3,-89.09999999999999],[\"ID_1\",\"ID_2\",\"ID_3\",\"ID_4\",\"ID_5\",\"ID_6\",\"ID_7\",\"ID_8\",\"ID_9\",\"ID_10\",\"ID_11\",\"ID_12\",\"ID_13\",\"ID_14\",\"ID_15\",\"ID_16\",\"ID_17\",\"ID_18\",\"ID_19\",\"ID_20\",\"ID_21\",\"ID_22\",\"ID_23\",\"ID_24\",\"ID_25\",\"ID_26\",\"ID_27\",\"ID_28\",\"ID_29\",\"ID_30\",\"ID_31\",\"ID_32\",\"ID_33\",\"ID_34\",\"ID_35\",\"ID_36\",\"ID_37\",\"ID_38\",\"ID_39\",\"ID_40\",\"ID_41\",\"ID_42\",\"ID_43\",\"ID_44\",\"ID_45\",\"ID_46\",\"ID_47\",\"ID_48\",\"ID_49\",\"ID_50\"],\"Divicons\",{\"interactive\":true,\"draggable\":true,\"keyboard\":true,\"title\":\"\",\"alt\":\"\",\"zIndexOffset\":0,\"opacity\":1,\"riseOnHover\":false,\"riseOffset\":250},null,[\"ARLENE<\\/div>
MaxWind: 60<\\/div><\\/div>\",\"
IRENE<\\/div>
MaxWind: 90<\\/div><\\/div>\",\"
WILMA<\\/div>
MaxWind: 160<\\/div><\\/div>\",\"
BRET<\\/div>
MaxWind: 35<\\/div><\\/div>\",\"
NATE<\\/div>
MaxWind: 80<\\/div><\\/div>\",\"
DELTA<\\/div>
MaxWind: 60<\\/div><\\/div>\",\"
WILMA<\\/div>
MaxWind: 160<\\/div><\\/div>\",\"
LEE<\\/div>
MaxWind: 35<\\/div><\\/div>\",\"
FRANKLIN<\\/div>
MaxWind: 60<\\/div><\\/div>\",\"
TWENTY-TWO<\\/div>
MaxWind: 40<\\/div><\\/div>\",\"
KATRINA<\\/div>
MaxWind: 150<\\/div><\\/div>\",\"
HARVEY<\\/div>
MaxWind: 55<\\/div><\\/div>\",\"
TWENTY-TWO<\\/div>
MaxWind: 40<\\/div><\\/div>\",\"
WILMA<\\/div>
MaxWind: 160<\\/div><\\/div>\",\"
ARLENE<\\/div>
MaxWind: 60<\\/div><\\/div>\",\"
OPHELIA<\\/div>
MaxWind: 75<\\/div><\\/div>\",\"
IRENE<\\/div>
MaxWind: 90<\\/div><\\/div>\",\"
NATE<\\/div>
MaxWind: 80<\\/div><\\/div>\",\"
FRANKLIN<\\/div>
MaxWind: 60<\\/div><\\/div>\",\"
EMILY<\\/div>
MaxWind: 140<\\/div><\\/div>\",\"
MARIA<\\/div>
MaxWind: 100<\\/div><\\/div>\",\"
EPSILON<\\/div>
MaxWind: 75<\\/div><\\/div>\",\"
OPHELIA<\\/div>
MaxWind: 75<\\/div><\\/div>\",\"
KATRINA<\\/div>
MaxWind: 150<\\/div><\\/div>\",\"
MARIA<\\/div>
MaxWind: 100<\\/div><\\/div>\",\"
KATRINA<\\/div>
MaxWind: 150<\\/div><\\/div>\",\"
GAMMA<\\/div>
MaxWind: 45<\\/div><\\/div>\",\"
HARVEY<\\/div>
MaxWind: 55<\\/div><\\/div>\",\"
PHILIPPE<\\/div>
MaxWind: 70<\\/div><\\/div>\",\"
EPSILON<\\/div>
MaxWind: 75<\\/div><\\/div>\",\"
MARIA<\\/div>
MaxWind: 100<\\/div><\\/div>\",\"
DENNIS<\\/div>
MaxWind: 130<\\/div><\\/div>\",\"
CINDY<\\/div>
MaxWind: 65<\\/div><\\/div>\",\"
EMILY<\\/div>
MaxWind: 140<\\/div><\\/div>\",\"
IRENE<\\/div>
MaxWind: 90<\\/div><\\/div>\",\"
DENNIS<\\/div>
MaxWind: 130<\\/div><\\/div>\",\"
ALPHA<\\/div>
MaxWind: 45<\\/div><\\/div>\",\"
IRENE<\\/div>
MaxWind: 90<\\/div><\\/div>\",\"
DELTA<\\/div>
MaxWind: 60<\\/div><\\/div>\",\"
OPHELIA<\\/div>
MaxWind: 75<\\/div><\\/div>\",\"
EMILY<\\/div>
MaxWind: 140<\\/div><\\/div>\",\"
WILMA<\\/div>
MaxWind: 160<\\/div><\\/div>\",\"
HARVEY<\\/div>
MaxWind: 55<\\/div><\\/div>\",\"
DENNIS<\\/div>
MaxWind: 130<\\/div><\\/div>\",\"
RITA<\\/div>
MaxWind: 155<\\/div><\\/div>\",\"