import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { DatePipe } from '@angular/common';
import { NgbActiveModal } from "@ng-bootstrap/ng-bootstrap";
import { NgZorroAntdModule } from 'ng-zorro-antd';
import { EmitService } from "./event/eventEmitter";
import {
    BootappSharedLibsModule,
    BootappSharedCommonModule,
    CSRFService,
    AuthServerProvider,
    AccountService,
    StateStorageService,
    LoginService,
    JhiLoginModalComponent,
    Principal,
    HasAnyAuthorityDirective,
} from './';
import {ReactiveFormsModule} from '@angular/forms';
import {CommonService} from './common/common.service';
import {UtilService} from './common/util.service';
import {DisableControlDirective} from './common/disable-control.directive';
import {PipeModule} from './pipe/pipe.module';

@NgModule({
    imports: [
        ReactiveFormsModule,
        NgZorroAntdModule,
        BootappSharedLibsModule,
        BootappSharedCommonModule,
        PipeModule,
    ],
    declarations: [
        JhiLoginModalComponent,
        HasAnyAuthorityDirective
    ],
    providers: [
        LoginService,
        AccountService,
        StateStorageService,
        Principal,
        CSRFService,
        AuthServerProvider,
        DatePipe,
        EmitService,
        NgbActiveModal,
        CommonService,
        UtilService,
    ],
    entryComponents: [JhiLoginModalComponent],
    exports: [
        BootappSharedCommonModule,
        JhiLoginModalComponent,
        HasAnyAuthorityDirective,
        DatePipe,
    ],
    schemas: [CUSTOM_ELEMENTS_SCHEMA]

})
export class BootappSharedModule {}
