import {ModuleWithProviders, NgModule, Optional, SkipSelf} from '@angular/core'; import {throwIfAlreadyLoaded} from '../../guard/module-import-guard'; import {RouterModule} from '@angular/router'; import {TabsPage} from '../../layout/tabs/tabs.page'; import {routesExt} from '../../../df-ext/routes-ext-routing.module'; import {WechatGuard} from './wechat.guard'; import {DeviceInfoWechatService} from './device-info.wechat.service'; import {M2_DEVICE_INFO_PROVIDER} from '../../core/tokens/m2.tokens'; import {AppData} from '../../../df-ext/app-data'; import {MenusPage} from '../../layout/menus/menus.page'; const layouts = {"tabs": TabsPage, "menus": MenusPage}; const routes = { 'app': [], 'wechat': [ { path: 'm2', component: layouts[AppData.config.layoutMode], canActivate: [WechatGuard], children: [ ...routesExt ] }, {path: 'register', loadChildren: () => import('src/app/df/plugin/wechat/register/register.module').then(m => m.WechatRegisterPageModule)}, {path: 'error', loadChildren: () => import('src/app/df/routes/error/error.module').then(m => m.ErrorPageModule)}, {path: '', redirectTo: '/m2/home', pathMatch: 'full'} ], 'dingtalk': [], }; @NgModule({ declarations: [], entryComponents: [], imports: [ RouterModule.forRoot(routes[AppData.config.runMode]) ], providers: [] }) export class WechatModule { constructor(@Optional() @SkipSelf() parentModule: WechatModule) { throwIfAlreadyLoaded(parentModule, 'WechatModule'); } static forRoot(): ModuleWithProviders { return { ngModule: WechatModule, providers: [ {provide: M2_DEVICE_INFO_PROVIDER, useClass: DeviceInfoWechatService} ] }; } }