import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy, RouterOutlet } from '@angular/router';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { IonicStorageModule } from '@ionic/storage-angular';
import { ActivationPage } from './activation/activation';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { WalletPage } from './wallet/wallet';
import { SupportPage } from './support/support';
import { BayaPlusPage } from '../app/baya-plus/baya-plus';
import { MenuPresenterDirective } from '../directives/menu-presenter/menu-presenter';
import { ModalDescriptionPage } from './modal-description/modal-description';
import { FormsModule } from '@angular/forms';
import { Push } from '@awesome-cordova-plugins/push/ngx';
import { SharedModule } from './modules/shared/shared.module';
import { CoreModule } from './modules/core/core.module';
import { MdComponentModule } from './md-module/md-module.module';
import { WatchAdsComponent } from '../components/watch-ads/watch-ads';
import { CommonModule } from '@angular/common';
import { BackgroundMode } from '@awesome-cordova-plugins/background-mode/ngx';
import { SpeechRecognition } from '@awesome-cordova-plugins/speech-recognition/ngx';
import { AddFriendDialogComponent } from '../components/chat/add-friend-dialog/add-friend-dialog';
import { AddItemDialogComponent } from '../components/collection/dialog/add-item-dialog/add-item-dialog';
import { ComponentsModule } from '../components/components.module';
import { TourGuideComponent } from '../components/tour-guide/tour-guide';
import { KeyboardAttachDirective } from '../directives/keyboard-attach/keyboard-attach';
import { AccountManagerProvider } from '../providers/account-manager/account-manager';
import { AdsManagerProvider } from '../providers/ads-manager/ads-manager';
import { AjaxBridgeProvider } from '../providers/ajax-bridge/ajax-bridge';
import { AppRateManagerProvider } from '../providers/app-rate-manager/app-rate-manager';
import { AppStateManagerProvider } from '../providers/app-state-manager/app-state-manager';
import { ArchiveManagerProvider } from '../providers/archive-manager/archive-manager';
import { AvatarDatabaseManagerProvider } from '../providers/avatars-manager/avatar-database-manager/avatar-database-manager';
import { AvatarsManagerProvider } from '../providers/avatars-manager/avatars-manager';
import { BubbleCopyManagerProvider } from '../providers/bubble-copy-manager/bubble-copy-manager';
import { BubbleCopyPluginProvider } from '../providers/bubble-copy-plugin/bubble-copy-plugin';
import { CollectionsManagerProvider } from '../providers/collections-manager/collections-manager';
import { EventsManagerProvider } from '../providers/events-manager/events-manager';
import { FriendsDatabaseManagerProvider } from '../providers/friends-manager/database/friends-database-manager-provider';
import { FriendsManagerProvider } from '../providers/friends-manager/friends-manager';
import { IconsService } from '../providers/icons-service';
import { ItemsManagerProvider } from '../providers/items-manager/items-manager';
import { LocalNotificationManagerProvider } from '../providers/local-notification-manager/local-notification-manager';
import { MembersDatabaseManagerProvider } from '../providers/members-manager/database/members-database-manager-provider';
import { MembersManagerProvider } from '../providers/members-manager/members-manager';
import { MessagesManagerProvider } from '../providers/messages-manager/messages-manager';
import { NotificationsManagerProvider } from '../providers/notifications-manager/notifications-manager';
import { ProductManagerProvider } from '../providers/product-manager/product-manager';
import { SettingsManagerProvider } from '../providers/settings-manager/settings-manager';
import { SocketManagerProvider } from '../providers/socket-manager/socket-manager';
import { SpaceRepetitionDatabaseManagerProvider } from '../providers/space-repetition-database-manager/space-repetition-database-manager';
import { SpaceRepetitionManagerProvider } from '../providers/space-repetition-manager/space-repetition-manager';
import { DatabaseManagerProvider } from '../providers/storage-manager/database-manager';
import { StorageManagerProvider } from '../providers/storage-manager/storage-manager';
import { TabsManagerProvider } from '../providers/tabs-manager/tabs-manager';
import { TimeManagerProvider } from '../providers/time-manager/time-manager';
import { TourGuideManagerProvider } from '../providers/tour-guide-manager/tour-guide-manager';
import { UserManagerProvider } from '../providers/user-manager/user-manager';
import { WordsDatabaseService } from '../providers/words-database-service/words-database-service';
import { WordsManagerProvider } from '../providers/words-manager/words-manager';
import { DictionaryModule } from './modules/chat/components/chat/message/dictionary/dictionary.module';
import { CompHeaderComponentModule } from '../components/comp-header/comp-header.module';
import { ChatOptionMenuComponentModule } from '../components/comp-header/chat-option-menu/chat-option-menu.module';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslationService } from '../providers/translation-service';
import { MatIconModule } from '@angular/material/icon';
import { DynamicAd } from '../components/ads/dynamic-ad/dynamic-ad';
export function createTranslateLoader(httpClient: HttpClient) {
return new TranslateHttpLoader(httpClient, '../../../assets/i18n/', '.json');
}
@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [
WatchAdsComponent,
BayaPlusPage,
KeyboardAttachDirective,
MenuPresenterDirective,
AppComponent,
ActivationPage,
WalletPage,
SupportPage,
ModalDescriptionPage,
TourGuideComponent,
AddFriendDialogComponent,
AddItemDialogComponent
],
imports: [
ChatOptionMenuComponentModule,
CompHeaderComponentModule,
SharedModule,
MatIconModule,
DictionaryModule,
MdComponentModule,
FormsModule,
HttpClientModule,
BrowserModule,
CoreModule,
IonicModule.forRoot(),
AppRoutingModule,
IonicModule,
CommonModule,
ComponentsModule,
IonicStorageModule.forRoot(),
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: createTranslateLoader,
deps: [HttpClient]
},
isolate: false
})
],
providers: [
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
DatabaseManagerProvider,
AjaxBridgeProvider,
SpeechRecognition,
KeyboardAttachDirective,
StorageManagerProvider,
Storage,
Push,
IconsService,
ItemsManagerProvider,
CollectionsManagerProvider,
TabsManagerProvider,
MessagesManagerProvider,
UserManagerProvider,
MembersManagerProvider,
FriendsManagerProvider,
TranslationService,
// ChatsManagerProvider,
SocketManagerProvider,
EventsManagerProvider,
SettingsManagerProvider,
LocalNotificationManagerProvider,
SpaceRepetitionManagerProvider,
SpaceRepetitionDatabaseManagerProvider,
FriendsDatabaseManagerProvider,
MembersDatabaseManagerProvider,
AdsManagerProvider,
ProductManagerProvider,
NotificationsManagerProvider,
BackgroundMode,
TimeManagerProvider,
AppStateManagerProvider,
TourGuideManagerProvider,
WordsManagerProvider,
WordsDatabaseService,
AppRateManagerProvider,
BubbleCopyManagerProvider,
BubbleCopyPluginProvider,
ArchiveManagerProvider,
AccountManagerProvider,
AvatarsManagerProvider,
AvatarDatabaseManagerProvider,
Storage,
StorageManagerProvider,
RouterOutlet
],
exports: [],
bootstrap: [AppComponent]
})
export class AppModule { }