var __extends,TIPS;(function(n){var t;(function(n){function i(n,t){return Math.sqrt(Math.pow(n.LatX-t.LatX,2)+Math.pow(n.LngY-t.LngY,2))}var t,r;n.PointL2Dist=i;t=function(){function n(n,t,i,r){if(this.MinLat=n,this.MaxLat=t,this.MinLng=i,this.MaxLng=r,i>r)throw new Error("BB lng error: "+i+", "+r);if(n>t)throw new Error("BB lat error: "+n+", "+t);}return n.prototype.GetCentre=function(){return{LatX:.5*(this.MinLat+this.MaxLat),LngY:.5*(this.MinLng+this.MaxLng)}},n.FromMinMax=function(t,i){return new n(t.LatX,i.LatX,t.LngY,i.LngY)},n.prototype.ContainsPoint=function(n){return this.MinLat<=n.LatX&&n.LatX<=this.MaxLat&&this.MinLng<=n.LngY&&n.LngY<=this.MaxLng},n.prototype.Intersects=function(n){var t=n.MaxLat<this.MinLat||n.MinLat>this.MaxLat||n.MaxLng<this.MinLng||n.MinLng>this.MaxLng;return!t},n}();n.BoundingBox=t,function(n){n[n.Solid=0]="Solid";n[n.Dashed=1]="Dashed";n[n.Dotted=2]="Dotted";n[n.Chevron=3]="Chevron"}(r=n.LineType||(n.LineType={}))})(t=n.Common||(n.Common={}))})(TIPS||(TIPS={})),function(n){var t;(function(n){var t;(function(n){var t=function(){function n(){this._zoomChangedListeners=[];this._centreChangedListeners=[];this.PopupController=null}return n.prototype.AddZoomChangedListener=function(n){if(!n||!(n instanceof Function))throw new Error("Listener is null/not a function");return this._zoomChangedListeners.push(n),this},n.prototype.AddCentreChangedListener=function(n){if(!n||!(n instanceof Function))throw new Error("Listener is null/not a function");return this._centreChangedListeners.push(n),this},n.prototype.SetPopupController=function(n){if(!n)throw new Error("controller is null");this.PopupController=n},n.prototype.OnZoomChanged=function(){var n=this.GetZoom();this._zoomChangedListeners.forEach(function(t){return t(n)})},n.prototype.OnCentreChanged=function(){var n=this.GetCentre();this._centreChangedListeners.forEach(function(t){return t(n)})},n}();n.MapBase=t})(t=n.Map||(n.Map={}))})(t=n.Common||(n.Common={}))}(TIPS||(TIPS={}));__extends=this&&this.__extends||function(){var n=function(t,i){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},n(t,i)};return function(t,i){function r(){this.constructor=t}n(t,i);t.prototype=i===null?Object.create(i):(r.prototype=i.prototype,new r)}}(),function(n){var t;(function(t){var i;(function(i){var r=function(r){function u(t){var i=r.call(this)||this,f,u;return i._layers={},f={center:{lat:49,lng:-80},zoom:5,clickableIcons:!1,styles:[{featureType:"poi",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"labels",stylers:[{visibility:"off"}]},],fullscreenControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT},mapTypeControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT},zoomControlOptions:{position:google.maps.ControlPosition.RIGHT_TOP},streetViewControlOptions:{position:google.maps.ControlPosition.RIGHT_TOP}},i._gmap=new google.maps.Map(t[0],f),i._gmap.addListener("zoom_changed",i.OnZoomChanged.bind(i)),i._gmap.addListener("center_changed",i.OnCentreChanged.bind(i)),u=i._gmap.getStreetView(),u.addListener("visible_changed",function(){var t=u.getVisible();t?($("#LogoContainerFloating").addClass("street-view-hidden"),n.Framework.UI.SidebarToggle.CloseSidebar()):$("#LogoContainerFloating").removeClass("street-view-hidden")}),i}return __extends(u,r),u.prototype.GetGMap=function(){return this._gmap},u.prototype.ValidateName=function(n){if(!n||n.length===0)throw new Error("Layer name is empty");},u.prototype.SetPopupController=function(n){var t=this;r.prototype.SetPopupController.call(this,n);this._gmap.addListener("click",function(){t.PopupController.ClearActivePopup()})},u.prototype.GetCentre=function(){var n=this._gmap.getCenter();return{LatX:n.lat(),LngY:n.lng()}},u.prototype.GetBoundsLatLng=function(){var n=this._gmap.getBounds(),i=n.getSouthWest(),r=n.getNorthEast();return new t.BoundingBox(i.lat(),r.lat(),i.lng(),r.lng())},u.prototype.GetZoom=function(){return this._gmap.getZoom()},u.prototype.SetZoom=function(n){if(isNaN(n)||n<0)throw new Error("Invalid zoom: "+n);this._gmap.setZoom(n)},u.prototype.CreateLayer=function(n,t){if(this.ValidateName(n),this._layers.hasOwnProperty(n))throw new Error("Layer with name "+n+" already exists");return this._layers[n]=new i.MapLayerGoogle(this,this.PopupController,t),this._layers[n]},u.prototype.GetMapLayer=function(n){if(this.ValidateName(n),this._layers.hasOwnProperty(n))return this._layers[n];throw new Error("Map layer "+n+" does not exist");},u.prototype.PanTo=function(t){this._gmap.panTo(n.Utilities.PointToGMapLatLng(t))},u.prototype.SetBounds=function(t){this._gmap.fitBounds(n.Utilities.BoundingBoxToGMapBoundingBox(t))},u}(i.MapBase);i.MapGoogle=r})(i=t.Map||(t.Map={}))})(t=n.Common||(n.Common={}))}(TIPS||(TIPS={})),function(n){var t;(function(t){var i;(function(i){var r=function(){function i(n,t,i){if(this._layerObjects={},this._nextId=0,!n)throw new Error("Map is null");if(!t)throw new Error("popupController is null");this._map=n;this._popupController=t;this._zIndex=i}return i.prototype.AddMarker=function(t){var i=t.fixedSizePx?t.fixedSizePx/t.icon.size.Width:1,r={url:t.icon.spriteSheetUrl,anchor:n.Utilities.PointToGMapPoint(t.icon.anchorPointOnImage,i),origin:n.Utilities.PointToGMapPoint(t.icon.spriteOrigin,i),size:n.Utilities.SizeToGMapSize(t.icon.size,i),scaledSize:n.Utilities.SizeToGMapSize(t.icon.spriteSheetSize,i)},u={position:n.Utilities.PointToGMapLatLng(t.position),icon:r,clickable:!!t.popupRenderer,map:this._map.GetGMap(),zIndex:this._zIndex},f=new google.maps.Marker(u);return this.AddObject(f,t)},i.prototype.AddCircle=function(t){var i={center:n.Utilities.PointToGMapLatLng(t.centre),clickable:!!t.popupRenderer,radius:t.radiusMetres,fillColor:t.fillColor,fillOpacity:t.fillOpacity,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeThickness,map:this._map.GetGMap(),zIndex:this._zIndex},r=new google.maps.Circle(i);return this.AddObject(r,t)},i.prototype.AddPolyline=function(t){var i={clickable:!!t.popupRenderer,map:this._map.GetGMap(),strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeThickness,path:t.path.map(n.Utilities.PointToGMapLatLng),zIndex:this._zIndex},r=this.GetIconsForLineType(t),u;return r&&(i.strokeOpacity=0,i.icons=r),u=new google.maps.Polyline(i),this.AddObject(u,t)},i.prototype.AddPolygon=function(t){var i={clickable:!!t.popupRenderer,map:this._map.GetGMap(),strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeThickness,paths:t.path.map(n.Utilities.PointToGMapLatLng),fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:this._zIndex},r=new google.maps.Polygon(i);return this.AddObject(r,t)},i.prototype.AddWindow=function(t){var i=new google.maps.InfoWindow({content:t.content,disableAutoPan:!0,position:n.Utilities.PointToGMapLatLng(t.position),maxWidth:t.maxWidth});return i.open(this._map.GetGMap()),this.AddObject(i,{popupRenderer:null})},i.prototype.Reset=function(){console.debug("Resetting layer");for(var n in this._layerObjects)this._layerObjects.hasOwnProperty(n)&&(this._layerObjects[n].set("map",null),delete this._layerObjects[n]);this._layerObjects={}},i.prototype.AddObject=function(t,i){var u=this,r;return!i.popupRenderer||(t.addListener("click",function(){return u._popupController.SetActivePopup(i.popupRenderer)}),n.Framework.Settings.InjectedSettings.installationType.toLowerCase()==="durham"&&t.addListener("mouseover",function(){return u._popupController.SetActivePopup(i.popupRenderer)})),r=this._nextId,this._nextId++,this._layerObjects[r]=t,{id:r,Hide:this.HideObject.bind(this,r),Show:this.ShowObject.bind(this,r),Delete:this.DeleteObject.bind(this,r)}},i.prototype.HideObject=function(n){var t=this._layerObjects[n];t&&t.set("map",null)},i.prototype.ShowObject=function(n){var t=this._layerObjects[n];t&&t.set("map",this._map.GetGMap())},i.prototype.DeleteObject=function(n){this.HideObject(n);delete this._layerObjects[n]},i.prototype.GetIconsForLineType=function(n){return n.strokeStyle==t.LineType.Solid?null:n.strokeStyle==t.LineType.Dashed?[{icon:{path:"M 0,-1 0,1",strokeOpacity:n.strokeOpacity,strokeWeight:n.strokeThickness,strokeColor:n.strokeColor,scale:10},repeat:30+n.strokeThickness+"px"}]:n.strokeStyle==t.LineType.Dotted?[{icon:{path:"M 0,0 0.01,0.01",strokeOpacity:n.strokeOpacity,strokeWeight:n.strokeThickness,strokeColor:n.strokeColor},repeat:5+n.strokeThickness+"px"}]:n.strokeStyle==t.LineType.Chevron?[{icon:{path:"M -1.5,0 0,-2 1.5,0",strokeOpacity:n.strokeOpacity,strokeWeight:3,scale:4,strokeColor:n.strokeColor},repeat:"21px",offset:"200%"}]:null},i}();i.MapLayerGoogle=r})(i=t.Map||(t.Map={}))})(t=n.Common||(n.Common={}))}(TIPS||(TIPS={})),function(n){var t;(function(t){var i;(function(t){var i;(function(i){var r=function(){function i(n){if(this._infoWindow=null,this._activePopup=null,!n)throw new Error("Map is null");if(!(n instanceof t.MapGoogle))throw new Error("Map is not a google map");this._map=n}return i.prototype.SetActivePopup=function(t){if(!this._infoWindow||this.ClearActivePopup(),!!t.OnPopupClickedOverrideAction){t.OnPopupClickedOverrideAction();return}this._activePopup=t;var i=n.Utilities.PointToGMapLatLng(t.GetPopupLocation());this._infoWindow=new google.maps.InfoWindow({content:t.GetPopupContent(),disableAutoPan:!1,position:i,maxWidth:420});this._infoWindow.open(this._map.GetGMap());!t.OnPopupClickedAction||t.OnPopupClickedAction()},i.prototype.ClearActivePopup=function(){var n;!this._infoWindow||this._infoWindow.close();this._infoWindow=null;!((n=this._activePopup)===null||n===void 0?void 0:n.OnPopupClosedAction)||this._activePopup.OnPopupClosedAction();this._activePopup=null},i}();i.PopupControllerGoogle=r})(i=t.Popup||(t.Popup={}))})(i=t.Map||(t.Map={}))})(t=n.Common||(n.Common={}))}(TIPS||(TIPS={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t=function(){function n(n){if(this.PopupLocation=n,this.OnPopupClickedAction=null,this.OnPopupClosedAction=null,!n)throw new Error("popuplocation is null");}return n.prototype.GetPopupContent=function(){return this._cached?this._cached:this._cached=this.GetPopupContentInternal()},n.prototype.GetPopupLocation=function(){return this.PopupLocation},n}();n.PopupRenderer=t})(t=n.Popup||(n.Popup={}))})(t=n.Map||(n.Map={}))})(t=n.Common||(n.Common={}))}(TIPS||(TIPS={})),function(n){var t;(function(t){var i;(function(t){var i=function(){function t(t,i){if(this._$dt=t,this._showEntitiesInTable=i,!t)throw new Error("DT is null");var u=function(t,i,r){var o=r._iconData,u=$("<span><\/span>"),f,e;return n.Utilities.AddIconClassProperties(u,o,!0,32),f=r._roadClosureTypeData,f&&(e=$("<span><\/span>"),n.Utilities.AddIconClassProperties(e,f,!0,32),u.append(e)),u[0].outerHTML},r=function(t){return t?n.Utilities.DateTimeUtcEpochMillisecondsToLocal(t):null};this._dataTable=t.DataTable({data:[],pageLength:50,lengthMenu:[[50,100,200,-1],[50,100,200,"All"]],order:[[1,"asc"]],columns:[{data:"IconClass",render:u,searchable:!1,orderable:!1},{data:"IssueType"},{data:"StartTime",render:r},{data:"EndTime",render:r},{data:"Source"},{data:"TableDescription",orderable:!1},{data:"Location",orderable:!1},]})}return t.prototype.UpdateData=function(t){var i,r;this._dataTable.clear();i=t.issues.map(function(t){var i=$("<span><\/span>");return n.Utilities.AddIconClassProperties(i,t.TableViewInfo.iconInfo,!0,32),{IconClass:t.TableViewInfo.IconClass,_iconData:t.TableViewInfo.iconInfo,_roadClosureTypeData:t.TableViewInfo.maxRoadClosureTypeInfo,Source:t.divisionName,IssueType:t.TableViewInfo.issueTypeString,StartTime:t.Description.ProposedStartTimeUtcEpochMillis,EndTime:t.Description.ProposedEndTimeUtcEpochMillis,IssueSource:t.Source,TableDescription:t.Description.BaseDescription,Location:t.TableViewInfo.Location}});this._dataTable.rows.add(i);this._showEntitiesInTable&&(r=t.entities.map(function(t){var i=$("<span><\/span>");return n.Utilities.AddIconClassProperties(i,t.iconInfo,!0,32),{IconClass:t.IconClass,_iconData:t.iconInfo,Source:t.divisionName,IssueType:null,StartTime:null,EndTime:null,TableDescription:null,IssueSource:null,Location:t.Location}}),this._dataTable.rows.add(r));this._dataTable.draw()},t}();t.TableDt=i})(i=t.Table||(t.Table={}))})(t=n.Common||(n.Common={}))}(TIPS||(TIPS={}))