import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { Globalization } from '@ionic-native/globalization/ngx';
import { NumberRangeComponent } from './ui/number-range/number-range.component';
import { IonicModule } from '@ionic/angular';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { SSpacerComponent } from './ui/spacer/s-spacer/s-spacer.component';
import { MSpacerComponent } from './ui/spacer/m-spacer/m-spacer.component';
import { LSpacerComponent } from './ui/spacer/l-spacer/l-spacer.component';
import { ImagesSliderComponent } from './ui/images-slider/images-slider.component';
import { InfoDialogComponent } from './ui/info-dialog/info-dialog.component';
import { SelectComponent } from './ui/select/select.component';
import { ConnectorService } from './services/connector/connector.service';
import { TranslatorService } from './services/translator/translator.service';
import { FaceAvatarComponent } from './ui/face-avatar/face-avatar.component';
import { DividerComponent } from './ui/divider/divider.component';
import { NavButtonsComponent } from './ui/nav-buttons/nav-buttons.component';
import { SharedDataService } from './services/shared-data-service/shared-data.service';
import { TranslatePipe } from './pipes/translate/translate.pipe';
import { DatePipeTransform } from './pipes/date/date.pipe';
import { AlertControllerService } from './ui/alert/alert-controller.service';
import { DateTimePipe } from './pipes/date-time/date-time.pipe';
import { ThemeableBrowser } from '@ionic-native/themeable-browser/ngx';
import { LaunchNavigator } from '@ionic-native/launch-navigator/ngx';
import { SafeHtmlPipe } from './pipes/safe-html/safe-html.pipe';
import { BackButtonComponent } from './ui/back-button/back-button.component';
import { IfDatePipe } from './pipes/date/if-date.pipe';
import { DynamicTableComponent } from './ui/dynamic-table/dynamic-table.component';
import { EmptyFieldPipe } from './pipes/empty-field/empty-field.pipe';
import { TimePipe } from './pipes/time/time.pipe';
import { KeysPipe } from './pipes/keys/keys.pipe';
import { SegmentContentComponent } from './ui/segment-content/segment-content.component';
import { GraphComponent } from './ui/graph/graph.component';
import { NgxChartsModule } from '@swimlane/ngx-charts';

