import { UserGuard, AgentGuard, AdminGuard, AdminOrAgentGuard, XMabsutApiSdkModule, X_MABSUT_API_SDK_CONFIG, XPushTokenFetcherService, } from 'x-mabsut-api-sdk'; import { XCanDeactivateGuard, XFrameworkCoreModule, X_FRAMEWORK_CORE_CONFIG, } from 'x-framework-core'; import { XManagerService, XFrameworkServicesModule, X_FRAMEWORK_SERVICES_CONFIG, } from 'x-framework-services'; import { XFrameworkComponentsModule, X_FRAMEWORK_COMPONENTS_CONFIG, } from 'x-framework-components'; import { AuthGuard, X_API_CONFIG, NotAuthGuard, ApiHttpInterceptorService, XFrameworkIdentitySdkModule, X_FRAMEWORK_IDENTITY_SDK_CONFIG, } from 'x-framework-identity-sdk'; import { XFrameworkPushServiceModule, X_FRAMEWORK_PUSH_SERVICE_CONFIG, X_FRAMEWORK_PUSH_SERVICE_TOKEN_FETCHER, } from 'x-framework-push-service'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { HomePage } from './pages/home/home.page'; import { ViewsModule } from './views/views.module'; import { XAPI_CONFIG } from './config/x-api.config'; import { ErrorPage } from './pages/error/error.page'; import { RouteReuseStrategy } from '@angular/router'; import { X_CONFIG, XCONFIG } from './config/x.config'; import { SharedModule } from './shared/shared.module'; import { AppRoutingModule } from './app-routing.module'; import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { BrowserModule } from '@angular/platform-browser'; import { environment } from '../environments/environment'; import { StartupPage } from './pages/startup/startup.page'; import { LandingPage } from './pages/landing/landing.page'; import { ServiceWorkerModule } from '@angular/service-worker'; import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; import { NotAuthorizedPage } from './pages/not-authorized/not-authorized.page'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @NgModule({ declarations: [ HomePage, ErrorPage, StartupPage, LandingPage, AppComponent, NotAuthorizedPage, ], imports: [ ViewsModule, SharedModule, BrowserModule, AppRoutingModule, XMabsutApiSdkModule, XFrameworkCoreModule, IonicModule.forRoot(), BrowserAnimationsModule, XFrameworkServicesModule, XFrameworkComponentsModule, XFrameworkPushServiceModule, XFrameworkIdentitySdkModule, ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production, }), ], providers: [ // // Ionic Routing ... { provide: RouteReuseStrategy, useClass: IonicRouteStrategy, }, // // Manager Service ... XManagerService, // // Provide Guards ... AuthGuard, UserGuard, AdminGuard, AgentGuard, NotAuthGuard, AdminOrAgentGuard, XCanDeactivateGuard, // //#region Configs ... { provide: X_FRAMEWORK_CORE_CONFIG, useValue: XCONFIG, }, { provide: X_FRAMEWORK_SERVICES_CONFIG, useValue: XCONFIG, }, { provide: X_FRAMEWORK_COMPONENTS_CONFIG, useValue: XCONFIG, }, { provide: X_FRAMEWORK_IDENTITY_SDK_CONFIG, useValue: XCONFIG, }, { provide: X_FRAMEWORK_PUSH_SERVICE_CONFIG, useValue: XCONFIG, }, { provide: X_MABSUT_API_SDK_CONFIG, useValue: XCONFIG, }, { provide: X_API_CONFIG, useValue: XAPI_CONFIG, }, { provide: X_CONFIG, useValue: XCONFIG, }, //#endregion // //#region Push ... { provide: X_FRAMEWORK_PUSH_SERVICE_TOKEN_FETCHER, useClass: XPushTokenFetcherService, }, //#endregion // //#region Register Http Interceptor ... { provide: HTTP_INTERCEPTORS, useClass: ApiHttpInterceptorService, multi: true, }, //#endregion ], bootstrap: [AppComponent], }) export class AppModule { }