From 7754ca0bc6612e8f66a6569e7e879ae2b7e652eb Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 05:42:13 +0000 Subject: [PATCH] style: format code with Prettier This commit fixes the style issues introduced in e2e7ea1 according to the output from Prettier. Details: https://github.com/Resgrid/Dispatch/pull/45 --- src/app/app-routing.module.ts | 42 +- src/app/app.module.ts | 70 +- src/app/features/auth/effects/auth.effect.ts | 28 +- .../features/auth/pages/login/login.page.ts | 8 +- src/app/features/calls/calls.module.ts | 89 +-- .../features/calls/effects/calls.effect.ts | 106 +-- .../updateDispatchTime.modal.ts | 25 +- .../calls/pages/edit-call/edit-call.page.ts | 208 +++--- src/app/features/home/effects/home.effect.ts | 318 ++++----- src/app/features/home/home.module.ts | 127 ++-- .../home/modals/callFiles/callFiles.modal.ts | 26 +- .../home/modals/callForm/callForm.modal.ts | 20 +- .../modals/callImages/callImages.modal.ts | 26 +- .../home/modals/callNotes/callNotes.modal.ts | 25 +- .../viewCallForm/view-callForm.modal.ts | 43 +- .../features/home/models/dashboardPayload.ts | 44 +- .../home/pages/dashboard/dashboard.page.ts | 17 +- src/app/features/home/providers/home.ts | 57 +- .../features/home/reducers/home.reducer.ts | 4 +- src/app/features/home/store/home.store.ts | 183 +++--- src/app/features/mapping/mapping.module.ts | 83 +-- .../features/mapping/pages/map/map.page.ts | 2 +- .../profile/effects/profile.effect.ts | 24 +- src/app/features/profile/profile.module.ts | 85 +-- .../features/voice/effects/voice.effect.ts | 46 +- .../features/voice/reducers/voice.reducer.ts | 5 +- src/app/features/voice/voice.module.ts | 95 +-- .../rightsidebar/rightsidebar.component.html | 6 +- src/app/layouts/shared/shared.module.ts | 38 +- .../layouts/vertical/vertical.component.html | 3 +- src/app/providers/loading.ts | 14 +- src/app/store/index.ts | 124 +--- src/assets/env.prod.js | 34 +- src/assets/images/mapping/mapbox-gl.css | 618 +++++++++++++++++- src/environments/environment.prod.ts | 28 +- src/environments/environment.ts | 26 +- src/main.ts | 20 +- src/test.ts | 14 +- 38 files changed, 1602 insertions(+), 1129 deletions(-) diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 05ac8dd..44b8e48 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,8 +1,8 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import { AuthGuard } from './core/guards/auth.guard'; +import { NgModule } from "@angular/core"; +import { Routes, RouterModule } from "@angular/router"; +import { AuthGuard } from "./core/guards/auth.guard"; -import { LayoutComponent } from './layouts/layout/layout.component'; +import { LayoutComponent } from "./layouts/layout/layout.component"; /* const routes: Routes = [ @@ -14,34 +14,34 @@ const routes: Routes = [ */ const routes: Routes = [ { - path: '', - redirectTo: 'auth', - pathMatch: 'full' + path: "", + redirectTo: "auth", + pathMatch: "full", }, { - path: 'auth', - loadChildren: () => import('./features/auth/auth.module').then(m => m.AuthModule) + path: "auth", + loadChildren: () => import("./features/auth/auth.module").then((m) => m.AuthModule), }, { - path: 'home', - loadChildren: () => import('./features/home/home.module').then(m => m.HomeModule) + path: "home", + loadChildren: () => import("./features/home/home.module").then((m) => m.HomeModule), }, { - path: 'calls', - loadChildren: () => import('./features/calls/calls.module').then(m => m.CallsModule) + path: "calls", + loadChildren: () => import("./features/calls/calls.module").then((m) => m.CallsModule), }, { - path: 'profile', - loadChildren: () => import('./features/profile/profile.module').then(m => m.ProfileModule) + path: "profile", + loadChildren: () => import("./features/profile/profile.module").then((m) => m.ProfileModule), }, { - path: 'mapping', - loadChildren: () => import('./features/mapping/mapping.module').then(m => m.MappingModule) - } + path: "mapping", + loadChildren: () => import("./features/mapping/mapping.module").then((m) => m.MappingModule), + }, ]; @NgModule({ - imports: [RouterModule.forRoot(routes, { scrollPositionRestoration: 'top' })], - exports: [RouterModule] + imports: [RouterModule.forRoot(routes, { scrollPositionRestoration: "top" })], + exports: [RouterModule], }) -export class AppRoutingModule { } +export class AppRoutingModule {} diff --git a/src/app/app.module.ts b/src/app/app.module.ts index ac14899..bb96671 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,27 +1,27 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { HttpClientModule, HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http'; -import { TranslateHttpLoader } from '@ngx-translate/http-loader'; -import { environment } from '../environments/environment'; -import { LayoutsModule } from './layouts/layouts.module'; -import { NgxResgridLibModule } from '@resgrid/ngx-resgridlib'; -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; -import { NgxSpinnerModule } from 'ngx-spinner'; -import { StoreModule } from '@ngrx/store'; -import { metaReducers, reducers } from './store/reducers'; -import { EffectsModule } from '@ngrx/effects'; -import { StoreRouterConnectingModule } from '@ngrx/router-store'; -import { StoreDevtoolsModule } from '@ngrx/store-devtools'; -import { AuthModule } from './features/auth/auth.module'; -import { LeafletModule } from '@asymmetrik/ngx-leaflet'; -import { VoiceModule } from './features/voice/voice.module'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { MappingModule } from './features/mapping/mapping.module'; -import { TranslateModule, TranslateLoader } from '@ngx-translate/core'; +import { BrowserModule } from "@angular/platform-browser"; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core"; +import { HttpClientModule, HTTP_INTERCEPTORS, HttpClient } from "@angular/common/http"; +import { TranslateHttpLoader } from "@ngx-translate/http-loader"; +import { environment } from "../environments/environment"; +import { LayoutsModule } from "./layouts/layouts.module"; +import { NgxResgridLibModule } from "@resgrid/ngx-resgridlib"; +import { AppRoutingModule } from "./app-routing.module"; +import { AppComponent } from "./app.component"; +import { NgxSpinnerModule } from "ngx-spinner"; +import { StoreModule } from "@ngrx/store"; +import { metaReducers, reducers } from "./store/reducers"; +import { EffectsModule } from "@ngrx/effects"; +import { StoreRouterConnectingModule } from "@ngrx/router-store"; +import { StoreDevtoolsModule } from "@ngrx/store-devtools"; +import { AuthModule } from "./features/auth/auth.module"; +import { LeafletModule } from "@asymmetrik/ngx-leaflet"; +import { VoiceModule } from "./features/voice/voice.module"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { MappingModule } from "./features/mapping/mapping.module"; +import { TranslateModule, TranslateLoader } from "@ngx-translate/core"; export function createTranslateLoader(http: HttpClient): any { - return new TranslateHttpLoader(http, 'assets/i18n/', '.json'); + return new TranslateHttpLoader(http, "assets/i18n/", ".json"); } let getBaseUrl = (): string => { @@ -34,25 +34,23 @@ let getBaseUrl = (): string => { }; @NgModule({ - declarations: [ - AppComponent - ], + declarations: [AppComponent], imports: [ BrowserModule, HttpClientModule, AppRoutingModule, NgxResgridLibModule.forRoot({ baseApiUrl: getBaseUrl, - apiVersion: 'v4', - clientId: 'RgDispatchApp', + apiVersion: "v4", + clientId: "RgDispatchApp", googleApiKey: environment.googleMapsKey, channelUrl: environment.channelUrl, channelHubName: environment.channelHubName, realtimeGeolocationHubName: environment.realtimeGeolocationHubName, logLevel: environment.logLevel, isMobileApp: true, - cacheProvider: null - }), + cacheProvider: null, + }), BrowserAnimationsModule, LeafletModule, NgxSpinnerModule, @@ -61,20 +59,20 @@ let getBaseUrl = (): string => { StoreRouterConnectingModule.forRoot(), StoreDevtoolsModule.instrument({ maxAge: 10, // number of states to retain - name: 'Resgrid Dispatch', - logOnly: environment.production + name: "Resgrid Dispatch", + logOnly: environment.production, }), TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: createTranslateLoader, - deps: [HttpClient] - } + deps: [HttpClient], + }, }), AuthModule, VoiceModule, LayoutsModule, - MappingModule + MappingModule, ], providers: [ //{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true }, @@ -82,6 +80,6 @@ let getBaseUrl = (): string => { //{ provide: HTTP_INTERCEPTORS, useClass: FakeBackendInterceptor, multi: true }, ], schemas: [CUSTOM_ELEMENTS_SCHEMA], - bootstrap: [AppComponent] + bootstrap: [AppComponent], }) -export class AppModule { } +export class AppModule {} diff --git a/src/app/features/auth/effects/auth.effect.ts b/src/app/features/auth/effects/auth.effect.ts index 15334ee..de5b5bc 100644 --- a/src/app/features/auth/effects/auth.effect.ts +++ b/src/app/features/auth/effects/auth.effect.ts @@ -32,10 +32,10 @@ export class AuthEffects { this.authProvider.startTrackingRefreshToken(); }), // If request fails, dispatch failed action - catchError(() => of({ type: authAction.LoginActionTypes.LOGIN_FAIL })) - ) - ) - ) + catchError(() => of({ type: authAction.LoginActionTypes.LOGIN_FAIL })), + ), + ), + ), ); loginSuccess$ = createEffect( @@ -45,9 +45,9 @@ export class AuthEffects { tap(() => { this.loadingProvider.hide(); this.router.navigate(["/home"]); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); loginDone$ = createEffect( @@ -56,9 +56,9 @@ export class AuthEffects { ofType(authAction.LoginActionTypes.LOGIN_DONE), tap((action) => { console.log(action); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); loginFail$ = createEffect( @@ -71,11 +71,11 @@ export class AuthEffects { await this.alertProvider.showErrorAlert( "Login Error", "", - "There was an issue trying to log you in, please check your username and password and try again." + "There was an issue trying to log you in, please check your username and password and try again.", ); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); loggingIn$ = createEffect( @@ -84,9 +84,9 @@ export class AuthEffects { ofType(authAction.LoginActionTypes.IS_LOGIN), tap((action) => { this.loadingProvider.show(); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); constructor( @@ -94,6 +94,6 @@ export class AuthEffects { private authProvider: AuthProvider, private router: Router, private loadingProvider: LoadingProvider, - private alertProvider: AlertProvider + private alertProvider: AlertProvider, ) {} } diff --git a/src/app/features/auth/pages/login/login.page.ts b/src/app/features/auth/pages/login/login.page.ts index 2dd2b82..98794a9 100644 --- a/src/app/features/auth/pages/login/login.page.ts +++ b/src/app/features/auth/pages/login/login.page.ts @@ -5,7 +5,7 @@ import { selectAuthState, selectIsLoginState, selectLoginState } from "src/app/s import * as AuthActions from "../../actions/auth.actions"; import { LoadingProvider } from "src/app/providers/loading"; import { AuthState } from "../../store/auth.store"; -import { environment } from '../../../../../environments/environment'; +import { environment } from "../../../../../environments/environment"; import { Observable } from "rxjs"; @Component({ @@ -23,7 +23,7 @@ export class LoginPage implements OnInit { constructor( private fb: UntypedFormBuilder, - private store: Store + private store: Store, ) { this.authState$ = this.store.select(selectAuthState); } @@ -35,8 +35,8 @@ export class LoginPage implements OnInit { ngOnInit() { this.version = environment.version; - document.body.removeAttribute('data-layout'); - document.body.classList.add('auth-body-bg'); + document.body.removeAttribute("data-layout"); + document.body.classList.add("auth-body-bg"); this.store.select(selectIsLoginState).subscribe((res) => { this.isLogging$ = res; diff --git a/src/app/features/calls/calls.module.ts b/src/app/features/calls/calls.module.ts index 9c171fe..0dd28d9 100644 --- a/src/app/features/calls/calls.module.ts +++ b/src/app/features/calls/calls.module.ts @@ -1,45 +1,50 @@ -import { NgModule } from '@angular/core'; -import { StoreModule } from '@ngrx/store'; -import { EffectsModule } from '@ngrx/effects'; -import { CommonModule } from '@angular/common'; -import { ReactiveFormsModule, FormsModule } from '@angular/forms'; -import { CallsRoutingModule } from './calls-routing.module'; -import { reducer } from './reducers/calls.reducer'; -import { CallsEffects } from './effects/calls.effect'; -import { NgbAlertModule, NgbDropdownModule, NgbNavModule, NgbPaginationModule, NgbTooltipModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap'; -import { Ng2SearchPipeModule } from 'ng2-search-filter'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; -import { LeafletModule } from '@asymmetrik/ngx-leaflet'; -import { UiModule } from 'src/app/shared/ui/ui.module'; -import { GalleryModule } from 'ng-gallery'; -import { UpdateDispatchTimeModalComponent } from './modals/updateDispatchTime/updateDispatchTime.modal'; -import { NgxResgridLibModule } from '@resgrid/ngx-resgridlib'; +import { NgModule } from "@angular/core"; +import { StoreModule } from "@ngrx/store"; +import { EffectsModule } from "@ngrx/effects"; +import { CommonModule } from "@angular/common"; +import { ReactiveFormsModule, FormsModule } from "@angular/forms"; +import { CallsRoutingModule } from "./calls-routing.module"; +import { reducer } from "./reducers/calls.reducer"; +import { CallsEffects } from "./effects/calls.effect"; +import { + NgbAlertModule, + NgbDropdownModule, + NgbNavModule, + NgbPaginationModule, + NgbTooltipModule, + NgbTypeaheadModule, +} from "@ng-bootstrap/ng-bootstrap"; +import { Ng2SearchPipeModule } from "ng2-search-filter"; +import { PerfectScrollbarModule } from "ngx-perfect-scrollbar"; +import { LeafletModule } from "@asymmetrik/ngx-leaflet"; +import { UiModule } from "src/app/shared/ui/ui.module"; +import { GalleryModule } from "ng-gallery"; +import { UpdateDispatchTimeModalComponent } from "./modals/updateDispatchTime/updateDispatchTime.modal"; +import { NgxResgridLibModule } from "@resgrid/ngx-resgridlib"; @NgModule({ - declarations: [ - UpdateDispatchTimeModalComponent - ], - imports: [ - CommonModule, - FormsModule, - ReactiveFormsModule, - CallsRoutingModule, - NgbAlertModule, - NgxResgridLibModule, - Ng2SearchPipeModule, - NgbNavModule, - NgbDropdownModule, - NgbTooltipModule, - PerfectScrollbarModule, - LeafletModule, - UiModule, - StoreModule.forFeature('callsModule', reducer), - EffectsModule.forFeature([CallsEffects]), - GalleryModule, - NgbPaginationModule, - NgbTypeaheadModule - ], - providers: [], - exports: [] + declarations: [UpdateDispatchTimeModalComponent], + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + CallsRoutingModule, + NgbAlertModule, + NgxResgridLibModule, + Ng2SearchPipeModule, + NgbNavModule, + NgbDropdownModule, + NgbTooltipModule, + PerfectScrollbarModule, + LeafletModule, + UiModule, + StoreModule.forFeature("callsModule", reducer), + EffectsModule.forFeature([CallsEffects]), + GalleryModule, + NgbPaginationModule, + NgbTypeaheadModule, + ], + providers: [], + exports: [], }) -export class CallsModule { } +export class CallsModule {} diff --git a/src/app/features/calls/effects/calls.effect.ts b/src/app/features/calls/effects/calls.effect.ts index 78fdf32..bd1f57f 100644 --- a/src/app/features/calls/effects/calls.effect.ts +++ b/src/app/features/calls/effects/calls.effect.ts @@ -30,10 +30,10 @@ export class CallsEffects { })), tap((data) => {}), // If request fails, dispatch failed action - catchError(() => of({ type: callsAction.CallsActionTypes.GET_SCHEDULED_CALLS_FAIL })) - ) - ) - ) + catchError(() => of({ type: callsAction.CallsActionTypes.GET_SCHEDULED_CALLS_FAIL })), + ), + ), + ), ); getScheduledCallsFail$ = createEffect( @@ -45,11 +45,11 @@ export class CallsEffects { this.alertProvider.showErrorAlert( "Get Scheduled Calls Error", "", - "There was an issue trying to get scheduled calls, please try again." + "There was an issue trying to get scheduled calls, please try again.", ); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); getScheduledCallsSuccess$ = createEffect( @@ -58,9 +58,9 @@ export class CallsEffects { ofType(callsAction.CallsActionTypes.GET_SCHEDULED_CALLS_SUCCESS), tap((data) => { this.loadingProvider.hide(); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); getUpdatedPersonnelandUnitsDistancesToCall$ = createEffect( @@ -85,7 +85,7 @@ export class CallsEffects { const locationParts = person.Location.split(","); const distance = this.locationProvider.getDistanceBetweenTwoPoints( action.callLocation, - new GpsLocation(Number(locationParts[0]), Number(locationParts[1])) + new GpsLocation(Number(locationParts[0]), Number(locationParts[1])), ); if (distance && distance > 0) { @@ -102,7 +102,7 @@ export class CallsEffects { if (unit.Latitude && unit.Longitude) { const distance = this.locationProvider.getDistanceBetweenTwoPoints( action.callLocation, - new GpsLocation(Number(unit.Latitude), Number(unit.Longitude)) + new GpsLocation(Number(unit.Latitude), Number(unit.Longitude)), ); if (distance && distance > 0) { @@ -120,9 +120,9 @@ export class CallsEffects { personnel: personnel, units: units, }; - }) + }), ), - { dispatch: false } + { dispatch: false }, ); getCallById$ = createEffect(() => @@ -144,10 +144,10 @@ export class CallsEffects { })), tap((data) => {}), // If request fails, dispatch failed action - catchError(() => of({ type: callsAction.CallsActionTypes.GET_CALL_BYID_FAIL })) - ) - ) - ) + catchError(() => of({ type: callsAction.CallsActionTypes.GET_CALL_BYID_FAIL })), + ), + ), + ), ); getCallByIdFail$ = createEffect( @@ -157,9 +157,9 @@ export class CallsEffects { tap(async (action) => { this.loadingProvider.hide(); this.alertProvider.showErrorAlert("Get Call Error", "", "There was an issue trying to get this call, please try again."); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); getCallByIdSuccess$ = createEffect( @@ -168,9 +168,9 @@ export class CallsEffects { ofType(callsAction.CallsActionTypes.GET_CALL_BYID_SUCCESS), tap((data) => { this.loadingProvider.hide(); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); updateCall$ = createEffect(() => @@ -197,7 +197,7 @@ export class CallsEffects { action.call.DispatchList, action.call.DispatchOn, action.call.FormData, - action.call.Redispatch + action.call.Redispatch, ) .pipe( // If successful, dispatch success action with result @@ -205,10 +205,10 @@ export class CallsEffects { type: callsAction.CallsActionTypes.UPDATE_CALL_SUCCESS, })), // If request fails, dispatch failed action - catchError(() => of({ type: callsAction.CallsActionTypes.UPDATE_CALL_FAIL })) - ) - ) - ) + catchError(() => of({ type: callsAction.CallsActionTypes.UPDATE_CALL_FAIL })), + ), + ), + ), ); saveCallFail$ = createEffect( @@ -218,9 +218,9 @@ export class CallsEffects { tap(async (action) => { this.closeModal(); this.alertProvider.showErrorAlert("Update Save Error", "", "There was an issue trying to save the call, please try again."); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); saveCallSuccess$ = createEffect( @@ -231,37 +231,37 @@ export class CallsEffects { this.loadingProvider.hide(); this.router.navigate(["/home"]); this.alertProvider.showAutoCloseSuccessAlert("Call has been updated."); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); showUpdateCallDispatchTimeModal$ = createEffect( () => this.actions$.pipe( ofType(callsAction.CallsActionTypes.SHOW_CALLDISPATCHTIMEMODAL), - exhaustMap((data) => this.runModal(UpdateDispatchTimeModalComponent, "md")) + exhaustMap((data) => this.runModal(UpdateDispatchTimeModalComponent, "md")), ), - { dispatch: false } + { dispatch: false }, ); updateCallDispatchTime$ = createEffect(() => this.actions$.pipe( ofType(callsAction.CallsActionTypes.UPDATE_CALL_DISPATCHTIME), - mergeMap((action) => - this.callsProvider.updateCallDisptachTime(action.callId, action.date).pipe( - // If successful, dispatch success action with result - map((data) => ({ - type: callsAction.CallsActionTypes.UPDATE_CALL_DISPATCHTIME_SUCCESS, - })), - tap((data) => { - this.closeModal(); - }), - // If request fails, dispatch failed action - catchError(() => of({ type: callsAction.CallsActionTypes.UPDATE_CALL_DISPATCHTIME_FAIL })) - ) - ) - ) + mergeMap((action) => + this.callsProvider.updateCallDisptachTime(action.callId, action.date).pipe( + // If successful, dispatch success action with result + map((data) => ({ + type: callsAction.CallsActionTypes.UPDATE_CALL_DISPATCHTIME_SUCCESS, + })), + tap((data) => { + this.closeModal(); + }), + // If request fails, dispatch failed action + catchError(() => of({ type: callsAction.CallsActionTypes.UPDATE_CALL_DISPATCHTIME_FAIL })), + ), + ), + ), ); updateCallDispatchTimeFail$ = createEffect( @@ -271,20 +271,20 @@ export class CallsEffects { tap(async (action) => { this.closeModal(); this.alertProvider.showErrorAlert("Update Save Error", "", "There was an issue trying to save the call, please try again."); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); updateCallDispatchTimeSuccess$ = createEffect( () => this.actions$.pipe( ofType(callsAction.CallsActionTypes.UPDATE_CALL_DISPATCHTIME_SUCCESS), - tap((data) => { - this.alertProvider.showAutoCloseSuccessAlert("Call has been updated."); - }) + tap((data) => { + this.alertProvider.showAutoCloseSuccessAlert("Call has been updated."); + }), ), - { dispatch: false } + { dispatch: false }, ); constructor( @@ -296,7 +296,7 @@ export class CallsEffects { private alertProvider: AlertProvider, private loadingProvider: LoadingProvider, private router: Router, - private mapProvider: MappingService + private mapProvider: MappingService, ) {} runModal = (component, size) => { diff --git a/src/app/features/calls/modals/updateDispatchTime/updateDispatchTime.modal.ts b/src/app/features/calls/modals/updateDispatchTime/updateDispatchTime.modal.ts index 1995734..5ac4014 100644 --- a/src/app/features/calls/modals/updateDispatchTime/updateDispatchTime.modal.ts +++ b/src/app/features/calls/modals/updateDispatchTime/updateDispatchTime.modal.ts @@ -5,7 +5,7 @@ import { Observable } from "rxjs"; import { selectCallsState } from "src/app/store"; import { take } from "rxjs/operators"; import { Actions, ofType } from "@ngrx/effects"; -import * as _ from 'lodash'; +import * as _ from "lodash"; import { CallsState } from "../../store/calls.store"; import * as CallsActions from "../../actions/calls.actions"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; @@ -23,18 +23,16 @@ export class UpdateDispatchTimeModalComponent implements OnInit { public activeModal: NgbActiveModal, private store: Store, private actions$: Actions, - public formBuilder: UntypedFormBuilder + public formBuilder: UntypedFormBuilder, ) { this.callsState$ = this.store.select(selectCallsState); this.updateCallForm = this.formBuilder.group({ - dispatchOn: ["", Validators.required] + dispatchOn: ["", Validators.required], }); } - ngOnInit() { - - } + ngOnInit() {} public dismiss() { this.activeModal.close(); @@ -45,11 +43,14 @@ export class UpdateDispatchTimeModalComponent implements OnInit { } public save() { - this.store.select(selectCallsState).pipe(take(1)).subscribe((state) => { - this.store.dispatch(new CallsActions.IsUpdatingCallDispatchTime()); - - const call = this.form; - this.store.dispatch(new CallsActions.UpdateCallDispatchTime(state.callIdToUpdateDispatchTime, call["dispatchOn"].value)); - }); + this.store + .select(selectCallsState) + .pipe(take(1)) + .subscribe((state) => { + this.store.dispatch(new CallsActions.IsUpdatingCallDispatchTime()); + + const call = this.form; + this.store.dispatch(new CallsActions.UpdateCallDispatchTime(state.callIdToUpdateDispatchTime, call["dispatchOn"].value)); + }); } } diff --git a/src/app/features/calls/pages/edit-call/edit-call.page.ts b/src/app/features/calls/pages/edit-call/edit-call.page.ts index 5f78b34..0e23528 100644 --- a/src/app/features/calls/pages/edit-call/edit-call.page.ts +++ b/src/app/features/calls/pages/edit-call/edit-call.page.ts @@ -1,35 +1,19 @@ -import { - AfterViewInit, - ChangeDetectorRef, - Component, - OnInit, - QueryList, - ViewChild, - ViewChildren, -} from "@angular/core"; +import { AfterViewInit, ChangeDetectorRef, Component, OnInit, QueryList, ViewChild, ViewChildren } from "@angular/core"; import { Store } from "@ngrx/store"; import * as _ from "lodash"; import { CallsState } from "../../store/calls.store"; import * as CallsActions from "../../actions/calls.actions"; -import { - CallsSortableDirective, - SortEvent, -} from "../../directives/calls-sortable.directive"; +import { CallsSortableDirective, SortEvent } from "../../directives/calls-sortable.directive"; import { UtilsProvider } from "src/app/providers/utils"; import { ActivatedRoute, Router } from "@angular/router"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; import { Observable } from "rxjs"; import { HomeState } from "src/app/features/home/store/home.store"; -import { - selectCallsState, - selectEditCallData, - selectEditCallState, - selectHomeState, -} from "src/app/store"; +import { selectCallsState, selectEditCallData, selectEditCallState, selectHomeState } from "src/app/store"; import * as L from "leaflet"; import { environment } from "../../../../../environments/environment"; import { take } from "rxjs/operators"; -import { CallResult, CallResultData, GetMapDataAndMarkersResult, GpsLocation, MapDataAndMarkersData } from '@resgrid/ngx-resgridlib'; +import { CallResult, CallResultData, GetMapDataAndMarkersResult, GpsLocation, MapDataAndMarkersData } from "@resgrid/ngx-resgridlib"; import { Call } from "src/app/core/models/call"; @Component({ @@ -68,7 +52,7 @@ export class EditCallPage implements AfterViewInit { public utilsProvider: UtilsProvider, private activatedroute: ActivatedRoute, private router: Router, - private cdr: ChangeDetectorRef + private cdr: ChangeDetectorRef, ) { this.callsState$ = this.store.select(selectCallsState); this.homeState$ = this.store.select(selectHomeState); @@ -95,23 +79,18 @@ export class EditCallPage implements AfterViewInit { } ngAfterViewInit(): void { - this.breadCrumbItems = [ - { label: "Resgrid Dispatch" }, - { label: "Edit Call", active: true }, - ]; + this.breadCrumbItems = [{ label: "Resgrid Dispatch" }, { label: "Edit Call", active: true }]; this.unitGroups = new Array(); - this.activatedRouteSub = this.activatedroute.paramMap.subscribe( - (params) => { - if (params) { - this.id = params.get("id"); - this.source = parseInt(params.get("source"), 10); + this.activatedRouteSub = this.activatedroute.paramMap.subscribe((params) => { + if (params) { + this.id = params.get("id"); + this.source = parseInt(params.get("source"), 10); - this.store.dispatch(new CallsActions.GetCallById(this.id)); - } + this.store.dispatch(new CallsActions.GetCallById(this.id)); } - ); + }); this.store.select(selectHomeState).subscribe((state) => { this.store.dispatch( @@ -120,8 +99,8 @@ export class EditCallPage implements AfterViewInit { state.rolesForGrid, state.groupsForGrid, state.personnelForGrid, - state.mapData - ) + state.mapData, + ), ); if (state.unitStatuses) { @@ -144,9 +123,7 @@ export class EditCallPage implements AfterViewInit { if (!this.unitGroups || this.unitGroups.length == 0) { this.unitGroups.push("No Group"); - const groups = _.uniqBy(state.unitStatuses, "GroupName").map( - (item) => item.GroupName - ); + const groups = _.uniqBy(state.unitStatuses, "GroupName").map((item) => item.GroupName); groups.forEach((group) => { if (group && group.length > 0) { @@ -226,7 +203,11 @@ export class EditCallPage implements AfterViewInit { this.setupNewCallMap(parseInt(editCallData.Latitude), parseInt(editCallData.Longitude), 13); this.addPinToMap(editCallData.Latitude, editCallData.Longitude); } else { - this.setupNewCallMap(parseInt(callsState.mapData.CenterLat), parseInt(callsState.mapData.CenterLon), parseInt(callsState.mapData.ZoomLevel)); + this.setupNewCallMap( + parseInt(callsState.mapData.CenterLat), + parseInt(callsState.mapData.CenterLon), + parseInt(callsState.mapData.ZoomLevel), + ); } this.cdr.detectChanges(); @@ -238,36 +219,28 @@ export class EditCallPage implements AfterViewInit { var id = event.target.name; var checked = event.target.checked; - this.store.dispatch( - new CallsActions.UpdateSelectedDispatchPerson(id, checked) - ); + this.store.dispatch(new CallsActions.UpdateSelectedDispatchPerson(id, checked)); } public changeCheckedGroupDispatch(event) { var id = event.target.name; var checked = event.target.checked; - this.store.dispatch( - new CallsActions.UpdateSelectedDispatchGroup(id, checked) - ); + this.store.dispatch(new CallsActions.UpdateSelectedDispatchGroup(id, checked)); } public changeCheckedRoleDispatch(event) { var id = event.target.name; var checked = event.target.checked; - this.store.dispatch( - new CallsActions.UpdateSelectedDispatchRole(id, checked) - ); + this.store.dispatch(new CallsActions.UpdateSelectedDispatchRole(id, checked)); } public changeCheckedUnitDispatch(event) { var id = event.target.name; var checked = event.target.checked; - this.store.dispatch( - new CallsActions.UpdateSelectedDispatchRoleUnit(id, checked) - ); + this.store.dispatch(new CallsActions.UpdateSelectedDispatchRoleUnit(id, checked)); event.stopPropagation(); } @@ -297,7 +270,7 @@ export class EditCallPage implements AfterViewInit { if (call["latitude"]) { let latitude = call["latitude"].value; - if (latitude && latitude !== 'null') { + if (latitude && latitude !== "null") { editCall.Latitude = call["latitude"].value; } } @@ -305,7 +278,7 @@ export class EditCallPage implements AfterViewInit { if (call["longitude"]) { let longitude = call["longitude"].value; - if (longitude && longitude !== 'null') { + if (longitude && longitude !== "null") { editCall.Longitude = call["longitude"].value; } } @@ -319,69 +292,64 @@ export class EditCallPage implements AfterViewInit { editCall.DispatchOn = call["dispatchOn"].value; } - this.store.select(selectCallsState).pipe(take(1)).subscribe((state) => { - if (state.callToEdit) { - editCall.Id = state.callToEdit.CallId; - } + this.store + .select(selectCallsState) + .pipe(take(1)) + .subscribe((state) => { + if (state.callToEdit) { + editCall.Id = state.callToEdit.CallId; + } - if (state && state.personnelForGrid) { - state.personnelForGrid.forEach((person) => { - if (person && person.Selected) { - if (editCall.DispatchList.length > 0) { - editCall.DispatchList = editCall.DispatchList.concat( - `|P:${person.UserId}` - ); - } else { - editCall.DispatchList = `P:${person.UserId}`; + if (state && state.personnelForGrid) { + state.personnelForGrid.forEach((person) => { + if (person && person.Selected) { + if (editCall.DispatchList.length > 0) { + editCall.DispatchList = editCall.DispatchList.concat(`|P:${person.UserId}`); + } else { + editCall.DispatchList = `P:${person.UserId}`; + } } - } - }); - } + }); + } - if (state && state.groupsForGrid) { - state.groupsForGrid.forEach((group) => { - if (group && group.Selected) { - if (editCall.DispatchList.length > 0) { - editCall.DispatchList = editCall.DispatchList.concat( - `|G:${group.GroupId}` - ); - } else { - editCall.DispatchList = `G:${group.GroupId}`; + if (state && state.groupsForGrid) { + state.groupsForGrid.forEach((group) => { + if (group && group.Selected) { + if (editCall.DispatchList.length > 0) { + editCall.DispatchList = editCall.DispatchList.concat(`|G:${group.GroupId}`); + } else { + editCall.DispatchList = `G:${group.GroupId}`; + } } - } - }); - } + }); + } - if (state && state.rolesForGrid) { - state.rolesForGrid.forEach((role) => { - if (role && role.Selected) { - if (editCall.DispatchList.length > 0) { - editCall.DispatchList = editCall.DispatchList.concat( - `|R:${role.RoleId}` - ); - } else { - editCall.DispatchList = `R:${role.RoleId}`; + if (state && state.rolesForGrid) { + state.rolesForGrid.forEach((role) => { + if (role && role.Selected) { + if (editCall.DispatchList.length > 0) { + editCall.DispatchList = editCall.DispatchList.concat(`|R:${role.RoleId}`); + } else { + editCall.DispatchList = `R:${role.RoleId}`; + } } - } - }); - } + }); + } - if (state && state.unitStatuses) { - state.unitStatuses.forEach((unit) => { - if (unit && unit.Selected) { - if (editCall.DispatchList.length > 0) { - editCall.DispatchList = editCall.DispatchList.concat( - `|U:${unit.UnitId}` - ); - } else { - editCall.DispatchList = `U:${unit.UnitId}`; + if (state && state.unitStatuses) { + state.unitStatuses.forEach((unit) => { + if (unit && unit.Selected) { + if (editCall.DispatchList.length > 0) { + editCall.DispatchList = editCall.DispatchList.concat(`|U:${unit.UnitId}`); + } else { + editCall.DispatchList = `U:${unit.UnitId}`; + } } - } - }); - } + }); + } - this.store.dispatch(new CallsActions.UpdateCall(editCall, this.source)); - }); + this.store.dispatch(new CallsActions.UpdateCall(editCall, this.source)); + }); } public getCoordinatesForAddress() {} @@ -395,14 +363,10 @@ export class EditCallPage implements AfterViewInit { scrollWheelZoom: false, }); - L.tileLayer( - "https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key=" + - environment.osmMapKey, - { - attribution: - '© OpenStreetMap contributors CC-BY-SA', - } - ).addTo(this.newCallMap); + L.tileLayer("https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key=" + environment.osmMapKey, { + attribution: + '© OpenStreetMap contributors CC-BY-SA', + }).addTo(this.newCallMap); this.newCallMap.scrollWheelZoom.disable(); this.newCallMap.setView([latitude, longitude], zoom); @@ -423,9 +387,7 @@ export class EditCallPage implements AfterViewInit { this.newCallMarker = null; } //console.log('You clicked the map at latitude: ' + lat + ' and longitude: ' + lng); - this.newCallMarker = new L.Marker([lat, lng], { draggable: true }).addTo( - this.newCallMap - ); + this.newCallMarker = new L.Marker([lat, lng], { draggable: true }).addTo(this.newCallMap); const that = this; this.newCallMarker.on("dragend", function (event) { var marker = event.target; @@ -439,9 +401,7 @@ export class EditCallPage implements AfterViewInit { this.form["longitude"].setValue(position.lng); this.form["longitude"].patchValue(position.lng); - this.updatePersonnelDistances( - new GpsLocation(position.lat, position.lng) - ); + this.updatePersonnelDistances(new GpsLocation(position.lat, position.lng)); //that.store.dispatch( // new HomeActions.UpdateNewCallLocation(position.lat, position.lng) @@ -474,11 +434,7 @@ export class EditCallPage implements AfterViewInit { this.store.select(selectHomeState).subscribe((state) => { if (state && state.personnelForGrid) { this.store.dispatch( - new CallsActions.GetUpdatedPersonnelandUnitsDistancesToCall( - location, - state.personnelForGrid, - state.unitStatuses - ) + new CallsActions.GetUpdatedPersonnelandUnitsDistancesToCall(location, state.personnelForGrid, state.unitStatuses), ); } }); diff --git a/src/app/features/home/effects/home.effect.ts b/src/app/features/home/effects/home.effect.ts index ddd1a1c..7d7b0ff 100644 --- a/src/app/features/home/effects/home.effect.ts +++ b/src/app/features/home/effects/home.effect.ts @@ -55,10 +55,10 @@ export class HomeEffects { payload: data, })), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.LOADING_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.LOADING_FAIL })), + ), + ), + ), ); loadingSuccess$ = createEffect(() => @@ -66,8 +66,8 @@ export class HomeEffects { ofType(homeAction.HomeActionTypes.LOADING_SUCCESS), map((data) => ({ type: homeAction.HomeActionTypes.LOADING_MAP, - })) - ) + })), + ), ); loadingFail$ = createEffect( @@ -79,11 +79,11 @@ export class HomeEffects { this.alertProvider.showErrorAlert( "Unable to load data", "", - "There was an issue trying to fetch the dashboard data, please try again." + "There was an issue trying to fetch the dashboard data, please try again.", ); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); showSetUnitStatusModal$ = createEffect(() => @@ -94,19 +94,19 @@ export class HomeEffects { map((data) => ({ type: homeAction.HomeActionTypes.OPEN_SETUNITSTATUSMODAL, payload: data.Data, - })) - ) - ) - ) + })), + ), + ), + ), ); openSetUnitStatusModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.OPEN_SETUNITSTATUSMODAL), - exhaustMap((data) => this.runModal(SetUnitStatusModalComponent, "md")) + exhaustMap((data) => this.runModal(SetUnitStatusModalComponent, "md")), ), - { dispatch: false } + { dispatch: false }, ); saveUnitState$ = createEffect(() => @@ -140,10 +140,10 @@ export class HomeEffects { this.closeModal(); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_UNITSTATE_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_UNITSTATE_FAIL })), + ), + ), + ), ); saveUnitStateFail$ = createEffect( @@ -153,9 +153,9 @@ export class HomeEffects { tap(async (action) => { this.closeModal(); this.alertProvider.showErrorAlert("Unit Status Error", "", "There was an issue trying to set the unit status, please try again."); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); saveUnitStateSuccess$ = createEffect(() => @@ -172,10 +172,10 @@ export class HomeEffects { this.alertProvider.showAutoCloseSuccessAlert("Unit State has been saved."); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_UNITSTATE_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_UNITSTATE_FAIL })), + ), + ), + ), ); getLastestUnitStates$ = createEffect(() => @@ -189,10 +189,10 @@ export class HomeEffects { payload: data.Data, })), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.GENERAL_FAILURE })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.GENERAL_FAILURE })), + ), + ), + ), ); saveCloseCall$ = createEffect(() => @@ -208,19 +208,19 @@ export class HomeEffects { type: homeAction.HomeActionTypes.SAVE_CLOSECALL_SUCCESS, })), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CLOSECALL_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CLOSECALL_FAIL })), + ), + ), + ), ); openCloseCallModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.SHOW_CLOSECALLMODAL), - exhaustMap((data) => this.runModal(CloseCallModalComponent, "md")) + exhaustMap((data) => this.runModal(CloseCallModalComponent, "md")), ), - { dispatch: false } + { dispatch: false }, ); saveCloseCallFail$ = createEffect( @@ -230,9 +230,9 @@ export class HomeEffects { tap(async (action) => { this.closeModal(); this.alertProvider.showErrorAlert("Close Call Error", "", "There was an issue trying to close the call, please try again."); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); saveCloseCallSuccess$ = createEffect(() => @@ -249,10 +249,10 @@ export class HomeEffects { this.alertProvider.showAutoCloseSuccessAlert("Call has been closed."); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CLOSECALL_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CLOSECALL_FAIL })), + ), + ), + ), ); loadingMap$ = createEffect(() => @@ -266,10 +266,10 @@ export class HomeEffects { payload: data.Data, })), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.LOADING_MAP_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.LOADING_MAP_FAIL })), + ), + ), + ), ); loadingMapSuccess$ = createEffect( @@ -278,9 +278,9 @@ export class HomeEffects { ofType(homeAction.HomeActionTypes.LOADING_MAP_SUCCESS), tap((action) => { this.loadingProvider.hide(); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); loadingMapFail$ = createEffect( @@ -292,11 +292,11 @@ export class HomeEffects { this.alertProvider.showErrorAlert( "Unable to load map data", "", - "There was an issue trying to fetch the map data, please try again." + "There was an issue trying to fetch the map data, please try again.", ); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); showSelectCallTemplateModal$ = createEffect(() => @@ -307,19 +307,19 @@ export class HomeEffects { map((data) => ({ type: homeAction.HomeActionTypes.OPEN_SELECTCALLTEMPLATEMODAL, payload: data.Data, - })) - ) - ) - ) + })), + ), + ), + ), ); openSelectCallTemplateModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.OPEN_SELECTCALLTEMPLATEMODAL), - exhaustMap((data) => this.runModal(SelectTemplateModalComponent, "md")) + exhaustMap((data) => this.runModal(SelectTemplateModalComponent, "md")), ), - { dispatch: false } + { dispatch: false }, ); applyCallTemplateModal$ = createEffect( @@ -328,9 +328,9 @@ export class HomeEffects { ofType(homeAction.HomeActionTypes.UPDATE_APPLYCALLTEMPLATE), tap(async (action) => { this.closeModal(); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); getCoordinatesForAddress$ = createEffect(() => @@ -348,11 +348,11 @@ export class HomeEffects { catchError(() => of({ type: homeAction.HomeActionTypes.GET_COORDINATESFORADDRESS_FAIL, - }) - ) - ) - ) - ) + }), + ), + ), + ), + ), ); getAddressForCoordinates$ = createEffect(() => @@ -370,11 +370,11 @@ export class HomeEffects { catchError(() => of({ type: homeAction.HomeActionTypes.GET_ADDRESSFORCOORDINATES_FAIL, - }) - ) - ) - ) - ) + }), + ), + ), + ), + ), ); saveCall$ = createEffect(() => @@ -399,7 +399,7 @@ export class HomeEffects { action.call.Longitude, action.call.DispatchList, action.call.DispatchOn, - action.call.FormData + action.call.FormData, ) .pipe( // If successful, dispatch success action with result @@ -407,10 +407,10 @@ export class HomeEffects { type: homeAction.HomeActionTypes.SAVE_CALL_SUCCESS, })), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CALL_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CALL_FAIL })), + ), + ), + ), ); saveCallFail$ = createEffect( @@ -420,9 +420,9 @@ export class HomeEffects { tap(async (action) => { this.closeModal(); this.alertProvider.showErrorAlert("Call Save Error", "", "There was an issue trying to save the call, please try again."); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); saveCallSuccess$ = createEffect(() => @@ -439,10 +439,10 @@ export class HomeEffects { this.alertProvider.showAutoCloseSuccessAlert("Call has been saved and dispatched."); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CALL_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CALL_FAIL })), + ), + ), + ), ); getLatestPersonnelData$ = createEffect(() => @@ -456,10 +456,10 @@ export class HomeEffects { payload: data.Data, })), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.GENERAL_FAILURE })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.GENERAL_FAILURE })), + ), + ), + ), ); getLatestCalls$ = createEffect(() => @@ -473,10 +473,10 @@ export class HomeEffects { payload: data.Data, })), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.GENERAL_FAILURE })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.GENERAL_FAILURE })), + ), + ), + ), ); showCallNotesModal$ = createEffect(() => @@ -487,19 +487,19 @@ export class HomeEffects { map((data) => ({ type: homeAction.HomeActionTypes.OPEN_CALLNOTESMODAL, payload: data.Data, - })) - ) - ) - ) + })), + ), + ), + ), ); openCallNotesModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.OPEN_CALLNOTESMODAL), - exhaustMap((data) => this.runModal(CallNotesModalComponent, "lg")) + exhaustMap((data) => this.runModal(CallNotesModalComponent, "lg")), ), - { dispatch: false } + { dispatch: false }, ); saveCallNote$ = createEffect(() => @@ -515,10 +515,10 @@ export class HomeEffects { this.closeModal(); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CALLNOTE_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_CALLNOTE_FAIL })), + ), + ), + ), ); showCallImagesModal$ = createEffect(() => @@ -529,19 +529,19 @@ export class HomeEffects { map((data) => ({ type: homeAction.HomeActionTypes.OPEN_CALLIMAGESMODAL, payload: data.Data, - })) - ) - ) - ) + })), + ), + ), + ), ); openCallImagesModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.OPEN_CALLIMAGESMODAL), - exhaustMap((data) => this.runModal(CallImagesModalComponent, "xl")) + exhaustMap((data) => this.runModal(CallImagesModalComponent, "xl")), ), - { dispatch: false } + { dispatch: false }, ); uploadCallImage$ = createEffect(() => @@ -557,10 +557,10 @@ export class HomeEffects { this.closeModal(); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.UPLOAD_CALLIMAGE_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.UPLOAD_CALLIMAGE_FAIL })), + ), + ), + ), ); showCallFilesModal$ = createEffect(() => @@ -571,19 +571,19 @@ export class HomeEffects { map((data) => ({ type: homeAction.HomeActionTypes.OPEN_CALLFILESMODAL, payload: data.Data, - })) - ) - ) - ) + })), + ), + ), + ), ); openCallFilesModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.OPEN_CALLFILESMODAL), - exhaustMap((data) => this.runModal(CallFilesModalComponent, "lg")) + exhaustMap((data) => this.runModal(CallFilesModalComponent, "lg")), ), - { dispatch: false } + { dispatch: false }, ); uploadCallFile$ = createEffect(() => @@ -599,10 +599,10 @@ export class HomeEffects { this.closeModal(); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.UPLOAD_CALLFILE_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.UPLOAD_CALLFILE_FAIL })), + ), + ), + ), ); getUpdatedPersonnelandUnitsDistancesToCall$ = createEffect(() => @@ -626,7 +626,7 @@ export class HomeEffects { const locationParts = person.Location.split(","); const distance = this.locationProvider.getDistanceBetweenTwoPoints( action.callLocation, - new GpsLocation(Number(locationParts[0]), Number(locationParts[1])) + new GpsLocation(Number(locationParts[0]), Number(locationParts[1])), ); if (distance && distance > 0) { @@ -643,7 +643,7 @@ export class HomeEffects { if (unit.Latitude && unit.Longitude) { const distance = this.locationProvider.getDistanceBetweenTwoPoints( action.callLocation, - new GpsLocation(Number(unit.Latitude), Number(unit.Longitude)) + new GpsLocation(Number(unit.Latitude), Number(unit.Longitude)), ); if (distance && distance > 0) { @@ -661,35 +661,35 @@ export class HomeEffects { personnel: personnel, units: units, }; - }) - ) + }), + ), ); openCallFormModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.OPEN_CALLFORMMODAL), - exhaustMap((data) => this.runModal(CallFormModalComponent, "xl")) + exhaustMap((data) => this.runModal(CallFormModalComponent, "xl")), ), - { dispatch: false } + { dispatch: false }, ); setCallFormData$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.SET_NEWCALLFORMDATA), - tap((data) => this.closeModal()) + tap((data) => this.closeModal()), ), - { dispatch: false } + { dispatch: false }, ); showSetPersonStatusModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.OPEN_SETPERSONSTATUSMODAL), - exhaustMap((data) => this.runModal(SetPersonStatusModalComponent, "md")) + exhaustMap((data) => this.runModal(SetPersonStatusModalComponent, "md")), ), - { dispatch: false } + { dispatch: false }, ); savePersonnelStatus$ = createEffect(() => @@ -722,10 +722,10 @@ export class HomeEffects { this.closeModal(); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_PERSONSTATUSES_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_PERSONSTATUSES_FAIL })), + ), + ), + ), ); savePersonnelStatusFail$ = createEffect( @@ -737,11 +737,11 @@ export class HomeEffects { this.alertProvider.showErrorAlert( "Personnel Status Error", "", - "There was an issue trying to set the personnel statuses, please try again." + "There was an issue trying to set the personnel statuses, please try again.", ); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); savePersonnelStatusSuccess$ = createEffect(() => @@ -758,19 +758,19 @@ export class HomeEffects { this.alertProvider.showAutoCloseSuccessAlert("Personnel Status have been updated."); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_PERSONSTATUSES_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_PERSONSTATUSES_FAIL })), + ), + ), + ), ); showSetPersonStaffingModal$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.OPEN_SETPERSONSTAFFINGMODAL), - exhaustMap((data) => this.runModal(SetPersonStaffingModalComponent, "md")) + exhaustMap((data) => this.runModal(SetPersonStaffingModalComponent, "md")), ), - { dispatch: false } + { dispatch: false }, ); savePersonnelStaffing$ = createEffect(() => @@ -795,10 +795,10 @@ export class HomeEffects { this.closeModal(); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_PERSONSTAFFING_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_PERSONSTAFFING_FAIL })), + ), + ), + ), ); savePersonnelStaffingSuccess$ = createEffect(() => @@ -815,10 +815,10 @@ export class HomeEffects { this.alertProvider.showAutoCloseSuccessAlert("Personnel Staffings have been updated."); }), // If request fails, dispatch failed action - catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_PERSONSTAFFING_FAIL })) - ) - ) - ) + catchError(() => of({ type: homeAction.HomeActionTypes.SAVE_PERSONSTAFFING_FAIL })), + ), + ), + ), ); showViewCallFormModal$ = createEffect(() => @@ -829,10 +829,10 @@ export class HomeEffects { map((data) => ({ type: homeAction.HomeActionTypes.OPEN_VIEW_CALL_FORM, payload: data.Data, - })) - ) - ) - ) + })), + ), + ), + ), ); openViewCallFormModal$ = createEffect(() => @@ -841,8 +841,8 @@ export class HomeEffects { exhaustMap((data) => this.runModal(ViewCallFormModalComponent, "md")), map((data) => ({ type: homeAction.HomeActionTypes.DONE, - })) - ) + })), + ), ); saveCallFormInvalid$ = createEffect( @@ -850,18 +850,18 @@ export class HomeEffects { this.actions$.pipe( ofType(homeAction.HomeActionTypes.SAVE_CALL_FORM_INVALID), switchMap((action) => this.loadingProvider.hide()), - tap((action) => this.alertProvider.showErrorAlert("Missing Fields", "", "There are fields missing to submit this call.")) + tap((action) => this.alertProvider.showErrorAlert("Missing Fields", "", "There are fields missing to submit this call.")), ), - { dispatch: false } + { dispatch: false }, ); done$ = createEffect( () => this.actions$.pipe( ofType(homeAction.HomeActionTypes.DONE), - tap((action) => {}) + tap((action) => {}), ), - { dispatch: false } + { dispatch: false }, ); constructor( @@ -882,7 +882,7 @@ export class HomeEffects { private loadingProvider: LoadingProvider, private personnelStatusesProvider: PersonnelStatusesService, private personnelStaffingProvider: PersonnelStaffingService, - private geocodingProvider: GeocodingProvider + private geocodingProvider: GeocodingProvider, ) {} runModal = (component, size) => { diff --git a/src/app/features/home/home.module.ts b/src/app/features/home/home.module.ts index 33002eb..d6322fe 100644 --- a/src/app/features/home/home.module.ts +++ b/src/app/features/home/home.module.ts @@ -1,63 +1,70 @@ -import { NgModule } from '@angular/core'; -import { StoreModule } from '@ngrx/store'; -import { EffectsModule } from '@ngrx/effects'; -import { CommonModule } from '@angular/common'; -import { ReactiveFormsModule, FormsModule } from '@angular/forms'; -import { HomeRoutingModule } from './home-routing.module'; -import { reducer } from './reducers/home.reducer'; -import { HomeEffects } from './effects/home.effect'; -import { NgbAlertModule, NgbDropdownModule, NgbNavModule, NgbPaginationModule, NgbTooltipModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap'; -import { Ng2SearchPipeModule } from 'ng2-search-filter'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; -import { LeafletModule } from '@asymmetrik/ngx-leaflet'; -import { UiModule } from 'src/app/shared/ui/ui.module'; -import { SetUnitStatusModalComponent } from './modals/setUnitStatus/setUnitStatus.modal'; -import { CloseCallModalComponent } from './modals/closeCall/closeCall.modal'; -import { SelectTemplateModalComponent } from './modals/selectTemplate/selectTemplate.modal'; -import { CallNotesModalComponent } from './modals/callNotes/callNotes.modal'; -import { GalleryModule } from 'ng-gallery'; -import { CallImagesModalComponent } from './modals/callImages/callImages.modal'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { CallFilesModalComponent } from './modals/callFiles/callFiles.modal'; -import { CallFormModalComponent } from './modals/callForm/callForm.modal'; -import { NgxResgridLibModule } from '@resgrid/ngx-resgridlib'; -import { SetPersonStatusModalComponent } from './modals/setPersonStatus/setPersonStatus.modal'; -import { SetPersonStaffingModalComponent } from './modals/setPersonStaffing/setPersonStaffing.modal'; -import { ViewCallFormModalComponent } from './modals/viewCallForm/view-callForm.modal'; +import { NgModule } from "@angular/core"; +import { StoreModule } from "@ngrx/store"; +import { EffectsModule } from "@ngrx/effects"; +import { CommonModule } from "@angular/common"; +import { ReactiveFormsModule, FormsModule } from "@angular/forms"; +import { HomeRoutingModule } from "./home-routing.module"; +import { reducer } from "./reducers/home.reducer"; +import { HomeEffects } from "./effects/home.effect"; +import { + NgbAlertModule, + NgbDropdownModule, + NgbNavModule, + NgbPaginationModule, + NgbTooltipModule, + NgbTypeaheadModule, +} from "@ng-bootstrap/ng-bootstrap"; +import { Ng2SearchPipeModule } from "ng2-search-filter"; +import { PerfectScrollbarModule } from "ngx-perfect-scrollbar"; +import { LeafletModule } from "@asymmetrik/ngx-leaflet"; +import { UiModule } from "src/app/shared/ui/ui.module"; +import { SetUnitStatusModalComponent } from "./modals/setUnitStatus/setUnitStatus.modal"; +import { CloseCallModalComponent } from "./modals/closeCall/closeCall.modal"; +import { SelectTemplateModalComponent } from "./modals/selectTemplate/selectTemplate.modal"; +import { CallNotesModalComponent } from "./modals/callNotes/callNotes.modal"; +import { GalleryModule } from "ng-gallery"; +import { CallImagesModalComponent } from "./modals/callImages/callImages.modal"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { CallFilesModalComponent } from "./modals/callFiles/callFiles.modal"; +import { CallFormModalComponent } from "./modals/callForm/callForm.modal"; +import { NgxResgridLibModule } from "@resgrid/ngx-resgridlib"; +import { SetPersonStatusModalComponent } from "./modals/setPersonStatus/setPersonStatus.modal"; +import { SetPersonStaffingModalComponent } from "./modals/setPersonStaffing/setPersonStaffing.modal"; +import { ViewCallFormModalComponent } from "./modals/viewCallForm/view-callForm.modal"; @NgModule({ - declarations: [ - SetUnitStatusModalComponent, - CloseCallModalComponent, - SelectTemplateModalComponent, - CallNotesModalComponent, - CallImagesModalComponent, - CallFilesModalComponent, - CallFormModalComponent, - SetPersonStatusModalComponent, - SetPersonStaffingModalComponent, - ViewCallFormModalComponent - ], - imports: [ - CommonModule, - FormsModule, - ReactiveFormsModule, - HomeRoutingModule, - NgxResgridLibModule, - NgbAlertModule, - Ng2SearchPipeModule, - NgbNavModule, - NgbDropdownModule, - NgbTooltipModule, - PerfectScrollbarModule, - LeafletModule, - UiModule, - StoreModule.forFeature('homeModule', reducer), - EffectsModule.forFeature([HomeEffects]), - GalleryModule, - NgbPaginationModule, - NgbTypeaheadModule - ], - providers: [] + declarations: [ + SetUnitStatusModalComponent, + CloseCallModalComponent, + SelectTemplateModalComponent, + CallNotesModalComponent, + CallImagesModalComponent, + CallFilesModalComponent, + CallFormModalComponent, + SetPersonStatusModalComponent, + SetPersonStaffingModalComponent, + ViewCallFormModalComponent, + ], + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + HomeRoutingModule, + NgxResgridLibModule, + NgbAlertModule, + Ng2SearchPipeModule, + NgbNavModule, + NgbDropdownModule, + NgbTooltipModule, + PerfectScrollbarModule, + LeafletModule, + UiModule, + StoreModule.forFeature("homeModule", reducer), + EffectsModule.forFeature([HomeEffects]), + GalleryModule, + NgbPaginationModule, + NgbTypeaheadModule, + ], + providers: [], }) -export class HomeModule { } +export class HomeModule {} diff --git a/src/app/features/home/modals/callFiles/callFiles.modal.ts b/src/app/features/home/modals/callFiles/callFiles.modal.ts index 48a21e4..2d55127 100644 --- a/src/app/features/home/modals/callFiles/callFiles.modal.ts +++ b/src/app/features/home/modals/callFiles/callFiles.modal.ts @@ -2,11 +2,7 @@ import { Component, Input, OnInit } from "@angular/core"; import { NgbModal, NgbActiveModal } from "@ng-bootstrap/ng-bootstrap"; import { Store } from "@ngrx/store"; import { Observable, Subscription } from "rxjs"; -import { - selectAuthState, - selectHomeState, - selectIsSavingUnitState, -} from "src/app/store"; +import { selectAuthState, selectHomeState, selectIsSavingUnitState } from "src/app/store"; import { HomeState } from "../../store/home.store"; import * as HomeActions from "../../actions/home.actions"; import { take } from "rxjs/operators"; @@ -16,7 +12,7 @@ import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms import { environment } from "../../../../../environments/environment"; import { AuthState } from "src/app/features/auth/store/auth.store"; import { encode } from "base64-arraybuffer"; -import { CallResultData } from '@resgrid/ngx-resgridlib'; +import { CallResultData } from "@resgrid/ngx-resgridlib"; @Component({ selector: "app-resgrid-modal-callFiles", @@ -41,7 +37,7 @@ export class CallFilesModalComponent implements OnInit { private store: Store, private actions$: Actions, public formBuilder: UntypedFormBuilder, - private authStore: Store + private authStore: Store, ) { this.homeState$ = this.store.select(selectHomeState); @@ -69,12 +65,7 @@ export class CallFilesModalComponent implements OnInit { } public getAvatarUrl(userId) { - return ( - environment.baseApiUrl + - environment.resgridApiUrl + - "/Avatars/Get?id=" + - userId - ); + return environment.baseApiUrl + environment.resgridApiUrl + "/Avatars/Get?id=" + userId; } public dismiss() { @@ -91,14 +82,7 @@ export class CallFilesModalComponent implements OnInit { this.isSaving = true; this.getBase64EncodedFileData(file).subscribe((base64Encoded) => { - this.store.dispatch( - new HomeActions.UploadCallFile( - this.selectedCall.CallId, - this.auth.user.userId, - this.fileName, - base64Encoded - ) - ); + this.store.dispatch(new HomeActions.UploadCallFile(this.selectedCall.CallId, this.auth.user.userId, this.fileName, base64Encoded)); }); } } diff --git a/src/app/features/home/modals/callForm/callForm.modal.ts b/src/app/features/home/modals/callForm/callForm.modal.ts index b8ace76..2866c2a 100644 --- a/src/app/features/home/modals/callForm/callForm.modal.ts +++ b/src/app/features/home/modals/callForm/callForm.modal.ts @@ -2,11 +2,7 @@ import { Component, Input, OnInit } from "@angular/core"; import { NgbModal, NgbActiveModal } from "@ng-bootstrap/ng-bootstrap"; import { Store } from "@ngrx/store"; import { Observable, Subscription } from "rxjs"; -import { - selectAuthState, - selectHomeState, - selectIsSavingUnitState, -} from "src/app/store"; +import { selectAuthState, selectHomeState, selectIsSavingUnitState } from "src/app/store"; import { HomeState } from "../../store/home.store"; import * as HomeActions from "../../actions/home.actions"; import { take } from "rxjs/operators"; @@ -15,7 +11,7 @@ import * as _ from "lodash"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; import { environment } from "../../../../../environments/environment"; import { AuthState } from "src/app/features/auth/store/auth.store"; -import { CallResultData, FormResult, FormResultData } from '@resgrid/ngx-resgridlib'; +import { CallResultData, FormResult, FormResultData } from "@resgrid/ngx-resgridlib"; declare var $: any; @Component({ @@ -43,7 +39,7 @@ export class CallFormModalComponent implements OnInit { private store: Store, private actions$: Actions, public formBuilder: UntypedFormBuilder, - private authStore: Store + private authStore: Store, ) { this.homeState$ = this.store.select(selectHomeState); @@ -63,9 +59,9 @@ export class CallFormModalComponent implements OnInit { .pipe(take(1)) .subscribe((state) => { if (state && state.newCallForm && state.newCallForm.Data) { - this.newCallForm = state.newCallForm; + this.newCallForm = state.newCallForm; var callData = state.newCallForm.Data; - this.formRender = $(document.getElementById("fb-reader")).formRender({ dataType: 'json', formData: callData }); + this.formRender = $(document.getElementById("fb-reader")).formRender({ dataType: "json", formData: callData }); } }); } @@ -80,11 +76,9 @@ export class CallFormModalComponent implements OnInit { public save() { if (this.formRender) { - var userData = JSON.stringify(this.formRender.userData); + var userData = JSON.stringify(this.formRender.userData); - this.store.dispatch( - new HomeActions.SetNewCallFormData(userData) - ); + this.store.dispatch(new HomeActions.SetNewCallFormData(userData)); } } } diff --git a/src/app/features/home/modals/callImages/callImages.modal.ts b/src/app/features/home/modals/callImages/callImages.modal.ts index 7237ce1..b2cd2f3 100644 --- a/src/app/features/home/modals/callImages/callImages.modal.ts +++ b/src/app/features/home/modals/callImages/callImages.modal.ts @@ -2,11 +2,7 @@ import { Component, Input, OnInit } from "@angular/core"; import { NgbModal, NgbActiveModal } from "@ng-bootstrap/ng-bootstrap"; import { Store } from "@ngrx/store"; import { Observable, Subscription } from "rxjs"; -import { - selectAuthState, - selectHomeState, - selectIsSavingUnitState, -} from "src/app/store"; +import { selectAuthState, selectHomeState, selectIsSavingUnitState } from "src/app/store"; import { HomeState } from "../../store/home.store"; import * as HomeActions from "../../actions/home.actions"; import { finalize, take } from "rxjs/operators"; @@ -17,7 +13,7 @@ import { environment } from "../../../../../environments/environment"; import { AuthState } from "src/app/features/auth/store/auth.store"; import { Gallery, GalleryItem, GalleryRef, ImageItem } from "ng-gallery"; import { encode } from "base64-arraybuffer"; -import { CallResultData } from '@resgrid/ngx-resgridlib'; +import { CallResultData } from "@resgrid/ngx-resgridlib"; @Component({ selector: "app-resgrid-modal-callImages", @@ -43,7 +39,7 @@ export class CallImagesModalComponent implements OnInit { private actions$: Actions, public formBuilder: UntypedFormBuilder, private authStore: Store, - private gallery: Gallery + private gallery: Gallery, ) { this.images = []; this.homeState$ = this.store.select(selectHomeState); @@ -89,14 +85,7 @@ export class CallImagesModalComponent implements OnInit { this.isSaving = true; this.getBase64EncodedFileData(file).subscribe((base64Encoded) => { - this.store.dispatch( - new HomeActions.UploadCallImage( - this.selectedCall.CallId, - this.auth.user.userId, - this.fileName, - base64Encoded - ) - ); + this.store.dispatch(new HomeActions.UploadCallImage(this.selectedCall.CallId, this.auth.user.userId, this.fileName, base64Encoded)); }); } } @@ -123,12 +112,7 @@ export class CallImagesModalComponent implements OnInit { } public getAvatarUrl(userId) { - return ( - environment.baseApiUrl + - environment.resgridApiUrl + - "/Avatars/Get?id=" + - userId - ); + return environment.baseApiUrl + environment.resgridApiUrl + "/Avatars/Get?id=" + userId; } public dismiss() { diff --git a/src/app/features/home/modals/callNotes/callNotes.modal.ts b/src/app/features/home/modals/callNotes/callNotes.modal.ts index 1826399..753bc7a 100644 --- a/src/app/features/home/modals/callNotes/callNotes.modal.ts +++ b/src/app/features/home/modals/callNotes/callNotes.modal.ts @@ -2,11 +2,7 @@ import { Component, Input, OnInit } from "@angular/core"; import { NgbModal, NgbActiveModal } from "@ng-bootstrap/ng-bootstrap"; import { Store } from "@ngrx/store"; import { Observable } from "rxjs"; -import { - selectAuthState, - selectHomeState, - selectIsSavingUnitState, -} from "src/app/store"; +import { selectAuthState, selectHomeState, selectIsSavingUnitState } from "src/app/store"; import { HomeState } from "../../store/home.store"; import * as HomeActions from "../../actions/home.actions"; import { take } from "rxjs/operators"; @@ -15,7 +11,7 @@ import * as _ from "lodash"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; import { environment } from "../../../../../environments/environment"; import { AuthState } from "src/app/features/auth/store/auth.store"; -import { CallNoteTemplateResultData, CallResultData } from '@resgrid/ngx-resgridlib'; +import { CallNoteTemplateResultData, CallResultData } from "@resgrid/ngx-resgridlib"; @Component({ selector: "app-resgrid-modal-callNotes", @@ -37,7 +33,7 @@ export class CallNotesModalComponent implements OnInit { private store: Store, private actions$: Actions, public formBuilder: UntypedFormBuilder, - private authStore: Store + private authStore: Store, ) { this.homeState$ = this.store.select(selectHomeState); @@ -65,12 +61,7 @@ export class CallNotesModalComponent implements OnInit { } public getAvatarUrl(userId) { - return ( - environment.baseApiUrl + - environment.resgridApiUrl + - "/Avatars/Get?id=" + - userId - ); + return environment.baseApiUrl + environment.resgridApiUrl + "/Avatars/Get?id=" + userId; } public showCallNoteTemplates() { @@ -92,12 +83,6 @@ export class CallNotesModalComponent implements OnInit { public save() { this.isSaving = true; - this.store.dispatch( - new HomeActions.SaveCallNote( - this.selectedCall.CallId, - this.form["message"].value, - this.auth.user.userId - ) - ); + this.store.dispatch(new HomeActions.SaveCallNote(this.selectedCall.CallId, this.form["message"].value, this.auth.user.userId)); } } diff --git a/src/app/features/home/modals/viewCallForm/view-callForm.modal.ts b/src/app/features/home/modals/viewCallForm/view-callForm.modal.ts index c51dfa2..30b66b8 100644 --- a/src/app/features/home/modals/viewCallForm/view-callForm.modal.ts +++ b/src/app/features/home/modals/viewCallForm/view-callForm.modal.ts @@ -2,11 +2,7 @@ import { Component, Input, OnInit } from "@angular/core"; import { NgbModal, NgbActiveModal } from "@ng-bootstrap/ng-bootstrap"; import { Store } from "@ngrx/store"; import { Observable, Subscription } from "rxjs"; -import { - selectAuthState, - selectHomeState, - selectIsSavingUnitState, -} from "src/app/store"; +import { selectAuthState, selectHomeState, selectIsSavingUnitState } from "src/app/store"; import { HomeState } from "../../store/home.store"; import * as HomeActions from "../../actions/home.actions"; import { take } from "rxjs/operators"; @@ -15,7 +11,7 @@ import * as _ from "lodash"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; import { environment } from "../../../../../environments/environment"; import { AuthState } from "src/app/features/auth/store/auth.store"; -import { CallResultData, FormResult, FormResultData } from '@resgrid/ngx-resgridlib'; +import { CallResultData, FormResult, FormResultData } from "@resgrid/ngx-resgridlib"; declare var $: any; @Component({ @@ -43,7 +39,7 @@ export class ViewCallFormModalComponent implements OnInit { private store: Store, private actions$: Actions, public formBuilder: UntypedFormBuilder, - private authStore: Store + private authStore: Store, ) { this.homeState$ = this.store.select(selectHomeState); @@ -63,26 +59,25 @@ export class ViewCallFormModalComponent implements OnInit { .pipe(take(1)) .subscribe((state) => { if (state && state.viewCallExtraData && state.viewCallExtraData.CallFormData) { - this.formRender = $(document.getElementById("fb-reader")).formRender({ dataType: 'json', formData: state.viewCallExtraData.CallFormData, - notify: { - error: function (message) { - - }, - success: function (message) { - //$('input, textarea, select', '.rendered-form').attr('readonly', true).attr('disabled', true); + this.formRender = $(document.getElementById("fb-reader")).formRender({ + dataType: "json", + formData: state.viewCallExtraData.CallFormData, + notify: { + error: function (message) {}, + success: function (message) { + //$('input, textarea, select', '.rendered-form').attr('readonly', true).attr('disabled', true); - var container = document.querySelector('.rendered-form'); - var inputs = container.querySelectorAll('input, textarea, select'); + var container = document.querySelector(".rendered-form"); + var inputs = container.querySelectorAll("input, textarea, select"); - for (var i = 0; i < inputs.length; i++) { - let element = inputs[i] as HTMLInputElement; - element.disabled = true; - } + for (var i = 0; i < inputs.length; i++) { + let element = inputs[i] as HTMLInputElement; + element.disabled = true; + } + }, + warning: function (message) {}, }, - warning: function (message) { - - } - } }); + }); } }); } diff --git a/src/app/features/home/models/dashboardPayload.ts b/src/app/features/home/models/dashboardPayload.ts index f7e6cc4..b7f5c4c 100644 --- a/src/app/features/home/models/dashboardPayload.ts +++ b/src/app/features/home/models/dashboardPayload.ts @@ -1,18 +1,32 @@ -import { CallPriorityResultData, CallResultData, CallTypeResultData, FormResultData, GetPersonnelForCallGridResultData, GetRolesForCallGridResultData, UnitStatusResultData, GroupsForCallGridData, CustomStatusResultData, NoteResultData, CallNoteTemplateResultData, GetConfigResultData, DepartmentRightsResult } from "@resgrid/ngx-resgridlib"; +import { + CallPriorityResultData, + CallResultData, + CallTypeResultData, + FormResultData, + GetPersonnelForCallGridResultData, + GetRolesForCallGridResultData, + UnitStatusResultData, + GroupsForCallGridData, + CustomStatusResultData, + NoteResultData, + CallNoteTemplateResultData, + GetConfigResultData, + DepartmentRightsResult, +} from "@resgrid/ngx-resgridlib"; export class DashboardPayload { - public UnitStatuses: UnitStatusResultData[]; - public Calls: CallResultData[]; - public CallPriorties: CallPriorityResultData[]; - public CallTypes: CallTypeResultData[]; - public PersonnelForGrid: GetPersonnelForCallGridResultData[]; - public GroupsForGrid: GroupsForCallGridData[]; - public RolesForGrid: GetRolesForCallGridResultData[]; - public NewCallForm: FormResultData; - public PersonnelStatuses: CustomStatusResultData[]; - public PersonnelStaffingLevels: CustomStatusResultData[]; - public DispatchNote: NoteResultData - public CallNotes: CallNoteTemplateResultData[]; - public Config: GetConfigResultData; - public Rights: DepartmentRightsResult; + public UnitStatuses: UnitStatusResultData[]; + public Calls: CallResultData[]; + public CallPriorties: CallPriorityResultData[]; + public CallTypes: CallTypeResultData[]; + public PersonnelForGrid: GetPersonnelForCallGridResultData[]; + public GroupsForGrid: GroupsForCallGridData[]; + public RolesForGrid: GetRolesForCallGridResultData[]; + public NewCallForm: FormResultData; + public PersonnelStatuses: CustomStatusResultData[]; + public PersonnelStaffingLevels: CustomStatusResultData[]; + public DispatchNote: NoteResultData; + public CallNotes: CallNoteTemplateResultData[]; + public Config: GetConfigResultData; + public Rights: DepartmentRightsResult; } diff --git a/src/app/features/home/pages/dashboard/dashboard.page.ts b/src/app/features/home/pages/dashboard/dashboard.page.ts index 6816869..d814a98 100644 --- a/src/app/features/home/pages/dashboard/dashboard.page.ts +++ b/src/app/features/home/pages/dashboard/dashboard.page.ts @@ -115,7 +115,7 @@ export class DashboardPage implements AfterViewInit { if (this.searchUnitsInput && this.searchUnitsInput.nativeElement) { this.unitSearchTerm = this.searchUnitsInput.nativeElement.value; } - }) + }), ) .subscribe(); } @@ -144,7 +144,7 @@ export class DashboardPage implements AfterViewInit { if (this.searchPersonnelInput && this.searchPersonnelInput.nativeElement) { this.personnelSearchTerm = this.searchPersonnelInput.nativeElement.value; } - }) + }), ) .subscribe(); } @@ -156,7 +156,7 @@ export class DashboardPage implements AfterViewInit { private voiceStore: Store, private router: Router, private cdr: ChangeDetectorRef, - private homeProvider: HomeProvider + private homeProvider: HomeProvider, ) { this.homeState$ = this.store.select(selectHomeState); this.mapData$ = this.store.select(selectMapDataState); @@ -201,7 +201,7 @@ export class DashboardPage implements AfterViewInit { if (this.searchUnitsInput && this.searchUnitsInput.nativeElement) { this.unitSearchTerm = this.searchUnitsInput.nativeElement.value; } - }) + }), ) .subscribe(); } @@ -575,7 +575,7 @@ export class DashboardPage implements AfterViewInit { const address = this.newCallForm.get("address").value; if (!address || address == "") { this.store.dispatch( - new HomeActions.GetAddressForCoordinates(this.newCallForm.get("latitude").value, this.newCallForm.get("longitude").value) + new HomeActions.GetAddressForCoordinates(this.newCallForm.get("latitude").value, this.newCallForm.get("longitude").value), ); } } @@ -729,7 +729,6 @@ export class DashboardPage implements AfterViewInit { if (this.configData && this.configData.MapUrl) { if (!this.creatingNewCallMap) { - if (!this.newCallMap) { this.creatingNewCallMap = true; this.newCallMap = L.map(this.newCallMapContainer.nativeElement, { @@ -737,8 +736,8 @@ export class DashboardPage implements AfterViewInit { }); L.tileLayer(that.configData.MapUrl, { - attribution: that.configData.MapAttribution, - }).addTo(this.newCallMap); + attribution: that.configData.MapAttribution, + }).addTo(this.newCallMap); this.newCallMap.scrollWheelZoom.disable(); var mapCenter = this.getMapCenter(data); @@ -810,7 +809,7 @@ export class DashboardPage implements AfterViewInit { .subscribe((state) => { if (state && state.personnelForGrid && state.unitStatuses) { this.store.dispatch( - new HomeActions.GetUpdatedPersonnelandUnitsDistancesToCall(location, state.personnelForGrid, state.unitStatuses) + new HomeActions.GetUpdatedPersonnelandUnitsDistancesToCall(location, state.personnelForGrid, state.unitStatuses), ); } }); diff --git a/src/app/features/home/providers/home.ts b/src/app/features/home/providers/home.ts index 05888d9..68e6517 100644 --- a/src/app/features/home/providers/home.ts +++ b/src/app/features/home/providers/home.ts @@ -60,7 +60,7 @@ export class HomeProvider { private noteService: NotesService, private templateService: TemplatesService, private configService: ConfigService, - private securityProvider: SecurityService + private securityProvider: SecurityService, ) { //this.personnelStatusUpdated$ = this.events.subscribe(this.consts.SIGNALR_EVENTS.PERSONNEL_STATUS_UPDATED); //this.personnelStaffingUpdated$ = this.events.subscribe(this.consts.SIGNALR_EVENTS.PERSONNEL_STAFFING_UPDATED); @@ -100,17 +100,11 @@ export class HomeProvider { dispatchNote: getDispatchNote, callNotes: getQuickNotes, config: getConfig, - currentUserRights: getCurrentUserRights + currentUserRights: getCurrentUserRights, }).pipe( map((results) => { let localCalls: CallLocalResult[] = new Array(); - if ( - results && - results.calls && - results.calls.Data && - results.priorities && - results.priorities.Data - ) { + if (results && results.calls && results.calls.Data && results.priorities && results.priorities.Data) { results.calls.Data.forEach((call) => { let localCall: CallLocalResult = call as CallLocalResult; @@ -129,8 +123,7 @@ export class HomeProvider { let dispatchNote: NoteResultData = null; - if (results.dispatchNote && results.dispatchNote.Data) - dispatchNote = results.dispatchNote.Data; + if (results.dispatchNote && results.dispatchNote.Data) dispatchNote = results.dispatchNote.Data; return { UnitStatuses: results.units.Data, @@ -148,7 +141,7 @@ export class HomeProvider { Config: results.config.Data, Rights: results.currentUserRights, }; - }) + }), ); } @@ -157,9 +150,7 @@ export class HomeProvider { .select(selectAuthState) .pipe(take(1)) .subscribe((auth) => { - this.signalRProvider.connectionState$.subscribe( - (state: ConnectionState) => {} - ); + this.signalRProvider.connectionState$.subscribe((state: ConnectionState) => {}); this.signalRProvider.start(auth.user.departmentId); this.init(); @@ -167,29 +158,17 @@ export class HomeProvider { } public init() { - this.events.subscribe( - this.consts.SIGNALR_EVENTS.PERSONNEL_STATUS_UPDATED, - (data: any) => { - this.store.dispatch(new HomeActions.GetLatestPersonnelData()); - } - ); - this.events.subscribe( - this.consts.SIGNALR_EVENTS.PERSONNEL_STAFFING_UPDATED, - (data: any) => { - this.store.dispatch(new HomeActions.GetLatestPersonnelData()); - } - ); - this.events.subscribe( - this.consts.SIGNALR_EVENTS.UNIT_STATUS_UPDATED, - (data: any) => { - this.store.dispatch(new HomeActions.GetLatestUnitStates()); - } - ); - this.events.subscribe( - this.consts.SIGNALR_EVENTS.CALLS_UPDATED, - (data: any) => { - this.store.dispatch(new HomeActions.GetLatestCalls()); - } - ); + this.events.subscribe(this.consts.SIGNALR_EVENTS.PERSONNEL_STATUS_UPDATED, (data: any) => { + this.store.dispatch(new HomeActions.GetLatestPersonnelData()); + }); + this.events.subscribe(this.consts.SIGNALR_EVENTS.PERSONNEL_STAFFING_UPDATED, (data: any) => { + this.store.dispatch(new HomeActions.GetLatestPersonnelData()); + }); + this.events.subscribe(this.consts.SIGNALR_EVENTS.UNIT_STATUS_UPDATED, (data: any) => { + this.store.dispatch(new HomeActions.GetLatestUnitStates()); + }); + this.events.subscribe(this.consts.SIGNALR_EVENTS.CALLS_UPDATED, (data: any) => { + this.store.dispatch(new HomeActions.GetLatestCalls()); + }); } } diff --git a/src/app/features/home/reducers/home.reducer.ts b/src/app/features/home/reducers/home.reducer.ts index 001323f..e17987b 100644 --- a/src/app/features/home/reducers/home.reducer.ts +++ b/src/app/features/home/reducers/home.reducer.ts @@ -39,7 +39,7 @@ export function reducer(state: HomeState = initialState, action: HomeActionsUnio dispatchNote: action.payload.DispatchNote, callNoteTemplates: action.payload.CallNotes, config: action.payload.Config, - rights: action.payload.Rights, + rights: action.payload.Rights, }; case HomeActionTypes.LOADING_FAIL: @@ -310,4 +310,4 @@ export const getCallTemplate = (state: HomeState) => state.activeCallTemplate; export const getNewCallAddress = (state: HomeState) => state.newCallLocation; export const getIsSavingCall = (state: HomeState) => state.isSavingCall; export const getNewCallLocation = (state: HomeState) => state.newCallAddress; -export const getConfigData = (state: HomeState) => state.config; \ No newline at end of file +export const getConfigData = (state: HomeState) => state.config; diff --git a/src/app/features/home/store/home.store.ts b/src/app/features/home/store/home.store.ts index 768fac6..671ba8a 100644 --- a/src/app/features/home/store/home.store.ts +++ b/src/app/features/home/store/home.store.ts @@ -1,102 +1,117 @@ -import { CallExtraDataResultData, CallFileResultData, CallNoteResultData, CallNoteTemplateResultData, CallPriorityResultData, CallResultData, CallTypeResultData, CustomStatusResultData, DepartmentRightsResult, FormResultData, GetCallTemplatesResultData, GetConfigResultData, GpsLocation, MapDataAndMarkersData, NoteResultData } from '@resgrid/ngx-resgridlib'; -import { CallLocalResult } from 'src/app/core/models/callLocalResult'; -import { GroupsForCallResult } from 'src/app/core/models/groupsForCallResult'; -import { PersonnelForCallResult } from 'src/app/core/models/personnelForCallResult'; -import { RolesForCallResult } from 'src/app/core/models/rolesForCallResult'; -import { UnitStatusResult } from 'src/app/core/models/unitStatusResult'; -import { SetUnitStateModalData } from '../models/setUnitStateModalData'; +import { + CallExtraDataResultData, + CallFileResultData, + CallNoteResultData, + CallNoteTemplateResultData, + CallPriorityResultData, + CallResultData, + CallTypeResultData, + CustomStatusResultData, + DepartmentRightsResult, + FormResultData, + GetCallTemplatesResultData, + GetConfigResultData, + GpsLocation, + MapDataAndMarkersData, + NoteResultData, +} from "@resgrid/ngx-resgridlib"; +import { CallLocalResult } from "src/app/core/models/callLocalResult"; +import { GroupsForCallResult } from "src/app/core/models/groupsForCallResult"; +import { PersonnelForCallResult } from "src/app/core/models/personnelForCallResult"; +import { RolesForCallResult } from "src/app/core/models/rolesForCallResult"; +import { UnitStatusResult } from "src/app/core/models/unitStatusResult"; +import { SetUnitStateModalData } from "../models/setUnitStateModalData"; export interface HomeState { + // Home page data + hasLoaded: boolean; + unitStatuses: UnitStatusResult[]; + calls: CallLocalResult[]; + callPriorties: CallPriorityResultData[]; + callTypes: CallTypeResultData[]; + personnelForGrid: PersonnelForCallResult[]; + groupsForGrid: GroupsForCallResult[]; + rolesForGrid: RolesForCallResult[]; + newCallForm: FormResultData; - // Home page data - hasLoaded: boolean; - unitStatuses: UnitStatusResult[]; - calls: CallLocalResult[]; - callPriorties: CallPriorityResultData[]; - callTypes: CallTypeResultData[]; - personnelForGrid: PersonnelForCallResult[]; - groupsForGrid: GroupsForCallResult[]; - rolesForGrid: RolesForCallResult[]; - newCallForm: FormResultData; + config: GetConfigResultData; + rights: DepartmentRightsResult; - config: GetConfigResultData; - rights: DepartmentRightsResult; + // Map data + mapData: MapDataAndMarkersData; - // Map data - mapData: MapDataAndMarkersData; + // New Call data + newCall: CallResultData; + newCallLocation: GpsLocation; + newCallAddress: string; + newCallFormData: string; + isSavingCall: boolean; - // New Call data - newCall: CallResultData; - newCallLocation: GpsLocation; - newCallAddress: string; - newCallFormData: string; - isSavingCall: boolean; - - // Edit Call - editCall: CallResultData; + // Edit Call + editCall: CallResultData; - // Set unit state - isSavingUnitState: boolean; - setUnitStatusModalState: SetUnitStateModalData; + // Set unit state + isSavingUnitState: boolean; + setUnitStatusModalState: SetUnitStateModalData; - // Close call - isSavingCloseCall: boolean; - closeCallState: CallResultData; + // Close call + isSavingCloseCall: boolean; + closeCallState: CallResultData; - // Call template - callTemplates: GetCallTemplatesResultData[]; - activeCallTemplate: GetCallTemplatesResultData; + // Call template + callTemplates: GetCallTemplatesResultData[]; + activeCallTemplate: GetCallTemplatesResultData; - // Call Notes - callNotes: CallNoteResultData[]; + // Call Notes + callNotes: CallNoteResultData[]; - // Call Images - callImages: CallFileResultData[]; - callFiles: CallFileResultData[]; + // Call Images + callImages: CallFileResultData[]; + callFiles: CallFileResultData[]; - personnelStatuses: CustomStatusResultData[]; - personnelStaffing: CustomStatusResultData[]; + personnelStatuses: CustomStatusResultData[]; + personnelStaffing: CustomStatusResultData[]; - dispatchNote: NoteResultData; + dispatchNote: NoteResultData; - // Call Note Templates - callNoteTemplates: CallNoteTemplateResultData[]; + // Call Note Templates + callNoteTemplates: CallNoteTemplateResultData[]; - // View Call - viewCallExtraData: CallExtraDataResultData; + // View Call + viewCallExtraData: CallExtraDataResultData; } export const initialState: HomeState = { - hasLoaded: false, - unitStatuses: null, - calls: null, - callPriorties: null, - callTypes: null, - mapData: null, - newCall: new CallResultData(), - isSavingCall: false, - isSavingUnitState: false, - setUnitStatusModalState: null, - isSavingCloseCall: false, - closeCallState: null, - personnelForGrid: null, - groupsForGrid: null, - rolesForGrid: null, - newCallLocation: null, - newCallAddress: null, - callTemplates: null, - activeCallTemplate: null, - callNotes: null, - callImages: null, - callFiles: null, - newCallForm: null, - newCallFormData: null, - editCall: null, - personnelStatuses: null, - personnelStaffing: null, - dispatchNote: null, - callNoteTemplates: null, - viewCallExtraData: null, - config: null, - rights: null, -}; \ No newline at end of file + hasLoaded: false, + unitStatuses: null, + calls: null, + callPriorties: null, + callTypes: null, + mapData: null, + newCall: new CallResultData(), + isSavingCall: false, + isSavingUnitState: false, + setUnitStatusModalState: null, + isSavingCloseCall: false, + closeCallState: null, + personnelForGrid: null, + groupsForGrid: null, + rolesForGrid: null, + newCallLocation: null, + newCallAddress: null, + callTemplates: null, + activeCallTemplate: null, + callNotes: null, + callImages: null, + callFiles: null, + newCallForm: null, + newCallFormData: null, + editCall: null, + personnelStatuses: null, + personnelStaffing: null, + dispatchNote: null, + callNoteTemplates: null, + viewCallExtraData: null, + config: null, + rights: null, +}; diff --git a/src/app/features/mapping/mapping.module.ts b/src/app/features/mapping/mapping.module.ts index cc740ee..5b8728c 100644 --- a/src/app/features/mapping/mapping.module.ts +++ b/src/app/features/mapping/mapping.module.ts @@ -1,41 +1,48 @@ -import { NgModule } from '@angular/core'; -import { StoreModule } from '@ngrx/store'; -import { EffectsModule } from '@ngrx/effects'; -import { CommonModule } from '@angular/common'; -import { ReactiveFormsModule, FormsModule } from '@angular/forms'; -import { CallsRoutingModule } from './mapping-routing.module'; -import { reducer } from './reducers/mapping.reducer'; -import { MappingEffects } from './effects/mapping.effect'; -import { NgbAlertModule, NgbDropdownModule, NgbNavModule, NgbPaginationModule, NgbTooltipModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap'; -import { Ng2SearchPipeModule } from 'ng2-search-filter'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; -import { LeafletModule } from '@asymmetrik/ngx-leaflet'; -import { UiModule } from 'src/app/shared/ui/ui.module'; -import { GalleryModule } from 'ng-gallery'; -import { NgxResgridLibModule } from '@resgrid/ngx-resgridlib'; +import { NgModule } from "@angular/core"; +import { StoreModule } from "@ngrx/store"; +import { EffectsModule } from "@ngrx/effects"; +import { CommonModule } from "@angular/common"; +import { ReactiveFormsModule, FormsModule } from "@angular/forms"; +import { CallsRoutingModule } from "./mapping-routing.module"; +import { reducer } from "./reducers/mapping.reducer"; +import { MappingEffects } from "./effects/mapping.effect"; +import { + NgbAlertModule, + NgbDropdownModule, + NgbNavModule, + NgbPaginationModule, + NgbTooltipModule, + NgbTypeaheadModule, +} from "@ng-bootstrap/ng-bootstrap"; +import { Ng2SearchPipeModule } from "ng2-search-filter"; +import { PerfectScrollbarModule } from "ngx-perfect-scrollbar"; +import { LeafletModule } from "@asymmetrik/ngx-leaflet"; +import { UiModule } from "src/app/shared/ui/ui.module"; +import { GalleryModule } from "ng-gallery"; +import { NgxResgridLibModule } from "@resgrid/ngx-resgridlib"; @NgModule({ - imports: [ - CommonModule, - FormsModule, - ReactiveFormsModule, - CallsRoutingModule, - NgbAlertModule, - NgxResgridLibModule, - Ng2SearchPipeModule, - NgbNavModule, - NgbDropdownModule, - NgbTooltipModule, - PerfectScrollbarModule, - LeafletModule, - UiModule, - StoreModule.forFeature('mappingModule', reducer), - EffectsModule.forFeature([MappingEffects]), - GalleryModule, - NgbPaginationModule, - NgbTypeaheadModule - ], - providers: [], - exports: [] + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + CallsRoutingModule, + NgbAlertModule, + NgxResgridLibModule, + Ng2SearchPipeModule, + NgbNavModule, + NgbDropdownModule, + NgbTooltipModule, + PerfectScrollbarModule, + LeafletModule, + UiModule, + StoreModule.forFeature("mappingModule", reducer), + EffectsModule.forFeature([MappingEffects]), + GalleryModule, + NgbPaginationModule, + NgbTypeaheadModule, + ], + providers: [], + exports: [], }) -export class MappingModule { } +export class MappingModule {} diff --git a/src/app/features/mapping/pages/map/map.page.ts b/src/app/features/mapping/pages/map/map.page.ts index 13df627..46e339e 100644 --- a/src/app/features/mapping/pages/map/map.page.ts +++ b/src/app/features/mapping/pages/map/map.page.ts @@ -40,7 +40,7 @@ export class MapPage implements AfterViewInit { private mappingStore: Store, public utilsProvider: UtilsProvider, private router: Router, - private cdr: ChangeDetectorRef + private cdr: ChangeDetectorRef, ) { this.mappingState$ = this.mappingStore.select(selectMappingState); this.markers = new Array(); diff --git a/src/app/features/profile/effects/profile.effect.ts b/src/app/features/profile/effects/profile.effect.ts index afd38c2..f2a8e11 100644 --- a/src/app/features/profile/effects/profile.effect.ts +++ b/src/app/features/profile/effects/profile.effect.ts @@ -1,15 +1,17 @@ -import { Action } from '@ngrx/store'; -import { Actions, ofType } from '@ngrx/effects'; -import { Injectable } from '@angular/core'; -import { Observable, of } from 'rxjs'; -import { Router } from '@angular/router'; -import { LoadingProvider } from 'src/app/providers/loading'; -import { AlertProvider } from 'src/app/providers/alert'; +import { Action } from "@ngrx/store"; +import { Actions, ofType } from "@ngrx/effects"; +import { Injectable } from "@angular/core"; +import { Observable, of } from "rxjs"; +import { Router } from "@angular/router"; +import { LoadingProvider } from "src/app/providers/loading"; +import { AlertProvider } from "src/app/providers/alert"; @Injectable() export class ProfileEffects { - - - constructor(private actions$: Actions, - private router: Router, private loadingProvider: LoadingProvider, private alertProvider: AlertProvider) { } + constructor( + private actions$: Actions, + private router: Router, + private loadingProvider: LoadingProvider, + private alertProvider: AlertProvider, + ) {} } diff --git a/src/app/features/profile/profile.module.ts b/src/app/features/profile/profile.module.ts index a64e75c..64193b0 100644 --- a/src/app/features/profile/profile.module.ts +++ b/src/app/features/profile/profile.module.ts @@ -1,42 +1,49 @@ -import { NgModule } from '@angular/core'; -import { StoreModule } from '@ngrx/store'; -import { EffectsModule } from '@ngrx/effects'; -import { CommonModule } from '@angular/common'; -import { ReactiveFormsModule, FormsModule } from '@angular/forms'; -import { reducer } from './reducers/profile.reducer'; -import { ProfileEffects } from './effects/profile.effect'; -import { NgbAlertModule, NgbDropdownModule, NgbNavModule, NgbPaginationModule, NgbTooltipModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap'; -import { Ng2SearchPipeModule } from 'ng2-search-filter'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; -import { LeafletModule } from '@asymmetrik/ngx-leaflet'; -import { UiModule } from 'src/app/shared/ui/ui.module'; -import { GalleryModule } from 'ng-gallery'; -import { NgxResgridLibModule } from '@resgrid/ngx-resgridlib'; -import { ProfileRoutingModule } from './profile-routing.module'; +import { NgModule } from "@angular/core"; +import { StoreModule } from "@ngrx/store"; +import { EffectsModule } from "@ngrx/effects"; +import { CommonModule } from "@angular/common"; +import { ReactiveFormsModule, FormsModule } from "@angular/forms"; +import { reducer } from "./reducers/profile.reducer"; +import { ProfileEffects } from "./effects/profile.effect"; +import { + NgbAlertModule, + NgbDropdownModule, + NgbNavModule, + NgbPaginationModule, + NgbTooltipModule, + NgbTypeaheadModule, +} from "@ng-bootstrap/ng-bootstrap"; +import { Ng2SearchPipeModule } from "ng2-search-filter"; +import { PerfectScrollbarModule } from "ngx-perfect-scrollbar"; +import { LeafletModule } from "@asymmetrik/ngx-leaflet"; +import { UiModule } from "src/app/shared/ui/ui.module"; +import { GalleryModule } from "ng-gallery"; +import { NgxResgridLibModule } from "@resgrid/ngx-resgridlib"; +import { ProfileRoutingModule } from "./profile-routing.module"; @NgModule({ - declarations: [], - imports: [ - CommonModule, - FormsModule, - ReactiveFormsModule, - ProfileRoutingModule, - NgbAlertModule, - NgxResgridLibModule, - Ng2SearchPipeModule, - NgbNavModule, - NgbDropdownModule, - NgbTooltipModule, - PerfectScrollbarModule, - LeafletModule, - UiModule, - StoreModule.forFeature('profileModule', reducer), - EffectsModule.forFeature([ProfileEffects]), - GalleryModule, - NgbPaginationModule, - NgbTypeaheadModule - ], - providers: [], - exports: [] + declarations: [], + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + ProfileRoutingModule, + NgbAlertModule, + NgxResgridLibModule, + Ng2SearchPipeModule, + NgbNavModule, + NgbDropdownModule, + NgbTooltipModule, + PerfectScrollbarModule, + LeafletModule, + UiModule, + StoreModule.forFeature("profileModule", reducer), + EffectsModule.forFeature([ProfileEffects]), + GalleryModule, + NgbPaginationModule, + NgbTypeaheadModule, + ], + providers: [], + exports: [], }) -export class ProfileModule { } \ No newline at end of file +export class ProfileModule {} diff --git a/src/app/features/voice/effects/voice.effect.ts b/src/app/features/voice/effects/voice.effect.ts index 89d6fbf..7330cb5 100644 --- a/src/app/features/voice/effects/voice.effect.ts +++ b/src/app/features/voice/effects/voice.effect.ts @@ -27,10 +27,10 @@ export class VoiceEffects { })), tap((data) => {}), // If request fails, dispatch failed action - catchError(() => of({ type: voiceAction.VoiceActionTypes.GET_VOIPINFO_FAIL })) - ) - ) - ) + catchError(() => of({ type: voiceAction.VoiceActionTypes.GET_VOIPINFO_FAIL })), + ), + ), + ), ); getVoipInfoSuccess$ = createEffect(() => @@ -39,8 +39,8 @@ export class VoiceEffects { map((data) => ({ type: voiceAction.VoiceActionTypes.START_VOIP_SERVICES, payload: data.payload, - })) - ) + })), + ), ); startVoipServices$ = createEffect( @@ -49,9 +49,9 @@ export class VoiceEffects { ofType(voiceAction.VoiceActionTypes.START_VOIP_SERVICES), tap((action) => { //this.voiceProvider.startVoipServices(action.payload); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); setNoChannel$ = createEffect( @@ -61,9 +61,9 @@ export class VoiceEffects { tap((data) => { //this.voiceProvider.disconnect(); this.openViduService.leaveSession(); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); setActiveChannel$ = createEffect(() => @@ -84,10 +84,10 @@ export class VoiceEffects { }), map((data) => ({ type: voiceAction.VoiceActionTypes.DONE, - })) - ) - ) - ) + })), + ), + ), + ), ); voipCallStartTransmitting$ = createEffect( @@ -97,9 +97,9 @@ export class VoiceEffects { tap((data) => { //this.voiceProvider.unmute(); this.openViduService.unmute(); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); voipCallStopTransmitting$ = createEffect( @@ -109,9 +109,9 @@ export class VoiceEffects { tap((data) => { //this.voiceProvider.mute(); this.openViduService.mute(); - }) + }), ), - { dispatch: false } + { dispatch: false }, ); addOpenViduStream$ = createEffect(() => @@ -119,8 +119,8 @@ export class VoiceEffects { ofType(voiceAction.VoiceActionTypes.ADD_OPENVIDU_STREAM), map((data) => ({ type: voiceAction.VoiceActionTypes.DONE, - })) - ) + })), + ), ); removeOpenViduStream$ = createEffect(() => @@ -128,8 +128,8 @@ export class VoiceEffects { ofType(voiceAction.VoiceActionTypes.REMOVE_OPENVIDU_STREAM), map((data) => ({ type: voiceAction.VoiceActionTypes.DONE, - })) - ) + })), + ), ); done$ = createEffect(() => this.actions$.pipe(ofType(voiceAction.VoiceActionTypes.DONE)), { dispatch: false }); @@ -141,6 +141,6 @@ export class VoiceEffects { private voiceService: VoiceService, private openViduService: OpenViduService, private homeStore: Store, - private authStore: Store + private authStore: Store, ) {} } diff --git a/src/app/features/voice/reducers/voice.reducer.ts b/src/app/features/voice/reducers/voice.reducer.ts index ab714ed..bfb75f9 100644 --- a/src/app/features/voice/reducers/voice.reducer.ts +++ b/src/app/features/voice/reducers/voice.reducer.ts @@ -4,10 +4,7 @@ import { VoiceActionTypes, VoiceActionsUnion } from "../actions/voice.actions"; import * as _ from "lodash"; import { DepartmentVoiceChannelResultData } from "@resgrid/ngx-resgridlib"; -export function reducer( - state: VoiceState = initialState, - action: VoiceActionsUnion -): VoiceState { +export function reducer(state: VoiceState = initialState, action: VoiceActionsUnion): VoiceState { switch (action.type) { case VoiceActionTypes.GET_VOIPINFO_SUCCESS: let channels: DepartmentVoiceChannelResultData[] = new Array(); diff --git a/src/app/features/voice/voice.module.ts b/src/app/features/voice/voice.module.ts index c418032..20e907b 100644 --- a/src/app/features/voice/voice.module.ts +++ b/src/app/features/voice/voice.module.ts @@ -1,50 +1,51 @@ -import { NgModule } from '@angular/core'; -import { StoreModule } from '@ngrx/store'; -import { EffectsModule } from '@ngrx/effects'; -import { CommonModule } from '@angular/common'; -import { ReactiveFormsModule, FormsModule } from '@angular/forms'; -import { VoiceRoutingModule } from './voice-routing.module'; -import { reducer } from './reducers/voice.reducer'; -import { VoiceEffects } from './effects/voice.effect'; -import { NgbAlertModule, NgbDropdownModule, NgbNavModule, NgbPaginationModule, NgbTooltipModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap'; -import { Ng2SearchPipeModule } from 'ng2-search-filter'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; -import { LeafletModule } from '@asymmetrik/ngx-leaflet'; -import { UiModule } from 'src/app/shared/ui/ui.module'; -import { GalleryModule } from 'ng-gallery'; -import { VoiceFooterComponent } from './shared/voice-footer/voice-footer.component'; -import { OpenViduVideoComponent } from './shared/video-component/ov-video.component'; -import { NgxResgridLibModule } from '@resgrid/ngx-resgridlib'; +import { NgModule } from "@angular/core"; +import { StoreModule } from "@ngrx/store"; +import { EffectsModule } from "@ngrx/effects"; +import { CommonModule } from "@angular/common"; +import { ReactiveFormsModule, FormsModule } from "@angular/forms"; +import { VoiceRoutingModule } from "./voice-routing.module"; +import { reducer } from "./reducers/voice.reducer"; +import { VoiceEffects } from "./effects/voice.effect"; +import { + NgbAlertModule, + NgbDropdownModule, + NgbNavModule, + NgbPaginationModule, + NgbTooltipModule, + NgbTypeaheadModule, +} from "@ng-bootstrap/ng-bootstrap"; +import { Ng2SearchPipeModule } from "ng2-search-filter"; +import { PerfectScrollbarModule } from "ngx-perfect-scrollbar"; +import { LeafletModule } from "@asymmetrik/ngx-leaflet"; +import { UiModule } from "src/app/shared/ui/ui.module"; +import { GalleryModule } from "ng-gallery"; +import { VoiceFooterComponent } from "./shared/voice-footer/voice-footer.component"; +import { OpenViduVideoComponent } from "./shared/video-component/ov-video.component"; +import { NgxResgridLibModule } from "@resgrid/ngx-resgridlib"; @NgModule({ - declarations: [ - VoiceFooterComponent, - OpenViduVideoComponent - ], - imports: [ - CommonModule, - FormsModule, - ReactiveFormsModule, - VoiceRoutingModule, - NgbAlertModule, - Ng2SearchPipeModule, - NgbNavModule, - NgbDropdownModule, - NgbTooltipModule, - PerfectScrollbarModule, - LeafletModule, - UiModule, - StoreModule.forFeature('voiceModule', reducer), - EffectsModule.forFeature([VoiceEffects]), - GalleryModule, - NgbPaginationModule, - NgbTypeaheadModule, - NgxResgridLibModule - ], - providers: [], - exports: [ - VoiceFooterComponent, - OpenViduVideoComponent - ] + declarations: [VoiceFooterComponent, OpenViduVideoComponent], + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + VoiceRoutingModule, + NgbAlertModule, + Ng2SearchPipeModule, + NgbNavModule, + NgbDropdownModule, + NgbTooltipModule, + PerfectScrollbarModule, + LeafletModule, + UiModule, + StoreModule.forFeature("voiceModule", reducer), + EffectsModule.forFeature([VoiceEffects]), + GalleryModule, + NgbPaginationModule, + NgbTypeaheadModule, + NgxResgridLibModule, + ], + providers: [], + exports: [VoiceFooterComponent, OpenViduVideoComponent], }) -export class VoiceModule { } +export class VoiceModule {} diff --git a/src/app/layouts/shared/rightsidebar/rightsidebar.component.html b/src/app/layouts/shared/rightsidebar/rightsidebar.component.html index 6940b51..ef7687e 100644 --- a/src/app/layouts/shared/rightsidebar/rightsidebar.component.html +++ b/src/app/layouts/shared/rightsidebar/rightsidebar.component.html @@ -7,10 +7,8 @@
Recent Activity
- - - - + + diff --git a/src/app/layouts/shared/shared.module.ts b/src/app/layouts/shared/shared.module.ts index 9d17a1a..1c4a608 100644 --- a/src/app/layouts/shared/shared.module.ts +++ b/src/app/layouts/shared/shared.module.ts @@ -1,36 +1,30 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { RouterModule } from '@angular/router'; +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { RouterModule } from "@angular/router"; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; -import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { PerfectScrollbarModule } from "ngx-perfect-scrollbar"; +import { NgbDropdownModule } from "@ng-bootstrap/ng-bootstrap"; //import { ClickOutsideModule } from 'ng-click-outside'; -import { LanguageService } from '../../core/services/language.service'; -import { TranslateModule } from '@ngx-translate/core'; +import { LanguageService } from "../../core/services/language.service"; +import { TranslateModule } from "@ngx-translate/core"; -import { TopbarComponent } from './topbar/topbar.component'; -import { FooterComponent } from './footer/footer.component'; -import { SidebarComponent } from './sidebar/sidebar.component'; -import { RightsidebarComponent } from './rightsidebar/rightsidebar.component'; +import { TopbarComponent } from "./topbar/topbar.component"; +import { FooterComponent } from "./footer/footer.component"; +import { SidebarComponent } from "./sidebar/sidebar.component"; +import { RightsidebarComponent } from "./rightsidebar/rightsidebar.component"; @NgModule({ // tslint:disable-next-line: max-line-length - declarations: [TopbarComponent, - FooterComponent, - SidebarComponent, - RightsidebarComponent], + declarations: [TopbarComponent, FooterComponent, SidebarComponent, RightsidebarComponent], imports: [ CommonModule, TranslateModule, PerfectScrollbarModule, NgbDropdownModule, //ClickOutsideModule, - RouterModule + RouterModule, ], - exports: [TopbarComponent, - FooterComponent, - SidebarComponent, - RightsidebarComponent], - providers: [LanguageService] + exports: [TopbarComponent, FooterComponent, SidebarComponent, RightsidebarComponent], + providers: [LanguageService], }) -export class SharedModule { } +export class SharedModule {} diff --git a/src/app/layouts/vertical/vertical.component.html b/src/app/layouts/vertical/vertical.component.html index a1347f3..260f894 100644 --- a/src/app/layouts/vertical/vertical.component.html +++ b/src/app/layouts/vertical/vertical.component.html @@ -1,6 +1,5 @@
- - + diff --git a/src/app/providers/loading.ts b/src/app/providers/loading.ts index e3d8cc8..e750cd6 100644 --- a/src/app/providers/loading.ts +++ b/src/app/providers/loading.ts @@ -1,18 +1,16 @@ -import { Injectable } from '@angular/core'; -import { NgxSpinnerService } from 'ngx-spinner'; -import { from, Observable } from 'rxjs'; +import { Injectable } from "@angular/core"; +import { NgxSpinnerService } from "ngx-spinner"; +import { from, Observable } from "rxjs"; @Injectable({ - providedIn: 'root' + providedIn: "root", }) export class LoadingProvider { - constructor(private spinner: NgxSpinnerService) { - - } + constructor(private spinner: NgxSpinnerService) {} // Show loading public show() { - return this.spinner.show('Loading...', {type: "line-scale"}); + return this.spinner.show("Loading...", { type: "line-scale" }); } // Hide loading diff --git a/src/app/store/index.ts b/src/app/store/index.ts index cc8bcd8..d708103 100644 --- a/src/app/store/index.ts +++ b/src/app/store/index.ts @@ -1,15 +1,15 @@ -import * as fromAuth from '../features/auth/reducers/auth.reducer'; -import * as homeReducers from '../features/home/reducers/home.reducer'; -import * as voiceReducers from '../features/voice/reducers/voice.reducer'; -import * as callsReducers from '../features/calls/reducers/calls.reducer'; -import * as fromRoot from './reducers/index'; -import { createFeatureSelector, createSelector } from '@ngrx/store'; -import { AuthState } from '../features/auth/store/auth.store'; -import { HomeState } from '../features/home/store/home.store'; -import { VoiceState } from '../features/voice/store/voice.store'; -import { CallsState } from '../features/calls/store/calls.store'; -import { ProfileState } from '../features/profile/store/profile.store'; -import { MappingState } from '../features/mapping/store/mapping.store'; +import * as fromAuth from "../features/auth/reducers/auth.reducer"; +import * as homeReducers from "../features/home/reducers/home.reducer"; +import * as voiceReducers from "../features/voice/reducers/voice.reducer"; +import * as callsReducers from "../features/calls/reducers/calls.reducer"; +import * as fromRoot from "./reducers/index"; +import { createFeatureSelector, createSelector } from "@ngrx/store"; +import { AuthState } from "../features/auth/store/auth.store"; +import { HomeState } from "../features/home/store/home.store"; +import { VoiceState } from "../features/voice/store/voice.store"; +import { CallsState } from "../features/calls/store/calls.store"; +import { ProfileState } from "../features/profile/store/profile.store"; +import { MappingState } from "../features/mapping/store/mapping.store"; export interface State extends fromRoot.State { auth: AuthState; @@ -19,102 +19,46 @@ export interface State extends fromRoot.State { profile: ProfileState; } -export const selectAuthState = createFeatureSelector('authModule'); +export const selectAuthState = createFeatureSelector("authModule"); -export const selectAuthStatusState = createSelector( - selectAuthState, - fromAuth.getLoginState -); +export const selectAuthStatusState = createSelector(selectAuthState, fromAuth.getLoginState); -export const selectLoginState = createSelector( - selectAuthState, - fromAuth.getLoginStatus -); +export const selectLoginState = createSelector(selectAuthState, fromAuth.getLoginStatus); -export const selectIsLoginState = createSelector( - selectAuthState, - fromAuth.getIsLoginState -); +export const selectIsLoginState = createSelector(selectAuthState, fromAuth.getIsLoginState); +export const selectHomeState = createFeatureSelector("homeModule"); +export const selectIsSavingUnitState = createSelector(selectHomeState, homeReducers.getIsSavingUnitStateStatus); +export const selectIsSavingCloseCallState = createSelector(selectHomeState, homeReducers.getIsSavingCloseCallStatus); -export const selectHomeState = createFeatureSelector('homeModule'); +export const selectMapDataState = createSelector(selectHomeState, homeReducers.getMapData); -export const selectIsSavingUnitState = createSelector( - selectHomeState, - homeReducers.getIsSavingUnitStateStatus -); +export const selectActiveCallTemplateState = createSelector(selectHomeState, homeReducers.getCallTemplate); -export const selectIsSavingCloseCallState = createSelector( - selectHomeState, - homeReducers.getIsSavingCloseCallStatus -); +export const selectNewCallAddressState = createSelector(selectHomeState, homeReducers.getNewCallAddress); -export const selectMapDataState = createSelector( - selectHomeState, - homeReducers.getMapData -); +export const selectNewCallLocationState = createSelector(selectHomeState, homeReducers.getNewCallLocation); -export const selectActiveCallTemplateState = createSelector( - selectHomeState, - homeReducers.getCallTemplate -); +export const selectNewCallState = createSelector(selectHomeState, homeReducers.getNewCall); -export const selectNewCallAddressState = createSelector( - selectHomeState, - homeReducers.getNewCallAddress -); +export const selectIsSavingCall = createSelector(selectHomeState, homeReducers.getIsSavingCall); -export const selectNewCallLocationState = createSelector( - selectHomeState, - homeReducers.getNewCallLocation -); +export const selectConfigData = createSelector(selectHomeState, homeReducers.getConfigData); -export const selectNewCallState = createSelector( - selectHomeState, - homeReducers.getNewCall -); +export const selectVoiceState = createFeatureSelector("voiceModule"); -export const selectIsSavingCall = createSelector( - selectHomeState, - homeReducers.getIsSavingCall -); +export const selectAvailableChannelsState = createSelector(selectVoiceState, voiceReducers.getAvailableChannels); -export const selectConfigData = createSelector( - selectHomeState, - homeReducers.getConfigData -); +export const selectCallsState = createFeatureSelector("callsModule"); +export const selectEditCallState = createSelector(selectCallsState, callsReducers.getEditCall); -export const selectVoiceState = createFeatureSelector('voiceModule'); +export const selectPendingCalls = createSelector(selectCallsState, callsReducers.getPendingScheduledCalls); -export const selectAvailableChannelsState = createSelector( - selectVoiceState, - voiceReducers.getAvailableChannels -); +export const selectEditCallData = createSelector(selectCallsState, callsReducers.getEditCallData); +export const selectProfileState = createFeatureSelector("profileModule"); -export const selectCallsState = createFeatureSelector('callsModule'); - -export const selectEditCallState = createSelector( - selectCallsState, - callsReducers.getEditCall -); - -export const selectPendingCalls = createSelector( - selectCallsState, - callsReducers.getPendingScheduledCalls -); - -export const selectEditCallData = createSelector( - selectCallsState, - callsReducers.getEditCallData -); - - - -export const selectProfileState = createFeatureSelector('profileModule'); - - -export const selectMappingState = createFeatureSelector('mappingModule'); \ No newline at end of file +export const selectMappingState = createFeatureSelector("mappingModule"); diff --git a/src/assets/env.prod.js b/src/assets/env.prod.js index a8a24fe..9fcddb3 100644 --- a/src/assets/env.prod.js +++ b/src/assets/env.prod.js @@ -1,18 +1,18 @@ (function (window) { - window['env'] = window['env'] || {}; - - // Environment variables - window['env']['baseApiUrl'] = '${BASE_API_URL}'; - window['env']['resgridApiUrl'] = '${API_URL}'; - window['env']['channelUrl'] = '${CHANNEL_URL}'; - window['env']['channelHubName'] = '${CHANNEL_HUB_NAME}'; - window['env']['logLevel'] = '${LOG_LEVEL}'; - window['env']['what3WordsKey'] = '${W3W_KEY}'; - window['env']['isDemo'] = '${IS_DEMO}'; - window['env']['demoToken'] = '${DEMO_TOKEN}'; - window['env']['osmMapKey'] = '${OSM_MAP_KEY}'; - window['env']['mapTilerKey'] = '${MAPTILER_KEY}'; - window['env']['googleMapsKey'] = '${GOOGLE_MAPS_KEY}'; - window['env']['loggingKey'] = '${LOGGING_KEY}'; - window['env']['appKey'] = '${APP_KEY}'; - })(this); \ No newline at end of file + window["env"] = window["env"] || {}; + + // Environment variables + window["env"]["baseApiUrl"] = "${BASE_API_URL}"; + window["env"]["resgridApiUrl"] = "${API_URL}"; + window["env"]["channelUrl"] = "${CHANNEL_URL}"; + window["env"]["channelHubName"] = "${CHANNEL_HUB_NAME}"; + window["env"]["logLevel"] = "${LOG_LEVEL}"; + window["env"]["what3WordsKey"] = "${W3W_KEY}"; + window["env"]["isDemo"] = "${IS_DEMO}"; + window["env"]["demoToken"] = "${DEMO_TOKEN}"; + window["env"]["osmMapKey"] = "${OSM_MAP_KEY}"; + window["env"]["mapTilerKey"] = "${MAPTILER_KEY}"; + window["env"]["googleMapsKey"] = "${GOOGLE_MAPS_KEY}"; + window["env"]["loggingKey"] = "${LOGGING_KEY}"; + window["env"]["appKey"] = "${APP_KEY}"; +})(this); diff --git a/src/assets/images/mapping/mapbox-gl.css b/src/assets/images/mapping/mapbox-gl.css index 8851639..505efa8 100644 --- a/src/assets/images/mapping/mapbox-gl.css +++ b/src/assets/images/mapping/mapbox-gl.css @@ -1 +1,617 @@ -.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mapboxgl-canvas{position:absolute;left:0;top:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{right:0;bottom:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:10px 0 0 10px;float:left}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:10px 10px 0 0;float:right}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{margin:0 0 10px 10px;float:left}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0 10px 10px 0;float:right}.mapboxgl-ctrl-group{border-radius:4px;background:#fff}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:focus:only-child{border-radius:inherit}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{width:88px;height:23px;margin:0 0 -4px -4px;display:block;background-repeat:no-repeat;cursor:pointer;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='0.9' fill='%23fff'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='1' fill='%23fff'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='1' fill='%23000'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{padding:0 5px;background-color:hsla(0,0%,100%,.5);margin:0}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{min-height:20px;padding:2px 24px 2px 0;margin:10px;position:relative;background-color:#fff;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 8px 2px 28px;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{display:none;cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E");background-color:hsla(0,0%,100%,.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px;outline:none;top:0;right:0;border:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner,.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);font-size:10px;border:2px solid #333;border-top:#333;padding:0 5px;color:#333;box-sizing:border-box}.mapboxgl-popup{position:absolute;top:0;left:0;display:flex;will-change:transform;pointer-events:none}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-top:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-right:none;border-left-color:#fff}.mapboxgl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{position:absolute;top:0;left:0;will-change:transform;opacity:1;transition:opacity .2s}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.mapboxgl-user-location-dot:before{content:"";position:absolute;animation:mapboxgl-user-location-dot-pulse 2s infinite}.mapboxgl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box;box-shadow:0 0 3px rgba(0,0,0,.35)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{width:0;height:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{content:"";border-bottom:7.5px solid #4aa1eb;position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{transform:scale(1);opacity:1}70%{transform:scale(3);opacity:0}to{transform:scale(1);opacity:0}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);width:1px;height:1px;border-radius:100%}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:.5}@media print{.mapbox-improve-map{display:none}} \ No newline at end of file +.mapboxgl-map { + font: + 12px/20px Helvetica Neue, + Arial, + Helvetica, + sans-serif; + overflow: hidden; + position: relative; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +.mapboxgl-canvas { + position: absolute; + left: 0; + top: 0; +} +.mapboxgl-map:-webkit-full-screen { + width: 100%; + height: 100%; +} +.mapboxgl-canary { + background-color: salmon; +} +.mapboxgl-canvas-container.mapboxgl-interactive, +.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass { + cursor: grab; + -webkit-user-select: none; + user-select: none; +} +.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer { + cursor: pointer; +} +.mapboxgl-canvas-container.mapboxgl-interactive:active, +.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active { + cursor: grabbing; +} +.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate, +.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas { + touch-action: pan-x pan-y; +} +.mapboxgl-canvas-container.mapboxgl-touch-drag-pan, +.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas { + touch-action: pinch-zoom; +} +.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan, +.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas { + touch-action: none; +} +.mapboxgl-ctrl-bottom-left, +.mapboxgl-ctrl-bottom-right, +.mapboxgl-ctrl-top-left, +.mapboxgl-ctrl-top-right { + position: absolute; + pointer-events: none; + z-index: 2; +} +.mapboxgl-ctrl-top-left { + top: 0; + left: 0; +} +.mapboxgl-ctrl-top-right { + top: 0; + right: 0; +} +.mapboxgl-ctrl-bottom-left { + bottom: 0; + left: 0; +} +.mapboxgl-ctrl-bottom-right { + right: 0; + bottom: 0; +} +.mapboxgl-ctrl { + clear: both; + pointer-events: auto; + transform: translate(0); +} +.mapboxgl-ctrl-top-left .mapboxgl-ctrl { + margin: 10px 0 0 10px; + float: left; +} +.mapboxgl-ctrl-top-right .mapboxgl-ctrl { + margin: 10px 10px 0 0; + float: right; +} +.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl { + margin: 0 0 10px 10px; + float: left; +} +.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl { + margin: 0 10px 10px 0; + float: right; +} +.mapboxgl-ctrl-group { + border-radius: 4px; + background: #fff; +} +.mapboxgl-ctrl-group:not(:empty) { + box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1); +} +@media (-ms-high-contrast: active) { + .mapboxgl-ctrl-group:not(:empty) { + box-shadow: 0 0 0 2px ButtonText; + } +} +.mapboxgl-ctrl-group button { + width: 29px; + height: 29px; + display: block; + padding: 0; + outline: none; + border: 0; + box-sizing: border-box; + background-color: transparent; + cursor: pointer; +} +.mapboxgl-ctrl-group button + button { + border-top: 1px solid #ddd; +} +.mapboxgl-ctrl button .mapboxgl-ctrl-icon { + display: block; + width: 100%; + height: 100%; + background-repeat: no-repeat; + background-position: 50%; +} +@media (-ms-high-contrast: active) { + .mapboxgl-ctrl-icon { + background-color: transparent; + } + .mapboxgl-ctrl-group button + button { + border-top: 1px solid ButtonText; + } +} +.mapboxgl-ctrl-attrib-button:focus, +.mapboxgl-ctrl-group button:focus { + box-shadow: 0 0 2px 2px #0096ff; +} +.mapboxgl-ctrl button:disabled { + cursor: not-allowed; +} +.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon { + opacity: 0.25; +} +.mapboxgl-ctrl button:not(:disabled):hover { + background-color: rgba(0, 0, 0, 0.05); +} +.mapboxgl-ctrl-group button:focus:focus-visible { + box-shadow: 0 0 2px 2px #0096ff; +} +.mapboxgl-ctrl-group button:focus:not(:focus-visible) { + box-shadow: none; +} +.mapboxgl-ctrl-group button:focus:first-child { + border-radius: 4px 4px 0 0; +} +.mapboxgl-ctrl-group button:focus:last-child { + border-radius: 0 0 4px 4px; +} +.mapboxgl-ctrl-group button:focus:only-child { + border-radius: inherit; +} +.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E"); +} +.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E"); +} +@media (-ms-high-contrast: active) { + .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E"); + } +} +@media (-ms-high-contrast: black-on-white) { + .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E"); + } +} +.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E"); +} +.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E"); +} +@media (-ms-high-contrast: active) { + .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E"); + } +} +@media (-ms-high-contrast: black-on-white) { + .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E"); + } +} +.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E %3C/svg%3E"); +} +@media (-ms-high-contrast: active) { + .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E %3C/svg%3E"); + } +} +@media (-ms-high-contrast: black-on-white) { + .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E %3C/svg%3E"); + } +} +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); +} +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E"); +} +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); +} +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); +} +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); +} +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); +} +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon { + animation: mapboxgl-spin 2s linear infinite; +} +@media (-ms-high-contrast: active) { + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); + } +} +@media (-ms-high-contrast: black-on-white) { + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E"); + } + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E"); + } +} +@keyframes mapboxgl-spin { + 0% { + transform: rotate(0deg); + } + to { + transform: rotate(1turn); + } +} +a.mapboxgl-ctrl-logo { + width: 88px; + height: 23px; + margin: 0 0 -4px -4px; + display: block; + background-repeat: no-repeat; + cursor: pointer; + overflow: hidden; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='0.9' fill='%23fff'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E"); +} +a.mapboxgl-ctrl-logo.mapboxgl-compact { + width: 23px; +} +@media (-ms-high-contrast: active) { + a.mapboxgl-ctrl-logo { + background-color: transparent; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='1' fill='%23fff'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E"); + } +} +@media (-ms-high-contrast: black-on-white) { + a.mapboxgl-ctrl-logo { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='1' fill='%23000'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E"); + } +} +.mapboxgl-ctrl.mapboxgl-ctrl-attrib { + padding: 0 5px; + background-color: hsla(0, 0%, 100%, 0.5); + margin: 0; +} +@media screen { + .mapboxgl-ctrl-attrib.mapboxgl-compact { + min-height: 20px; + padding: 2px 24px 2px 0; + margin: 10px; + position: relative; + background-color: #fff; + border-radius: 12px; + } + .mapboxgl-ctrl-attrib.mapboxgl-compact-show { + padding: 2px 28px 2px 8px; + visibility: visible; + } + .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show, + .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show { + padding: 2px 8px 2px 28px; + border-radius: 12px; + } + .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner { + display: none; + } + .mapboxgl-ctrl-attrib-button { + display: none; + cursor: pointer; + position: absolute; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E"); + background-color: hsla(0, 0%, 100%, 0.5); + width: 24px; + height: 24px; + box-sizing: border-box; + border-radius: 12px; + outline: none; + top: 0; + right: 0; + border: 0; + } + .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button, + .mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button { + left: 0; + } + .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner, + .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button { + display: block; + } + .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button { + background-color: rgba(0, 0, 0, 0.05); + } + .mapboxgl-ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after { + bottom: 0; + right: 0; + } + .mapboxgl-ctrl-top-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after { + top: 0; + right: 0; + } + .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after { + top: 0; + left: 0; + } + .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after { + bottom: 0; + left: 0; + } +} +@media screen and (-ms-high-contrast: active) { + .mapboxgl-ctrl-attrib.mapboxgl-compact:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E"); + } +} +@media screen and (-ms-high-contrast: black-on-white) { + .mapboxgl-ctrl-attrib.mapboxgl-compact:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E"); + } +} +.mapboxgl-ctrl-attrib a { + color: rgba(0, 0, 0, 0.75); + text-decoration: none; +} +.mapboxgl-ctrl-attrib a:hover { + color: inherit; + text-decoration: underline; +} +.mapboxgl-ctrl-attrib .mapbox-improve-map { + font-weight: 700; + margin-left: 2px; +} +.mapboxgl-attrib-empty { + display: none; +} +.mapboxgl-ctrl-scale { + background-color: hsla(0, 0%, 100%, 0.75); + font-size: 10px; + border: 2px solid #333; + border-top: #333; + padding: 0 5px; + color: #333; + box-sizing: border-box; +} +.mapboxgl-popup { + position: absolute; + top: 0; + left: 0; + display: flex; + will-change: transform; + pointer-events: none; +} +.mapboxgl-popup-anchor-top, +.mapboxgl-popup-anchor-top-left, +.mapboxgl-popup-anchor-top-right { + flex-direction: column; +} +.mapboxgl-popup-anchor-bottom, +.mapboxgl-popup-anchor-bottom-left, +.mapboxgl-popup-anchor-bottom-right { + flex-direction: column-reverse; +} +.mapboxgl-popup-anchor-left { + flex-direction: row; +} +.mapboxgl-popup-anchor-right { + flex-direction: row-reverse; +} +.mapboxgl-popup-tip { + width: 0; + height: 0; + border: 10px solid transparent; + z-index: 1; +} +.mapboxgl-popup-anchor-top .mapboxgl-popup-tip { + align-self: center; + border-top: none; + border-bottom-color: #fff; +} +.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip { + align-self: flex-start; + border-top: none; + border-left: none; + border-bottom-color: #fff; +} +.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip { + align-self: flex-end; + border-top: none; + border-right: none; + border-bottom-color: #fff; +} +.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip { + align-self: center; + border-bottom: none; + border-top-color: #fff; +} +.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip { + align-self: flex-start; + border-bottom: none; + border-left: none; + border-top-color: #fff; +} +.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip { + align-self: flex-end; + border-bottom: none; + border-right: none; + border-top-color: #fff; +} +.mapboxgl-popup-anchor-left .mapboxgl-popup-tip { + align-self: center; + border-left: none; + border-right-color: #fff; +} +.mapboxgl-popup-anchor-right .mapboxgl-popup-tip { + align-self: center; + border-right: none; + border-left-color: #fff; +} +.mapboxgl-popup-close-button { + position: absolute; + right: 0; + top: 0; + border: 0; + border-radius: 0 3px 0 0; + cursor: pointer; + background-color: transparent; +} +.mapboxgl-popup-close-button:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.mapboxgl-popup-content { + position: relative; + background: #fff; + border-radius: 3px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); + padding: 10px 10px 15px; + pointer-events: auto; +} +.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content { + border-top-left-radius: 0; +} +.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content { + border-top-right-radius: 0; +} +.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content { + border-bottom-left-radius: 0; +} +.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content { + border-bottom-right-radius: 0; +} +.mapboxgl-popup-track-pointer { + display: none; +} +.mapboxgl-popup-track-pointer * { + pointer-events: none; + user-select: none; +} +.mapboxgl-map:hover .mapboxgl-popup-track-pointer { + display: flex; +} +.mapboxgl-map:active .mapboxgl-popup-track-pointer { + display: none; +} +.mapboxgl-marker { + position: absolute; + top: 0; + left: 0; + will-change: transform; + opacity: 1; + transition: opacity 0.2s; +} +.mapboxgl-user-location-dot, +.mapboxgl-user-location-dot:before { + background-color: #1da1f2; + width: 15px; + height: 15px; + border-radius: 50%; +} +.mapboxgl-user-location-dot:before { + content: ""; + position: absolute; + animation: mapboxgl-user-location-dot-pulse 2s infinite; +} +.mapboxgl-user-location-dot:after { + border-radius: 50%; + border: 2px solid #fff; + content: ""; + height: 19px; + left: -2px; + position: absolute; + top: -2px; + width: 19px; + box-sizing: border-box; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.35); +} +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading { + width: 0; + height: 0; +} +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after, +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before { + content: ""; + border-bottom: 7.5px solid #4aa1eb; + position: absolute; +} +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before { + border-left: 7.5px solid transparent; + transform: translateY(-28px) skewY(-20deg); +} +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after { + border-right: 7.5px solid transparent; + transform: translate(7.5px, -28px) skewY(20deg); +} +@keyframes mapboxgl-user-location-dot-pulse { + 0% { + transform: scale(1); + opacity: 1; + } + 70% { + transform: scale(3); + opacity: 0; + } + to { + transform: scale(1); + opacity: 0; + } +} +.mapboxgl-user-location-dot-stale { + background-color: #aaa; +} +.mapboxgl-user-location-dot-stale:after { + display: none; +} +.mapboxgl-user-location-accuracy-circle { + background-color: rgba(29, 161, 242, 0.2); + width: 1px; + height: 1px; + border-radius: 100%; +} +.mapboxgl-crosshair, +.mapboxgl-crosshair .mapboxgl-interactive, +.mapboxgl-crosshair .mapboxgl-interactive:active { + cursor: crosshair; +} +.mapboxgl-boxzoom { + position: absolute; + top: 0; + left: 0; + width: 0; + height: 0; + background: #fff; + border: 2px dotted #202020; + opacity: 0.5; +} +@media print { + .mapbox-improve-map { + display: none; + } +} diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index d1ffd56..5b0ac21 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,18 +1,18 @@ export const environment = { production: true, - baseApiUrl: window["env"]["baseApiUrl"] || 'https://api.resgrid.com', - resgridApiUrl: window["env"]["resgridApiUrl"] || '/api/v4', - channelUrl: window["env"]["channelUrl"] || 'https://events.resgrid.com/', - channelHubName: window["env"]["channelHubName"] || 'eventingHub', - realtimeGeolocationHubName: window["env"]["realtimeGeolocationHubName"] || 'geolocationHub', + baseApiUrl: window["env"]["baseApiUrl"] || "https://api.resgrid.com", + resgridApiUrl: window["env"]["resgridApiUrl"] || "/api/v4", + channelUrl: window["env"]["channelUrl"] || "https://events.resgrid.com/", + channelHubName: window["env"]["channelHubName"] || "eventingHub", + realtimeGeolocationHubName: window["env"]["realtimeGeolocationHubName"] || "geolocationHub", logLevel: window["env"]["logLevel"] || 0, - what3WordsKey: window["env"]["what3WordsKey"] || 'W3WKEY', + what3WordsKey: window["env"]["what3WordsKey"] || "W3WKEY", isDemo: window["env"]["isDemo"] || false, - demoToken: window["env"]["demoToken"] || 'DEMOTOKEN', - version: '99.99.99', - osmMapKey: window["env"]["osmMapKey"] || 'OSMKEY', - mapTilerKey: window["env"]["mapTilerKey"] || 'MTKEY', - googleMapsKey: window["env"]["googleMapsKey"] || 'GOOGLEMAPKEY', - loggingKey: window["env"]["loggingKey"] || 'LOGGINGKEY', - appKey: window["env"]["appKey"] || 'APPKEY' -}; \ No newline at end of file + demoToken: window["env"]["demoToken"] || "DEMOTOKEN", + version: "99.99.99", + osmMapKey: window["env"]["osmMapKey"] || "OSMKEY", + mapTilerKey: window["env"]["mapTilerKey"] || "MTKEY", + googleMapsKey: window["env"]["googleMapsKey"] || "GOOGLEMAPKEY", + loggingKey: window["env"]["loggingKey"] || "LOGGINGKEY", + appKey: window["env"]["appKey"] || "APPKEY", +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 4601ac8..c27379a 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -4,21 +4,21 @@ export const environment = { production: false, - baseApiUrl: window["env"]["baseApiUrl"] || 'https://api.resgrid.com', - resgridApiUrl: window["env"]["resgridApiUrl"] || '/api/v4', - channelUrl: window["env"]["channelUrl"] || 'https://events.resgrid.com/', - channelHubName: window["env"]["channelHubName"] || 'eventingHub', - realtimeGeolocationHubName: window["env"]["realtimeGeolocationHubName"] || 'geolocationHub', + baseApiUrl: window["env"]["baseApiUrl"] || "https://api.resgrid.com", + resgridApiUrl: window["env"]["resgridApiUrl"] || "/api/v4", + channelUrl: window["env"]["channelUrl"] || "https://events.resgrid.com/", + channelHubName: window["env"]["channelHubName"] || "eventingHub", + realtimeGeolocationHubName: window["env"]["realtimeGeolocationHubName"] || "geolocationHub", logLevel: window["env"]["logLevel"] || 0, - what3WordsKey: window["env"]["what3WordsKey"] || 'W3WKEY', + what3WordsKey: window["env"]["what3WordsKey"] || "W3WKEY", isDemo: window["env"]["isDemo"] || false, - demoToken: window["env"]["demoToken"] || 'DEMOTOKEN', - version: '99.99.99', - osmMapKey: window["env"]["osmMapKey"] || 'OSMKEY', - mapTilerKey: window["env"]["mapTilerKey"] || 'MTKEY', - googleMapsKey: window["env"]["googleMapsKey"] || 'GOOGLEMAPKEY', - loggingKey: window["env"]["loggingKey"] || 'LOGGINGKEY', - appKey: window["env"]["appKey"] || 'APPKEY' + demoToken: window["env"]["demoToken"] || "DEMOTOKEN", + version: "99.99.99", + osmMapKey: window["env"]["osmMapKey"] || "OSMKEY", + mapTilerKey: window["env"]["mapTilerKey"] || "MTKEY", + googleMapsKey: window["env"]["googleMapsKey"] || "GOOGLEMAPKEY", + loggingKey: window["env"]["loggingKey"] || "LOGGINGKEY", + appKey: window["env"]["appKey"] || "APPKEY", }; /* diff --git a/src/main.ts b/src/main.ts index ee19574..172e4fe 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,9 +1,9 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { enableProdMode } from "@angular/core"; +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; import * as Sentry from "@sentry/angular"; import { Integrations } from "@sentry/tracing"; -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; +import { AppModule } from "./app/app.module"; +import { environment } from "./environments/environment"; if (environment.production) { enableProdMode(); @@ -11,14 +11,14 @@ if (environment.production) { const serverErrorsRegex = new RegExp( `500 Internal Server Error|401 Unauthorized|403 Forbidden|404 Not Found|502 Bad Gateway|503 Service Unavailable`, - 'mi' + "mi", ); -if (environment.loggingKey && environment.loggingKey !== 'LOGGINGKEY') { +if (environment.loggingKey && environment.loggingKey !== "LOGGINGKEY") { Sentry.init({ dsn: environment.loggingKey, release: environment.version, - environment: environment.production ? 'prod' : 'dev', + environment: environment.production ? "prod" : "dev", // We ignore Server Errors. We have to define here since Angular // http client uses setTimeout to detect http call progress. // And when the call fails, it throws an exception inside that timeout @@ -29,7 +29,7 @@ if (environment.loggingKey && environment.loggingKey !== 'LOGGINGKEY') { // which automatically instruments your application to monitor its // performance, including custom Angular routing instrumentation new Integrations.BrowserTracing({ - tracingOrigins: ['localhost', 'https://api.resgrid.com/api', 'https://dispatch.resgrid.com'], + tracingOrigins: ["localhost", "https://api.resgrid.com/api", "https://dispatch.resgrid.com"], routingInstrumentation: Sentry.routingInstrumentation, }), ], @@ -44,5 +44,5 @@ if (environment.loggingKey && environment.loggingKey !== 'LOGGINGKEY') { enableProdMode(); platformBrowserDynamic() .bootstrapModule(AppModule) - .then(success => console.log(`Bootstrap success`)) - .catch(err => console.error(err)); + .then((success) => console.log(`Bootstrap success`)) + .catch((err) => console.error(err)); diff --git a/src/test.ts b/src/test.ts index 7632e27..0ddf269 100644 --- a/src/test.ts +++ b/src/test.ts @@ -1,14 +1,8 @@ // This file is required by karma.conf.js and loads recursively all the .spec and framework files -import 'zone.js/testing'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; +import "zone.js/testing"; +import { getTestBed } from "@angular/core/testing"; +import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from "@angular/platform-browser-dynamic/testing"; // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting() -); +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());