import { inject, NgModule } from '@angular/core';
import { CommonModule as NgCommonModule, APP_BASE_HREF } from '@angular/common';
import { Routes, RouterModule } from '@angular/router';

import { RuntimeBaseModule, AuthGuard, RoleGuard } from '@wm/runtime/base';

{{WMComponentsImportStmts requiredWMComponents}}

{{PartialModuleImportStmts requiredPartials}}

import { {{componentName}} } from './{{name}}.component';

const components = [{{componentName}}];

const routes: Routes = {{DefineLayoutRoutes name componentName pagesConfig securityConfig}};

const requiredComponentModules = [
    {{WMComponentModuleStmts requiredWMComponents}}
];

const requiredPartialModules = [
    {{PartialModuleStmts requiredPartials}}
];

@NgModule({
    declarations: components,
    imports: [
        ...requiredComponentModules,
        ...requiredPartialModules,
        RouterModule.forChild(routes),
        NgCommonModule,
        RuntimeBaseModule
    ],
    {{#if hasCustomElement}}
    schemas: [CUSTOM_ELEMENTS_SCHEMA],
    {{/if}}
    exports: components
})
export class {{moduleName}} {

}

