import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FileActionsComponent } from './components/file-actions/file-actions.component';
import { SharedModule } from '@shared/shared.module';
import { EditDossierDialogComponent } from './dialogs/edit-dossier-dialog/edit-dossier-dialog.component';
import { AssignReviewerApproverDialogComponent } from './dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component';
import { EditDossierGeneralInfoComponent } from './dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component';
import { EditDossierDownloadPackageComponent } from './dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component';
import { EditDossierDictionaryComponent } from './dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component';
import { EditDossierAttributesComponent } from './dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component';
import { EditDossierTeamComponent } from './dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component';
import { DateColumnComponent } from './components/date-column/date-column.component';
import { FileAssignService } from './services/file-assign.service';
import {
    CircleButtonComponent,
    DynamicInputComponent,
    EmptyStateComponent,
    HasScrollbarDirective,
    IconButtonComponent,
    InputWithActionComponent,
    IqserAllowDirective,
    IqserDenyDirective,
    IqserHelpModeModule,
    RoundCheckboxComponent,
    StopPropagationDirective,
} from '@iqser/common-ui';
import { TranslateModule } from '@ngx-translate/core';
import { DossiersListingActionsComponent } from './components/dossiers-listing-actions/dossiers-listing-actions.component';
import { IqserUsersModule } from '@iqser/common-ui/lib/users';
import { SideNavComponent, SmallChipComponent, StatusBarComponent } from '@iqser/common-ui/lib/shared';
import { SelectComponent } from '@shared/components/select/select.component';

const components = [
    FileActionsComponent,
    EditDossierGeneralInfoComponent,
    EditDossierDownloadPackageComponent,
    EditDossierDictionaryComponent,
    EditDossierAttributesComponent,
    EditDossierTeamComponent,
    FileActionsComponent,
    DateColumnComponent,
    DossiersListingActionsComponent,
];
const dialogs = [EditDossierDialogComponent, AssignReviewerApproverDialogComponent];

@NgModule({
    declarations: [...components, ...dialogs],
    exports: [...components, ...dialogs],
    providers: [FileAssignService],
    imports: [
        CommonModule,
        SharedModule,
        IqserHelpModeModule,
        IqserUsersModule,
        TranslateModule,
        IconButtonComponent,
        CircleButtonComponent,
        EmptyStateComponent,
        SmallChipComponent,
        StatusBarComponent,
        SideNavComponent,
        StopPropagationDirective,
        HasScrollbarDirective,
        RoundCheckboxComponent,
        InputWithActionComponent,
        DynamicInputComponent,
        IqserAllowDirective,
        IqserDenyDirective,
        SelectComponent,
    ],
})
export class SharedDossiersModule {}
