var moment;class JqueryDateRangePickerAdaptor extends StateAdaptor{size(){return 2}identifier(){return"jquery-date-range-picker"}sync(values,defaultValue){if(values.length==1)$(this.targetSelector).data("dateRangePicker").setStart(values[0]);else if(values.length==2){if(values[0])$(this.targetSelector).data("dateRangePicker").setStart(values[0]);if(values[1])$(this.targetSelector).data("dateRangePicker").setEnd(values[1])}}bind(){$(this.targetSelector).bind("datepicker-change",this.onChange.bind(this))}onChange(event,obj){this.listener.changeStateRequested(this,[obj.date1,obj.date2])}}class JqueryDateRangePickerIntAdaptor extends StateAdaptor{size(){return 2}identifier(){return"jquery-date-range-picker-int"}encoderType(){return"datetime"}init(){let obj=$(this.target).dateRangePicker(this.params);$(this.target).data("fireman-"+this.identifier,obj)}sync(values,defaultValue){if(values.length==1)$(this.targetSelector).data("dateRangePicker").setStart(values[0]);else if(values.length==2){if(values[0])$(this.targetSelector).data("dateRangePicker").setStart(values[0]);if(values[1])$(this.targetSelector).data("dateRangePicker").setEnd(values[1])}}bind(){$(this.targetSelector).bind("datepicker-change",this.onChange.bind(this))}onChange(event,obj){this.listener.changeStateRequested(this,[obj.date1,obj.date2])}}class DateRangePickerAdaptor extends StateAdaptor{size(){return 2}identifier(){return"daterangepicker"}encoderType(){return"datetime"}init(){$(this.targetSelector).daterangepicker(this.params)}sync(values,defaultValue){if(values[0]!=="undefined")$(this.targetSelector).data("daterangepicker").setStartDate(values[0]);if(values[1]!=="undefined")$(this.targetSelector).data("daterangepicker").setEndDate(values[1])}bind(){const self=this;$(this.targetSelector).on("apply.daterangepicker",function(ev,picker){self.listener.changeStateRequested(self,[picker.startDate._d,picker.endDate._d])})}}class NoUISliderAdaptor extends StateAdaptor{size(){return 2}identifier(){return"nouislider"}encoderType(){return"number"}init(){var html5Slider=document.getElementById("slider");noUiSlider.create(this.target,this.params)}sync(values,defaultValue){if(values[0]!=="undefined")this.target.noUiSlider.set([values[0],null]);if(values[1]!=="undefined")this.target.noUiSlider.set([null,values[1]])}bind(){const self=this;this.target.noUiSlider.on("set",function(values,handle){var value=values[handle];self.listener.changeIndexedStateRequested(self,value,handle)})}}var NoUISliderIntAdaptorSlider;class NoUISliderIntAdaptor extends StateAdaptor{size(){return 2}identifier(){return"nouislider-int"}encoderType(){return"number"}init(){NoUISliderIntAdaptorSlider=this.target;noUiSlider.create(NoUISliderIntAdaptorSlider,this.params)}sync(values,defaultValue){if(values[0]!=="undefined")this.target.noUiSlider.set([values[0],null]);if(values[1]!=="undefined")this.target.noUiSlider.set([null,values[1]])}bind(){const self=this;this.target.noUiSlider.on("set",function(values,handle){var value=values[handle];self.listener.changeIndexedStateRequested(self,value,handle)})}}class BootstrapSliderExtAdaptor extends StateAdaptor{identifier(){return"bootstrap-slider-ext"}size(){return 2}encoderType(){return"number"}sync(values,defaultValue){$(this.target).bootstrapSlider("setValue",[values[0]??$(this.target).bootstrapSlider("getValue")[0],values[1]??$(this.target).bootstrapSlider("getValue")[1]])}bind(){$(this.target).on("slideStop",this.onChange.bind(this))}onChange(){var value=$(this.target).bootstrapSlider("getValue");this.listener.changeStateRequested(this,value)}}class BootstrapSliderAdaptor extends StateAdaptor{identifier(){return"bootstrap-slider"}size(){return 2}encoderType(){return"number"}init(){let slider=$(this.target).bootstrapSlider(this.params);$(this.target).data("slider",slider)}sync(values,defaultValue){$(this.target).bootstrapSlider("setValue",[values[0]??NaN,values[1]??NaN])}bind(){$(this.target).on("slideStop",this.onChange.bind(this))}onChange(){var value=$(this.target).bootstrapSlider("getValue");this.listener.changeStateRequested(this,value)}}var knob;class KnobAdaptor extends StateAdaptor{identifier(){return"knob"}encoderType(){return"number"}init(){this.params.release=function(v){this.onRelease(v)}.bind(this);$(this.target).knob(this.params)}sync(value,defaultValue){$(this.target).val(value).trigger("change")}bind(){}onRelease(value){this.listener.changeStateRequested(this,value)}}class GoogleMapsAdaptor extends StateAdaptor{getMap(){return $(this.target).data("map")}identifier(){return"gmaps"}size(){return 5}encoderType(){return"number"}init(){if(this.params){if(this.params.center){let c=this.params.center;this.params.center=new google.maps.LatLng(c.lat,c.lng)}}var map=new google.maps.Map($(this.target).get(0),this.params??{});$(this.target).data("map",map)}sync(values,defaultValue){if(values[0]!=="undefined"&&values[1]!=="undefined"){let bounds={south:values[0],west:values[1],north:values[2],east:values[3]};var map=$(this.target).data("map");map.fitBounds(bounds);map.setZoom(values[4])}}bind(){setTimeout(function(){const map=$(this.target).data("map");map.addListener("idle",function(){let c=map.center;if(!c)return;let zoom=map.zoom;let south=map.getBounds().getSouthWest().lat();let west=map.getBounds().getSouthWest().lng();let north=map.getBounds().getNorthEast().lat();let east=map.getBounds().getNorthEast().lng();this.listener.changeStateRequested(this,[south,west,north,east,zoom])}.bind(this))}.bind(this),300)}}class GoogleMapsInternalAdaptor extends StateAdaptor{getMap(){return $(this.target).data("map")}identifier(){return"gmaps-int"}size(){return 5}encoderType(){return"number"}init(){if(this.params){if(this.params.center){let c=this.params.center;this.params.center=new google.maps.LatLng(c.lat,c.lng)}}var map=new google.maps.Map($(this.target).get(0),this.params??{});$(this.target).data("map",map)}sync(values,defaultValue){if(values[0]!=="undefined"&&values[1]!=="undefined"){let bounds={south:values[0],west:values[1],north:values[2],east:values[3]};var map=$(this.target).data("map");map.fitBounds(bounds);map.setZoom(values[4])}}bind(){const map=$(this.target).data("map");map.addListener("idle",function(){let c=map.center;if(!c)return;let zoom=map.zoom;let south=map.getBounds().getSouthWest().lat();let west=map.getBounds().getSouthWest().lng();let north=map.getBounds().getNorthEast().lat();let east=map.getBounds().getNorthEast().lng();this.listener.changeStateRequested(this,[south,west,north,east,zoom])}.bind(this))}}class DialerAdaptor extends StateAdaptor{encoderType(){return"number"}identifier(){return"dialer"}sync(value,defaultValue){let dialer=$(this.target).data("dialer");dialer.val(value)}bind(){$(this.target).on("dialer-change",function(ev){let value=$(ev.currentTarget).find("input").val();this.listener.changeStateRequested(this,value)}.bind(this))}}class PagenatorAdaptor extends StateAdaptor{encoderType(){return"number"}identifier(){return"pagenator"}pageNo=0;sync(value,defaultValue){$(this.target).find("li").removeClass("active");let el=$(this.target).find('li a[pageno="'+value+'"]');el.closest("li").addClass("active")}bind(){const self=this;$(this.target).find(" li a").on("click",(event,target)=>{let pageNoAttr=$(event.currentTarget).attr("pageno");if(pageNoAttr==="next"){this.pageNo++}else if(pageNoAttr==="pre"){if(this.pageNo<=0)return;this.pageNo--}else this.pageNo=parseInt(pageNoAttr);self.listener.changeStateRequested(self,this.pageNo,true)})}}