import { ExpandableComponent } from './ui/expandable/expandable.component';
import { ProjectsService } from './services/projects/projects.service';
import { NationalityService } from './services/nationality/nationality.service';
import { FileUploaderComponent } from './ui/file-uploader/file-uploader.component';
import { Device } from '@ionic-native/device/ngx';
import { NativeStorage } from '@ionic-native/native-storage/ngx';
import { ProgressLoadingService } from './ui/progressLoading/progress-loading.service';
import { BarChartComponent } from './ui/bar-chart/bar-chart.component';
import { DonutChartComponent } from './ui/donut-chart/donut-chart.component';
// import { UserLocalNotificationService } from './services/user-local-notification/user-local-notification.service';
// import { LocalNotifications } from '@ionic-native/local-notifications/ngx';
import { EmailComponent } from './ui/email/email.component';
import { Badge } from '@ionic-native/badge/ngx';
import { PushService } from './services/push/push.service';
import { LifeCycleService } from './services/life-cycle/life-cycle.service';
import { HmgBrowserService } from './services/hmg-browser/hmg-browser.service';
import { GuidService } from './services/guid/guid.service';
import { TabsBarComponent } from './ui/tabs-bar/tabs-bar.component';
import { PageTrailerComponent } from './ui/spacer/page-trailer/page-trailer.component';
// import { GeofencingService } from './services/geofencing/geofencing.service';
// import { BackgroundGeolocation } from '@ionic-native/background-geolocation/ngx';
import { ButtonComponent } from './ui/button/button.component';
import { ToolbarButtonComponent } from './ui/toolbar-button/toolbar-button.component';
import { ListboxModule } from 'primeng/listbox';
import { GenderSelectComponent } from './ui/gender-select/gender-select.component';
import { DateSelectComponent } from './ui/date-select/date-select.component';
import { ToggleButtonComponent } from './ui/toggle-button/toggle-button.component';
import { Footer } from 'primeng/components/common/shared';
import { FooterComponent } from './ui/footer/footer.component';
import { ScrollContentComponent } from './ui/scroll-content/scroll-content.component';
import { ScrollSegmentContentComponent } from './ui/scroll-segment-content/scroll-segment-content.component';
import { Keyboard } from '@ionic-native/keyboard/ngx';
import { KeyboardService } from './services/keyboard/keyboard.service';
import { DevicePermissionsService } from './services/device-permissions/device-permissions.service';
import { SegmentsComponent } from './ui/segments/segments.component';
import { AccordionComponent } from './ui/accordion/accordion.component';
import { AccordionTabComponent } from './ui/accordion/accordion-tab/accordion-tab.component';
import { TwoOptionSelectComponent } from './ui/two-option-select/two-option-select.component';
import { HMGPreloadingStrategyLoading } from './services/preloading-strategy/hmg-preloading-strategy-loading';
import { HMGPreloadingStrategy } from './services/preloading-strategy/hmg-preloading-strategy.1';
import { LazyLoadingService } from './services/lazy-loading/lazy-loading.service';
import { RefresherComponent } from './ui/refresher/refresher.component';
import { SendEmailComponent } from './ui/send-email/send-email.component';
import { EmptyDataComponent } from './ui/empty-data/empty-data.component';
import { Diagnostic } from '@ionic-native/diagnostic/ngx';
import { DetailButtonComponent } from './ui/detail-button/detail-button.component';
import { RouterModule } from '@angular/router';
import { HeaderButtonComponent } from './ui/header-button/header-button.component';
// import { CallNumber } from '@ionic-native/call-number/ngx';
import { AppRate } from '@ionic-native/app-rate/ngx';
import { RatingService } from './services/rating/rating.service';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { RateService } from './services/rate/rate.service';
// import { PaymentComponent } from './ui/payment/payment.component';
// import { PaymentService } from './ui/payment/service/payment.service';
import { MenuService } from './services/menu/menuservice.service';
import { ReplacementListComponent } from '../vacation-rule/replacement-list/replacement-list.component';
import { FileSelectDirective } from 'ng2-file-upload';
import { PdfViewerModule } from 'ng2-pdf-viewer';
import { WorkListAttachViewComponent } from '../notification/work-list-attach-view/work-list-attach-view.component';
import {Camera, CameraOptions, PictureSourceType} from '@ionic-native/Camera/ngx';
import {File} from '@ionic-native/file/ngx';
import {FileUploderProfileComponent} from './ui/file-uploder-profile/file-uploder-profile.component';
import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx';
import { AccordinCustomComponent } from './ui/accordin-custom/accordin-custom.component';
import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-custom/accordin-tab-custom.component'
import {DashboredService} from './services/dashbored/dashbored.service';
import {NgxGaugeModule} from 'ngx-gauge';
import { StatsButtonComponent } from './ui/stats-button/stats-button.component';
import { ServicesButtonComponent } from './ui/services-button/services-button.component';
import {ConfirmLoginComponent} from '../authentication/confirm-login/confirm-login.component'
import {WelcomeComponent} from './ui/welcome-login/welcome.component'
import {FabButtonComponent} from './ui/fab-button/fab-button.component'
import { AttendScanService } from './services/attend-services/attend-scan.service';
import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
import { NgCircleProgressModule } from 'ng-circle-progress';
import { CardFilterComponent } from './ui/card-filter/card-filter.component';
import { EmployeeInformationComponent } from './ui/employee-information/employee-information.component';
import { CircleCalendarComponent } from './ui/circle-calendar/circle-calendar.component';
import { NgCalendarModule  } from 'ionic2-calendar';
import { DateInfoModalComponent } from './ui/circle-calendar/date-info-modal/date-info-modal.component';
import { ChartModule } from 'primeng/chart';
@NgModule({
    imports: [
        CommonModule,
        FormsModule,
        RouterModule,
        IonicModule,
        HttpClientModule,
        NgxChartsModule,
        ListboxModule,
        PdfViewerModule,
        NgCircleProgressModule.forRoot(),
        NgCalendarModule,
        ChartModule,
        NgxGaugeModule
    ],
    declarations: [
        FabButtonComponent,
        WelcomeComponent,
        NumberRangeComponent,
        SSpacerComponent,
        MSpacerComponent,
        LSpacerComponent,
        ImagesSliderComponent,
        InfoDialogComponent,
        SelectComponent,
        FaceAvatarComponent,
        DividerComponent,
        NavButtonsComponent,
        TranslatePipe,
        DatePipeTransform,
        DateTimePipe,
        SafeHtmlPipe,
        // TurncatePipe,
        BackButtonComponent,
        IfDatePipe,
        DynamicTableComponent,
        EmptyFieldPipe,
        TimePipe,
        KeysPipe,
        SegmentContentComponent,
        GraphComponent,
        ExpandableComponent,
        FileUploaderComponent,
        BarChartComponent,
        DonutChartComponent,
        EmailComponent,
        TabsBarComponent,
        PageTrailerComponent,
        ButtonComponent,
        ToolbarButtonComponent,
        GenderSelectComponent,
        DateSelectComponent,
        ToggleButtonComponent,
        ScrollContentComponent,
        FooterComponent,
        ScrollSegmentContentComponent,
        SegmentsComponent,
        SegmentsComponent,
        AccordionComponent,
        AccordionTabComponent,
        TwoOptionSelectComponent,
        RefresherComponent,
        SendEmailComponent,
        EmptyDataComponent,
        DetailButtonComponent,
        HeaderButtonComponent,
        ReplacementListComponent,
        FileSelectDirective,
        WorkListAttachViewComponent,
        FileUploderProfileComponent,
        AccordinTabCustomComponent,
        AccordinCustomComponent,
        StatsButtonComponent,
        ServicesButtonComponent,
        ConfirmLoginComponent,
        CardFilterComponent,
        EmployeeInformationComponent,
        ConfirmLoginComponent,
        CircleCalendarComponent,
        DateInfoModalComponent

    ],
    exports: [
        FabButtonComponent,
        WelcomeComponent,
        NumberRangeComponent,
        SSpacerComponent,
        MSpacerComponent,
        LSpacerComponent,
        ImagesSliderComponent,
        InfoDialogComponent,
        SelectComponent,
        FaceAvatarComponent,
        DividerComponent,
        NavButtonsComponent,
        DatePipeTransform,
        // TurncatePipe,
        TranslatePipe,
        DateTimePipe,
        SafeHtmlPipe,
        IfDatePipe,
        DynamicTableComponent,
        EmptyFieldPipe,
        TimePipe,
        KeysPipe,
        SegmentContentComponent,
        GraphComponent,
        FileUploaderComponent,
        BarChartComponent,
        DonutChartComponent,
        EmailComponent,
        TabsBarComponent,
        PageTrailerComponent,
        ButtonComponent,
        ToolbarButtonComponent,
        GenderSelectComponent,
        DateSelectComponent,
        ToggleButtonComponent,
        ScrollContentComponent,
        FooterComponent,
        ScrollSegmentContentComponent,
        SegmentsComponent,
        AccordionComponent,
        AccordionTabComponent,
        TwoOptionSelectComponent,
        RefresherComponent,
        SendEmailComponent,
        EmptyDataComponent,
        DetailButtonComponent,
        HeaderButtonComponent,
        ReplacementListComponent,
        FileSelectDirective,
        WorkListAttachViewComponent,
        FileUploderProfileComponent,
        AccordinTabCustomComponent,
        AccordinCustomComponent,
        NgxGaugeModule,
        StatsButtonComponent,
        ServicesButtonComponent,
        ConfirmLoginComponent,
        NgCircleProgressModule,
        ChartModule,
        CardFilterComponent,
        EmployeeInformationComponent,
        ConfirmLoginComponent,
        CircleCalendarComponent,
        DateInfoModalComponent,
        NgCalendarModule,
        ChartModule

    ],
    providers: [
        AttendScanService,
        DashboredService,
        ConnectorService,
        TranslatorService,
        Globalization,
        SharedDataService,
        AlertControllerService,
        ThemeableBrowser,
        LaunchNavigator,
        ProjectsService,
        NationalityService,
        Device,
        NativeStorage,
        ProgressLoadingService,
        PushService,
        // UserLocalNotificationService,
        // LocalNotifications,
        Badge,
        LifeCycleService,
        HmgBrowserService,
        GuidService,
        // BackgroundGeolocation,
        // GeofencingService,
        Keyboard,
        KeyboardService,
        Diagnostic,
        DevicePermissionsService,
        LazyLoadingService,
        HMGPreloadingStrategy,
        HMGPreloadingStrategyLoading,
        Diagnostic,
        AppRate,
        RatingService,
        InAppBrowser,
        RateService,
        Camera,
        File,
        // PaymentService,
        MenuService,
        OpenNativeSettings,
        BarcodeScanner
    ],
    entryComponents: [DateInfoModalComponent],
})
export class HmgCommonModule { }




