Files
xSaherElmClient/src/app/app.module.ts
T
2026-04-17 17:04:44 +03:30

158 lines
3.9 KiB
TypeScript

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 { }