import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { RouteReuseStrategy } from '@angular/router'; import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; import { SplashScreen } from '@ionic-native/splash-screen/ngx'; import { StatusBar } from '@ionic-native/status-bar/ngx'; import { AppComponent } from './app.component'; import { AppRoutingModule } from './app-routing.module'; import { HttpClientModule } from '@angular/common/http'; import { ComponentsModule } from './components/components.module'; import {AgGridModule} from 'ag-grid-angular'; import {MonacoEditorModule} from 'ngx-monaco-editor'; import { APP_BASE_HREF, PlatformLocation } from '@angular/common'; import {MarkdownModule, MarkedOptions} from 'ngx-markdown'; import {ConnectionServiceModule} from 'ng-connection-service'; import { ServiceWorkerModule } from '@angular/service-worker'; import { environment } from '../environments/environment'; import { AngularResizedEventModule } from 'angular-resize-event'; import { IonicSelectableModule } from 'ionic-selectable'; import * as hljs from 'highlight.js'; import { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs'; /** * This function is used internal to get a string instance of the `` value from `index.html`. * This is an exported function, instead of a private function or inline lambda, to prevent this error: * * `Error encountered resolving symbol values statically.` * `Function calls are not supported.` * `Consider replacing the function or lambda with a reference to an exported function.` * * @param platformLocation an Angular service used to interact with a browser's URL * @return a string instance of the `` value from `index.html` */ export function getBaseHref(platformLocation: PlatformLocation): string { return platformLocation.getBaseHrefFromDOM(); } @NgModule({ declarations: [AppComponent], entryComponents: [], imports: [ BrowserModule, IonicModule.forRoot(), AppRoutingModule, HttpClientModule, ComponentsModule, AgGridModule.withComponents([]), MonacoEditorModule.forRoot(), HighlightModule, MarkdownModule.forRoot({ markedOptions: { provide: MarkedOptions, useValue: { highlight(code: string, lang: string, callback?: (error: any, code: string) => void): string { const highlighted = hljs.highlight(lang, code, true); if ( callback ) { callback(null, highlighted.value); } return highlighted.value; }, }, } }), ConnectionServiceModule, ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }), AngularResizedEventModule, IonicSelectableModule, ], providers: [ StatusBar, SplashScreen, { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, { provide: APP_BASE_HREF, useFactory: getBaseHref, deps: [PlatformLocation] }, { provide: HIGHLIGHT_OPTIONS, useValue: { fullLibraryLoader: () => import('highlight.js'), } }, ], bootstrap: [AppComponent] }) export class AppModule {}