import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NgSelectModule } from '@ng-select/ng-select';
import { FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';

import { SimplebarAngularModule } from 'simplebar-angular';

import { NgbNavModule, NgbDropdownModule, NgbModalModule, NgbTooltipModule, NgbCollapseModule, NgbPaginationModule, NgbAccordionModule, NgbTypeaheadModule, NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { NgApexchartsModule } from 'ng-apexcharts';

import { FullCalendarModule } from '@fullcalendar/angular';

import { UIModule } from '../shared/ui/ui.module';
import { PagesRoutingModule } from './pages-routing.module';

import { DashboardsModule } from './dashboards/dashboards.module';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';

import { LoaderService } from '../core/services/loader.service';

import { DropzoneModule } from 'ngx-dropzone-wrapper';
import { DROPZONE_CONFIG } from 'ngx-dropzone-wrapper';
import { DropzoneConfigInterface } from 'ngx-dropzone-wrapper';
import { CompanyComponent } from './company/company.component';
import { ProfileComponent } from './profile/profile.component';
import { DevicelistComponent } from './device/devicelist.component';
import { RolelistComponent } from './rolelist/rolelist.component';
import { UserlistComponent } from './userlist/userlist.component';
import { AddUserComponent } from './userlist/add-user/add-user.component';
import { TenantlistComponent } from './tenant/tenantlist.component';
import { AddTenantComponent } from './tenant/add-tenant/add-tenant.component';
import { AddRoleComponent } from './rolelist/add-role/add-role.component';
import { UserPropertiesComponent } from './userlist/user-properties/user-properties.component';
import { BrowserModule } from '@angular/platform-browser';
import { AddDeviceComponent } from './device/add-device/add-device.component';
import { DevicePropertiesComponent } from './device/device-properties/device-properties.component';
import { TranslateModule } from '@ngx-translate/core';
import { RolePropertiesComponent } from './rolelist/role-properties/role-properties.component';
import { TenantPropertiesComponent } from './tenant/tenant-properties/tenant-properties.component';
// import { LottieModule } from 'ngx-lottie';
// import player from 'lottie-web';
import { DevicesListComponent } from './devicesnew/devices-list/devices-list.component';
import { TableModule } from 'primeng/table';
import { CustomerlistComponent } from './customer/customerlist.component';
import { AddCustomerComponent } from './customer/add-customer/add-customer.component';
import { CustomerPropertiesComponent } from './customer/customer-properties/customer-properties.component';
import { RbacManagementComponent } from './rbac-management/rbac-management.component';
import { DialogModule } from 'primeng/dialog';
import { MultiSelectModule } from 'primeng/multiselect';
import { CheckboxModule } from 'primeng/checkbox';
import { FilterPipe } from '../shared/pipes/filter.pipe';
import { BookStockComponent } from './book-stock/book-stock.component';
import { StudentManagementComponent } from './student-management/student-management.component';
import { RulesComponent } from './rules/rules.component';





const DEFAULT_DROPZONE_CONFIG: DropzoneConfigInterface = {
  // Change this to your upload POST address:
   url: 'https://httpbin.org/post',
};

@NgModule({
  declarations: [
    BookStockComponent,
    StudentManagementComponent,RulesComponent,
    FilterPipe,CompanyComponent,CustomerPropertiesComponent,AddCustomerComponent,DevicePropertiesComponent,AddDeviceComponent,CustomerlistComponent,AddUserComponent,ProfileComponent,DevicelistComponent,DevicesListComponent,RolelistComponent,TenantlistComponent,UserlistComponent,AddTenantComponent,AddRoleComponent,UserPropertiesComponent,RolePropertiesComponent,RbacManagementComponent   ,TenantPropertiesComponent],
  imports: [
    // DashboardsModule,
    MultiSelectModule,
    TranslateModule,
    CommonModule,
    NgSelectModule,
    FormsModule,
    NgbDropdownModule,
    NgbModalModule,
    UIModule,
    PagesRoutingModule,
    NgApexchartsModule,
    ReactiveFormsModule,
    DashboardsModule,
    HttpClientModule,
    FullCalendarModule,
    NgbNavModule,
    NgbTooltipModule,
    NgbCollapseModule,
    SimplebarAngularModule,
    DropzoneModule,
    NgbPaginationModule,
    NgApexchartsModule,
    NgbTooltipModule,
    NgbDropdownModule,
    NgbNavModule,
    NgbAccordionModule,
    NgbPaginationModule,
    // NgPipesModule,
    SimplebarAngularModule,
    NgbTypeaheadModule,
    NgbModule,
    // BrowserModule,
    // LottieModule.forRoot({ player: () => player })
    TableModule,
    DialogModule,      // ⭐ ADD
  CheckboxModule,
        
  ],
  providers: [
    {
      provide: DROPZONE_CONFIG,
      useValue: DEFAULT_DROPZONE_CONFIG
    }
  ]
})
export class PagesModule { }
