diff --git a/apps/red-ui/src/app/app-routing.module.ts b/apps/red-ui/src/app/app-routing.module.ts index 82e164ea3..65a0f0614 100644 --- a/apps/red-ui/src/app/app-routing.module.ts +++ b/apps/red-ui/src/app/app-routing.module.ts @@ -8,7 +8,7 @@ import { DossierFilesGuard } from '@guards/dossier-files-guard'; import { templateExistsWhenEnteringDossierList } from '@guards/dossier-template-exists.guard'; import { DossierTemplatesGuard } from '@guards/dossier-templates.guard'; import { loadActiveDossiersGuard, loadAllDossiersGuard, loadArchivedDossiersGuard } from '@guards/dossiers.guard'; -import { editAttributeGuard } from '@guards/edit-attribute.guard'; +import { isNotEditingFileAttributeGuard } from '@guards/file-attribute.guard'; import { FeaturesGuard } from '@guards/features-guard.service'; import { ifLoggedIn } from '@guards/if-logged-in.guard'; import { TrashGuard } from '@guards/trash.guard'; @@ -38,7 +38,7 @@ const dossierTemplateIdRoutes: IqserRoutes = [ { path: `:${DOSSIER_ID}`, canActivate: [CompositeRouteGuard, IqserPermissionsGuard], - canDeactivate: [editAttributeGuard], + canDeactivate: [isNotEditingFileAttributeGuard], data: { routeGuards: [DossierFilesGuard], breadcrumbs: [BreadcrumbTypes.dossierTemplate, BreadcrumbTypes.dossier], @@ -49,7 +49,7 @@ const dossierTemplateIdRoutes: IqserRoutes = [ }, skeleton: 'dossier', }, - loadChildren: () => import('./modules/dossier-overview/dossier-overview.module').then(m => m.DossierOverviewModule), + loadChildren: () => import('./modules/dossier-overview/dossier-overview.routes'), }, { path: `:${DOSSIER_ID}/file/:${FILE_ID}`, @@ -63,7 +63,7 @@ const dossierTemplateIdRoutes: IqserRoutes = [ redirectTo: '/auth-error', }, }, - loadChildren: () => import('./modules/file-preview/file-preview.module').then(m => m.FilePreviewModule), + loadChildren: () => import('./modules/file-preview/file-preview.routes'), }, { path: '', diff --git a/apps/red-ui/src/app/app.module.ts b/apps/red-ui/src/app/app.module.ts index 90d3d1daa..49d997e5b 100644 --- a/apps/red-ui/src/app/app.module.ts +++ b/apps/red-ui/src/app/app.module.ts @@ -44,7 +44,7 @@ import { import { CommonUiModule } from '@iqser/common-ui/lib/common-ui.module'; import { LogoComponent, SkeletonComponent, ToastComponent } from '@iqser/common-ui/lib/shared'; import { TenantsModule } from '@iqser/common-ui/lib/tenants'; -import { IqserUsersModule } from '@iqser/common-ui/lib/users'; +import { InitialsAvatarComponent, IqserUsersModule } from '@iqser/common-ui/lib/users'; import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor'; import { MissingTranslationHandler } from '@ngx-translate/core'; import { AppConfig, ILoggerConfig } from '@red/domain'; @@ -186,6 +186,7 @@ export const appModuleFactory = (config: AppConfig) => { IconButtonComponent, MatDividerModule, ChevronButtonComponent, + InitialsAvatarComponent, ], providers: [ { diff --git a/apps/red-ui/src/app/guards/edit-attribute.guard.ts b/apps/red-ui/src/app/guards/edit-attribute.guard.ts deleted file mode 100644 index 654ef1588..000000000 --- a/apps/red-ui/src/app/guards/edit-attribute.guard.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { inject } from '@angular/core'; -import { CanDeactivateFn } from '@angular/router'; -import { FileAttributesService } from '@services/entity-services/file-attributes.service'; -import { DossierOverviewScreenComponent } from '../modules/dossier-overview/screen/dossier-overview-screen.component'; - -// TODO: rename to something like "isNotEditingFileAttributeGuard" -export const editAttributeGuard: CanDeactivateFn = () => - !inject(FileAttributesService).isEditingFileAttribute(); diff --git a/apps/red-ui/src/app/guards/file-attribute.guard.ts b/apps/red-ui/src/app/guards/file-attribute.guard.ts new file mode 100644 index 000000000..a5832cbc6 --- /dev/null +++ b/apps/red-ui/src/app/guards/file-attribute.guard.ts @@ -0,0 +1,7 @@ +import { inject } from '@angular/core'; +import { CanDeactivateFn } from '@angular/router'; +import { FileAttributesService } from '@services/entity-services/file-attributes.service'; +import DossierOverviewScreenComponent from '../modules/dossier-overview/screen/dossier-overview-screen.component'; + +export const isNotEditingFileAttributeGuard: CanDeactivateFn = () => + !inject(FileAttributesService).isEditingFileAttribute(); diff --git a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts b/apps/red-ui/src/app/modules/admin/admin-routing.module.ts index 4114c2532..d393bad31 100644 --- a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin-routing.module.ts @@ -44,6 +44,7 @@ const entityRoutes: IqserRoutes = [ ]; const dossierTemplateIdRoutes: IqserRoutes = [ + { path: '', redirectTo: 'info', pathMatch: 'full' }, { path: 'entities', children: entityRoutes, @@ -152,7 +153,6 @@ const dossierTemplateIdRoutes: IqserRoutes = [ }, }, }, - { path: '', redirectTo: 'info', pathMatch: 'full' }, ], }, ]; @@ -180,6 +180,7 @@ const dossierTemplatesRoutes: IqserRoutes = [ ]; const routes: IqserRoutes = [ + { path: '', redirectTo: 'dossier-templates', pathMatch: 'full' }, { path: 'dossier-templates', children: dossierTemplatesRoutes, @@ -271,7 +272,6 @@ const routes: IqserRoutes = [ }, }, }, - { path: '', redirectTo: 'dossier-templates', pathMatch: 'full' }, ], }, ]; diff --git a/apps/red-ui/src/app/modules/admin/admin.module.ts b/apps/red-ui/src/app/modules/admin/admin.module.ts index f41dbc11b..8b5b705ad 100644 --- a/apps/red-ui/src/app/modules/admin/admin.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin.module.ts @@ -47,17 +47,19 @@ import { IqserDenyDirective, IqserHelpModeModule, IqserListingModule, - IqserUploadFileModule, RoundCheckboxComponent, + UploadFileComponent, } from '@iqser/common-ui'; import { TranslateModule } from '@ngx-translate/core'; import { AuditInfoDialogComponent } from './dialogs/audit-info-dialog/audit-info-dialog.component'; import { DossierTemplateActionsComponent } from './shared/components/dossier-template-actions/dossier-template-actions.component'; -import { IqserUsersModule } from '@iqser/common-ui/lib/users'; +import { InitialsAvatarComponent, IqserUsersModule } from '@iqser/common-ui/lib/users'; import { SelectComponent } from '@shared/components/select/select.component'; import { PaginationComponent } from '@common-ui/pagination/pagination.component'; import { AddCloneDossierTemplateDialogComponent } from './dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component'; import { ComponentMappingsScreenComponent } from './screens/component-mappings/component-mappings-screen.component'; +import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component'; +import { NamePipe } from '@common-ui/users/name.pipe'; const dialogs = [ AddCloneDossierTemplateDialogComponent, @@ -109,7 +111,6 @@ const components = [ TranslateModule, HumanizePipe, IqserListingModule, - IqserUploadFileModule, IqserHelpModeModule, AdminSideNavComponent, DossierTemplateActionsComponent, @@ -127,6 +128,10 @@ const components = [ IqserDenyDirective, SelectComponent, PaginationComponent, + AnnotationIconComponent, + InitialsAvatarComponent, + UploadFileComponent, + NamePipe, ], }) export class AdminModule {} diff --git a/apps/red-ui/src/app/modules/admin/base-dossier-templates-screen/base-dossier-template-screen.component.html b/apps/red-ui/src/app/modules/admin/base-dossier-templates-screen/base-dossier-template-screen.component.html index 84f9dc06e..df547aa94 100644 --- a/apps/red-ui/src/app/modules/admin/base-dossier-templates-screen/base-dossier-template-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/base-dossier-templates-screen/base-dossier-template-screen.component.html @@ -1,5 +1,3 @@ - -
diff --git a/apps/red-ui/src/app/modules/file-preview/components/highlights-separator/highlights-separator.component.ts b/apps/red-ui/src/app/modules/file-preview/components/highlights-separator/highlights-separator.component.ts index 541030a9b..e392836d7 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/highlights-separator/highlights-separator.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/highlights-separator/highlights-separator.component.ts @@ -6,11 +6,17 @@ import { FileDataService } from '../../services/file-data.service'; import { FilePreviewDialogService } from '../../services/file-preview-dialog.service'; import { FilePreviewStateService } from '../../services/file-preview-state.service'; import { MultiSelectService } from '../../services/multi-select.service'; +import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component'; +import { TranslateModule } from '@ngx-translate/core'; +import { CircleButtonComponent, IqserAllowDirective } from '@iqser/common-ui'; +import { NgIf } from '@angular/common'; @Component({ selector: 'redaction-highlights-separator', templateUrl: './highlights-separator.component.html', styleUrls: ['./highlights-separator.component.scss'], + standalone: true, + imports: [AnnotationIconComponent, TranslateModule, CircleButtonComponent, NgIf, IqserAllowDirective], }) export class HighlightsSeparatorComponent { @Input({ required: true }) highlightGroup: EarmarkGroup; diff --git a/apps/red-ui/src/app/modules/file-preview/components/page-exclusion/page-exclusion.component.ts b/apps/red-ui/src/app/modules/file-preview/components/page-exclusion/page-exclusion.component.ts index 261994079..6c8a1357a 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/page-exclusion/page-exclusion.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/page-exclusion/page-exclusion.component.ts @@ -1,16 +1,20 @@ import { Component, computed, ViewChild } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; -import { InputWithActionComponent, LoadingService, Toaster } from '@iqser/common-ui'; +import { CircleButtonComponent, HasScrollbarDirective, InputWithActionComponent, LoadingService, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { IPageRange } from '@red/domain'; import { ReanalysisService } from '@services/reanalysis.service'; import { FilePreviewStateService } from '../../services/file-preview-state.service'; import { extractPageRanges } from '@utils/page-ranges-mapper'; +import { TranslateModule } from '@ngx-translate/core'; +import { NgForOf, NgIf } from '@angular/common'; @Component({ selector: 'redaction-page-exclusion', templateUrl: './page-exclusion.component.html', styleUrls: ['./page-exclusion.component.scss'], + standalone: true, + imports: [InputWithActionComponent, TranslateModule, NgIf, HasScrollbarDirective, NgForOf, CircleButtonComponent], }) export class PageExclusionComponent { readonly excludedRanges = computed(() => { diff --git a/apps/red-ui/src/app/modules/file-preview/components/page-indicator/page-indicator.component.ts b/apps/red-ui/src/app/modules/file-preview/components/page-indicator/page-indicator.component.ts index 752751ea1..47002e55c 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/page-indicator/page-indicator.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/page-indicator/page-indicator.component.ts @@ -10,11 +10,15 @@ import { ViewedPagesMapService } from '@services/files/viewed-pages-map.service' import { Observable, pairwise } from 'rxjs'; import { PdfViewer } from '../../../pdf-viewer/services/pdf-viewer.service'; import { NGXLogger } from 'ngx-logger'; +import { AsyncPipe, NgIf } from '@angular/common'; +import { MatIcon } from '@angular/material/icon'; @Component({ selector: 'redaction-page-indicator', templateUrl: './page-indicator.component.html', styleUrls: ['./page-indicator.component.scss'], + standalone: true, + imports: [NgIf, AsyncPipe, MatIcon], }) export class PageIndicatorComponent implements OnChanges { readonly #config = getConfig(); diff --git a/apps/red-ui/src/app/modules/file-preview/components/pages/pages.component.ts b/apps/red-ui/src/app/modules/file-preview/components/pages/pages.component.ts index 99e5dfd88..2bad1389a 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/pages/pages.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/pages/pages.component.ts @@ -8,11 +8,15 @@ import { FilePreviewStateService } from '../../services/file-preview-state.servi import { ViewedPagesMapService } from '@services/files/viewed-pages-map.service'; import { ViewedPage } from '@red/domain'; import scrollIntoView from 'scroll-into-view-if-needed'; +import { PageIndicatorComponent } from '../page-indicator/page-indicator.component'; +import { AsyncPipe, NgForOf, NgIf } from '@angular/common'; @Component({ selector: 'redaction-pages', templateUrl: './pages.component.html', styleUrls: ['./pages.component.scss'], + standalone: true, + imports: [PageIndicatorComponent, AsyncPipe, NgForOf, NgIf], }) export class PagesComponent implements AfterViewInit { readonly #state = inject(FilePreviewStateService); diff --git a/apps/red-ui/src/app/modules/file-preview/components/readonly-banner/readonly-banner.component.ts b/apps/red-ui/src/app/modules/file-preview/components/readonly-banner/readonly-banner.component.ts index db1926487..c3387da3a 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/readonly-banner/readonly-banner.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/readonly-banner/readonly-banner.component.ts @@ -1,10 +1,17 @@ import { Component, inject, Input } from '@angular/core'; import { FilePreviewStateService } from '../../services/file-preview-state.service'; +import { OcrProgressBarComponent } from '@shared/components/ocr-progress-bar/ocr-progress-bar.component'; +import { NgIf } from '@angular/common'; +import { MatProgressBar } from '@angular/material/progress-bar'; +import { MatIcon } from '@angular/material/icon'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-readonly-banner', templateUrl: './readonly-banner.component.html', styleUrls: ['./readonly-banner.component.scss'], + standalone: true, + imports: [OcrProgressBarComponent, NgIf, MatProgressBar, MatIcon, TranslateModule], }) export class ReadonlyBannerComponent { protected readonly _state = inject(FilePreviewStateService); diff --git a/apps/red-ui/src/app/modules/file-preview/components/right-container/file-preview-right-container.component.ts b/apps/red-ui/src/app/modules/file-preview/components/right-container/file-preview-right-container.component.ts index 3be19f097..bcfc72924 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/right-container/file-preview-right-container.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/right-container/file-preview-right-container.component.ts @@ -1,19 +1,24 @@ import { Component } from '@angular/core'; import { DocumentInfoService } from '../../services/document-info.service'; -import { ExcludedPagesService } from '../../services/excluded-pages.service'; import { PdfViewer } from '../../../pdf-viewer/services/pdf-viewer.service'; import { FilePreviewStateService } from '../../services/file-preview-state.service'; +import { EmptyStateComponent } from '@iqser/common-ui'; +import { NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; +import { DocumentInfoComponent } from '../document-info/document-info.component'; +import { FileWorkloadComponent } from '../file-workload/file-workload.component'; @Component({ selector: 'redaction-file-preview-right-container', templateUrl: './file-preview-right-container.component.html', styleUrls: ['./file-preview-right-container.component.scss'], + standalone: true, + imports: [EmptyStateComponent, NgIf, TranslateModule, DocumentInfoComponent, FileWorkloadComponent], }) export class FilePreviewRightContainerComponent { constructor( readonly pdf: PdfViewer, readonly state: FilePreviewStateService, readonly documentInfoService: DocumentInfoService, - readonly excludedPagesService: ExcludedPagesService, ) {} } diff --git a/apps/red-ui/src/app/modules/file-preview/components/user-management/user-management.component.ts b/apps/red-ui/src/app/modules/file-preview/components/user-management/user-management.component.ts index 3a9b8ac46..00253a922 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/user-management/user-management.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/user-management/user-management.component.ts @@ -1,7 +1,7 @@ import { Component, computed, HostListener, NgZone, OnDestroy, OnInit } from '@angular/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { LoadingService, Toaster } from '@iqser/common-ui'; -import { getCurrentUser } from '@iqser/common-ui/lib/users'; +import { CircleButtonComponent, LoadingService, StopPropagationDirective, Toaster } from '@iqser/common-ui'; +import { getCurrentUser, InitialsAvatarComponent } from '@iqser/common-ui/lib/users'; import { File, User } from '@red/domain'; import { FilesService } from '@services/files/files.service'; import { PermissionsService } from '@services/permissions.service'; @@ -12,11 +12,25 @@ import { FileAssignService } from '../../../shared-dossiers/services/file-assign import { FilePreviewStateService } from '../../services/file-preview-state.service'; import { PdfViewer } from '../../../pdf-viewer/services/pdf-viewer.service'; import { Bind } from '@common-ui/utils'; +import { AssignUserDropdownComponent } from '@shared/components/assign-user-dropdown/assign-user-dropdown.component'; +import { NgIf } from '@angular/common'; +import { StatusBarComponent } from '@common-ui/shared'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-user-management', templateUrl: './user-management.component.html', styleUrls: ['./user-management.component.scss'], + standalone: true, + imports: [ + AssignUserDropdownComponent, + NgIf, + StopPropagationDirective, + InitialsAvatarComponent, + StatusBarComponent, + TranslateModule, + CircleButtonComponent, + ], }) export class UserManagementComponent implements OnInit, OnDestroy { protected readonly _canAssignToSelf = computed(() => this.permissionsService.canAssignToSelf(this.state.file(), this.state.dossier())); diff --git a/apps/red-ui/src/app/modules/file-preview/components/view-switch/view-switch.component.ts b/apps/red-ui/src/app/modules/file-preview/components/view-switch/view-switch.component.ts index 78efc6d3d..21cc039be 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/view-switch/view-switch.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/view-switch/view-switch.component.ts @@ -4,12 +4,16 @@ import { Roles } from '@users/roles'; import { FileDataService } from '../../services/file-data.service'; import { FilePreviewStateService } from '../../services/file-preview-state.service'; import { ViewModeService } from '../../services/view-mode.service'; -import { getConfig } from '@iqser/common-ui'; +import { getConfig, IqserDenyDirective } from '@iqser/common-ui'; +import { MatTooltip } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-view-switch', templateUrl: './view-switch.component.html', styleUrls: ['./view-switch.component.scss'], + standalone: true, + imports: [MatTooltip, TranslateModule, IqserDenyDirective], }) export class ViewSwitchComponent { protected readonly isDocumine = getConfig().IS_DOCUMINE; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/add-hint-dialog/add-hint-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/add-hint-dialog/add-hint-dialog.component.ts index d0015fa32..bf9a731e6 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/add-hint-dialog/add-hint-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/add-hint-dialog/add-hint-dialog.component.ts @@ -1,7 +1,17 @@ import { Component, OnInit } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; -import { FormBuilder, UntypedFormGroup } from '@angular/forms'; -import { DetailsRadioOption, IconButtonTypes, IqserDialogComponent, IqserPermissionsService } from '@iqser/common-ui'; +import { FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; +import { + CircleButtonComponent, + DetailsRadioComponent, + DetailsRadioOption, + HasScrollbarDirective, + IconButtonComponent, + IconButtonTypes, + IqserDenyDirective, + IqserDialogComponent, + IqserPermissionsService, +} from '@iqser/common-ui'; import { Dictionary, Dossier, IAddRedactionRequest } from '@red/domain'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; @@ -12,10 +22,33 @@ import { AddHintData, AddHintResult } from '../../utils/dialog-types'; import { UserPreferenceService } from '@users/user-preference.service'; import { SystemDefaultOption, SystemDefaults } from '../../../account/utils/dialog-defaults'; import { stringToBoolean } from '@utils/functions'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { MatTooltip } from '@angular/material/tooltip'; +import { NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatDialogClose } from '@angular/material/dialog'; @Component({ templateUrl: './add-hint-dialog.component.html', styleUrls: ['./add-hint-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + DetailsRadioComponent, + IqserDenyDirective, + MatFormField, + MatSelectTrigger, + MatSelect, + MatOption, + MatTooltip, + NgIf, + HasScrollbarDirective, + IconButtonComponent, + TranslateModule, + CircleButtonComponent, + MatDialogClose, + ], }) export class AddHintDialogComponent extends IqserDialogComponent implements OnInit { #applyToAllDossiers: boolean; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.ts index b67fec10a..dccb2181d 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.ts @@ -1,11 +1,16 @@ import { Component, Inject, OnInit } from '@angular/core'; -import { UntypedFormGroup, Validators } from '@angular/forms'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { BaseDialogComponent } from '@iqser/common-ui'; +import { ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms'; +import { MAT_DIALOG_DATA, MatDialogClose, MatDialogRef } from '@angular/material/dialog'; +import { BaseDialogComponent, CircleButtonComponent, HasScrollbarDirective, IconButtonComponent } from '@iqser/common-ui'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { Dossier } from '@red/domain'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { firstValueFrom } from 'rxjs'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { NgForOf, NgIf } from '@angular/common'; +import { MatTooltip } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; export interface LegalBasisOption { label?: string; @@ -15,6 +20,22 @@ export interface LegalBasisOption { @Component({ templateUrl: './change-legal-basis-dialog.component.html', + standalone: true, + imports: [ + ReactiveFormsModule, + MatFormField, + MatSelectTrigger, + MatSelect, + MatOption, + NgForOf, + MatTooltip, + HasScrollbarDirective, + IconButtonComponent, + MatDialogClose, + TranslateModule, + CircleButtonComponent, + NgIf, + ], }) export class ChangeLegalBasisDialogComponent extends BaseDialogComponent implements OnInit { legalOptions: LegalBasisOption[] = []; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/add-annotation-dialog/add-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/add-annotation-dialog/add-annotation-dialog.component.ts index f2e596777..15dad1a7a 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/add-annotation-dialog/add-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/add-annotation-dialog/add-annotation-dialog.component.ts @@ -1,13 +1,34 @@ import { Component, inject, OnInit } from '@angular/core'; -import { FormBuilder } from '@angular/forms'; -import { IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; +import { FormBuilder, ReactiveFormsModule } from '@angular/forms'; +import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; import { Dictionary, IAddRedactionRequest } from '@red/domain'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; import { AddAnnotationData, AddAnnotationResult } from '../../../utils/dialog-types'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { NgForOf } from '@angular/common'; +import { MatTooltip } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatDialogClose } from '@angular/material/dialog'; @Component({ templateUrl: './add-annotation-dialog.component.html', + standalone: true, + imports: [ + ReactiveFormsModule, + MatFormField, + MatSelectTrigger, + MatSelect, + MatOption, + NgForOf, + MatTooltip, + HasScrollbarDirective, + IconButtonComponent, + TranslateModule, + CircleButtonComponent, + MatDialogClose, + ], }) export class AddAnnotationDialogComponent extends IqserDialogComponent diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component.ts index d70a3e4cf..624e3728e 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component.ts @@ -1,16 +1,39 @@ import { Component, OnInit } from '@angular/core'; -import { FormBuilder, UntypedFormGroup } from '@angular/forms'; -import { IconButtonTypes, IqserDialogComponent, IqserPermissionsService } from '@iqser/common-ui'; +import { FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; +import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; import { Dictionary, Dossier, SuperTypes } from '@red/domain'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; -import { JustificationsService } from '@services/entity-services/justifications.service'; import { Roles } from '@users/roles'; import { EditRedactionData, EditRedactResult } from '../../../utils/dialog-types'; +import { SelectedAnnotationsListComponent } from '../../../components/selected-annotations-list/selected-annotations-list.component'; +import { NgForOf, NgIf } from '@angular/common'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { MatTooltip } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatDialogClose } from '@angular/material/dialog'; @Component({ templateUrl: 'edit-annotation-dialog.component.html', styleUrls: ['edit-annotation-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + SelectedAnnotationsListComponent, + NgIf, + MatFormField, + MatSelectTrigger, + MatSelect, + MatOption, + NgForOf, + MatTooltip, + HasScrollbarDirective, + TranslateModule, + IconButtonComponent, + CircleButtonComponent, + MatDialogClose, + ], }) export class EditAnnotationDialogComponent extends IqserDialogComponent @@ -24,10 +47,8 @@ export class EditAnnotationDialogComponent form: UntypedFormGroup; constructor( - private readonly _justificationsService: JustificationsService, private readonly _activeDossiersService: ActiveDossiersService, private readonly _dictionaryService: DictionaryService, - private readonly _iqserPermissionsService: IqserPermissionsService, private readonly _formBuilder: FormBuilder, ) { super(); diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/remove-annotation-dialog/remove-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/remove-annotation-dialog/remove-annotation-dialog.component.ts index d9061c729..62b19bb22 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/remove-annotation-dialog/remove-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/remove-annotation-dialog/remove-annotation-dialog.component.ts @@ -1,12 +1,40 @@ import { Component } from '@angular/core'; -import { DetailsRadioOption, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; -import { FormBuilder, UntypedFormGroup } from '@angular/forms'; +import { + CircleButtonComponent, + DetailsRadioComponent, + DetailsRadioOption, + HasScrollbarDirective, + IconButtonComponent, + IconButtonTypes, + IqserDialogComponent, +} from '@iqser/common-ui'; +import { FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; import { RemoveAnnotationData, RemoveAnnotationResult } from '../../../utils/dialog-types'; import { getRemoveRedactionOptions, RemoveAnnotationOption, RemoveAnnotationOptions } from '../../../utils/dialog-options'; +import { TranslateModule } from '@ngx-translate/core'; +import { CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling'; +import { NgIf, NgStyle } from '@angular/common'; +import { ReplaceNbspPipe } from '@common-ui/pipes/replace-nbsp.pipe'; +import { MatDialogClose } from '@angular/material/dialog'; @Component({ templateUrl: 'remove-annotation-dialog.component.html', styleUrls: ['remove-annotation-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + TranslateModule, + CdkFixedSizeVirtualScroll, + NgStyle, + CdkVirtualForOf, + ReplaceNbspPipe, + DetailsRadioComponent, + HasScrollbarDirective, + IconButtonComponent, + CircleButtonComponent, + MatDialogClose, + NgIf, + ], }) export class RemoveAnnotationDialogComponent extends IqserDialogComponent< RemoveAnnotationDialogComponent, diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/document-info-dialog/document-info-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/document-info-dialog/document-info-dialog.component.ts index a2c6e5484..855f2c4ea 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/document-info-dialog/document-info-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/document-info-dialog/document-info-dialog.component.ts @@ -1,16 +1,20 @@ import { Component, Inject, OnInit } from '@angular/core'; -import { UntypedFormGroup } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; import { Dossier, File, IFileAttributeConfig } from '@red/domain'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { FilesService } from '@services/files/files.service'; -import { BaseDialogComponent } from '@iqser/common-ui'; +import { BaseDialogComponent, CircleButtonComponent, DynamicInputComponent, IconButtonComponent } from '@iqser/common-ui'; import { firstValueFrom } from 'rxjs'; import dayjs from 'dayjs'; +import { NgForOf, NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ templateUrl: './document-info-dialog.component.html', + standalone: true, + imports: [ReactiveFormsModule, NgIf, NgForOf, DynamicInputComponent, IconButtonComponent, TranslateModule, CircleButtonComponent], }) export class DocumentInfoDialogComponent extends BaseDialogComponent implements OnInit { form: UntypedFormGroup; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts index ef7b870ef..614e4d7b9 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/edit-redaction-dialog/edit-redaction-dialog.component.ts @@ -1,6 +1,14 @@ import { Component, inject, OnInit } from '@angular/core'; -import { FormControl, FormGroup } from '@angular/forms'; -import { DetailsRadioOption, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; +import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; +import { + CircleButtonComponent, + DetailsRadioOption, + IconButtonComponent, + IconButtonTypes, + IqserDenyDirective, + IqserDialogComponent, + IqserHelpModeModule, +} from '@iqser/common-ui'; import { Dictionary, SuperTypes } from '@red/domain'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; @@ -11,7 +19,15 @@ import { EditRedactionData, EditRedactResult } from '../../utils/dialog-types'; import { LegalBasisOption } from '../manual-redaction-dialog/manual-annotation-dialog.component'; import { Roles } from '@users/roles'; import { DialogHelpModeKeys } from '../../utils/constants'; -import { ValueColumn } from '../../components/selected-annotations-table/selected-annotations-table.component'; +import { + SelectedAnnotationsTableComponent, + ValueColumn, +} from '../../components/selected-annotations-table/selected-annotations-table.component'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatFormField } from '@angular/material/form-field'; +import { NgForOf, NgIf } from '@angular/common'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { MatTooltip } from '@angular/material/tooltip'; interface TypeSelectOptions { type: string; @@ -22,6 +38,23 @@ interface TypeSelectOptions { @Component({ templateUrl: './edit-redaction-dialog.component.html', styleUrls: ['./edit-redaction-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + TranslateModule, + SelectedAnnotationsTableComponent, + MatFormField, + NgIf, + MatSelectTrigger, + MatSelect, + MatOption, + NgForOf, + MatTooltip, + IconButtonComponent, + IqserHelpModeModule, + IqserDenyDirective, + CircleButtonComponent, + ], }) export class EditRedactionDialogComponent extends IqserDialogComponent diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts index 308d24727..fc793c341 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts @@ -1,14 +1,30 @@ import { Component, Inject, OnInit } from '@angular/core'; -import { UntypedFormGroup, Validators } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { BaseDialogComponent, getConfig } from '@iqser/common-ui'; +import { + BaseDialogComponent, + CircleButtonComponent, + getConfig, + HasScrollbarDirective, + IconButtonComponent, + IqserDenyDirective, + IqserHelpModeModule, +} from '@iqser/common-ui'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { Dossier, ILegalBasisChangeRequest } from '@red/domain'; import { firstValueFrom } from 'rxjs'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { Roles } from '@users/roles'; -import { ValueColumn } from '../../components/selected-annotations-table/selected-annotations-table.component'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { + SelectedAnnotationsTableComponent, + ValueColumn, +} from '../../components/selected-annotations-table/selected-annotations-table.component'; +import { NgForOf, NgIf } from '@angular/common'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { MatTooltip } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; export interface LegalBasisOption { label?: string; @@ -22,6 +38,24 @@ const DOCUMINE_LEGAL_BASIS = 'n-a.'; selector: 'redaction-force-annotation-dialog', templateUrl: './force-annotation-dialog.component.html', styleUrls: ['./force-annotation-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + NgIf, + SelectedAnnotationsTableComponent, + MatFormField, + MatSelectTrigger, + MatSelect, + MatOption, + MatTooltip, + HasScrollbarDirective, + TranslateModule, + IconButtonComponent, + IqserHelpModeModule, + IqserDenyDirective, + CircleButtonComponent, + NgForOf, + ], }) export class ForceAnnotationDialogComponent extends BaseDialogComponent implements OnInit { readonly isDocumine = getConfig().IS_DOCUMINE; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/highlight-action-dialog/highlight-action-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/highlight-action-dialog/highlight-action-dialog.component.ts index ba03c74e4..039489df1 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/highlight-action-dialog/highlight-action-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/highlight-action-dialog/highlight-action-dialog.component.ts @@ -1,13 +1,25 @@ import { Component, Inject } from '@angular/core'; -import { UntypedFormGroup, Validators } from '@angular/forms'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms'; +import { MAT_DIALOG_DATA, MatDialogClose, MatDialogRef } from '@angular/material/dialog'; import { EarmarkOperation, EarmarkOperationPages } from '@red/domain'; -import { BaseDialogComponent, DetailsRadioOption } from '@iqser/common-ui'; +import { + BaseDialogComponent, + CircleButtonComponent, + DetailsRadioComponent, + DetailsRadioOption, + IconButtonComponent, + IqserDenyDirective, + IqserHelpModeModule, +} from '@iqser/common-ui'; import { EarmarksService } from '@services/files/earmarks.service'; import { firstValueFrom } from 'rxjs'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { highlightsTranslations } from '@translations/highlights-translations'; import { Roles } from '@users/roles'; +import { NgIf } from '@angular/common'; +import { ColorPickerModule } from 'ngx-color-picker'; +import { MatCheckbox } from '@angular/material/checkbox'; +import { TranslateModule } from '@ngx-translate/core'; export interface HighlightActionData { readonly operation: EarmarkOperation; @@ -21,6 +33,20 @@ export interface HighlightActionData { @Component({ templateUrl: './highlight-action-dialog.component.html', + standalone: true, + imports: [ + ReactiveFormsModule, + NgIf, + ColorPickerModule, + DetailsRadioComponent, + MatCheckbox, + TranslateModule, + IconButtonComponent, + IqserHelpModeModule, + IqserDenyDirective, + CircleButtonComponent, + MatDialogClose, + ], }) export class HighlightActionDialogComponent extends BaseDialogComponent { readonly translations = highlightsTranslations; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/import-redactions-dialog/import-redactions-dialog.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/import-redactions-dialog/import-redactions-dialog.ts index 85d87c465..97f934b37 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/import-redactions-dialog/import-redactions-dialog.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/import-redactions-dialog/import-redactions-dialog.ts @@ -1,6 +1,6 @@ import { Component, ElementRef, Inject, ViewChild } from '@angular/core'; -import { BaseDialogComponent } from '@iqser/common-ui'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent, UploadFileComponent } from '@iqser/common-ui'; +import { MAT_DIALOG_DATA, MatDialogClose, MatDialogRef } from '@angular/material/dialog'; import { firstValueFrom } from 'rxjs'; import { RedactionImportService } from '@services/files/redaction-import.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -8,6 +8,9 @@ import { HttpStatusCode } from '@angular/common/http'; import { extractPageRanges } from '@utils/page-ranges-mapper'; import { File } from '@red/domain'; import { FileDropOverlayService } from '@upload-download/services/file-drop-overlay.service'; +import { MatCheckbox } from '@angular/material/checkbox'; +import { TranslateModule } from '@ngx-translate/core'; +import { FormsModule } from '@angular/forms'; interface ImportData { dossierId: string; @@ -17,6 +20,8 @@ interface ImportData { @Component({ templateUrl: './import-redactions-dialog.html', styleUrls: ['./import-redactions-dialog.scss'], + standalone: true, + imports: [UploadFileComponent, MatCheckbox, TranslateModule, FormsModule, IconButtonComponent, CircleButtonComponent, MatDialogClose], }) export class ImportRedactionsDialogComponent extends BaseDialogComponent { @ViewChild('attachFileInput', { static: true }) attachFileInput: ElementRef; @@ -101,7 +106,7 @@ export class ImportRedactionsDialogComponent extends BaseDialogComponent { }; } - close () { + close() { this._fileDropOverlayService.toggleImportingRedactions(); return super.close(); } diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts index eca423650..088f2e38f 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts @@ -1,8 +1,15 @@ import { Component, Inject, OnInit } from '@angular/core'; -import { Validators } from '@angular/forms'; +import { ReactiveFormsModule, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { BaseDialogComponent, IqserPermissionsService } from '@iqser/common-ui'; +import { + BaseDialogComponent, + CircleButtonComponent, + HasScrollbarDirective, + IconButtonComponent, + IqserDenyDirective, + IqserPermissionsService, +} from '@iqser/common-ui'; import { ManualRedactionEntryWrapper } from '@models/file/manual-redaction-entry.wrapper'; import { Dictionary, Dossier, File, IAddRedactionRequest, SuperTypes } from '@red/domain'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; @@ -12,6 +19,12 @@ import { Roles } from '@users/roles'; import { firstValueFrom } from 'rxjs'; import { ManualRedactionService } from '../../services/manual-redaction.service'; import { REDAnnotationManager } from '../../../pdf-viewer/services/annotation-manager.service'; +import { NgForOf, NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { MatTooltip } from '@angular/material/tooltip'; +import { MatCheckbox } from '@angular/material/checkbox'; export interface LegalBasisOption { label?: string; @@ -22,6 +35,23 @@ export interface LegalBasisOption { @Component({ templateUrl: './manual-annotation-dialog.component.html', styleUrls: ['./manual-annotation-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + NgIf, + CircleButtonComponent, + TranslateModule, + HasScrollbarDirective, + MatFormField, + MatSelectTrigger, + MatSelect, + MatOption, + NgForOf, + MatTooltip, + IqserDenyDirective, + MatCheckbox, + IconButtonComponent, + ], }) export class ManualAnnotationDialogComponent extends BaseDialogComponent implements OnInit { readonly #dossier: Dossier; diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.ts index fddd4302f..dc2063bca 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component.ts @@ -1,7 +1,15 @@ import { Component, inject, OnInit } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; -import { FormBuilder } from '@angular/forms'; -import { DetailsRadioOption, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; +import { FormBuilder, ReactiveFormsModule } from '@angular/forms'; +import { + CircleButtonComponent, + DetailsRadioComponent, + DetailsRadioOption, + HasScrollbarDirective, + IconButtonComponent, + IconButtonTypes, + IqserDialogComponent, +} from '@iqser/common-ui'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { Dictionary, IAddRedactionRequest, SuperTypes } from '@red/domain'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; @@ -12,11 +20,38 @@ import { tap } from 'rxjs/operators'; import { getRedactOrHintOptions, RedactOrHintOption, RedactOrHintOptions } from '../../utils/dialog-options'; import { RedactRecommendationData, RedactRecommendationResult } from '../../utils/dialog-types'; import { LegalBasisOption } from '../manual-redaction-dialog/manual-annotation-dialog.component'; -import { ValueColumn } from '../../components/selected-annotations-table/selected-annotations-table.component'; +import { + SelectedAnnotationsTableComponent, + ValueColumn, +} from '../../components/selected-annotations-table/selected-annotations-table.component'; +import { MatFormField } from '@angular/material/form-field'; +import { NgForOf, NgIf } from '@angular/common'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { MatTooltip } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatDialogClose } from '@angular/material/dialog'; @Component({ templateUrl: './redact-recommendation-dialog.component.html', styleUrl: './redact-recommendation-dialog.component.scss', + standalone: true, + imports: [ + ReactiveFormsModule, + SelectedAnnotationsTableComponent, + DetailsRadioComponent, + MatFormField, + NgIf, + MatOption, + NgForOf, + MatTooltip, + HasScrollbarDirective, + IconButtonComponent, + TranslateModule, + CircleButtonComponent, + MatDialogClose, + MatSelectTrigger, + MatSelect, + ], }) export class RedactRecommendationDialogComponent extends IqserDialogComponent diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.ts index 445aa7d34..006433bee 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/redact-text-dialog/redact-text-dialog.component.ts @@ -1,7 +1,15 @@ import { Component, inject, OnInit } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { DetailsRadioOption, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; +import { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'; +import { + CircleButtonComponent, + DetailsRadioComponent, + DetailsRadioOption, + HasScrollbarDirective, + IconButtonComponent, + IconButtonTypes, + IqserDialogComponent, +} from '@iqser/common-ui'; import { Dictionary, IAddRedactionRequest, SuperTypes } from '@red/domain'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; @@ -15,12 +23,38 @@ import { RedactTextData, RedactTextResult } from '../../utils/dialog-types'; import { LegalBasisOption } from '../manual-redaction-dialog/manual-annotation-dialog.component'; import { UserPreferenceService } from '@users/user-preference.service'; import { SystemDefaultOption, SystemDefaults } from '../../../account/utils/dialog-defaults'; +import { AsyncPipe, NgClass, NgForOf, NgIf, NgStyle } from '@angular/common'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { MatTooltip } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatDialogClose } from '@angular/material/dialog'; const MAXIMUM_TEXT_AREA_WIDTH = 421; @Component({ templateUrl: './redact-text-dialog.component.html', styleUrls: ['./redact-text-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + NgClass, + NgIf, + NgStyle, + HasScrollbarDirective, + CircleButtonComponent, + DetailsRadioComponent, + MatFormField, + MatSelectTrigger, + MatSelect, + MatOption, + NgForOf, + MatTooltip, + TranslateModule, + AsyncPipe, + IconButtonComponent, + MatDialogClose, + ], }) export class RedactTextDialogComponent extends IqserDialogComponent diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.ts index 04d209710..681ee4048 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/remove-redaction-dialog/remove-redaction-dialog.component.ts @@ -1,20 +1,50 @@ import { Component, computed } from '@angular/core'; -import { FormBuilder, UntypedFormGroup } from '@angular/forms'; -import { DetailsRadioOption, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; +import { FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; +import { + CircleButtonComponent, + DetailsRadioComponent, + DetailsRadioOption, + HasScrollbarDirective, + IconButtonComponent, + IconButtonTypes, + IqserDenyDirective, + IqserDialogComponent, + IqserHelpModeModule, +} from '@iqser/common-ui'; import { getRemoveRedactionOptions, RemoveRedactionOption, RemoveRedactionOptions } from '../../utils/dialog-options'; import { RemoveRedactionData, RemoveRedactionResult } from '../../utils/dialog-types'; import { Roles } from '@users/roles'; import { DialogHelpModeKeys } from '../../utils/constants'; import { toSignal } from '@angular/core/rxjs-interop'; import { map } from 'rxjs/operators'; -import { ValueColumn } from '../../components/selected-annotations-table/selected-annotations-table.component'; +import { + SelectedAnnotationsTableComponent, + ValueColumn, +} from '../../components/selected-annotations-table/selected-annotations-table.component'; import { UserPreferenceService } from '@users/user-preference.service'; import { SystemDefaultOption, SystemDefaults } from '../../../account/utils/dialog-defaults'; import { stringToBoolean } from '@utils/functions'; +import { TranslateModule } from '@ngx-translate/core'; +import { NgStyle } from '@angular/common'; +import { MatDialogClose } from '@angular/material/dialog'; @Component({ templateUrl: './remove-redaction-dialog.component.html', styleUrls: ['./remove-redaction-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + TranslateModule, + NgStyle, + SelectedAnnotationsTableComponent, + DetailsRadioComponent, + IconButtonComponent, + IqserHelpModeModule, + CircleButtonComponent, + HasScrollbarDirective, + MatDialogClose, + IqserDenyDirective, + ], }) export class RemoveRedactionDialogComponent extends IqserDialogComponent< RemoveRedactionDialogComponent, diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/resize-redaction-dialog/resize-redaction-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/resize-redaction-dialog/resize-redaction-dialog.component.ts index e1e6b3f34..d0ab2de9d 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/resize-redaction-dialog/resize-redaction-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/resize-redaction-dialog/resize-redaction-dialog.component.ts @@ -1,14 +1,42 @@ import { Component, inject } from '@angular/core'; -import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; -import { DetailsRadioOption, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui'; +import { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; +import { + CircleButtonComponent, + DetailsRadioComponent, + DetailsRadioOption, + HasScrollbarDirective, + IconButtonComponent, + IconButtonTypes, + IqserDialogComponent, +} from '@iqser/common-ui'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; import { getResizeRedactionOptions, ResizeOptions, ResizeRedactionOption } from '../../utils/dialog-options'; import { ResizeRedactionData, ResizeRedactionResult } from '../../utils/dialog-types'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { MatDialogClose } from '@angular/material/dialog'; +import { NgIf } from '@angular/common'; @Component({ templateUrl: './resize-redaction-dialog.component.html', styleUrls: ['./resize-redaction-dialog.component.scss'], + standalone: true, + imports: [ + ReactiveFormsModule, + TranslateModule, + DetailsRadioComponent, + MatFormField, + MatSelectTrigger, + MatSelect, + MatOption, + IconButtonComponent, + CircleButtonComponent, + HasScrollbarDirective, + MatDialogClose, + NgIf, + ], }) export class ResizeRedactionDialogComponent extends IqserDialogComponent< ResizeRedactionDialogComponent, diff --git a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts index 8cfc9074c..4e43efe6e 100644 --- a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts @@ -1,15 +1,18 @@ +import { ActivatedRouteSnapshot, NavigationExtras, Router, RouterLink } from '@angular/router'; import { ChangeDetectorRef, Component, effect, NgZone, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core'; -import { ActivatedRouteSnapshot, NavigationExtras, Router } from '@angular/router'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { ComponentCanDeactivate } from '@guards/can-deactivate.guard'; import { + CircleButtonComponent, CircleButtonTypes, ConfirmOption, ConfirmOptions, CustomError, + DisableStopPropagationDirective, ErrorService, getConfig, IConfirmationDialogData, + IqserAllowDirective, IqserDialog, LoadingService, Toaster, @@ -57,11 +60,36 @@ import { StampService } from './services/stamp.service'; import { ViewModeService } from './services/view-mode.service'; import { RedactTextData } from './utils/dialog-types'; import { MultiSelectService } from './services/multi-select.service'; +import { NgIf } from '@angular/common'; +import { ViewSwitchComponent } from './components/view-switch/view-switch.component'; +import { ProcessingIndicatorComponent } from '@shared/components/processing-indicator/processing-indicator.component'; +import { UserManagementComponent } from './components/user-management/user-management.component'; +import { TranslateModule } from '@ngx-translate/core'; +import { InitialsAvatarComponent } from '@common-ui/users'; +import { FileActionsComponent } from '../shared-dossiers/components/file-actions/file-actions.component'; +import { FilePreviewRightContainerComponent } from './components/right-container/file-preview-right-container.component'; +import { TypeFilterComponent } from '@shared/components/type-filter/type-filter.component'; @Component({ templateUrl: './file-preview-screen.component.html', styleUrls: ['./file-preview-screen.component.scss'], providers: filePreviewScreenProviders, + standalone: true, + imports: [ + NgIf, + ViewSwitchComponent, + ProcessingIndicatorComponent, + UserManagementComponent, + TranslateModule, + InitialsAvatarComponent, + CircleButtonComponent, + IqserAllowDirective, + FileActionsComponent, + DisableStopPropagationDirective, + RouterLink, + FilePreviewRightContainerComponent, + TypeFilterComponent, + ], }) export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnInit, OnDestroy, OnAttach, OnDetach, ComponentCanDeactivate { readonly circleButtonTypes = CircleButtonTypes; diff --git a/apps/red-ui/src/app/modules/file-preview/file-preview.module.ts b/apps/red-ui/src/app/modules/file-preview/file-preview.module.ts deleted file mode 100644 index f21e31e81..000000000 --- a/apps/red-ui/src/app/modules/file-preview/file-preview.module.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { OverlayModule } from '@angular/cdk/overlay'; -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { ReplaceNbspPipe } from '@common-ui/pipes/replace-nbsp.pipe'; -import { PendingChangesGuard } from '@guards/can-deactivate.guard'; -import { - CapitalizePipe, - CircleButtonComponent, - DetailsRadioComponent, - DisableStopPropagationDirective, - DynamicInputComponent, - EditableInputComponent, - EmptyStateComponent, - HasScrollbarDirective, - IconButtonComponent, - InputWithActionComponent, - IqserAllowDirective, - IqserDenyDirective, - IqserHelpModeModule, - IqserRoutes, - IqserUploadFileModule, - LogPipe, - PreventDefaultDirective, - RoundCheckboxComponent, - StopPropagationDirective, -} from '@iqser/common-ui'; -import { IqserFiltersModule } from '@iqser/common-ui/lib/filtering'; -import { StatusBarComponent } from '@iqser/common-ui/lib/shared'; -import { IqserUsersModule } from '@iqser/common-ui/lib/users'; -import { TranslateModule } from '@ngx-translate/core'; -import { SharedModule } from '@shared/shared.module'; -import { SharedDossiersModule } from '../shared-dossiers/shared-dossiers.module'; -import { AnnotationActionsComponent } from './components/annotation-actions/annotation-actions.component'; -import { AnnotationCardComponent } from './components/annotation-card/annotation-card.component'; -import { AnnotationDetailsComponent } from './components/annotation-details/annotation-details.component'; -import { AnnotationReferenceComponent } from './components/annotation-reference/annotation-reference.component'; -import { AnnotationReferencesListComponent } from './components/annotation-references-list/annotation-references-list.component'; -import { AnnotationReferencesPageIndicatorComponent } from './components/annotation-references-page-indicator/annotation-references-page-indicator.component'; -import { AnnotationWrapperComponent } from './components/annotation-wrapper/annotation-wrapper.component'; -import { AnnotationsListComponent } from './components/annotations-list/annotations-list.component'; -import { CommentsComponent } from './components/comments/comments.component'; -import { DocumentInfoComponent } from './components/document-info/document-info.component'; -import { FileWorkloadComponent } from './components/file-workload/file-workload.component'; -import { HighlightsSeparatorComponent } from './components/highlights-separator/highlights-separator.component'; -import { PageExclusionComponent } from './components/page-exclusion/page-exclusion.component'; -import { PageIndicatorComponent } from './components/page-indicator/page-indicator.component'; -import { PagesComponent } from './components/pages/pages.component'; -import { ReadonlyBannerComponent } from './components/readonly-banner/readonly-banner.component'; -import { FilePreviewRightContainerComponent } from './components/right-container/file-preview-right-container.component'; -import { UserManagementComponent } from './components/user-management/user-management.component'; -import { ViewSwitchComponent } from './components/view-switch/view-switch.component'; -import { AddHintDialogComponent } from './dialogs/add-hint-dialog/add-hint-dialog.component'; -import { ChangeLegalBasisDialogComponent } from './dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component'; -import { AddAnnotationDialogComponent } from './dialogs/docu-mine/add-annotation-dialog/add-annotation-dialog.component'; -import { EditAnnotationDialogComponent } from './dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component'; -import { RemoveAnnotationDialogComponent } from './dialogs/docu-mine/remove-annotation-dialog/remove-annotation-dialog.component'; -import { DocumentInfoDialogComponent } from './dialogs/document-info-dialog/document-info-dialog.component'; -import { EditRedactionDialogComponent } from './dialogs/edit-redaction-dialog/edit-redaction-dialog.component'; -import { ForceAnnotationDialogComponent } from './dialogs/force-redaction-dialog/force-annotation-dialog.component'; -import { HighlightActionDialogComponent } from './dialogs/highlight-action-dialog/highlight-action-dialog.component'; -import { ImportRedactionsDialogComponent } from './dialogs/import-redactions-dialog/import-redactions-dialog'; -import { ManualAnnotationDialogComponent } from './dialogs/manual-redaction-dialog/manual-annotation-dialog.component'; -import { RedactRecommendationDialogComponent } from './dialogs/redact-recommendation-dialog/redact-recommendation-dialog.component'; -import { RedactTextDialogComponent } from './dialogs/redact-text-dialog/redact-text-dialog.component'; -import { RemoveRedactionDialogComponent } from './dialogs/remove-redaction-dialog/remove-redaction-dialog.component'; -import { ResizeRedactionDialogComponent } from './dialogs/resize-redaction-dialog/resize-redaction-dialog.component'; -import { FilePreviewScreenComponent } from './file-preview-screen.component'; -import { DocumentUnloadedGuard } from './services/document-unloaded.guard'; -import { FilePreviewDialogService } from './services/file-preview-dialog.service'; -import { ManualRedactionService } from './services/manual-redaction.service'; -import { TablesService } from './services/tables.service'; -import { SelectedAnnotationsTableComponent } from './components/selected-annotations-table/selected-annotations-table.component'; -import { SelectedAnnotationsListComponent } from './components/selected-annotations-list/selected-annotations-list.component'; -import { FileHeaderComponent } from './components/file-header/file-header.component'; -import { DocumineExportComponent } from './components/documine-export/documine-export.component'; -import { StructuredComponentManagementComponent } from './components/structured-component-management/structured-component-management.component'; -import { EditableStructuredComponentValueComponent } from './components/editable-structured-component-value/editable-structured-component-value.component'; - -const routes: IqserRoutes = [ - { - path: '', - component: FilePreviewScreenComponent, - pathMatch: 'full', - canDeactivate: [PendingChangesGuard, DocumentUnloadedGuard], - }, -]; - -const dialogs = [ - ManualAnnotationDialogComponent, - ForceAnnotationDialogComponent, - ResizeRedactionDialogComponent, - ChangeLegalBasisDialogComponent, - HighlightActionDialogComponent, - DocumentInfoDialogComponent, - ImportRedactionsDialogComponent, - RedactTextDialogComponent, - EditRedactionDialogComponent, - EditAnnotationDialogComponent, - AddHintDialogComponent, - RemoveRedactionDialogComponent, - AddAnnotationDialogComponent, - RemoveAnnotationDialogComponent, - RedactRecommendationDialogComponent, -]; - -const components = [ - FileWorkloadComponent, - AnnotationDetailsComponent, - AnnotationWrapperComponent, - AnnotationsListComponent, - PageIndicatorComponent, - PagesComponent, - PageExclusionComponent, - AnnotationActionsComponent, - CommentsComponent, - DocumentInfoComponent, - ViewSwitchComponent, - UserManagementComponent, - AnnotationReferencesListComponent, - AnnotationCardComponent, - AnnotationReferencesPageIndicatorComponent, - HighlightsSeparatorComponent, - AnnotationReferenceComponent, - FilePreviewScreenComponent, - FilePreviewRightContainerComponent, - ReadonlyBannerComponent, - FileHeaderComponent, - DocumineExportComponent, - StructuredComponentManagementComponent, -]; - -@NgModule({ - declarations: [...components, ...dialogs], - imports: [ - RouterModule.forChild(routes), - CommonModule, - TranslateModule, - OverlayModule, - IqserHelpModeModule, - IqserUsersModule, - CapitalizePipe, - IqserUploadFileModule, - IqserFiltersModule, - SharedModule, - CircleButtonComponent, - SharedDossiersModule, - IconButtonComponent, - EmptyStateComponent, - StatusBarComponent, - StopPropagationDirective, - PreventDefaultDirective, - HasScrollbarDirective, - EditableInputComponent, - DetailsRadioComponent, - DynamicInputComponent, - InputWithActionComponent, - RoundCheckboxComponent, - IqserAllowDirective, - IqserDenyDirective, - LogPipe, - ReplaceNbspPipe, - DisableStopPropagationDirective, - SelectedAnnotationsTableComponent, - SelectedAnnotationsListComponent, - EditableStructuredComponentValueComponent, - ], - providers: [FilePreviewDialogService, ManualRedactionService, DocumentUnloadedGuard, TablesService], -}) -export class FilePreviewModule {} diff --git a/apps/red-ui/src/app/modules/file-preview/file-preview.routes.ts b/apps/red-ui/src/app/modules/file-preview/file-preview.routes.ts new file mode 100644 index 000000000..ca59f7a45 --- /dev/null +++ b/apps/red-ui/src/app/modules/file-preview/file-preview.routes.ts @@ -0,0 +1,18 @@ +import { IqserRoutes } from '@iqser/common-ui'; +import { FilePreviewScreenComponent } from './file-preview-screen.component'; +import { PendingChangesGuard } from '@guards/can-deactivate.guard'; +import { DocumentUnloadedGuard } from './services/document-unloaded.guard'; +import { FilePreviewDialogService } from './services/file-preview-dialog.service'; +import { ManualRedactionService } from './services/manual-redaction.service'; +import { TablesService } from './services/tables.service'; +import { FileAssignService } from '../shared-dossiers/services/file-assign.service'; + +export default [ + { + path: '', + component: FilePreviewScreenComponent, + pathMatch: 'full', + canDeactivate: [PendingChangesGuard, DocumentUnloadedGuard], + providers: [FilePreviewDialogService, ManualRedactionService, DocumentUnloadedGuard, TablesService, FileAssignService], + }, +] satisfies IqserRoutes; diff --git a/apps/red-ui/src/app/modules/search/search.module.ts b/apps/red-ui/src/app/modules/search/search.module.ts index e37dc443e..dd0e66b1a 100644 --- a/apps/red-ui/src/app/modules/search/search.module.ts +++ b/apps/red-ui/src/app/modules/search/search.module.ts @@ -6,7 +6,7 @@ import { IqserListingModule, StopPropagationDirective } from '@iqser/common-ui'; import { SharedModule } from '@shared/shared.module'; import { TranslateModule } from '@ngx-translate/core'; import { SearchItemTemplateComponent } from './search-item-template/search-item-template.component'; -import { IqserUsersModule } from '@iqser/common-ui/lib/users'; +import { InitialsAvatarComponent, IqserUsersModule } from '@iqser/common-ui/lib/users'; import { StatusBarComponent } from '@iqser/common-ui/lib/shared'; const routes = [{ path: '', component: SearchScreenComponent }]; @@ -22,6 +22,7 @@ const routes = [{ path: '', component: SearchScreenComponent }]; IqserListingModule, StatusBarComponent, StopPropagationDirective, + InitialsAvatarComponent, ], }) export class SearchModule {} diff --git a/apps/red-ui/src/app/modules/shared-dossiers/components/date-column/date-column.component.ts b/apps/red-ui/src/app/modules/shared-dossiers/components/date-column/date-column.component.ts index 732d72251..7b652fb01 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/components/date-column/date-column.component.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/components/date-column/date-column.component.ts @@ -1,9 +1,12 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { DatePipe } from '@angular/common'; @Component({ selector: 'redaction-date-column [date]', templateUrl: './date-column.component.html', changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [DatePipe], }) export class DateColumnComponent { @Input() isError = false; diff --git a/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts b/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts index 557356d13..208bc62cf 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts @@ -21,7 +21,7 @@ import { FilesService } from '@services/files/files.service'; import { PermissionsService } from '@services/permissions.service'; import { ReanalysisService, ReanalyzeQueryParams } from '@services/reanalysis.service'; import { ExpandableFileActionsComponent } from '@shared/components/expandable-file-actions/expandable-file-actions.component'; -import { LongPressEvent } from '@shared/directives/long-press.directive'; +import { LongPressDirective, LongPressEvent } from '@shared/directives/long-press.directive'; import { Roles } from '@users/roles'; import { UserPreferenceService } from '@users/user-preference.service'; import { setLocalStorageDataByFileId } from '@utils/local-storage'; @@ -34,11 +34,16 @@ import { ROTATION_ACTION_BUTTONS } from '../../../pdf-viewer/utils/constants'; import { AssignReviewerApproverDialogComponent } from '../../dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component'; import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { FileAssignService } from '../../services/file-assign.service'; +import { ProcessingIndicatorComponent } from '@shared/components/processing-indicator/processing-indicator.component'; +import { StatusBarComponent } from '@common-ui/shared'; +import { NgIf, NgTemplateOutlet } from '@angular/common'; @Component({ selector: 'redaction-file-actions', templateUrl: './file-actions.component.html', styleUrls: ['./file-actions.component.scss'], + standalone: true, + imports: [ProcessingIndicatorComponent, StatusBarComponent, LongPressDirective, ExpandableFileActionsComponent, NgTemplateOutlet, NgIf], }) export class FileActionsComponent implements OnChanges { @Input({ required: true }) file: File; diff --git a/apps/red-ui/src/app/modules/shared-dossiers/shared-dossiers.module.ts b/apps/red-ui/src/app/modules/shared-dossiers/shared-dossiers.module.ts index 7cfca15d6..0d7dfab4c 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/shared-dossiers.module.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/shared-dossiers.module.ts @@ -26,21 +26,23 @@ import { } 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 { InitialsAvatarComponent, 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'; import { SnakeCasePipe } from '@common-ui/pipes/snake-case.pipe'; import { EditDictionaryDialogComponent } from './dialogs/edit-dictionary-dialog/edit-dictionary-dialog.component'; +import { TeamMembersComponent } from '@shared/components/team-members/team-members.component'; +import { LongPressDirective } from '@shared/directives/long-press.directive'; +import { FileDownloadBtnComponent } from '@shared/components/buttons/file-download-btn/file-download-btn.component'; +import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component'; +import { NamePipe } from '@common-ui/users/name.pipe'; const components = [ - FileActionsComponent, EditDossierGeneralInfoComponent, EditDossierDownloadPackageComponent, EditDossierDictionaryComponent, EditDossierAttributesComponent, EditDossierTeamComponent, - FileActionsComponent, - DateColumnComponent, DossiersListingActionsComponent, ]; const dialogs = [EditDossierDialogComponent, AssignReviewerApproverDialogComponent]; @@ -71,6 +73,12 @@ const dialogs = [EditDossierDialogComponent, AssignReviewerApproverDialogCompone SelectComponent, SnakeCasePipe, EditDictionaryDialogComponent, + TeamMembersComponent, + LongPressDirective, + FileDownloadBtnComponent, + AnnotationIconComponent, + InitialsAvatarComponent, + NamePipe, ], }) export class SharedDossiersModule {} diff --git a/apps/red-ui/src/app/modules/shared/components/annotation-icon/annotation-icon.component.ts b/apps/red-ui/src/app/modules/shared/components/annotation-icon/annotation-icon.component.ts index c2a315e6b..99c27090c 100644 --- a/apps/red-ui/src/app/modules/shared/components/annotation-icon/annotation-icon.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/annotation-icon/annotation-icon.component.ts @@ -5,6 +5,7 @@ import { AnnotationIconType } from '@red/domain'; selector: 'redaction-annotation-icon [color] [type] [label]', templateUrl: './annotation-icon.component.html', styleUrls: ['./annotation-icon.component.scss'], + standalone: true, }) export class AnnotationIconComponent implements OnChanges { @Input() color: string; diff --git a/apps/red-ui/src/app/modules/shared/components/assign-user-dropdown/assign-user-dropdown.component.ts b/apps/red-ui/src/app/modules/shared/components/assign-user-dropdown/assign-user-dropdown.component.ts index c1bc526cc..eb63fe2fb 100644 --- a/apps/red-ui/src/app/modules/shared/components/assign-user-dropdown/assign-user-dropdown.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/assign-user-dropdown/assign-user-dropdown.component.ts @@ -1,13 +1,33 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; -import { UserService } from '@users/user.service'; import { User } from '@red/domain'; import { List } from '@iqser/common-ui/lib/utils'; +import { MatFormField } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { FormsModule } from '@angular/forms'; +import { TranslateModule } from '@ngx-translate/core'; +import { NgForOf, NgTemplateOutlet } from '@angular/common'; +import { CircleButtonComponent, StopPropagationDirective } from '@iqser/common-ui'; +import { InitialsAvatarComponent } from '@common-ui/users'; @Component({ selector: 'redaction-assign-user-dropdown', templateUrl: './assign-user-dropdown.component.html', styleUrls: ['./assign-user-dropdown.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [ + MatFormField, + MatSelect, + MatSelectTrigger, + MatOption, + FormsModule, + TranslateModule, + NgTemplateOutlet, + StopPropagationDirective, + CircleButtonComponent, + NgForOf, + InitialsAvatarComponent, + ], }) export class AssignUserDropdownComponent { private _currentUser: User | string; @@ -16,7 +36,7 @@ export class AssignUserDropdownComponent { @Output() readonly save = new EventEmitter(); @Output() readonly cancel = new EventEmitter(); - constructor(private readonly _userService: UserService) {} + constructor() {} get value(): User | string { return this._currentUser; diff --git a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts index 5a58c1260..8fde993b4 100644 --- a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts @@ -1,15 +1,18 @@ import { Component, inject, Input, OnChanges } from '@angular/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { CircleButtonType, CircleButtonTypes, IqserDialog, Toaster } from '@iqser/common-ui'; +import { CircleButtonComponent, CircleButtonType, CircleButtonTypes, IqserDialog, Toaster } from '@iqser/common-ui'; import { Dossier, File, ProcessingFileStatuses } from '@red/domain'; import { PermissionsService } from '@services/permissions.service'; import { DownloadDialogComponent } from '@shared/dialogs/download-dialog/download-dialog.component'; import { FileDownloadService } from '@upload-download/services/file-download.service'; import { APP_BASE_HREF } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-file-download-btn', templateUrl: './file-download-btn.component.html', + standalone: true, + imports: [CircleButtonComponent, TranslateModule], }) export class FileDownloadBtnComponent implements OnChanges { @Input({ required: true }) files: File[]; diff --git a/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts b/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts index 7d2ab4a41..8f310dc0d 100644 --- a/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts @@ -1,18 +1,40 @@ import { Component, inject, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core'; import { Action, ActionTypes, Dossier, File } from '@red/domain'; -import { CircleButtonType, IqserDialog, Toaster } from '@iqser/common-ui'; +import { CircleButtonComponent, CircleButtonType, IqserDialog, StopPropagationDirective, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { FileDownloadService } from '@upload-download/services/file-download.service'; import { PermissionsService } from '@services/permissions.service'; -import { MatMenuTrigger } from '@angular/material/menu'; +import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu'; import { DownloadDialogComponent } from '@shared/dialogs/download-dialog/download-dialog.component'; import { IqserTooltipPosition, trackByFactory } from '@iqser/common-ui/lib/utils'; -import { APP_BASE_HREF } from '@angular/common'; +import { APP_BASE_HREF, AsyncPipe, NgClass, NgForOf, NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; +import { FileDownloadBtnComponent } from '@shared/components/buttons/file-download-btn/file-download-btn.component'; +import { MatSlideToggle } from '@angular/material/slide-toggle'; +import { MatTooltip } from '@angular/material/tooltip'; +import { MatIcon } from '@angular/material/icon'; @Component({ selector: 'redaction-expandable-file-actions', templateUrl: './expandable-file-actions.component.html', styleUrls: ['./expandable-file-actions.component.scss'], + standalone: true, + imports: [ + CircleButtonComponent, + TranslateModule, + AsyncPipe, + FileDownloadBtnComponent, + NgIf, + MatSlideToggle, + MatTooltip, + NgClass, + MatMenuTrigger, + MatMenu, + MatIcon, + MatMenuItem, + NgForOf, + StopPropagationDirective, + ], }) export class ExpandableFileActionsComponent implements OnChanges { @Input({ required: true }) actions: Action[]; diff --git a/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.ts b/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.ts index 1bc56cb18..cea2dc564 100644 --- a/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.ts @@ -15,6 +15,10 @@ import { FileAttributesService } from '@services/entity-services/file-attributes import { combineLatest, map, ReplaySubject } from 'rxjs'; import { ContextComponent } from '@iqser/common-ui/lib/utils'; import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; +import { MatTooltip } from '@angular/material/tooltip'; +import { AsyncPipe, NgIf } from '@angular/common'; +import { FileAttributeComponent } from '../../../dossier-overview/components/file-attribute/file-attribute.component'; +import { FileStatsComponent } from '@shared/components/file-stats/file-stats.component'; interface FileNameColumnContext { primaryAttribute: IFileAttributeConfig; @@ -25,6 +29,8 @@ interface FileNameColumnContext { templateUrl: './file-name-column.component.html', styleUrls: ['./file-name-column.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [MatTooltip, NgIf, AsyncPipe, FileAttributeComponent, FileStatsComponent], }) export class FileNameColumnComponent extends ContextComponent implements OnInit, OnChanges { readonly #reloadAttribute = new ReplaySubject(1); diff --git a/apps/red-ui/src/app/modules/shared/components/file-stats/file-stats.component.ts b/apps/red-ui/src/app/modules/shared/components/file-stats/file-stats.component.ts index a17a7c2ca..7e2e34aed 100644 --- a/apps/red-ui/src/app/modules/shared/components/file-stats/file-stats.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/file-stats/file-stats.component.ts @@ -1,9 +1,15 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { MatIcon } from '@angular/material/icon'; +import { MatTooltip } from '@angular/material/tooltip'; +import { DatePipe, NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-file-stats', templateUrl: './file-stats.component.html', changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [MatIcon, MatTooltip, NgIf, TranslateModule, DatePipe], }) export class FileStatsComponent { @Input() file: { numberOfPages: number; excludedPages: number[]; lastOCRTime?: string }; diff --git a/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.ts b/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.ts index 0dffab4c7..28d27e7fa 100644 --- a/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.ts @@ -1,10 +1,15 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { MatProgressBar } from '@angular/material/progress-bar'; +import { NgIf, PercentPipe } from '@angular/common'; +import { MatTooltip } from '@angular/material/tooltip'; @Component({ selector: 'redaction-ocr-progress-bar', templateUrl: './ocr-progress-bar.component.html', styleUrls: ['./ocr-progress-bar.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [MatProgressBar, NgIf, MatTooltip, PercentPipe], }) export class OcrProgressBarComponent { @Input() numberOfPagesToOCR: number; diff --git a/apps/red-ui/src/app/modules/shared/components/processing-indicator/processing-indicator.component.ts b/apps/red-ui/src/app/modules/shared/components/processing-indicator/processing-indicator.component.ts index c70b5a778..88d8785b0 100644 --- a/apps/red-ui/src/app/modules/shared/components/processing-indicator/processing-indicator.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/processing-indicator/processing-indicator.component.ts @@ -1,12 +1,18 @@ import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core'; import { File } from '@red/domain'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { MatTooltip } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatIcon } from '@angular/material/icon'; +import { NgIf } from '@angular/common'; @Component({ selector: 'redaction-processing-indicator [file]', templateUrl: './processing-indicator.component.html', styleUrls: ['./processing-indicator.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [MatTooltip, TranslateModule, MatIcon, NgIf], }) export class ProcessingIndicatorComponent implements OnChanges { tooltip: string; diff --git a/apps/red-ui/src/app/modules/shared/components/team-members/team-members.component.ts b/apps/red-ui/src/app/modules/shared/components/team-members/team-members.component.ts index 9272c9f73..90e0701f3 100644 --- a/apps/red-ui/src/app/modules/shared/components/team-members/team-members.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/team-members/team-members.component.ts @@ -1,16 +1,21 @@ import { Component, ElementRef, EventEmitter, inject, Input, OnChanges, Output, ViewChild } from '@angular/core'; -import { CircleButtonTypes } from '@iqser/common-ui'; +import { CircleButtonComponent, CircleButtonTypes, IqserAllowDirective } from '@iqser/common-ui'; import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service'; import { Roles } from '@users/roles'; import { User } from '@red/domain'; import { UserService } from '@users/user.service'; -import { getCurrentUser } from '@iqser/common-ui/lib/users'; +import { getCurrentUser, InitialsAvatarComponent } from '@iqser/common-ui/lib/users'; import { List } from '@iqser/common-ui/lib/utils'; +import { NgForOf, NgIf } from '@angular/common'; +import { MatIcon } from '@angular/material/icon'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-team-members', templateUrl: './team-members.component.html', styleUrls: ['./team-members.component.scss'], + standalone: true, + imports: [NgForOf, MatIcon, NgIf, CircleButtonComponent, IqserAllowDirective, TranslateModule, InitialsAvatarComponent], }) export class TeamMembersComponent implements OnChanges { readonly circleButtonTypes = CircleButtonTypes; diff --git a/apps/red-ui/src/app/modules/shared/components/type-filter/type-filter.component.ts b/apps/red-ui/src/app/modules/shared/components/type-filter/type-filter.component.ts index 13c2f4b27..a269799cd 100644 --- a/apps/red-ui/src/app/modules/shared/components/type-filter/type-filter.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/type-filter/type-filter.component.ts @@ -1,11 +1,16 @@ import { Component, Input, OnChanges } from '@angular/core'; import { INestedFilter } from '@iqser/common-ui/lib/filtering'; -import { TranslateService } from '@ngx-translate/core'; +import { TranslateModule, TranslateService } from '@ngx-translate/core'; +import { AsyncPipe, NgIf } from '@angular/common'; +import { MatIcon } from '@angular/material/icon'; +import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component'; @Component({ selector: 'redaction-type-filter', templateUrl: './type-filter.component.html', styleUrls: ['./type-filter.component.scss'], + standalone: true, + imports: [NgIf, MatIcon, AnnotationIconComponent, AsyncPipe, TranslateModule], }) export class TypeFilterComponent implements OnChanges { private _needsAnalysisKeys: string[] = ['remove-only-here', 'analysis']; diff --git a/apps/red-ui/src/app/modules/shared/directives/long-press.directive.ts b/apps/red-ui/src/app/modules/shared/directives/long-press.directive.ts index f69a381ac..d5d6979e1 100644 --- a/apps/red-ui/src/app/modules/shared/directives/long-press.directive.ts +++ b/apps/red-ui/src/app/modules/shared/directives/long-press.directive.ts @@ -8,6 +8,7 @@ export interface LongPressEvent { @Directive({ selector: '[redactionLongPress]', + standalone: true, }) export class LongPressDirective { @Output() longPress = new EventEmitter(); diff --git a/apps/red-ui/src/app/modules/shared/shared.module.ts b/apps/red-ui/src/app/modules/shared/shared.module.ts index d7330bd16..a1c4cc4dd 100644 --- a/apps/red-ui/src/app/modules/shared/shared.module.ts +++ b/apps/red-ui/src/app/modules/shared/shared.module.ts @@ -1,11 +1,9 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { ScrollingModule } from '@angular/cdk/scrolling'; -import { FileDownloadBtnComponent } from './components/buttons/file-download-btn/file-download-btn.component'; import { MatConfigModule } from '../mat-config/mat-config.module'; import { IconsModule } from '../icons/icons.module'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { AnnotationIconComponent } from './components/annotation-icon/annotation-icon.component'; import { DonutChartComponent } from './components/donut-chart/donut-chart.component'; import { CircleButtonComponent, @@ -21,17 +19,9 @@ import { import { NavigateLastDossiersScreenDirective } from './directives/navigate-last-dossiers-screen.directive'; import { DictionaryManagerComponent } from './components/dictionary-manager/dictionary-manager.component'; import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor'; -import { AssignUserDropdownComponent } from './components/assign-user-dropdown/assign-user-dropdown.component'; import { DatePipe } from './pipes/date.pipe'; -import { LongPressDirective } from './directives/long-press.directive'; -import { TypeFilterComponent } from './components/type-filter/type-filter.component'; -import { TeamMembersComponent } from './components/team-members/team-members.component'; import { EditorComponent } from './components/editor/editor.component'; -import { ExpandableFileActionsComponent } from './components/expandable-file-actions/expandable-file-actions.component'; -import { ProcessingIndicatorComponent } from './components/processing-indicator/processing-indicator.component'; import { DossierStateComponent } from './components/dossier-state/dossier-state.component'; -import { FileStatsComponent } from './components/file-stats/file-stats.component'; -import { FileNameColumnComponent } from './components/file-name-column/file-name-column.component'; import { DossierNameColumnComponent } from './components/dossier-name-column/dossier-name-column.component'; import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core'; import { DossiersTypeSwitchComponent } from './components/dossiers-type-switch/dossiers-type-switch.component'; @@ -42,7 +32,6 @@ import { SharedDialogService } from './services/dialog.service'; import { AddEditEntityComponent } from './components/add-edit-entity/add-edit-entity.component'; import { ColorPickerModule } from 'ngx-color-picker'; import { WatermarkSelectorComponent } from './components/dossier-watermark-selector/watermark-selector.component'; -import { OcrProgressBarComponent } from './components/ocr-progress-bar/ocr-progress-bar.component'; import { CustomDateAdapter } from '@shared/CustomDateAdapter'; import { IqserUsersModule } from '@iqser/common-ui/lib/users'; import { SmallChipComponent } from '@iqser/common-ui/lib/shared'; @@ -50,30 +39,17 @@ import { SelectComponent } from '@shared/components/select/select.component'; import { FileAttributeComponent } from '../dossier-overview/components/file-attribute/file-attribute.component'; import { MatDividerModule } from '@angular/material/divider'; -const buttons = [FileDownloadBtnComponent]; - const components = [ - AnnotationIconComponent, DictionaryManagerComponent, - AssignUserDropdownComponent, - TypeFilterComponent, - TeamMembersComponent, - ExpandableFileActionsComponent, - ProcessingIndicatorComponent, DossierStateComponent, DossierNameColumnComponent, - FileStatsComponent, - FileNameColumnComponent, DossiersTypeSwitchComponent, AddDossierDialogComponent, WatermarkSelectorComponent, AddEditEntityComponent, - OcrProgressBarComponent, - - ...buttons, ]; -const utils = [DatePipe, NavigateLastDossiersScreenDirective, LongPressDirective]; +const utils = [DatePipe, NavigateLastDossiersScreenDirective]; const services = [SharedDialogService]; diff --git a/apps/red-ui/src/app/modules/trash/trash.module.ts b/apps/red-ui/src/app/modules/trash/trash.module.ts index cb0defa70..6ea3c27ce 100644 --- a/apps/red-ui/src/app/modules/trash/trash.module.ts +++ b/apps/red-ui/src/app/modules/trash/trash.module.ts @@ -7,7 +7,8 @@ import { TrashTableItemComponent } from './trash-screen/trash-table-item/trash-t import { SharedModule } from '@shared/shared.module'; import { TrashDialogService } from './services/trash-dialog.service'; import { TranslateModule } from '@ngx-translate/core'; -import { IqserUsersModule } from '@iqser/common-ui/lib/users'; +import { InitialsAvatarComponent, IqserUsersModule } from '@iqser/common-ui/lib/users'; +import { FileNameColumnComponent } from '@shared/components/file-name-column/file-name-column.component'; const routes = [{ path: '', component: TrashScreenComponent }]; @@ -21,6 +22,8 @@ const routes = [{ path: '', component: TrashScreenComponent }]; TranslateModule, IqserListingModule, CircleButtonComponent, + FileNameColumnComponent, + InitialsAvatarComponent, ], providers: [TrashDialogService], }) diff --git a/libs/common-ui b/libs/common-ui index 0b64044f5..04ae68891 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 0b64044f576f38e4bb79033563a20400a62c15b6 +Subproject commit 04ae68891c9298b92327868006d1e7c79529c7e6