From a2a96ad2df62f8120295790634689287b3cc6ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Mon, 13 Dec 2021 21:24:16 +0200 Subject: [PATCH 01/97] Fixed dossier / files changes --- .../dossier-overview-screen.component.ts | 18 +++++++++--------- .../dossiers-listing-screen.component.ts | 8 +------- .../file-actions/file-actions.component.ts | 9 ++++++++- .../entity-services/dossiers.service.ts | 12 ++++++++++-- libs/common-ui | 2 +- 5 files changed, 29 insertions(+), 20 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts index bf8865bdd..7995c6d03 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts @@ -16,8 +16,8 @@ import { FileUploadModel } from '@upload-download/model/file-upload.model'; import { FileUploadService } from '@upload-download/services/file-upload.service'; import { StatusOverlayService } from '@upload-download/services/status-overlay.service'; import * as moment from 'moment'; -import { Observable, timer } from 'rxjs'; -import { filter, skip, switchMap, tap } from 'rxjs/operators'; +import { combineLatest, Observable } from 'rxjs'; +import { skip, switchMap, tap } from 'rxjs/operators'; import { convertFiles, Files, handleFileDrop } from '@utils/index'; import { CircleButtonTypes, @@ -45,7 +45,7 @@ import { LongPressEvent } from '@shared/directives/long-press.directive'; import { UserPreferenceService } from '@services/user-preference.service'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { FilesService } from '@services/entity-services/files.service'; -import { CHANGED_CHECK_INTERVAL } from '@utils/constants'; +import { DossierStatsService } from '@services/entity-services/dossier-stats.service'; @Component({ templateUrl: './dossier-overview-screen.component.html', @@ -81,6 +81,7 @@ export class DossierOverviewScreenComponent extends ListingComponent imple readonly permissionsService: PermissionsService, private readonly _loadingService: LoadingService, private readonly _dossiersService: DossiersService, + private readonly _dossierStatsService: DossierStatsService, private readonly _dossierTemplatesService: DossierTemplatesService, private readonly _appConfigService: AppConfigService, private readonly _fileUploadService: FileUploadService, @@ -128,12 +129,11 @@ export class DossierOverviewScreenComponent extends ListingComponent imple this._fileDropOverlayService.initFileDropHandling(this.dossierId); - this.addSubscription = timer(CHANGED_CHECK_INTERVAL, CHANGED_CHECK_INTERVAL) - .pipe( - switchMap(() => this._filesService.hasChanges$(this.dossierId)), - filter(changed => changed), - switchMap(() => this._reloadFiles()), - ) + this.addSubscription = combineLatest([ + this._dossiersService.getEntityChanged$(this.dossierId), + this._dossierStatsService.watch$(this.dossierId), + ]) + .pipe(switchMap(() => this._reloadFiles())) .subscribe(); this.addSubscription = this.configService.listingMode$.subscribe(() => { diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts index c7ba3f10b..79b8fd977 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts @@ -3,7 +3,6 @@ import { Dossier } from '@red/domain'; import { UserService } from '@services/user.service'; import { PermissionsService } from '@services/permissions.service'; import { TranslateChartService } from '@services/translate-chart.service'; -import { timer } from 'rxjs'; import { Router } from '@angular/router'; import { DossiersDialogService } from '../../../services/dossiers-dialog.service'; import { DefaultListingServicesTmp, EntitiesService, ListingComponent, OnAttach, OnDetach, TableComponent } from '@iqser/common-ui'; @@ -12,8 +11,7 @@ import { ConfigService } from '../config.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { FilesService } from '@services/entity-services/files.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; -import { switchMap, tap } from 'rxjs/operators'; -import { CHANGED_CHECK_INTERVAL } from '@utils/constants'; +import { tap } from 'rxjs/operators'; @Component({ templateUrl: './dossiers-listing-screen.component.html', @@ -57,10 +55,6 @@ export class DossiersListingScreenComponent extends ListingComponent im } ngOnInit(): void { - this.addSubscription = timer(CHANGED_CHECK_INTERVAL, CHANGED_CHECK_INTERVAL) - .pipe(switchMap(() => this._dossiersService.loadAllIfChanged())) - .subscribe(); - this.addSubscription = this._dossiersService.all$.pipe(tap(() => this._computeAllFilters())).subscribe(); } diff --git a/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts b/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts index 150f44c55..95a6427cd 100644 --- a/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts +++ b/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts @@ -1,5 +1,6 @@ import { ChangeDetectionStrategy, + ChangeDetectorRef, Component, EventEmitter, HostBinding, @@ -96,6 +97,7 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnDestroy, private readonly _userPreferenceService: UserPreferenceService, private readonly _reanalysisService: ReanalysisService, private readonly _router: Router, + private readonly _changeRef: ChangeDetectorRef, ) { super(); } @@ -224,7 +226,10 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnDestroy, } ngOnInit() { - this._dossiersService.getEntityChanged$(this.file.dossierId).pipe(tap(() => this._setup())); + this.addSubscription = this._dossiersService + .getEntityChanged$(this.file.dossierId) + .pipe(tap(() => this._setup())) + .subscribe(); } ngOnChanges() { @@ -353,6 +358,8 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnDestroy, this.showReanalyseDossierOverview = this.canReanalyse && this.isDossierOverview && this.analysisForced; this.buttons = this._buttons; + + this._changeRef.markForCheck(); } private async _setFileApproved() { diff --git a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts index 7f4bbdc68..e3543d71b 100644 --- a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts @@ -1,11 +1,12 @@ import { Injectable, Injector } from '@angular/core'; -import { EntitiesService, List, mapEach, QueryParam, RequiredParam, shareLast, Toaster, Validate } from '@iqser/common-ui'; +import { EntitiesService, List, log, mapEach, QueryParam, RequiredParam, shareLast, Toaster, Validate } from '@iqser/common-ui'; import { Dossier, IDossier, IDossierRequest } from '@red/domain'; import { catchError, filter, map, mapTo, switchMap, tap } from 'rxjs/operators'; -import { combineLatest, iif, Observable, of, throwError } from 'rxjs'; +import { combineLatest, iif, Observable, of, throwError, timer } from 'rxjs'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http'; import { DossierStatsService } from '@services/entity-services/dossier-stats.service'; +import { CHANGED_CHECK_INTERVAL } from '@utils/constants'; export interface IDossiersStats { totalPeople: number; @@ -27,6 +28,13 @@ export class DossiersService extends EntitiesService { private readonly _dossierStatsService: DossierStatsService, ) { super(_injector, Dossier, 'dossier'); + + timer(CHANGED_CHECK_INTERVAL, CHANGED_CHECK_INTERVAL) + .pipe( + switchMap(() => this.loadAllIfChanged()), + log(), + ) + .subscribe(); } loadAll(): Observable { diff --git a/libs/common-ui b/libs/common-ui index 51f3d7502..a1c1be7ed 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 51f3d7502b5545663afa2fa0a62abc3578f92905 +Subproject commit a1c1be7edc783bdea42b86c0f8b1f74437065b76 From 72504dfebc8f41b335a1e4f8090a68d99e891f49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 12 Jan 2022 22:05:59 +0200 Subject: [PATCH 02/97] Use new changes details endpoint --- .../dossier-overview-screen.component.ts | 27 ++++++---------- .../entity-services/dossiers.service.ts | 32 ++++++++++++++++--- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts index 7995c6d03..9aed7b89f 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts @@ -15,9 +15,8 @@ import { FileDropOverlayService } from '@upload-download/services/file-drop-over import { FileUploadModel } from '@upload-download/model/file-upload.model'; import { FileUploadService } from '@upload-download/services/file-upload.service'; import { StatusOverlayService } from '@upload-download/services/status-overlay.service'; -import * as moment from 'moment'; -import { combineLatest, Observable } from 'rxjs'; -import { skip, switchMap, tap } from 'rxjs/operators'; +import { Observable } from 'rxjs'; +import { filter, skip, switchMap, tap } from 'rxjs/operators'; import { convertFiles, Files, handleFileDrop } from '@utils/index'; import { CircleButtonTypes, @@ -129,17 +128,17 @@ export class DossierOverviewScreenComponent extends ListingComponent imple this._fileDropOverlayService.initFileDropHandling(this.dossierId); - this.addSubscription = combineLatest([ - this._dossiersService.getEntityChanged$(this.dossierId), - this._dossierStatsService.watch$(this.dossierId), - ]) - .pipe(switchMap(() => this._reloadFiles())) - .subscribe(); - this.addSubscription = this.configService.listingMode$.subscribe(() => { this._computeAllFilters(); }); + this.addSubscription = this._dossiersService.dossierFileChanges$ + .pipe( + filter(dossierId => dossierId === this.dossierId), + switchMap(dossierId => this._filesService.loadAll(dossierId)), + ) + .subscribe(); + this.addSubscription = this._dossierTemplatesService .getEntityChanged$(this.currentDossier.dossierTemplateId) .pipe( @@ -192,9 +191,6 @@ export class DossierOverviewScreenComponent extends ListingComponent imple (this._fileInput as any).nativeElement.value = null; } - recentlyModifiedChecker = (file: File) => - moment(file.lastUpdated).add(this._appConfigService.values.RECENT_PERIOD_IN_HOURS, 'hours').isAfter(moment()); - private _updateFileAttributes(): void { this._fileAttributeConfigs = this._fileAttributesService.getFileAttributeConfig(this.currentDossier.dossierTemplateId)?.fileAttributeConfigs || []; @@ -204,11 +200,6 @@ export class DossierOverviewScreenComponent extends ListingComponent imple this._computeAllFilters(); } - private async _reloadFiles() { - await this._filesService.loadAll(this.dossierId).toPromise(); - this._computeAllFilters(); - } - private _loadEntitiesFromState() { this.currentDossier = this._dossiersService.find(this.dossierId); this._computeAllFilters(); diff --git a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts index e3543d71b..5d14236fe 100644 --- a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts @@ -1,8 +1,8 @@ import { Injectable, Injector } from '@angular/core'; -import { EntitiesService, List, log, mapEach, QueryParam, RequiredParam, shareLast, Toaster, Validate } from '@iqser/common-ui'; +import { EntitiesService, List, mapEach, QueryParam, RequiredParam, shareLast, Toaster, Validate } from '@iqser/common-ui'; import { Dossier, IDossier, IDossierRequest } from '@red/domain'; import { catchError, filter, map, mapTo, switchMap, tap } from 'rxjs/operators'; -import { combineLatest, iif, Observable, of, throwError, timer } from 'rxjs'; +import { combineLatest, Observable, of, Subject, throwError, timer } from 'rxjs'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http'; import { DossierStatsService } from '@services/entity-services/dossier-stats.service'; @@ -13,6 +13,16 @@ export interface IDossiersStats { totalAnalyzedPages: number; } +interface ChangesDetails { + dossierChanges: [ + { + dossierChanges: boolean; + dossierId: string; + fileChanges: boolean; + }, + ]; +} + const DOSSIER_EXISTS_MSG = _('add-dossier-dialog.errors.dossier-already-exists'); const GENERIC_MGS = _('add-dossier-dialog.errors.generic'); @@ -21,6 +31,7 @@ const GENERIC_MGS = _('add-dossier-dialog.errors.generic'); }) export class DossiersService extends EntitiesService { readonly generalStats$ = this.all$.pipe(switchMap(entities => this._generalStats$(entities))); + readonly dossierFileChanges$ = new Subject(); constructor( private readonly _toaster: Toaster, @@ -32,7 +43,7 @@ export class DossiersService extends EntitiesService { timer(CHANGED_CHECK_INTERVAL, CHANGED_CHECK_INTERVAL) .pipe( switchMap(() => this.loadAllIfChanged()), - log(), + tap(changes => this._emitFileChanges(changes)), ) .subscribe(); } @@ -47,8 +58,15 @@ export class DossiersService extends EntitiesService { ); } - loadAllIfChanged(): Observable { - return this.hasChanges$().pipe(switchMap(changed => iif(() => changed, this.loadAll()).pipe(mapTo(changed)))); + loadAllIfChanged(): Observable { + return this.hasChangesDetails$().pipe(switchMap(changes => this.loadAll().pipe(mapTo(changes)))); + } + + hasChangesDetails$(): Observable { + const body = { value: this._lastCheckedForChanges.get('root') ?? '0' }; + return this._post(body, `${this._defaultModelPath}/changes/details`).pipe( + filter(changes => changes.dossierChanges.length > 0), + ); } @Validate() @@ -90,6 +108,10 @@ export class DossiersService extends EntitiesService { return super.delete(body, 'deleted-dossiers/hard-delete', body).toPromise(); } + private _emitFileChanges(changes: ChangesDetails): void { + changes.dossierChanges.filter(change => change.fileChanges).forEach(change => this.dossierFileChanges$.next(change.dossierId)); + } + private _computeStats(entities: List): IDossiersStats { let totalAnalyzedPages = 0; const totalPeople = new Set(); From c400e875f98fc031575a9b42f7ffe826dbc89c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 13 Jan 2022 00:21:25 +0200 Subject: [PATCH 03/97] Handle deleted entities --- apps/red-ui/src/app/app.component.html | 1 + .../dossier-overview-screen.component.ts | 27 ++++++++++--- .../dossiers-listing-screen.component.ts | 11 ++--- .../file-preview-screen.component.ts | 40 ++++++++++++++----- .../entity-services/files-map.service.ts | 10 +++++ apps/red-ui/src/assets/i18n/en.json | 14 +++++++ 6 files changed, 79 insertions(+), 24 deletions(-) diff --git a/apps/red-ui/src/app/app.component.html b/apps/red-ui/src/app/app.component.html index ff64625af..20a8fecb2 100644 --- a/apps/red-ui/src/app/app.component.html +++ b/apps/red-ui/src/app/app.component.html @@ -1,3 +1,4 @@ + diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts index 9aed7b89f..19e8e7e71 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts @@ -15,18 +15,19 @@ import { FileDropOverlayService } from '@upload-download/services/file-drop-over import { FileUploadModel } from '@upload-download/model/file-upload.model'; import { FileUploadService } from '@upload-download/services/file-upload.service'; import { StatusOverlayService } from '@upload-download/services/status-overlay.service'; -import { Observable } from 'rxjs'; +import { Observable, Subscription } from 'rxjs'; import { filter, skip, switchMap, tap } from 'rxjs/operators'; import { convertFiles, Files, handleFileDrop } from '@utils/index'; import { CircleButtonTypes, + CustomError, DefaultListingServices, + ErrorService, ListingComponent, ListingModes, LoadingService, NestedFilter, OnAttach, - OnDetach, TableColumnConfig, TableComponent, WorkflowConfig, @@ -52,7 +53,7 @@ import { DossierStatsService } from '@services/entity-services/dossier-stats.ser providers: [...DefaultListingServices, { provide: ListingComponent, useExisting: forwardRef(() => DossierOverviewScreenComponent) }], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class DossierOverviewScreenComponent extends ListingComponent implements OnInit, OnDestroy, OnDetach, OnAttach { +export class DossierOverviewScreenComponent extends ListingComponent implements OnInit, OnDestroy, OnAttach { readonly listingModes = ListingModes; readonly circleButtonTypes = CircleButtonTypes; readonly tableHeaderLabel = _('dossier-overview.table-header.title'); @@ -73,6 +74,7 @@ export class DossierOverviewScreenComponent extends ListingComponent imple @ViewChild('fileInput', { static: true }) private readonly _fileInput: ElementRef; @ViewChild(TableComponent) private readonly _tableComponent: TableComponent; private _fileAttributeConfigs: IFileAttributeConfig[]; + private readonly _removableSubscriptions = new Subscription(); constructor( protected readonly _injector: Injector, @@ -92,6 +94,7 @@ export class DossierOverviewScreenComponent extends ListingComponent imple readonly configService: ConfigService, private readonly _userPreferenceService: UserPreferenceService, private readonly _fileMapService: FilesMapService, + private readonly _errorService: ErrorService, activatedRoute: ActivatedRoute, ) { super(_injector); @@ -165,11 +168,10 @@ export class DossierOverviewScreenComponent extends ListingComponent imple ngOnAttach() { this._fileDropOverlayService.initFileDropHandling(this.dossierId); + this._setRemovableSubscriptions(); this._tableComponent?.scrollToLastIndex(); } - ngOnDetach() {} - forceReanalysisAction($event: LongPressEvent) { this.analysisForced = !$event.touchEnd && this._userPreferenceService.areDevFeaturesEnabled; } @@ -191,6 +193,21 @@ export class DossierOverviewScreenComponent extends ListingComponent imple (this._fileInput as any).nativeElement.value = null; } + private _setRemovableSubscriptions(): void { + this._removableSubscriptions.add( + this._dossiersService + .getEntityDeleted$(this.dossierId) + .pipe(tap(() => this._handleDeletedDossier())) + .subscribe(), + ); + } + + private _handleDeletedDossier(): void { + this._errorService.set( + new CustomError(_('error.deleted-entity.dossier.label'), _('error.deleted-entity.dossier.action'), 'iqser:expand'), + ); + } + private _updateFileAttributes(): void { this._fileAttributeConfigs = this._fileAttributesService.getFileAttributeConfig(this.currentDossier.dossierTemplateId)?.fileAttributeConfigs || []; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts index 79b8fd977..d70a2ae00 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/screen/dossiers-listing-screen.component.ts @@ -1,11 +1,11 @@ -import { ChangeDetectionStrategy, Component, forwardRef, Injector, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, forwardRef, Injector, OnInit, TemplateRef, ViewChild } from '@angular/core'; import { Dossier } from '@red/domain'; import { UserService } from '@services/user.service'; import { PermissionsService } from '@services/permissions.service'; import { TranslateChartService } from '@services/translate-chart.service'; import { Router } from '@angular/router'; import { DossiersDialogService } from '../../../services/dossiers-dialog.service'; -import { DefaultListingServicesTmp, EntitiesService, ListingComponent, OnAttach, OnDetach, TableComponent } from '@iqser/common-ui'; +import { DefaultListingServicesTmp, EntitiesService, ListingComponent, OnAttach, TableComponent } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { ConfigService } from '../config.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; @@ -23,7 +23,7 @@ import { tap } from 'rxjs/operators'; ], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class DossiersListingScreenComponent extends ListingComponent implements OnInit, OnDestroy, OnAttach, OnDetach { +export class DossiersListingScreenComponent extends ListingComponent implements OnInit, OnAttach { readonly currentUser = this._userService.currentUser; readonly tableColumnConfigs = this._configService.tableConfig; readonly tableHeaderLabel = _('dossier-listing.table-header.title'); @@ -59,14 +59,9 @@ export class DossiersListingScreenComponent extends ListingComponent im } ngOnAttach(): void { - this.ngOnInit(); this._tableComponent?.scrollToLastIndex(); } - ngOnDetach(): void { - this.ngOnDestroy(); - } - openAddDossierDialog(): void { this._dialogService.openDialog('addDossier', null, null, async (addResponse: { dossier: Dossier; addMembers: boolean }) => { await this._router.navigate([addResponse.dossier.routerLink]); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 445d22bbd..4ff4c076a 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -5,7 +5,9 @@ import { PdfViewerComponent } from './components/pdf-viewer/pdf-viewer.component import { AutoUnsubscribe, CircleButtonTypes, + CustomError, Debounce, + ErrorService, FilterService, LoadingService, OnAttach, @@ -43,19 +45,12 @@ import { ViewModeService } from './services/view-mode.service'; import { MultiSelectService } from './services/multi-select.service'; import { DocumentInfoService } from './services/document-info.service'; import { ReanalysisService } from '../../../../services/reanalysis.service'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import Annotation = Core.Annotations.Annotation; import PDFNet = Core.PDFNet; const ALL_HOTKEY_ARRAY = ['Escape', 'F', 'f', 'ArrowUp', 'ArrowDown']; -function diff(first: readonly T[], second: readonly T[]): T[] { - // symmetrical difference between two arrays - const a = new Set(first); - const b = new Set(second); - - return [...first.filter(x => !b.has(x)), ...second.filter(x => !a.has(x))]; -} - @Component({ templateUrl: './file-preview-screen.component.html', styleUrls: ['./file-preview-screen.component.scss'], @@ -108,6 +103,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni private readonly _filesMapService: FilesMapService, private readonly _dossiersService: DossiersService, private readonly _reanalysisService: ReanalysisService, + private readonly _errorService: ErrorService, readonly excludedPagesService: ExcludedPagesService, readonly viewModeService: ViewModeService, readonly multiSelectService: MultiSelectService, @@ -190,7 +186,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni ngOnDetach(): void { this.displayPdfViewer = false; - super.ngOnDestroy(); + super.ngOnDetach(); this._changeDetectorRef.markForCheck(); } @@ -529,10 +525,10 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } private _subscribeToFileUpdates(): void { - this.addSubscription = timer(0, 5000) + this.addActiveScreenSubscription = timer(0, 5000) .pipe(switchMap(() => this._filesService.reload(this.dossierId, this.fileId))) .subscribe(); - this.addSubscription = this._filesMapService.fileReanalysed$ + this.addActiveScreenSubscription = this._filesMapService.fileReanalysed$ .pipe(filter(file => file.fileId === this.fileId)) .subscribe(async file => { if (file.lastProcessed !== this.fileData?.file.lastProcessed) { @@ -541,6 +537,28 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } this._loadingService.stop(); }); + + this.addActiveScreenSubscription = this._dossiersService + .getEntityDeleted$(this.dossierId) + .pipe(tap(() => this._handleDeletedDossier())) + .subscribe(); + + this.addActiveScreenSubscription = this._filesMapService + .watchDeleted$(this.fileId) + .pipe(tap(() => this._handleDeletedFile())) + .subscribe(); + } + + private _handleDeletedDossier(): void { + this._errorService.set( + new CustomError(_('error.deleted-entity.file-dossier.label'), _('error.deleted-entity.file-dossier.action'), 'iqser:expand'), + ); + } + + private _handleDeletedFile(): void { + this._errorService.set( + new CustomError(_('error.deleted-entity.file.label'), _('error.deleted-entity.file.action'), 'iqser:expand'), + ); } private async _loadFileData(file: File): Promise { diff --git a/apps/red-ui/src/app/services/entity-services/files-map.service.ts b/apps/red-ui/src/app/services/entity-services/files-map.service.ts index b861090da..9d04a9d99 100644 --- a/apps/red-ui/src/app/services/entity-services/files-map.service.ts +++ b/apps/red-ui/src/app/services/entity-services/files-map.service.ts @@ -7,6 +7,7 @@ import { filter, startWith } from 'rxjs/operators'; export class FilesMapService { readonly fileReanalysed$ = new Subject(); private readonly _entityChanged$ = new Subject(); + private readonly _entityDeleted$ = new Subject(); private readonly _map = new Map>(); get$(dossierId: string) { @@ -39,6 +40,7 @@ export class FilesMapService { const reanalysedEntities = []; const changedEntities = []; + const deletedEntities = this.get(key).filter(oldEntity => !entities.find(newEntity => newEntity.id === oldEntity.id)); // Keep old object references for unchanged entities const newEntities = entities.map(newEntity => { @@ -67,6 +69,10 @@ export class FilesMapService { for (const file of changedEntities) { this._entityChanged$.next(file); } + + for (const file of deletedEntities) { + this._entityDeleted$.next(file); + } } replace(entity: File) { @@ -83,4 +89,8 @@ export class FilesMapService { startWith(this.get(key, entityId)), ); } + + watchDeleted$(entityId: string): Observable { + return this._entityDeleted$.pipe(filter(entity => entity.id === entityId)); + } } diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index 510458983..fa8141da2 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -938,6 +938,20 @@ "unsaved-changes": "You have unsaved changes. Save or revert before changing the tab." }, "error": { + "deleted-entity": { + "dossier": { + "action": "Back to overview", + "label": "This dossier has been deleted!" + }, + "file-dossier": { + "action": "Back to overview", + "label": "The dossier of this file has been deleted!" + }, + "file": { + "action": "Back to dossier", + "label": "This file has been deleted!" + } + }, "http": { "generic": "Action failed with code {status}" }, From 557f9f17aef6f2f672cd21dbede8d4059e5f3241 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Wed, 12 Jan 2022 23:31:01 +0100 Subject: [PATCH 04/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3216 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 47767ae8d..1cf394330 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.147.0", + "version": "3.148.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 0e85ebbd650282119240f6e49a30be9f567ef119..3bb6a886132a0322f029877d3e6d3d4e1999549e 100644 GIT binary patch delta 3127 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 Ro!c+A{U7a{pPc|u006s_DeC|L delta 3129 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 Tc5dhPi*5f0ABu=a08jt`n*bbm From 7f1035a5377c6c9db6e6aa85bf6dd5a89d3cfe90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 13 Jan 2022 12:53:39 +0200 Subject: [PATCH 05/97] RED-3070 fix --- .../dossier-overview-screen.component.ts | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts index 19e8e7e71..ccf776a8f 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts @@ -15,7 +15,7 @@ import { FileDropOverlayService } from '@upload-download/services/file-drop-over import { FileUploadModel } from '@upload-download/model/file-upload.model'; import { FileUploadService } from '@upload-download/services/file-upload.service'; import { StatusOverlayService } from '@upload-download/services/status-overlay.service'; -import { Observable, Subscription } from 'rxjs'; +import { Observable } from 'rxjs'; import { filter, skip, switchMap, tap } from 'rxjs/operators'; import { convertFiles, Files, handleFileDrop } from '@utils/index'; import { @@ -37,7 +37,6 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { PermissionsService } from '@services/permissions.service'; import { ActivatedRoute, Router } from '@angular/router'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; -import { ConfigService as AppConfigService } from '@services/config.service'; import { ConfigService } from '../config.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; @@ -45,7 +44,6 @@ import { LongPressEvent } from '@shared/directives/long-press.directive'; import { UserPreferenceService } from '@services/user-preference.service'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { FilesService } from '@services/entity-services/files.service'; -import { DossierStatsService } from '@services/entity-services/dossier-stats.service'; @Component({ templateUrl: './dossier-overview-screen.component.html', @@ -74,28 +72,25 @@ export class DossierOverviewScreenComponent extends ListingComponent imple @ViewChild('fileInput', { static: true }) private readonly _fileInput: ElementRef; @ViewChild(TableComponent) private readonly _tableComponent: TableComponent; private _fileAttributeConfigs: IFileAttributeConfig[]; - private readonly _removableSubscriptions = new Subscription(); constructor( protected readonly _injector: Injector, private readonly _router: Router, - readonly permissionsService: PermissionsService, private readonly _loadingService: LoadingService, private readonly _dossiersService: DossiersService, - private readonly _dossierStatsService: DossierStatsService, private readonly _dossierTemplatesService: DossierTemplatesService, - private readonly _appConfigService: AppConfigService, private readonly _fileUploadService: FileUploadService, private readonly _filesService: FilesService, private readonly _statusOverlayService: StatusOverlayService, private readonly _fileDropOverlayService: FileDropOverlayService, private readonly _dossierAttributesService: DossierAttributesService, private readonly _fileAttributesService: FileAttributesService, - readonly configService: ConfigService, private readonly _userPreferenceService: UserPreferenceService, private readonly _fileMapService: FilesMapService, private readonly _errorService: ErrorService, - activatedRoute: ActivatedRoute, + readonly permissionsService: PermissionsService, + readonly configService: ConfigService, + readonly activatedRoute: ActivatedRoute, ) { super(_injector); this.dossierId = activatedRoute.snapshot.paramMap.get('dossierId'); @@ -121,6 +116,8 @@ export class DossierOverviewScreenComponent extends ListingComponent imple async ngOnInit(): Promise { this._loadEntitiesFromState(); + this._setRemovableSubscriptions(); + this.addSubscription = this._fileMapService .get$(this.dossierId) .pipe( @@ -194,12 +191,10 @@ export class DossierOverviewScreenComponent extends ListingComponent imple } private _setRemovableSubscriptions(): void { - this._removableSubscriptions.add( - this._dossiersService - .getEntityDeleted$(this.dossierId) - .pipe(tap(() => this._handleDeletedDossier())) - .subscribe(), - ); + this.addActiveScreenSubscription = this._dossiersService + .getEntityDeleted$(this.dossierId) + .pipe(tap(() => this._handleDeletedDossier())) + .subscribe(); } private _handleDeletedDossier(): void { From dde62588f9a002ea99d7e8e72b34dc717b9d935f Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Thu, 13 Jan 2022 11:57:26 +0100 Subject: [PATCH 06/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3215 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1cf394330..765f18b82 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.148.0", + "version": "3.149.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 3bb6a886132a0322f029877d3e6d3d4e1999549e..789eb65e0728612e3fe08ab4ef6c911e6520439a 100644 GIT binary patch delta 3145 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 delta 3158 zcmV-c45{;v8IBo$ABzY80000000ZqC+j8T!b)Wqes59-@sVMU*$?{~o$uwzSI-MqI z`_dPX1Vz*o$&ldM-i~Mb8-40aJ|l1YC;gHhfFK2spf2m&W+Lpwk^r28bHlj+$o!_n z8Ql~XOUahpy!s)U4Q(0N{L>kHcI}npJB#HaaF>Di%69C3z;#}s;0K{*(3+az3ZWlk zsh?w;>-v{JYW9?o`unnm)AjFpPH@)$kJ0w(zalY?m>io&b^T#$a0M^?DgAp6sJqj@ z=ep4EECQI0?C+OVbNhws|4o$QswNCw{`KoGtkvb+#T&XUi;AJ9%C0U`#>#qqbCVP~ ztLK}d*klBMm$aTo#r6ga!u?%>w={eDosLKn>}n&_QsxhwtZ*MeDOCB ze;4BKQv6-PUq{Sw#2iP=al{-)%yIaf-^8>oGyL>P{ea8M>${6Nrw?aVN^ndn^sftq z-dQw{$>SP1cknAE6xLrOKd{TkyNl-m#Cjc)q^O90fDCbTzp08QkFBW4ifWBMa#x<~ zJ7YMMIs$|X!>Z{!vPKJ^FCe=fK*+bXg(!VN3<@3N>VqXqO-B*TopC5Lg(+fOT@B#XsL zauvsawtvl$hDF8Yh@A2f)kQ{Q^ik}^L5z2UR)u5Q)WCU5mqE@+lAK7(dJTpUk+jG< z#TO-xD0^BXd%ipo+3aO253NPB3rE_8W&_UZ7{!i-U*b5X`34ZUAa7@R6qbRgo8gdTVg>2R)+jG>u@A?yr{;CC0ZnDZDw{B)5$1}W5RRsQ zt>=C4uMuu>=(_TCGcy3rl^+(3CP`8C)S;8y*3ysdoT8&Uvfe9d2Gc{&X`V~_=p3KW zPcOhtMPuH7|bT&c^t$bkJ8!(|9xs%{1^>-G`D9gxf zVj{S;Nc6BGYG)2(sk=HdmU;_4)Y&JHhwupmVxyx!VXfAEowB0h@Wu|7kw<35Bq}Q0 zx^&Pzskm&WscN$E?&uA1kK{6{!TCF%ZJs?cBz04}_8t@Dz!^5djx(YON_9nlb?!!w z$O}V6cK2-!f!Lsr9r_Q^N9rTKr>1NIWTCp3aUl4xKxcB8`9Ln8G90B9 zjZ#K8CX#|lEQ!}+`KpQ1q{;6^5Z2)r(^R-U{O2LbVP%>lp8RwS79pvU?ESYG8te ze83qSp}d_$xr`K)_YJ6(5fnnk8G?y&scg~bF=a(Hv{if3T7r`#1zLZBc=HT-iLh@qYrM$>bXC+*(PFC$hBDGBG_g zdTvYTXw{C<6hc+T!(cn0{;~00#6OY>-JecODhxlQ`}$}3MPMx0n4J_)S#iVqQE<3 zWMWT-StHI<2BTKB34uG;o*~y0e|*y{ca0!HfrzLM;wTc%a)`R^Z!tTrCy>sN<2dRh z$QN;#kr=G+*1KI{TOG^`)=#h)|FHOG<=*Nx!AYpj4H=~08%t!rYt;_*2^`i=oJ3>q z0arO6h{M>{2zY-;VZAjH9~!O+W1O=fBEf&Hw%QZqS;d0@OpK1tjp?Nc{RE6lxI8;OFyz z+Id!N3d4UH5rpkFH~Ce2DTC!=d5nf7`cthk@t%{Mswk!Go@*|z#*T{$}bq&aDB|cruAy3&5 z>n$Y@;#Gw@u{|bz9?hZK&A1lrCPSIS59EJF=H!{L&ARS^U?h@u8_u+!;>O3UV}mV@ z&2DI)x9vn>AL0NYDJmeWfs(t5a7~8P9er@H+pVU91dYSpJ&ew$V$u8T_k`PUwdUt_ z5O4*{LgmFT#`+{~#t+LHz7Bk2v>a>GHEYuyXj7PmuwLon3%5@U)c7SsM1-^G z3QBlnAqT?6waNfWJxP4~ttY(wDT!`>aLuIN=%_*82$TNTc-Ape=}MO`Dm&^*jkr>w zt(2s-W}`1M5t3B@RqD>g?S0-{9NvE#o}5hD#c(S=cR1P)U^0FhthmeBx|G2Pu?87j z$$O?EvDi~duE$wqe>5pB#ftEsz~uDhqdKYcvHK2aJ9nhy2T+jly~c$ChSi=v`1TA^ zff-r^{OG~)uSbi4=1NWY21jZ(ZuPjAKdhtCfIJama&7}d5rAWZSc$U^X_J4~gzX|} zk}3Oy&hTu`|%Jy=l3fADt-dx;Uj_y9SRsoMd}eGoi^|0Qn_ zRNO~AJy54lzBte)9rw^+0CVK~f&n=%epWEV_mT`+*KYTSV8G|zw*#jLvM z%c_V-4Av(~w0X@)dEnLUM2dgsm{OFn>~!(>=MdjCr0(Cy87riI#%sjlQE(LZU$%%d z$S{8-!LF8-&ntU3n$SnS4`tCQie>=WgREFmi8kLV<)Dbb_P3% Date: Thu, 13 Jan 2022 12:55:42 +0200 Subject: [PATCH 07/97] added analysisNumber for delta --- apps/red-ui/src/app/models/file/file-data.model.ts | 10 +++++----- libs/red-domain/src/lib/redaction-log/change.ts | 1 + libs/red-domain/src/lib/redaction-log/redaction-log.ts | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/red-ui/src/app/models/file/file-data.model.ts b/apps/red-ui/src/app/models/file/file-data.model.ts index 8c5f7e34b..10ce0ec5c 100644 --- a/apps/red-ui/src/app/models/file/file-data.model.ts +++ b/apps/red-ui/src/app/models/file/file-data.model.ts @@ -1,4 +1,4 @@ -import { Dictionary, File, IRedactionLog, IRedactionLogEntry, IViewedPage, User, ViewMode } from '@red/domain'; +import { Dictionary, File, IRedactionLog, IRedactionLogEntry, IViewedPage, ViewMode } from '@red/domain'; import { AnnotationWrapper } from './annotation.wrapper'; import { RedactionLogEntryWrapper } from './redaction-log-entry.wrapper'; import * as moment from 'moment'; @@ -122,10 +122,10 @@ export class FileDataModel { private _isChangeLogEntry(redactionLogEntry: IRedactionLogEntry, wrapper: RedactionLogEntryWrapper) { if (this.file.numberOfAnalyses > 1) { - redactionLogEntry.changes.sort((a, b) => moment(a.dateTime).valueOf() - moment(b.dateTime).valueOf()); + var viableChanges = redactionLogEntry.changes.filter(c => c.analysisNumber > 1); + viableChanges.sort((a, b) => moment(a.dateTime).valueOf() - moment(b.dateTime).valueOf()); - const lastChange = - redactionLogEntry.changes.length >= 1 ? redactionLogEntry.changes[redactionLogEntry.changes.length - 1] : undefined; + const lastChange = viableChanges.length >= 1 ? viableChanges[viableChanges.length - 1] : undefined; const page = redactionLogEntry.positions?.[0].page; const viewedPage = this.viewedPages.filter(p => p.page === page).pop(); @@ -134,7 +134,7 @@ export class FileDataModel { if (viewedPage) { const viewTime = moment(viewedPage.viewedTime).valueOf() - FileDataModel.DELTA_VIEW_TIME; // these are all unseen changes - const relevantChanges = redactionLogEntry.changes.filter(change => moment(change.dateTime).valueOf() > viewTime); + const relevantChanges = viableChanges.filter(change => moment(change.dateTime).valueOf() > viewTime); // at least one unseen change if (relevantChanges.length > 0) { // at least 1 relevant change diff --git a/libs/red-domain/src/lib/redaction-log/change.ts b/libs/red-domain/src/lib/redaction-log/change.ts index 341b4cfb9..27b3ee0f4 100644 --- a/libs/red-domain/src/lib/redaction-log/change.ts +++ b/libs/red-domain/src/lib/redaction-log/change.ts @@ -1,5 +1,6 @@ export interface IChange { dateTime?: string; + analysisNumber?: number; type?: ChangeType; } diff --git a/libs/red-domain/src/lib/redaction-log/redaction-log.ts b/libs/red-domain/src/lib/redaction-log/redaction-log.ts index b5de4258e..9f7952929 100644 --- a/libs/red-domain/src/lib/redaction-log/redaction-log.ts +++ b/libs/red-domain/src/lib/redaction-log/redaction-log.ts @@ -3,6 +3,7 @@ import { IRedactionLogEntry } from './redaction-log-entry'; export interface IRedactionLog { analysisVersion?: number; + analysisNumber?: number; dictionaryVersion?: number; dossierDictionaryVersion?: number; legalBasis?: ILegalBasis[]; From 78b24df8d7551c84a5a1de769c8fe13898533869 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Thu, 13 Jan 2022 12:01:52 +0100 Subject: [PATCH 08/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3215 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 765f18b82..7e6e446bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.149.0", + "version": "3.150.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 789eb65e0728612e3fe08ab4ef6c911e6520439a..f90a6194b6cc62864bb2913fb7638cf28f251602 100644 GIT binary patch delta 3095 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 From 4ddd346f9038c51054cfa3bc853634f0509eebfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 13 Jan 2022 13:06:11 +0200 Subject: [PATCH 09/97] RED-3176: Fixed missing email in update profile request --- .../user-profile-screen.component.ts | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/red-ui/src/app/modules/account/screens/user-profile/user-profile-screen/user-profile-screen.component.ts b/apps/red-ui/src/app/modules/account/screens/user-profile/user-profile-screen/user-profile-screen.component.ts index 8c3d896bf..1f4ec6c23 100644 --- a/apps/red-ui/src/app/modules/account/screens/user-profile/user-profile-screen/user-profile-screen.component.ts +++ b/apps/red-ui/src/app/modules/account/screens/user-profile/user-profile-screen/user-profile-screen.component.ts @@ -40,15 +40,6 @@ export class UserProfileScreenComponent implements OnInit { ); } - private _getForm(): FormGroup { - return this._formBuilder.group({ - email: [undefined, [Validators.required, Validators.email]], - firstName: [undefined], - lastName: [undefined], - language: [undefined], - }); - } - get languageChanged(): boolean { return this._profileModel['language'] !== this.form.get('language').value; } @@ -82,7 +73,7 @@ export class UserProfileScreenComponent implements OnInit { } if (this.profileChanged) { - const value = this.form.value as IProfile; + const value = this.form.getRawValue() as IProfile; delete value.language; await this._userService @@ -98,6 +89,15 @@ export class UserProfileScreenComponent implements OnInit { this._initializeForm(); } + private _getForm(): FormGroup { + return this._formBuilder.group({ + email: [undefined, [Validators.required, Validators.email]], + firstName: [undefined], + lastName: [undefined], + language: [undefined], + }); + } + private _initializeForm(): void { try { this._profileModel = { From fafc7edd43ce9e9554d0716b4fc9f8bde59487f6 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Thu, 13 Jan 2022 12:10:00 +0100 Subject: [PATCH 10/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3215 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7e6e446bf..761a18bc5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.150.0", + "version": "3.151.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index f90a6194b6cc62864bb2913fb7638cf28f251602..6c6d426603f593034d91b3f5fc42cc10ec3d1458 100644 GIT binary patch delta 2989 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 delta 2990 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 Date: Thu, 13 Jan 2022 13:11:34 +0200 Subject: [PATCH 11/97] RED-3179: Hide email notification options --- .../screens/notifications/constants.ts | 43 ------------------ .../notifications-screen.component.html | 26 +++++------ .../notifications-screen.component.ts | 28 +++++++----- .../lib/notifications-preferences/types.ts | 44 +++++++++++++++++++ 4 files changed, 73 insertions(+), 68 deletions(-) delete mode 100644 apps/red-ui/src/app/modules/account/screens/notifications/constants.ts diff --git a/apps/red-ui/src/app/modules/account/screens/notifications/constants.ts b/apps/red-ui/src/app/modules/account/screens/notifications/constants.ts deleted file mode 100644 index a6649c927..000000000 --- a/apps/red-ui/src/app/modules/account/screens/notifications/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -export const NotificationCategories = { - inAppNotifications: 'inAppNotifications', - emailNotifications: 'emailNotifications', -} as const; - -export const NotificationCategoriesValues = Object.values(NotificationCategories); - -export const DossierNotificationsTypes = { - dossierOwnerSet: 'DOSSIER_OWNER_SET', - dossierOwnerRemoved: 'DOSSIER_OWNER_REMOVED', - userBecomseDossierMember: 'USER_BECOMES_DOSSIER_MEMBER', - userRemovedAsDossierMember: 'USER_REMOVED_AS_DOSSIER_MEMBER', - userPromotedToApprover: 'USER_PROMOTED_TO_APPROVER', - userDegradedToReviewer: 'USER_DEGRADED_TO_REVIEWER', - dossierOwnerDeleted: 'DOSSIER_OWNER_DELETED', - dossierDeleted: 'DOSSIER_DELETED', -} as const; - -export const DossierNotificationsTypesValues = Object.values(DossierNotificationsTypes); - -export const DocumentNotificationsTypes = { - assignReviewer: 'ASSIGN_REVIEWER', - assignApprover: 'ASSIGN_APPROVER', - unassignedFromFile: 'UNASSIGNED_FROM_FILE', - // documentUnderReview: 'DOCUMENT_UNDER_REVIEW', - // documentUnderApproval: 'DOCUMENT_UNDER_APPROVAL', - documentApproved: 'DOCUMENT_APPROVED', -} as const; - -export const DocumentNotificationsTypesValues = Object.values(DocumentNotificationsTypes); - -export const OtherNotificationsTypes = { - downloadReady: 'DOWNLOAD_READY', -} as const; - -export const OtherNotificationsTypesValues = Object.values(OtherNotificationsTypes); - -export const NotificationGroupsKeys = ['dossier', 'document', 'other'] as const; -export const NotificationGroupsValues = [ - DossierNotificationsTypesValues, - DocumentNotificationsTypesValues, - OtherNotificationsTypesValues, -] as const; diff --git a/apps/red-ui/src/app/modules/account/screens/notifications/notifications-screen/notifications-screen.component.html b/apps/red-ui/src/app/modules/account/screens/notifications/notifications-screen/notifications-screen.component.html index 8c76795dc..94a52a5c3 100644 --- a/apps/red-ui/src/app/modules/account/screens/notifications/notifications-screen/notifications-screen.component.html +++ b/apps/red-ui/src/app/modules/account/screens/notifications/notifications-screen/notifications-screen.component.html @@ -7,25 +7,25 @@ }} -
-
-
- - - {{ translations[type.toLocaleLowerCase()] | translate }} -
-
+
+ + + + + + +
-
-
+
+
{{ translations[preference] | translate }} diff --git a/apps/red-ui/src/app/modules/account/screens/notifications/notifications-screen/notifications-screen.component.ts b/apps/red-ui/src/app/modules/account/screens/notifications/notifications-screen/notifications-screen.component.ts index c2003cddb..73657ced5 100644 --- a/apps/red-ui/src/app/modules/account/screens/notifications/notifications-screen/notifications-screen.component.ts +++ b/apps/red-ui/src/app/modules/account/screens/notifications/notifications-screen/notifications-screen.component.ts @@ -4,8 +4,12 @@ import { notificationsTranslations } from '../../../translations/notifications-t import { NotificationPreferencesService } from '../../../services/notification-preferences.service'; import { LoadingService, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { NotificationCategoriesValues, NotificationGroupsKeys, NotificationGroupsValues } from '../constants'; -import { EmailNotificationScheduleTypesValues } from '@red/domain'; +import { + EmailNotificationScheduleTypesValues, + NotificationCategoriesValues, + NotificationGroupsKeys, + NotificationGroupsValues, +} from '@red/domain'; @Component({ selector: 'redaction-notifications-screen', @@ -33,16 +37,6 @@ export class NotificationsScreenComponent implements OnInit { await this._initializeForm(); } - private _getForm(): FormGroup { - return this._formBuilder.group({ - inAppNotificationsEnabled: [undefined], - emailNotificationsEnabled: [undefined], - emailNotificationType: [undefined], - emailNotifications: [undefined], - inAppNotifications: [undefined], - }); - } - isCategoryActive(category: string) { return this.formGroup.get(`${category}Enabled`).value; } @@ -80,6 +74,16 @@ export class NotificationsScreenComponent implements OnInit { this._loadingService.stop(); } + private _getForm(): FormGroup { + return this._formBuilder.group({ + inAppNotificationsEnabled: [undefined], + emailNotificationsEnabled: [undefined], + emailNotificationType: [undefined], + emailNotifications: [undefined], + inAppNotifications: [undefined], + }); + } + private async _initializeForm() { this._loadingService.start(); diff --git a/libs/red-domain/src/lib/notifications-preferences/types.ts b/libs/red-domain/src/lib/notifications-preferences/types.ts index 31c6061e1..a0e1a2d23 100644 --- a/libs/red-domain/src/lib/notifications-preferences/types.ts +++ b/libs/red-domain/src/lib/notifications-preferences/types.ts @@ -6,3 +6,47 @@ export const EmailNotificationScheduleTypes = { export type EmailNotificationScheduleType = keyof typeof EmailNotificationScheduleTypes; export const EmailNotificationScheduleTypesValues = Object.values(EmailNotificationScheduleTypes); + +export const NotificationCategories = { + inAppNotifications: 'inAppNotifications', + // emailNotifications: 'emailNotifications', +} as const; + +export const NotificationCategoriesValues = Object.values(NotificationCategories); + +export const DossierNotificationsTypes = { + dossierOwnerSet: 'DOSSIER_OWNER_SET', + dossierOwnerRemoved: 'DOSSIER_OWNER_REMOVED', + userBecomseDossierMember: 'USER_BECOMES_DOSSIER_MEMBER', + userRemovedAsDossierMember: 'USER_REMOVED_AS_DOSSIER_MEMBER', + userPromotedToApprover: 'USER_PROMOTED_TO_APPROVER', + userDegradedToReviewer: 'USER_DEGRADED_TO_REVIEWER', + dossierOwnerDeleted: 'DOSSIER_OWNER_DELETED', + dossierDeleted: 'DOSSIER_DELETED', +} as const; + +export const DossierNotificationsTypesValues = Object.values(DossierNotificationsTypes); + +export const DocumentNotificationsTypes = { + assignReviewer: 'ASSIGN_REVIEWER', + assignApprover: 'ASSIGN_APPROVER', + unassignedFromFile: 'UNASSIGNED_FROM_FILE', + // documentUnderReview: 'DOCUMENT_UNDER_REVIEW', + // documentUnderApproval: 'DOCUMENT_UNDER_APPROVAL', + documentApproved: 'DOCUMENT_APPROVED', +} as const; + +export const DocumentNotificationsTypesValues = Object.values(DocumentNotificationsTypes); + +export const OtherNotificationsTypes = { + downloadReady: 'DOWNLOAD_READY', +} as const; + +export const OtherNotificationsTypesValues = Object.values(OtherNotificationsTypes); + +export const NotificationGroupsKeys = ['dossier', 'document', 'other'] as const; +export const NotificationGroupsValues = [ + DossierNotificationsTypesValues, + DocumentNotificationsTypesValues, + OtherNotificationsTypesValues, +] as const; From 4fcebff53855c88e0c791bb8871517a9bc4ae8b2 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Thu, 13 Jan 2022 12:15:26 +0100 Subject: [PATCH 12/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3215 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 761a18bc5..4b603f2fb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.151.0", + "version": "3.152.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 6c6d426603f593034d91b3f5fc42cc10ec3d1458..26430548452a902bccc1d1de779fedf58b62a595 100644 GIT binary patch delta 3125 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 Pzu5MFgx3<008jt`-zo{I delta 3126 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 Q?HAkr54AHwQUFi@0B(I0QUCw| From d390e160a7d90a793b74a2e17e83eb27242fe252 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Fri, 14 Jan 2022 17:00:52 +0200 Subject: [PATCH 13/97] reccomendation issue --- apps/red-ui/src/app/models/file/annotation.wrapper.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/apps/red-ui/src/app/models/file/annotation.wrapper.ts b/apps/red-ui/src/app/models/file/annotation.wrapper.ts index 94bd2ad99..9ba422ab9 100644 --- a/apps/red-ui/src/app/models/file/annotation.wrapper.ts +++ b/apps/red-ui/src/app/models/file/annotation.wrapper.ts @@ -283,11 +283,7 @@ export class AnnotationWrapper { private static _setSuperType(annotationWrapper: AnnotationWrapper, redactionLogEntryWrapper: RedactionLogEntryWrapper) { if (redactionLogEntryWrapper.recommendation) { - if (redactionLogEntryWrapper.redacted) { - annotationWrapper.superType = 'recommendation'; - } else { - annotationWrapper.superType = 'skipped'; - } + annotationWrapper.superType = 'recommendation'; return; } From f70567b8c703851eb824a3383bc17d5e9d263c85 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Sat, 15 Jan 2022 14:36:56 +0200 Subject: [PATCH 14/97] fixed critical issues for release --- .../user-details/user-details.component.ts | 3 +- .../edit-dossier-dictionary.component.html | 22 ++++++++--- .../edit-dossier-dictionary.component.scss | 8 ++++ .../edit-dossier-dictionary.component.ts | 39 +++++++++++++++++-- .../manual-annotation-dialog.component.ts | 22 ++++++++--- apps/red-ui/src/assets/config/config.json | 4 +- 6 files changed, 81 insertions(+), 17 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts index ec82eb9d5..0320cf449 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts @@ -134,13 +134,14 @@ export class UserDetailsComponent extends AutoUnsubscribe implements OnChanges, } private _getForm(): FormGroup { + console.log(this.user); return this._formBuilder.group({ firstName: [this.user?.firstName, Validators.required], lastName: [this.user?.lastName, Validators.required], email: [ { value: this.user?.email, - disabled: !!this.user, + disabled: !!this.user?.email, }, [Validators.required, Validators.email], ], diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html index 6cd5f9d5f..d30210b13 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html @@ -1,12 +1,22 @@
-
-
{{ dossierDictionary?.label }}
-
-
- - {{ 'edit-dossier-dialog.dictionary.entries' | translate: { length: (dossierDictionary?.entries || []).length } }} +
+
+
{{ dossierDictionary?.label }}
+
+
+ + {{ 'edit-dossier-dialog.dictionary.entries' | translate: { length: (dossierDictionary?.entries || []).length } }} +
+ +
+
+ + {{ 'add-edit-dictionary.form.add-to-dictionary-action' | translate }} + +
+
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.scss b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.scss index 84c64d950..db87a56e3 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.scss +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.scss @@ -2,6 +2,14 @@ display: flex; justify-content: space-between; + .header-left { + display: flex; + + .iqser-input-group { + margin-left: 24px; + } + } + .display-name { display: flex; align-items: center; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts index 2e309c464..c56b67c9b 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts @@ -7,6 +7,7 @@ import { DictionaryService } from '@shared/services/dictionary.service'; import { CircleButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { FormBuilder, FormGroup } from '@angular/forms'; @Component({ selector: 'redaction-edit-dossier-dictionary', @@ -15,10 +16,13 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; }) export class EditDossierDictionaryComponent implements EditDossierSectionInterface, OnInit { @Input() dossier: Dossier; + + form: FormGroup; canEdit = false; - readonly circleButtonTypes = CircleButtonTypes; dossierDictionary: IDictionary; + readonly circleButtonTypes = CircleButtonTypes; + @ViewChild(DictionaryManagerComponent, { static: false }) private readonly _dictionaryManager: DictionaryManagerComponent; constructor( @@ -26,11 +30,20 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa private readonly _dictionaryService: DictionaryService, private readonly _permissionsService: PermissionsService, private readonly _loadingService: LoadingService, + private readonly _formBuilder: FormBuilder, private readonly _toaster: Toaster, ) {} + get formChanged() { + if (this.form) { + return this.form.get('addToDictionaryAction').value !== this.dossierDictionary.addToDictionaryAction; + } + + return false; + } + get changed(): boolean { - return this._dictionaryManager.editor.hasChanges; + return this._dictionaryManager.editor.hasChanges || this.formChanged; } get disabled(): boolean { @@ -38,13 +51,14 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa } get valid(): boolean { - return this._dictionaryManager.editor.hasChanges; + return this._dictionaryManager.editor.hasChanges || this.formChanged; } async ngOnInit() { this._loadingService.start(); this.canEdit = this._permissionsService.isDossierMember(this.dossier); await this._updateDossierDictionary(); + this.form = this._getForm(); this._loadingService.stop(); } @@ -66,6 +80,15 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa async save(): EditDossierSaveResult { try { + const dictionary: IDictionary = { + ...this.dossierDictionary, + type: 'dossier_redaction', + addToDictionaryAction: this.form.get('addToDictionaryAction').value, + }; + await this._dictionaryService + .updateDictionary(dictionary, this.dossier.dossierTemplateId, 'dossier_redaction', this.dossier.id) + .toPromise(); + await this._dictionaryService .saveEntries( this._dictionaryManager.editor.currentEntries, @@ -76,6 +99,7 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa false, ) .toPromise(); + await this._updateDossierDictionary(); return { success: true }; } catch (error) { @@ -85,6 +109,15 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa revert() { this._dictionaryManager.revert(); + this.form.reset({ + addToDictionaryAction: this.dossierDictionary.addToDictionaryAction, + }); + } + + private _getForm(): FormGroup { + return this._formBuilder.group({ + addToDictionaryAction: [this.dossierDictionary.addToDictionaryAction], + }); } private async _updateDossierDictionary() { diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts index 710b4fc6b..bb1727d50 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts @@ -9,6 +9,7 @@ import { PermissionsService } from '@services/permissions.service'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { Dictionary, Dossier, File, IAddRedactionRequest } from '@red/domain'; import { DossiersService } from '@services/entity-services/dossiers.service'; +import { DictionaryService } from '@shared/services/dictionary.service'; export interface LegalBasisOption { label?: string; @@ -40,6 +41,7 @@ export class ManualAnnotationDialogComponent implements OnInit { private readonly _manualAnnotationService: ManualAnnotationService, private readonly _permissionsService: PermissionsService, private readonly _dossiersService: DossiersService, + private readonly _dictionaryService: DictionaryService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: { manualRedactionEntryWrapper: ManualRedactionEntryWrapper; file: File }, ) { @@ -50,8 +52,6 @@ export class ManualAnnotationDialogComponent implements OnInit { this.isDictionaryRequest = this.data.manualRedactionEntryWrapper.type === 'DICTIONARY' || this.isFalsePositiveRequest; this.redactionForm = this._getForm(); - - this.possibleDictionaries = this._possibleDictionaries; } get title() { @@ -66,10 +66,14 @@ export class ManualAnnotationDialogComponent implements OnInit { return null; } - private get _possibleDictionaries(): Dictionary[] { + private async _getPossibleDictionaries(): Promise { const possibleDictionaries: Dictionary[] = []; const dossier = this._dossier; + const dossierDictionary = await this._dictionaryService + .getForType(dossier.dossierTemplateId, 'dossier_redaction', dossier.dossierId) + .toPromise(); + for (const key of Object.keys(this._appStateService.dictionaryData[dossier.dossierTemplateId])) { const dictionaryData = this._appStateService.getDictionary(key, dossier.dossierTemplateId); if (!dictionaryData.virtual && dictionaryData.addToDictionaryAction) { @@ -77,14 +81,20 @@ export class ManualAnnotationDialogComponent implements OnInit { } } + if (dossierDictionary.addToDictionaryAction) { + // TODO fix this in the backend + possibleDictionaries.push(new Dictionary({ ...dossierDictionary, type: 'dossier_redaction' })); + } + possibleDictionaries.sort((a, b) => a.label.localeCompare(b.label)); return possibleDictionaries; } async ngOnInit() { - const data = await this._justificationsService.getForDossierTemplate(this._dossier.dossierTemplateId).toPromise(); + this.possibleDictionaries = await this._getPossibleDictionaries(); + const data = await this._justificationsService.getForDossierTemplate(this._dossier.dossierTemplateId).toPromise(); this.legalOptions = data.map(lbm => ({ legalBasis: lbm.reason, description: lbm.description, @@ -129,8 +139,10 @@ export class ManualAnnotationDialogComponent implements OnInit { addRedactionRequest.reason = legalOption.description; addRedactionRequest.legalBasis = legalOption.legalBasis; } - addRedactionRequest.addToDictionary = this.isDictionaryRequest; // todo fix this in backend + addRedactionRequest.addToDictionary = this.isDictionaryRequest && addRedactionRequest.type !== 'dossier_redaction'; + addRedactionRequest.addToDossierDictionary = this.isDictionaryRequest && addRedactionRequest.type === 'dossier_redaction'; + if (!addRedactionRequest.reason) { addRedactionRequest.reason = 'Dictionary Request'; } diff --git a/apps/red-ui/src/assets/config/config.json b/apps/red-ui/src/assets/config/config.json index c5a78443c..4c6dd7e9a 100644 --- a/apps/red-ui/src/assets/config/config.json +++ b/apps/red-ui/src/assets/config/config.json @@ -1,7 +1,7 @@ { "ADMIN_CONTACT_NAME": null, "ADMIN_CONTACT_URL": null, - "API_URL": "https://dev-08.iqser.cloud/redaction-gateway-v1", + "API_URL": "https://aks-staging.iqser.cloud/redaction-gateway-v1", "APP_NAME": "RedactManager", "AUTO_READ_TIME": 1.5, "BACKEND_APP_VERSION": "4.4.40", @@ -17,7 +17,7 @@ "MAX_RETRIES_ON_SERVER_ERROR": 3, "OAUTH_CLIENT_ID": "redaction", "OAUTH_IDP_HINT": null, - "OAUTH_URL": "https://dev-08.iqser.cloud/auth/realms/redaction", + "OAUTH_URL": "https://aks-staging.iqser.cloud/auth/realms/redaction", "RECENT_PERIOD_IN_HOURS": 24, "SELECTION_MODE": "structural" } From 6a64f49438c4fbae2949efe850b92610b13a5a08 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Sat, 15 Jan 2022 13:40:59 +0100 Subject: [PATCH 15/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4b603f2fb..c856a3066 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.152.0", + "version": "3.153.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 26430548452a902bccc1d1de779fedf58b62a595..983f4815b53d4d3c2254a6be9266725a42076b52 100644 GIT binary patch delta 3127 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

H0Z!QjR4Np!c?P9nU zpF14w2QV2w4OZOcY+cG=gjjmtsZuPhfKT@==}C`Ph92 zw4FOr@&hQy_+H~e0mEufAAEZTslW^^0)F)1_}8PwKy#%ge1ju38@GDg%OBR!Xn#PS z2r)UgfuRV%u|cfFS%Yv3E28EszUM{Fym>w*s<3IR2 zg}uaxV0?g_$<*xt<~|4>!vB&t2rBL)o*t;vCtn=sla706Fn~GoeZhd77e6Z);(JL3 zt!uY?L@?lU@7sY>1lbqpCke9m$A4v2L?j056D8WbW~4mu>UJW8DyA0l3-WM%IB568%^jV--oj3ltoM%qS2bcVubaW z_rER^@zK09_uQLG=G(X0Yjnw9Ya{+z`*MbA_^@hHQQ>!g;$u<4Uh2${_$|+J%kR7Vt}E!fg05@PcP(UB*?m@I?6Qs%T}%6shp`h=PdkI1MDoE$uOsOX zL*I$d-Ji$G8)EF9*&f6gXc!gU4>5YjV)Q)~qhdNQ4EWDu%Nr$qrxgtn<2ZNR7kmVW zIf8YAN0+~o2$CXdrY^mI>M;Mc<=oEg+|KRX&h6aJ?cC1o+|KRX&h6aJ?cC1o+|KRX R&g~c5{tvz-$OQmU000uS7mfe` delta 3127 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 Rc5c7e_J4%e5|IE<001je3zPr= From bfea73bb8777294e8a1cac21cfa4d44c947dfeee Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Sat, 15 Jan 2022 18:23:13 +0200 Subject: [PATCH 16/97] fixed issues --- .../components/file-workload/file-workload.component.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html index 7111f4d66..157c9399d 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html @@ -38,13 +38,6 @@

-
-
- - -
-
-
Date: Sat, 15 Jan 2022 18:25:35 +0200 Subject: [PATCH 17/97] fixed dossier stats for user-admin --- .../app/services/entity-services/dossier-stats.service.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/red-ui/src/app/services/entity-services/dossier-stats.service.ts b/apps/red-ui/src/app/services/entity-services/dossier-stats.service.ts index aeb845a64..dd659f3c3 100644 --- a/apps/red-ui/src/app/services/entity-services/dossier-stats.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dossier-stats.service.ts @@ -1,9 +1,10 @@ import { Injectable } from '@angular/core'; import { HeadersConfiguration, mapEach, RequiredParam, Validate } from '@iqser/common-ui'; -import { BehaviorSubject, Observable } from 'rxjs'; +import { BehaviorSubject, Observable, of } from 'rxjs'; import { DossierStats, IDossierStats } from '@red/domain'; import { HttpClient } from '@angular/common/http'; import { tap } from 'rxjs/operators'; +import { UserService } from '@services/user.service'; @Injectable({ providedIn: 'root', @@ -11,10 +12,13 @@ import { tap } from 'rxjs/operators'; export class DossierStatsService { private readonly _map = new Map>(); - constructor(private readonly _http: HttpClient) {} + constructor(private readonly _http: HttpClient, private readonly _userService: UserService) {} @Validate() getFor(@RequiredParam() dossierIds: string[]): Observable { + if (!this._userService.currentUser.isUser) { + return of([]); + } const request = this._http.post(`/${encodeURI('dossier-stats')}`, dossierIds, { headers: HeadersConfiguration.getHeaders(), observe: 'body', From dff1a08c129a8cd7025c58035af29040a71af968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Sat, 15 Jan 2022 18:23:44 +0200 Subject: [PATCH 18/97] Disable/enable tooltips icons --- .../components/pdf-viewer/pdf-viewer.component.ts | 11 ++++++++++- .../general/pdftron-action-disable-tooltips.svg | 12 ++++++++++++ ...oltips.svg => pdftron-action-enable-tooltips.svg} | 0 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 apps/red-ui/src/assets/icons/general/pdftron-action-disable-tooltips.svg rename apps/red-ui/src/assets/icons/general/{pdftron-action-toggle-tooltips.svg => pdftron-action-enable-tooltips.svg} (100%) diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts index cbd7d8ccc..36310686b 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts @@ -105,6 +105,14 @@ export class PdfViewerComponent implements OnInit, OnChanges { }); } + private get _toggleTooltipsIcon(): string { + return this._convertPath( + this._userPreferenceService.getFilePreviewTooltipsPreference() + ? '/assets/icons/general/pdftron-action-enable-tooltips.svg' + : '/assets/icons/general/pdftron-action-disable-tooltips.svg', + ); + } + async ngOnInit() { this._setReadyAndInitialState = this._setReadyAndInitialState.bind(this); await this.loadViewer(); @@ -354,13 +362,14 @@ export class PdfViewerComponent implements OnInit, OnChanges { type: 'actionButton', element: 'tooltips', dataElement: dataElements.TOGGLE_TOOLTIPS, - img: this._convertPath('/assets/icons/general/pdftron-action-toggle-tooltips.svg'), + img: this._toggleTooltipsIcon, title: this._toggleTooltipsBtnTitle, onClick: async () => { await this._userPreferenceService.toggleFilePreviewTooltipsPreference(); this._updateTooltipsVisibility(); this.instance.UI.updateElement(dataElements.TOGGLE_TOOLTIPS, { title: this._toggleTooltipsBtnTitle, + img: this._toggleTooltipsIcon, }); }, }, diff --git a/apps/red-ui/src/assets/icons/general/pdftron-action-disable-tooltips.svg b/apps/red-ui/src/assets/icons/general/pdftron-action-disable-tooltips.svg new file mode 100644 index 000000000..08a743375 --- /dev/null +++ b/apps/red-ui/src/assets/icons/general/pdftron-action-disable-tooltips.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/apps/red-ui/src/assets/icons/general/pdftron-action-toggle-tooltips.svg b/apps/red-ui/src/assets/icons/general/pdftron-action-enable-tooltips.svg similarity index 100% rename from apps/red-ui/src/assets/icons/general/pdftron-action-toggle-tooltips.svg rename to apps/red-ui/src/assets/icons/general/pdftron-action-enable-tooltips.svg From 87065c8e91ff94a467b3da28a2c524e3901ac364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Sat, 15 Jan 2022 19:19:29 +0200 Subject: [PATCH 19/97] RED-3065: Fixed annotations comments --- .../components/comments/comments.component.ts | 71 +++++++++++-------- .../file-preview-screen.component.ts | 3 +- .../services/commenting.service.ts | 38 ++++++++++ libs/common-ui | 2 +- 4 files changed, 82 insertions(+), 32 deletions(-) create mode 100644 apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/commenting.service.ts diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/comments/comments.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/comments/comments.component.ts index 203e834a8..1ca3a20c1 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/comments/comments.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/comments/comments.component.ts @@ -1,13 +1,15 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewChild } from '@angular/core'; import { File, IComment } from '@red/domain'; import { ManualAnnotationService } from '../../../../services/manual-annotation.service'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { UserService } from '@services/user.service'; import { PermissionsService } from '@services/permissions.service'; -import { InputWithActionComponent, trackBy } from '@iqser/common-ui'; +import { AutoUnsubscribe, InputWithActionComponent, LoadingService, trackBy } from '@iqser/common-ui'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { ActivatedRoute } from '@angular/router'; import { Observable } from 'rxjs'; +import { CommentingService } from '../../services/commenting.service'; +import { tap } from 'rxjs/operators'; @Component({ selector: 'redaction-comments', @@ -15,11 +17,11 @@ import { Observable } from 'rxjs'; styleUrls: ['./comments.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class CommentsComponent { +export class CommentsComponent extends AutoUnsubscribe implements OnChanges { @Input() annotation: AnnotationWrapper; readonly trackBy = trackBy(); readonly file$: Observable; - @HostBinding('class.hidden') private _hidden = true; + @HostBinding('class.hidden') _hidden = true; @ViewChild(InputWithActionComponent) private readonly _input: InputWithActionComponent; private readonly _fileId: string; private readonly _dossierId: string; @@ -28,49 +30,58 @@ export class CommentsComponent { readonly permissionsService: PermissionsService, private readonly _userService: UserService, private readonly _manualAnnotationService: ManualAnnotationService, - private readonly _changeDetectorRef: ChangeDetectorRef, + private readonly _commentingService: CommentingService, + private readonly _loadingService: LoadingService, + private readonly _changeRef: ChangeDetectorRef, readonly filesMapService: FilesMapService, activatedRoute: ActivatedRoute, ) { + super(); this._fileId = activatedRoute.snapshot.paramMap.get('fileId'); this._dossierId = activatedRoute.snapshot.paramMap.get('dossierId'); this.file$ = filesMapService.watch$(this._dossierId, this._fileId); } - addComment(value: string): void { + ngOnChanges() { + this.addSubscription = this._commentingService + .isActive$(this.annotation.id) + .pipe( + tap(active => { + this._hidden = !active; + }), + ) + .subscribe(); + } + + async addComment(value: string): Promise { if (!value) { return; } - this._manualAnnotationService + this._loadingService.start(); + const commentId = await this._manualAnnotationService .addComment(value, this.annotation.id, this._dossierId, this._fileId) - .toPromise() - .then(commentId => { - this.annotation.comments.push({ - text: value, - id: commentId, - annotationId: this.annotation.id, - user: this._userService.currentUser.id, - }); - this._input.reset(); - this._changeDetectorRef.markForCheck(); - }); + .toPromise(); + this.annotation.comments.push({ + text: value, + id: commentId, + annotationId: this.annotation.id, + user: this._userService.currentUser.id, + }); + this._input.reset(); + this._changeRef.markForCheck(); + this._loadingService.stop(); } toggleExpandComments($event?: MouseEvent): void { $event?.stopPropagation(); - this._hidden = !this._hidden; + this._commentingService.toggle(this.annotation.id); } - deleteComment(comment: IComment): void { - this._manualAnnotationService - .deleteComment(comment.id, this.annotation.id, this._dossierId, this._fileId) - .toPromise() - .then(() => { - this.annotation.comments.splice(this.annotation.comments.indexOf(comment), 1); - if (!this.annotation.comments.length) { - this._hidden = true; - } - this._changeDetectorRef.markForCheck(); - }); + async deleteComment(comment: IComment): Promise { + this._loadingService.start(); + await this._manualAnnotationService.deleteComment(comment.id, this.annotation.id, this._dossierId, this._fileId).toPromise(); + this.annotation.comments.splice(this.annotation.comments.indexOf(comment), 1); + this._changeRef.markForCheck(); + this._loadingService.stop(); } } diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 4ff4c076a..78783215f 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -46,6 +46,7 @@ import { MultiSelectService } from './services/multi-select.service'; import { DocumentInfoService } from './services/document-info.service'; import { ReanalysisService } from '../../../../services/reanalysis.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { CommentingService } from './services/commenting.service'; import Annotation = Core.Annotations.Annotation; import PDFNet = Core.PDFNet; @@ -54,7 +55,7 @@ const ALL_HOTKEY_ARRAY = ['Escape', 'F', 'f', 'ArrowUp', 'ArrowDown']; @Component({ templateUrl: './file-preview-screen.component.html', styleUrls: ['./file-preview-screen.component.scss'], - providers: [FilterService, ExcludedPagesService, ViewModeService, MultiSelectService, DocumentInfoService], + providers: [FilterService, ExcludedPagesService, ViewModeService, MultiSelectService, DocumentInfoService, CommentingService], }) export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnInit, OnDestroy, OnAttach, OnDetach { readonly circleButtonTypes = CircleButtonTypes; diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/commenting.service.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/commenting.service.ts new file mode 100644 index 000000000..523631f3a --- /dev/null +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/commenting.service.ts @@ -0,0 +1,38 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { map, startWith } from 'rxjs/operators'; +import { shareDistinctLast } from '@iqser/common-ui'; + +@Injectable() +export class CommentingService { + private _activeAnnotations = new BehaviorSubject>(new Set()); + + isActive$(annotationId: string): Observable { + return this._activeAnnotations.pipe( + map(annotations => annotations.has(annotationId)), + startWith(false), + shareDistinctLast(), + ); + } + + toggle(annotationId: string): void { + if (this._activeAnnotations.value.has(annotationId)) { + this._deactivate(annotationId); + } else { + this._activate(annotationId); + } + } + + private _activate(annotationId: string): void { + const currentValue = this._activeAnnotations.value; + const newSet = new Set(currentValue).add(annotationId); + this._activeAnnotations.next(newSet); + } + + private _deactivate(annotationId: string): void { + const currentValue = this._activeAnnotations.value; + const newSet = new Set(currentValue); + newSet.delete(annotationId); + this._activeAnnotations.next(newSet); + } +} diff --git a/libs/common-ui b/libs/common-ui index a1c1be7ed..795a273c9 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit a1c1be7edc783bdea42b86c0f8b1f74437065b76 +Subproject commit 795a273c9cde2a47c8a53e81a1b1efeb3ad81ddb From d7960c29648fed79163319ca1d1b4884708e6082 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Sat, 15 Jan 2022 18:23:19 +0100 Subject: [PATCH 20/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c856a3066..9207e7f2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.153.0", + "version": "3.154.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 983f4815b53d4d3c2254a6be9266725a42076b52..9214a0ad936e9adb221380bbcb3b722a517d9186 100644 GIT binary patch delta 2586 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 z zH_%K|LwWNK76(b`D7+~Yj(yvIqxg*E4SPqbEy>@1#}$mMvMLgq4UqYh^w>)k8IID5 zMk%8k6G_1&mc;9^eAPs0(&YCd2^mt)! zKH!XvP~J|WTt*7Y`v%m?2nr$N48cUXRJQ2zn6jc8+NwQiEkQJ*5_0V*%_w>QUrA_6 zs)i@U86=!TVx7r-U^_cQ{6cEHe*Yb4s^&H{#527oJlx~?Lk2YB5qp!H!FJ;v4WIty zfB*hZjjq!7-!=)|5cEZV1?G`o53x<}hCp(pC;L`K>Lz1T31kw$zhw(20XR}jJ6|Rv zS|2fF7P)twJ_@dE9^Cjp0nub~jdpIWB*zn3+G&}X9vVHjC3LiE$7l+nD&yfw$(Q)? z9FGar7H5LyjB3ze$y+__%XNB+dO?}^=_SK~(5jQ&d(*(xTg*I85hL*-;g%y;MQPph2+L$OPR+tn86A2*{ z+N%?-5Na{(!>*4_m0LrMGEW!~I#q4$c9Pgg3%`@y@%fiwaVShbHWL5?`VKb8q?xnM(-S)Sb9oG{`XUK6JbrR%@ILt^4)_3dOuCT2R<^}5~ zSd4#Ie6wkvG;&~tDFzSVQgyzJfyJR8i@}L zR|c+va||D9f7V*bXnsw=iD1Sz8HfX4x$XkQ;jXw$Krr_F_FA3(O+%x53sN>F9AE3m zl>^Ie-lif?kdvwvmp0^bru;S%4Td}z!Wc)PHyZMd;uAx`G#Lw{WW~_Zs9Z6$GU{@} zs|3NAZ6}F;Jp_X>&RGzV;8t7h3G%GsK>#L6xbi~7plejL9Bg+%04i}-w=<+o;Z?Gu zRZ}}_XowI^6vQ6U7EMW3Zi|@gcA=nOI%U4OYZ{XfPo5a=Gz+y8q^B^o8+(hZt34KT ztxag{;aW!|eFsZv&Icf0`nm!Vcy1(q{SgW^2xstr^Laq+JS#SZ;fx5vcAK00s=buK z@-R;YUauhthW8X4ZAXcAWba59djQ5_f>vE_YctcwU`rt!?!{)3@mP`Sb;r)#?*fNu z?vH$Zagc-~ZY>Vtn0?SXFSw&PPO!a7mi+3#>oUb0zqLl&QA;}(a+%T0IgHZ?Tz`JA zW%ez9nA4IxO7|TlB|ONTlA%ehA0TA^ErjQIu}>zDKnYFX63AGFe0?w?{j5vY8CovP z?@x_LUh^ZZ4nrryj3jC%HU-pV`@p*@<_Pfpi2S~8V?~7Ko9wAf`>O?E1A$zLk4r?V zY+nz7RI~GU$cx@lhQ*^*r#LPix??ug4Rap{;p%l;XLW&-^$79-IFslJYXPN`R0=sf zSc43%BMQJvKJ*nJ1IojX$U11QM&UgJUm!)i|- ze0v6|zzi({lgSF=QPG;gVubaW_rER^@zK09_uQLG=G(X0Yjnw9Ya{+z`*MbA_^@hH zQQ>!g;$u<4Uh2${_%erYvdite+^);(yS%Q;@4Ni2E9kp|u4~bEEo77Y3oK?BXc!gU z4>5YjV)Q)~qhdNQ4EWDu%Nr$qrxgtn<2ZNR7kmVWIf8YAN0+~o2$CXdrY^mI>i@On w+|KRX&h6aJ?cC1o+|KRX&h6aJ?cC1o+|KRX&h6aJ?HAkr556VH1prV00G6!?82|tP From 6120a9687e0f09b9b51fbeaa541a425d7aebbb46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Sat, 15 Jan 2022 19:44:43 +0200 Subject: [PATCH 21/97] Input with action fixes --- .../spotlight-search.component.html | 53 +++++++++---------- .../comments/comments.component.html | 2 +- .../components/comments/comments.component.ts | 3 +- libs/common-ui | 2 +- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/apps/red-ui/src/app/components/spotlight-search/spotlight-search.component.html b/apps/red-ui/src/app/components/spotlight-search/spotlight-search.component.html index 348cc56ae..1ffe83c77 100644 --- a/apps/red-ui/src/app/components/spotlight-search/spotlight-search.component.html +++ b/apps/red-ui/src/app/components/spotlight-search/spotlight-search.component.html @@ -1,30 +1,29 @@ -
- + - - -
- -
-
-
+ + +
+ +
+
+
- - -
+ + +
- - -
+ + diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/comments/comments.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/comments/comments.component.html index 8686a4b2e..427cebe5c 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/comments/comments.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/comments/comments.component.html @@ -8,7 +8,7 @@
{ + async deleteComment($event: MouseEvent, comment: IComment): Promise { + $event.stopPropagation(); this._loadingService.start(); await this._manualAnnotationService.deleteComment(comment.id, this.annotation.id, this._dossierId, this._fileId).toPromise(); this.annotation.comments.splice(this.annotation.comments.indexOf(comment), 1); diff --git a/libs/common-ui b/libs/common-ui index 795a273c9..ff9dad3ce 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 795a273c9cde2a47c8a53e81a1b1efeb3ad81ddb +Subproject commit ff9dad3ce73c2485a64e3418f24334f4c44f7c6a From 6c047d9884fabfb0914f0c9527b9fdab2993fb20 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Sat, 15 Jan 2022 18:48:34 +0100 Subject: [PATCH 22/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3213 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9207e7f2a..c5a3af532 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.154.0", + "version": "3.155.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 9214a0ad936e9adb221380bbcb3b722a517d9186..bf5bfd47f07af8e6c3371a2a21bbfeb6f31840d5 100644 GIT binary patch delta 3165 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 Date: Sun, 16 Jan 2022 19:15:20 +0200 Subject: [PATCH 23/97] Skipped service --- .../app/modules/dossier/dossiers.module.ts | 11 +---- .../annotation-actions.component.ts | 2 +- .../file-workload.component.html | 4 +- .../file-workload/file-workload.component.ts | 4 +- .../pdf-viewer/pdf-viewer.component.ts | 4 +- .../file-preview-screen.component.html | 2 - .../file-preview-screen.component.ts | 41 +++++++++++-------- .../services/annotation-actions.service.ts | 10 ++--- .../services/annotation-draw.service.ts | 15 +++---- .../services/skipped.service.ts | 24 +++++++++++ 10 files changed, 68 insertions(+), 49 deletions(-) rename apps/red-ui/src/app/modules/dossier/{ => screens/file-preview-screen}/services/annotation-actions.service.ts (98%) rename apps/red-ui/src/app/modules/dossier/{ => screens/file-preview-screen}/services/annotation-draw.service.ts (96%) create mode 100644 apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/skipped.service.ts diff --git a/apps/red-ui/src/app/modules/dossier/dossiers.module.ts b/apps/red-ui/src/app/modules/dossier/dossiers.module.ts index 495eb2a96..140fe64c1 100644 --- a/apps/red-ui/src/app/modules/dossier/dossiers.module.ts +++ b/apps/red-ui/src/app/modules/dossier/dossiers.module.ts @@ -10,10 +10,8 @@ import { SharedModule } from '@shared/shared.module'; import { DossiersRoutingModule } from './dossiers-routing.module'; import { FileUploadDownloadModule } from '@upload-download/file-upload-download.module'; import { DossiersDialogService } from './services/dossiers-dialog.service'; -import { AnnotationActionsService } from './services/annotation-actions.service'; import { PdfViewerDataService } from './services/pdf-viewer-data.service'; import { ManualAnnotationService } from './services/manual-annotation.service'; -import { AnnotationDrawService } from './services/annotation-draw.service'; import { AnnotationProcessingService } from './services/annotation-processing.service'; import { EditDossierDialogComponent } from './dialogs/edit-dossier-dialog/edit-dossier-dialog.component'; import { EditDossierGeneralInfoComponent } from './dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component'; @@ -56,14 +54,7 @@ const components = [ ...dialogs, ]; -const services = [ - DossiersDialogService, - AnnotationActionsService, - ManualAnnotationService, - PdfViewerDataService, - AnnotationDrawService, - AnnotationProcessingService, -]; +const services = [DossiersDialogService, ManualAnnotationService, PdfViewerDataService, AnnotationProcessingService]; @NgModule({ declarations: [...components], diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotation-actions/annotation-actions.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotation-actions/annotation-actions.component.ts index e7f96a6e6..2dfa0851f 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotation-actions/annotation-actions.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotation-actions/annotation-actions.component.ts @@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { PermissionsService } from '@services/permissions.service'; import { AnnotationPermissions } from '@models/file/annotation.permissions'; -import { AnnotationActionsService } from '../../../../services/annotation-actions.service'; +import { AnnotationActionsService } from '../../services/annotation-actions.service'; import { WebViewerInstance } from '@pdftron/webviewer'; import { UserService } from '@services/user.service'; import { Dossier, File } from '@red/domain'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html index 157c9399d..720716f51 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html @@ -217,9 +217,9 @@ diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.ts index 8f7c86e16..e6afc8d32 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.ts @@ -32,6 +32,7 @@ import { File, IViewedPage } from '@red/domain'; import { ExcludedPagesService } from '../../services/excluded-pages.service'; import { MultiSelectService } from '../../services/multi-select.service'; import { DocumentInfoService } from '../../services/document-info.service'; +import { SkippedService } from '../../services/skipped.service'; const COMMAND_KEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Escape']; const ALL_HOTKEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']; @@ -53,14 +54,12 @@ export class FileWorkloadComponent { @Input() dialogRef: MatDialogRef; @Input() viewedPages: IViewedPage[]; @Input() file!: File; - @Input() hideSkipped: boolean; @Input() annotationActionsTemplate: TemplateRef; @Input() viewer: WebViewerInstance; @Output() readonly shouldDeselectAnnotationsOnPageChangeChange = new EventEmitter(); @Output() readonly selectAnnotations = new EventEmitter(); @Output() readonly deselectAnnotations = new EventEmitter(); @Output() readonly selectPage = new EventEmitter(); - @Output() readonly toggleSkipped = new EventEmitter(); @Output() readonly annotationsChanged = new EventEmitter(); displayedPages: number[] = []; pagesPanelActive = true; @@ -76,6 +75,7 @@ export class FileWorkloadComponent { readonly excludedPagesService: ExcludedPagesService, readonly multiSelectService: MultiSelectService, readonly documentInfoService: DocumentInfoService, + readonly skippedService: SkippedService, private readonly _permissionsService: PermissionsService, private readonly _changeDetectorRef: ChangeDetectorRef, private readonly _filterService: FilterService, diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts index 36310686b..1cb6893be 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts @@ -22,8 +22,8 @@ import { import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { ManualAnnotationService } from '../../../../services/manual-annotation.service'; import { environment } from '@environments/environment'; -import { AnnotationDrawService } from '../../../../services/annotation-draw.service'; -import { AnnotationActionsService } from '../../../../services/annotation-actions.service'; +import { AnnotationDrawService } from '../../services/annotation-draw.service'; +import { AnnotationActionsService } from '../../services/annotation-actions.service'; import { UserPreferenceService } from '@services/user-preference.service'; import { BASE_HREF } from '../../../../../../tokens'; import { ConfigService } from '@services/config.service'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html index 33575b2ea..ccc7b9f21 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html @@ -102,7 +102,6 @@ (deselectAnnotations)="deselectAnnotations($event)" (selectAnnotations)="selectAnnotations($event)" (selectPage)="selectPage($event)" - (toggleSkipped)="toggleSkipped($event)" *ngIf="!file.excluded" [(shouldDeselectAnnotationsOnPageChange)]="shouldDeselectAnnotationsOnPageChange" [activeViewerPage]="activeViewerPage" @@ -110,7 +109,6 @@ [annotations]="visibleAnnotations" [dialogRef]="dialogRef" [file]="file" - [hideSkipped]="hideSkipped" [selectedAnnotations]="selectedAnnotations" [viewedPages]="fileData?.viewedPages" [viewer]="activeViewer" diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 78783215f..f7175e113 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -21,7 +21,7 @@ import { ManualRedactionEntryWrapper } from '@models/file/manual-redaction-entry import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { ManualAnnotationResponse } from '@models/file/manual-annotation-response'; import { FileDataModel } from '@models/file/file-data.model'; -import { AnnotationDrawService } from '../../services/annotation-draw.service'; +import { AnnotationDrawService } from './services/annotation-draw.service'; import { AnnotationProcessingService } from '../../services/annotation-processing.service'; import { Dossier, File, ViewMode } from '@red/domain'; import { PermissionsService } from '@services/permissions.service'; @@ -47,6 +47,8 @@ import { DocumentInfoService } from './services/document-info.service'; import { ReanalysisService } from '../../../../services/reanalysis.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { CommentingService } from './services/commenting.service'; +import { SkippedService } from './services/skipped.service'; +import { AnnotationActionsService } from './services/annotation-actions.service'; import Annotation = Core.Annotations.Annotation; import PDFNet = Core.PDFNet; @@ -55,7 +57,17 @@ const ALL_HOTKEY_ARRAY = ['Escape', 'F', 'f', 'ArrowUp', 'ArrowDown']; @Component({ templateUrl: './file-preview-screen.component.html', styleUrls: ['./file-preview-screen.component.scss'], - providers: [FilterService, ExcludedPagesService, ViewModeService, MultiSelectService, DocumentInfoService, CommentingService], + providers: [ + FilterService, + ExcludedPagesService, + ViewModeService, + MultiSelectService, + DocumentInfoService, + CommentingService, + SkippedService, + AnnotationDrawService, + AnnotationActionsService, + ], }) export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnInit, OnDestroy, OnAttach, OnDetach { readonly circleButtonTypes = CircleButtonTypes; @@ -65,7 +77,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni shouldDeselectAnnotationsOnPageChange = true; fileData: FileDataModel; selectedAnnotations: AnnotationWrapper[] = []; - hideSkipped = false; displayPdfViewer = false; activeViewerPage: number = null; @ViewChild(PdfViewerComponent) readonly viewerComponent: PdfViewerComponent; @@ -105,6 +116,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni private readonly _dossiersService: DossiersService, private readonly _reanalysisService: ReanalysisService, private readonly _errorService: ErrorService, + private readonly _skippedService: SkippedService, readonly excludedPagesService: ExcludedPagesService, readonly viewModeService: ViewModeService, readonly multiSelectService: MultiSelectService, @@ -422,16 +434,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni download(data, file.filename); } - toggleSkipped($event) { - $event.stopPropagation(); - $event.preventDefault(); - this.hideSkipped = !this.hideSkipped; - - this._handleIgnoreAnnotationsDrawing(); - - return false; - } - private _setActiveViewerPage() { const currentPage = this._instance?.Core.documentViewer?.getCurrentPage(); if (!currentPage) { @@ -548,6 +550,10 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni .watchDeleted$(this.fileId) .pipe(tap(() => this._handleDeletedFile())) .subscribe(); + + this.addActiveScreenSubscription = this._skippedService.hideSkipped$ + .pipe(tap(hideSkipped => this._handleIgnoreAnnotationsDrawing(hideSkipped))) + .subscribe(); } private _handleDeletedDossier(): void { @@ -632,7 +638,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni annotations, this.fileId, this.dossierId, - this.hideSkipped, !!this.viewModeService.isCompare, ); } @@ -674,9 +679,13 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } } - private _handleIgnoreAnnotationsDrawing() { + private _handleIgnoreAnnotationsDrawing(hideSkipped: boolean): void { const ignored = this._getAnnotations(a => a.getCustomData('skipped')); - return this.hideSkipped ? this._hide(ignored) : this._show(ignored); + if (hideSkipped) { + this._hide(ignored); + } else { + this._show(ignored); + } } private _getAnnotations(predicate: (value) => unknown) { diff --git a/apps/red-ui/src/app/modules/dossier/services/annotation-actions.service.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-actions.service.ts similarity index 98% rename from apps/red-ui/src/app/modules/dossier/services/annotation-actions.service.ts rename to apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-actions.service.ts index 003b14a86..e02e796cd 100644 --- a/apps/red-ui/src/app/modules/dossier/services/annotation-actions.service.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-actions.service.ts @@ -1,19 +1,19 @@ import { EventEmitter, Inject, Injectable, NgZone } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; -import { ManualAnnotationService } from './manual-annotation.service'; +import { ManualAnnotationService } from '../../../services/manual-annotation.service'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { Observable } from 'rxjs'; import { TranslateService } from '@ngx-translate/core'; import { getFirstRelevantTextPart } from '@utils/functions'; import { AnnotationPermissions } from '@models/file/annotation.permissions'; -import { DossiersDialogService } from './dossiers-dialog.service'; -import { BASE_HREF } from '../../../tokens'; +import { DossiersDialogService } from '../../../services/dossiers-dialog.service'; +import { BASE_HREF } from '../../../../../tokens'; import { UserService } from '@services/user.service'; import { Core, WebViewerInstance } from '@pdftron/webviewer'; import { Dossier, File, IAddRedactionRequest, ILegalBasisChangeRequest, IRectangle, IResizeRequest } from '@red/domain'; -import { toPosition } from '../utils/pdf-calculation.utils'; +import { toPosition } from '../../../utils/pdf-calculation.utils'; import { AnnotationDrawService } from './annotation-draw.service'; -import { translateQuads } from '../../../utils'; +import { translateQuads } from '@utils/pdf-coordinates'; import { DossiersService } from '@services/entity-services/dossiers.service'; import Annotation = Core.Annotations.Annotation; diff --git a/apps/red-ui/src/app/modules/dossier/services/annotation-draw.service.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-draw.service.ts similarity index 96% rename from apps/red-ui/src/app/modules/dossier/services/annotation-draw.service.ts rename to apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-draw.service.ts index ecdccdbc9..760d08668 100644 --- a/apps/red-ui/src/app/modules/dossier/services/annotation-draw.service.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/annotation-draw.service.ts @@ -5,10 +5,11 @@ import { AppStateService } from '@state/app-state.service'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { UserPreferenceService } from '@services/user-preference.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; -import { RedactionLogService } from './redaction-log.service'; +import { RedactionLogService } from '../../../services/redaction-log.service'; import { environment } from '@environments/environment'; import { IRectangle, ISectionGrid, ISectionRectangle } from '@red/domain'; +import { SkippedService } from './skipped.service'; import Annotation = Core.Annotations.Annotation; @Injectable() @@ -18,6 +19,7 @@ export class AnnotationDrawService { private readonly _dossiersService: DossiersService, private readonly _redactionLogService: RedactionLogService, private readonly _userPreferenceService: UserPreferenceService, + private readonly _skippedService: SkippedService, ) {} async drawAnnotations( @@ -25,7 +27,6 @@ export class AnnotationDrawService { annotationWrappers: AnnotationWrapper[], fileId: string, dossierId: string, - hideSkipped = false, compareMode = false, ) { if (!activeViewer) { @@ -36,7 +37,7 @@ export class AnnotationDrawService { await pdfNet.runWithCleanup( async () => { - await this._drawAnnotations(activeViewer, annotationWrappers, fileId, dossierId, hideSkipped, compareMode); + await this._drawAnnotations(activeViewer, annotationWrappers, fileId, dossierId, compareMode); }, environment.licenseKey ? atob(environment.licenseKey) : null, ); @@ -82,12 +83,9 @@ export class AnnotationDrawService { annotationWrappers: AnnotationWrapper[], fileId: string, dossierId: string, - hideSkipped: boolean, compareMode: boolean, ) { - const annotations = annotationWrappers.map(annotation => - this._computeAnnotation(activeViewer, annotation, dossierId, hideSkipped, compareMode), - ); + const annotations = annotationWrappers.map(annotation => this._computeAnnotation(activeViewer, annotation, dossierId, compareMode)); const annotationManager = activeViewer.Core.annotationManager; annotationManager.addAnnotations(annotations, { imported: true }); await annotationManager.drawAnnotationsFromList(annotations); @@ -143,7 +141,6 @@ export class AnnotationDrawService { activeViewer: WebViewerInstance, annotationWrapper: AnnotationWrapper, dossierId: string, - hideSkipped: boolean, compareMode: boolean, ) { const pageNumber = compareMode ? annotationWrapper.pageNumber * 2 - 1 : annotationWrapper.pageNumber; @@ -177,7 +174,7 @@ export class AnnotationDrawService { annotation.Hidden = annotationWrapper.isChangeLogRemoved || - (hideSkipped && annotationWrapper.isSkipped) || + (this._skippedService.hideSkipped && annotationWrapper.isSkipped) || annotationWrapper.isOCR || annotationWrapper.hidden; annotation.setCustomData('redact-manager', 'true'); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/skipped.service.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/skipped.service.ts new file mode 100644 index 000000000..9f1f6238f --- /dev/null +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/skipped.service.ts @@ -0,0 +1,24 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { skip } from 'rxjs/operators'; +import { shareDistinctLast } from '@iqser/common-ui'; + +@Injectable() +export class SkippedService { + readonly hideSkipped$: Observable; + private readonly _hideSkipped$ = new BehaviorSubject(false); + + constructor() { + this.hideSkipped$ = this._hideSkipped$.pipe(shareDistinctLast(), skip(1)); + } + + get hideSkipped(): boolean { + return this._hideSkipped$.value; + } + + toggleSkipped($event): void { + $event.stopPropagation(); + $event.preventDefault(); + this._hideSkipped$.next(!this.hideSkipped); + } +} From fbb9aab8d2cb475ad3dd5be8aace16e2c0928f4b Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Sun, 16 Jan 2022 21:02:19 +0100 Subject: [PATCH 24/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3213 -> 3215 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c5a3af532..0ed620960 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.155.0", + "version": "3.156.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index bf5bfd47f07af8e6c3371a2a21bbfeb6f31840d5..3e9b0c6f7ec556f6091649fd5106d843c1287522 100644 GIT binary patch literal 3215 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 BROtW! literal 3213 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 Date: Mon, 17 Jan 2022 12:08:11 +0200 Subject: [PATCH 25/97] update nx --- angular.json | 3 - package.json | 56 +-- yarn.lock | 1354 +++++++++++++++++++++++++------------------------- 3 files changed, 701 insertions(+), 712 deletions(-) diff --git a/angular.json b/angular.json index bef6f9183..700f0f37e 100644 --- a/angular.json +++ b/angular.json @@ -1,7 +1,4 @@ { - "cli": { - "analytics": "4b8eed12-a1e6-4b7a-9ea2-925b27941271" - }, "version": 1, "projects": { "common-ui": { diff --git a/package.json b/package.json index 0ed620960..dd9b76376 100644 --- a/package.json +++ b/package.json @@ -23,23 +23,23 @@ } }, "dependencies": { - "@angular/animations": "13.1.1", - "@angular/cdk": "13.1.1", - "@angular/common": "13.1.1", - "@angular/compiler": "13.1.1", - "@angular/core": "13.1.1", - "@angular/forms": "13.1.1", - "@angular/material": "13.1.1", + "@angular/animations": "13.1.2", + "@angular/cdk": "13.1.2", + "@angular/common": "13.1.2", + "@angular/compiler": "13.1.2", + "@angular/core": "13.1.2", + "@angular/forms": "13.1.2", + "@angular/material": "13.1.2", "@angular/material-moment-adapter": "^13.0.2", - "@angular/platform-browser": "13.1.1", - "@angular/platform-browser-dynamic": "13.1.1", - "@angular/router": "13.1.1", - "@angular/service-worker": "13.1.1", + "@angular/platform-browser": "13.1.2", + "@angular/platform-browser-dynamic": "13.1.2", + "@angular/router": "13.1.2", + "@angular/service-worker": "13.1.2", "@biesbjerg/ngx-translate-extract-marker": "^1.0.0", "@materia-ui/ngx-monaco-editor": "^6.0.0-beta.1", "@ngx-translate/core": "^14.0.0", "@ngx-translate/http-loader": "^7.0.0", - "@nrwl/angular": "13.2.3", + "@nrwl/angular": "13.4.5", "@pdftron/webviewer": "8.2.0", "@swimlane/ngx-charts": "^17.0.1", "file-saver": "^2.0.5", @@ -62,26 +62,26 @@ "zone.js": "0.11.4" }, "devDependencies": { - "@angular-devkit/build-angular": "13.1.2", + "@angular-devkit/build-angular": "13.1.3", "@angular-eslint/eslint-plugin": "13.0.1", "@angular-eslint/eslint-plugin-template": "13.0.1", "@angular-eslint/template-parser": "13.0.1", - "@angular/cli": "13.1.2", - "@angular/compiler-cli": "13.1.1", - "@angular/language-service": "13.1.1", - "@nrwl/cli": "13.2.3", - "@nrwl/cypress": "13.2.3", - "@nrwl/eslint-plugin-nx": "13.2.3", - "@nrwl/jest": "13.2.3", - "@nrwl/linter": "13.2.3", - "@nrwl/tao": "13.2.3", - "@nrwl/workspace": "13.2.3", + "@angular/cli": "13.1.3", + "@angular/compiler-cli": "13.1.2", + "@angular/language-service": "13.1.2", + "@nrwl/cli": "13.4.5", + "@nrwl/cypress": "13.4.5", + "@nrwl/eslint-plugin-nx": "13.4.5", + "@nrwl/jest": "13.4.5", + "@nrwl/linter": "13.4.5", + "@nrwl/tao": "13.4.5", + "@nrwl/workspace": "13.4.5", "@types/cypress": "^1.1.3", "@types/jest": "27.0.3", "@types/lodash": "^4.14.177", "@types/node": "16.11.10", - "@typescript-eslint/eslint-plugin": "4.33.0", - "@typescript-eslint/parser": "4.33.0", + "@typescript-eslint/eslint-plugin": "5.3.1", + "@typescript-eslint/parser": "5.3.1", "axios": "^0.24.0", "@bartholomej/ngx-translate-extract": "^8.0.1", "cypress": "^6.9.1", @@ -90,7 +90,7 @@ "cypress-keycloak-commands": "^1.2.0", "cypress-localstorage-commands": "^1.5.0", "dotenv": "10.0.0", - "eslint": "7.32.0", + "eslint": "8.2.0", "eslint-config-airbnb-base": "^14.2.1", "eslint-config-airbnb-typescript": "^14.0.0", "eslint-config-prettier": "8.3.0", @@ -100,7 +100,7 @@ "husky": "4.3.8", "jest": "27.3.1", "jest-preset-angular": "11.0.1", - "ng-packagr": "13.0.8", + "ng-packagr": "13.1.3", "postcss": "^8.3.9", "postcss-import": "^14.0.2", "postcss-preset-env": "^7.0.1", @@ -112,7 +112,7 @@ "superagent-promise": "^1.1.0", "ts-jest": "27.0.7", "ts-node": "10.4.0", - "typescript": "4.4.4", + "typescript": "4.5.4", "webpack": "^4.18.1" } } diff --git a/yarn.lock b/yarn.lock index 0ac04972e..9c3c668be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,23 +10,23 @@ "@jridgewell/resolve-uri" "1.0.0" sourcemap-codec "1.4.8" -"@angular-devkit/architect@0.1301.2": - version "0.1301.2" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1301.2.tgz#a646862b7ef388e4912473c14d336dde94cfc517" - integrity sha512-v8e6OF80Ezo5MTHtFcq1AZJH+Wq+hN9pMZ1iLGkODIfKIW9zx6aPhx0JY0b7sZkfNVL8ay8JA8f339eBMnOE9A== +"@angular-devkit/architect@0.1301.3": + version "0.1301.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1301.3.tgz#197f92c984adf22776798ce568e64396e464a03d" + integrity sha512-fFSevgYGZHCybYoyTkZ9b1YCSthBmoi77alwWjqMhYXUNXx7yx50zJZ6Ur2v3YpctVjU6eoGc5FDFyVHwXT0Iw== dependencies: - "@angular-devkit/core" "13.1.2" + "@angular-devkit/core" "13.1.3" rxjs "6.6.7" -"@angular-devkit/build-angular@13.1.2": - version "13.1.2" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-13.1.2.tgz#77004c925aced5ff9993c42cc098aaf47e06ec76" - integrity sha512-0FeDqfjWJjgIU42T3136RNYb7Yv2as6Z8rAnfUlX6RjRGZf98+6ZQZ80yREgrLkm7L8G1qWJc1sn3NyVMDwf9A== +"@angular-devkit/build-angular@13.1.3": + version "13.1.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-13.1.3.tgz#c04cef8a2d405cb66332b674d204a2717b6807f6" + integrity sha512-C5Qv8aGmpGbETG4Mawly/5LnkRwfJAzANL5BtYJn8ZaDlZKCkhvAaRXHpm4Mdqg5idACAT8hgYqPQvqyEBaVDA== dependencies: "@ampproject/remapping" "1.0.2" - "@angular-devkit/architect" "0.1301.2" - "@angular-devkit/build-webpack" "0.1301.2" - "@angular-devkit/core" "13.1.2" + "@angular-devkit/architect" "0.1301.3" + "@angular-devkit/build-webpack" "0.1301.3" + "@angular-devkit/core" "13.1.3" "@babel/core" "7.16.0" "@babel/generator" "7.16.0" "@babel/helper-annotate-as-pure" "7.16.0" @@ -37,7 +37,7 @@ "@babel/runtime" "7.16.3" "@babel/template" "7.16.0" "@discoveryjs/json-ext" "0.5.6" - "@ngtools/webpack" "13.1.2" + "@ngtools/webpack" "13.1.3" ansi-colors "4.1.1" babel-loader "8.2.3" babel-plugin-istanbul "6.1.1" @@ -46,9 +46,9 @@ circular-dependency-plugin "5.2.2" copy-webpack-plugin "10.0.0" core-js "3.19.3" - critters "0.0.15" + critters "0.0.16" css-loader "6.5.1" - esbuild-wasm "0.14.2" + esbuild-wasm "0.14.11" glob "7.2.0" https-proxy-agent "5.0.0" inquirer "8.2.0" @@ -88,32 +88,20 @@ webpack-merge "5.8.0" webpack-subresource-integrity "5.0.0" optionalDependencies: - esbuild "0.14.2" + esbuild "0.14.11" -"@angular-devkit/build-webpack@0.1301.2": - version "0.1301.2" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1301.2.tgz#e1035aefc696232497d5c3024308b3b0175be109" - integrity sha512-Xk0k0tMcLOy2HI1/YrfWeLUrtKvk7/E7fhG3XoozT/pXBQgiZGoPuCt34HNPDkx3WNSedzvh5DNv8kPlILfjIw== +"@angular-devkit/build-webpack@0.1301.3": + version "0.1301.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1301.3.tgz#4f8f9fd9e09992aaf904c4457f268b203c19b45d" + integrity sha512-FFwKdhq5n0lrqkiJRZoWKy21gERtvupkk0BpIVPTbRqyiqB2htiGM995uBBjpeDngytDLx+BwPFipVfQ+WIi9w== dependencies: - "@angular-devkit/architect" "0.1301.2" + "@angular-devkit/architect" "0.1301.3" rxjs "6.6.7" -"@angular-devkit/core@13.0.3": - version "13.0.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.0.3.tgz#05911ab964f8cbd5cade9bd48215424836ab9c87" - integrity sha512-5yTYW6m4pkDPSYNxThm+47h+UZ6XVEfdfsXR3o+WlRG0hc18EuQ+sXZkzhvZrk5KMLlXFex4eO40RPq2vvWS/w== - dependencies: - ajv "8.6.3" - ajv-formats "2.1.1" - fast-json-stable-stringify "2.1.0" - magic-string "0.25.7" - rxjs "6.6.7" - source-map "0.7.3" - -"@angular-devkit/core@13.1.2": - version "13.1.2" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.1.2.tgz#7ff959aaff4206daa141d6139aed06947bf74ad1" - integrity sha512-uXVesIRiCL/Nv+RSV8JM4j8IoZiGCGnqV2FOJ1hvH7DPxIjhjPMdG/B54xMydZpeASW3ofuxeORyAXxFIBm8Zg== +"@angular-devkit/core@13.1.3": + version "13.1.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.1.3.tgz#d1f8a6b4ad4326732a160a7549fccca1369fd108" + integrity sha512-o14jGDk4h14dVYYQafOn+2rq9CDmDMbDV6logqKYCLzTDRlK8gccDnqJM/QKAlfWCzbllZqcHDmg6FyoRLO9RQ== dependencies: ajv "8.8.2" ajv-formats "2.1.1" @@ -122,23 +110,12 @@ rxjs "6.6.7" source-map "0.7.3" -"@angular-devkit/schematics@13.0.3", "@angular-devkit/schematics@~13.0.0": - version "13.0.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.0.3.tgz#255895e10c2b025df8ee4ff93428cb2249ae5fc0" - integrity sha512-+Va1E0zJBCg5jqSfITusghoMJgPAwlU+WUs49fuGVCzfJPwfSjTKSrsbhanahMd27+Ys3rovGZq0F2JUdL801A== +"@angular-devkit/schematics@13.1.3", "@angular-devkit/schematics@~13.1.0": + version "13.1.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.1.3.tgz#2328f9cf63d6f556392d96b73af794fc52bfc87f" + integrity sha512-TvjThB/pFXNFM0j0WX5yg0L2/3xNsqawQuWhkDJ05MBDEnSxbgv5hmOzNL8SNIEMgP0VbSTHtSg5kZvmNiH7vg== dependencies: - "@angular-devkit/core" "13.0.3" - jsonc-parser "3.0.0" - magic-string "0.25.7" - ora "5.4.1" - rxjs "6.6.7" - -"@angular-devkit/schematics@13.1.2": - version "13.1.2" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.1.2.tgz#4e6d25e1b2a3360f5a7ef434615ed895ce0bb8de" - integrity sha512-ayYbHGU8QpMGx8ZyhKOBupz+Zfv/2H1pNQErahYV3qg7hA9hfjTGmNmDQ4iw0fiT04NajjUxuomlKsCsg7oXDw== - dependencies: - "@angular-devkit/core" "13.1.2" + "@angular-devkit/core" "13.1.3" jsonc-parser "3.0.0" magic-string "0.25.7" ora "5.4.1" @@ -183,31 +160,31 @@ "@angular-eslint/bundled-angular-compiler" "13.0.1" "@typescript-eslint/experimental-utils" "5.3.0" -"@angular/animations@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.1.1.tgz#13adfd4d8c2fbf36b87b1b6714ed5121267ea092" - integrity sha512-6ECC9Dn5gmV4U1cz1pRJ2p5lo0BET2CjG1RbhTaZR8lOsoMsmlV/JdBAp8eyYTiGii3MLS6Q2P/hN/YG2SRGQQ== +"@angular/animations@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.1.2.tgz#fdf0776eaf053b14a4118c682a62f24e4192609a" + integrity sha512-k1eQ8YZq3eelLhJDQjkRCt/4MXxwK2TFeGdtcYJF0G7vFOppE8hlI4PT7Bvmk08lTqvgiqtTI3ZaYmIINLfUMg== dependencies: tslib "^2.3.0" -"@angular/cdk@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-13.1.1.tgz#bfc1050df357a26bda03410d821ae05826dcf88e" - integrity sha512-66PyWg+zKdxTe3b1pc1RduT8hsMs/hJ0aD0JX0pSEWVq7O0OJWJ5f0z+Mk03T9tAERA3NK1GifcKEDq5k7R2Zw== +"@angular/cdk@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-13.1.2.tgz#aaa1b577d1b8101d3d59f4da9a1ea51b7f7a5191" + integrity sha512-xORyqvfM0MueJpxHxVi3CR/X/f1RPKr45vt7NV6/x91OTnh2ukwxg++dAGuA6M5gUAHcVAcaBrfju4GQlU9hmg== dependencies: tslib "^2.3.0" optionalDependencies: parse5 "^5.0.0" -"@angular/cli@13.1.2": - version "13.1.2" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-13.1.2.tgz#e83f593dd78020a328f1bc94b88cfab6267fde4e" - integrity sha512-jEsQWzHgODFpppWGb49jfqlN8YYhphsKY3MPHlrjmd05qWgKItUGSgA46hSoDqjaJKVUN9koUnJBFCc9utERYA== +"@angular/cli@13.1.3": + version "13.1.3" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-13.1.3.tgz#d143f30ee67481cc315e0d18fecb076101dfa280" + integrity sha512-Ju/A8LFnfcv1PC665a5FiIQx9SXqB+3yWYFXPIiVkkRcye95gpfsbV48WW7QV35gzIwbR1m3H907Zg6ptiNv0A== dependencies: - "@angular-devkit/architect" "0.1301.2" - "@angular-devkit/core" "13.1.2" - "@angular-devkit/schematics" "13.1.2" - "@schematics/angular" "13.1.2" + "@angular-devkit/architect" "0.1301.3" + "@angular-devkit/core" "13.1.3" + "@angular-devkit/schematics" "13.1.3" + "@schematics/angular" "13.1.3" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.1" debug "4.3.3" @@ -224,17 +201,17 @@ symbol-observable "4.0.0" uuid "8.3.2" -"@angular/common@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.1.1.tgz#e8b659d6376d6764cd2516a4c6d604aafe24cb88" - integrity sha512-FQwRZ1XgTH2PbPjBmq2jAZzETVNX9yWQt21MuNGtokC7V4eS0NYlFIDbhy3UPWCzRgd3+P7P4+HdX15VxCjf9g== +"@angular/common@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.1.2.tgz#6a4abe30b1cc42702452bfd2214e482675f5d889" + integrity sha512-/8RWYQkZ1KPNvu2FANJM44wXlOMjMyxZVOEIn3llMRgxV2iiYtmluAOJNafTAbKedAuD6wiSpbi++QbioqCyyA== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.1.1.tgz#b01114eb6256085f086e95bdfe832f5c5f447730" - integrity sha512-ycdXN2urBZepbXn2xx1oxF1i6g0Dq/Rb8ySQeELdL9qr6hiZF9fkvIwd91d8uhFG2PvoM4O8/U/3x4yA2bXzew== +"@angular/compiler-cli@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.1.2.tgz#f9adde80bd9d0c3d90d8758c9803537373259053" + integrity sha512-yqM6RLcYtfwIuqBQ7eS7WdksBYY7Dh9sP4rElgLiEhDGIPQf6YE5zeuRThGq5pQ2fvHbNflw8QmTHu/18Y1u/g== dependencies: "@babel/core" "^7.8.6" canonical-path "1.0.0" @@ -248,10 +225,10 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.1.1.tgz#56d1889fbe837ebfe595287cc5aa188cea9be615" - integrity sha512-WS+BB4h2LOBAGQ+P+RcKDw43Z7yAB5m1RY2/MAI+qI339V97WlWEQXxSMvBhCuzJnww1SSZfHMADaB54Jdjx2g== +"@angular/compiler@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.1.2.tgz#86afbe282d0ff407fd8aeb66a79a804f40e7efa4" + integrity sha512-xbM3eClhUIHEFR0Et1bVC18Q7+kJx+hNNWWQl63RNYYBxTZnZpXA3mYi6IcEasy7BHkobVW+5teqlibFQY4gfQ== dependencies: tslib "^2.3.0" @@ -262,24 +239,24 @@ dependencies: tslib "^2.3.0" -"@angular/core@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.1.1.tgz#bc01b1d7e1d21749a595b0ae8cab5b8f51fb7dbc" - integrity sha512-oLGKgzUbHqte/q7EokOJWUiXAtBjwuZM6c9Or2a7WDJNeImQilxk5qy91RPSbP8FhOBysebqAayrfiCYexlShg== +"@angular/core@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.1.2.tgz#793b97d0b7339d5b405f39dd5d021b4b78fcf256" + integrity sha512-dsb90lUf8BELzdg7MgSMfPc36xzZKsDggOimfXhIvmctgc+H71Zo07KYTy5JVqsscLdT+A/KBvtU1bKk4P+Rfg== dependencies: tslib "^2.3.0" -"@angular/forms@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.1.1.tgz#d298ea9324929521c5fb7d4f8c0892bdfbe5e4b6" - integrity sha512-wtYzRHPv4mf1Vsi4GEal5qcI2wjqUW+lu8Fsd2Aoe8NqkwtY3fq+iWEP/4pnvmH0RlC+3QbNNV/01D5UKolvgg== +"@angular/forms@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.1.2.tgz#f72d7f84b78844a1606cd4226c2a3a1eb1de56b5" + integrity sha512-r5I5cPngk2Erxe/OEL9Hl1j1VcNSAAyVzh7KmtOP8z7RZYCd0MeRISKrmA5CGn5Dh7A5POFLoOpBatmvnc4Z/A== dependencies: tslib "^2.3.0" -"@angular/language-service@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-13.1.1.tgz#1e0fcf07a8cf1600ac5dc45837b05b83465fd1a6" - integrity sha512-ilMwR7tv/nANTj5nkEY2/F2VtERi2BFJJEBlfzWrD9yt73pPhPg84o4GPeax07jydBwN0tYOK8jlioCm3MckQg== +"@angular/language-service@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-13.1.2.tgz#ff858d02ba4f1604382271f566e81f1fda22e15f" + integrity sha512-x38shYdkGEZm1pOai1xon82SDIlDAB/RZfhrSPCu56ryWmI0yfD49XUXywsEmpEMG5tmvdDlicaR59Q4QXjvwA== "@angular/material-moment-adapter@^13.0.2": version "13.1.1" @@ -288,38 +265,38 @@ dependencies: tslib "^2.3.0" -"@angular/material@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-13.1.1.tgz#4d2d5a1ea6527b282beb26de6491eb3a221fab2a" - integrity sha512-kKWZBhnzuBYAVO1nrkqEaVTCJ2onEWs+tzAJDIlmbo9USiQyVCnFXx+rs86m4kRUxeAAZ9mcW5BGJr6oy5ClCA== +"@angular/material@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/material/-/material-13.1.2.tgz#497e9b34f4672ce207bb1198a823cda1f1d416ef" + integrity sha512-M7eDgTMCZ/naoiS6Z5nj3N/sNUFc+CGPHX4yb563RuknqN7huDCvdyxA6KnhYLZsVlNCPh5ZrEr6H8ZiYJWcpg== dependencies: tslib "^2.3.0" -"@angular/platform-browser-dynamic@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.1.1.tgz#452c9b1a61998400674f6ee03bc46326ae1295a4" - integrity sha512-ujHJMhJk93hjLx/SQ67y7xiGh2UDL+toVi3OlorWvnYGgPR26ufyL+J73BA+RAKHSP2WPiXU+/87vSz8r+BEgA== +"@angular/platform-browser-dynamic@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.1.2.tgz#2d381503862be7a9d5fd74a27c1f8cf10d9b086e" + integrity sha512-gABOn8DxGai56WmIt5o+eXtduabiq4Mlprg+6+dv+2PvWV871pLvswV9EGUSgwKXvbhBlDZDuNFU5LgvNDuGFg== dependencies: tslib "^2.3.0" -"@angular/platform-browser@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.1.1.tgz#d9687beec9c9af63097b1bcb91920bda6d1ea0b2" - integrity sha512-jk9MGwnaVc98wmw5dRBicduI/a8dHtUzaAi1dV003fUWldS9a5FBuj/ym7DJubaD5Njl8l79SFbjrP9aAsqM5A== +"@angular/platform-browser@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.1.2.tgz#6b24c26cc01733f933a3c15288989259f83e8f46" + integrity sha512-yBUWtYJHr/1LuK3/YRRav2O82i6RHVPtRoAlZHoeTlh2CYA4u1m3JHq9XBrxIxSXexBX69pMrZENW1xskwKRTQ== dependencies: tslib "^2.3.0" -"@angular/router@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.1.1.tgz#656919d3c186f46310a0825d62bbc712c20890d7" - integrity sha512-rlz5BBgNX+G2vVu2Gb5avx3LL08i7R/xZO7zPwh0HhXz/Vp8XFlWwaqAGb6Hgat772K2uCxF1/JBLQCUBY2MNQ== +"@angular/router@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.1.2.tgz#69146055473b9f5b8f9ba9b4de3a0740778ea174" + integrity sha512-5S0De6SdlbERoX9FwOBiTWxINchW7nTPUIH/tdanOqq12cqp6/7NigOr3BZDSvUNIh/6Is+pSQTKGAbhxejN2w== dependencies: tslib "^2.3.0" -"@angular/service-worker@13.1.1": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-13.1.1.tgz#4b28e8898d32178107db6a40b453cc9fc6523c2b" - integrity sha512-R/Qkl4zC6OmSUN+pRrQaWAwZnW09wKaAPOAMfuLCUZjjBzRi2ClP8UdjhCe0Aq3Vmq9TYoagDM0JHNFevCFoMQ== +"@angular/service-worker@13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-13.1.2.tgz#39007cea6c8dc359f7a6998edc5d1420f4e1c771" + integrity sha512-tsYWIrVDKeiEVJb/QtKc5EIGiGWdpjdrZLXvQkkiNPfbKwONU/rpD4zO+rqr2Ote1s/IFAycp9CyMMOZw0lgeg== dependencies: tslib "^2.3.0" @@ -328,13 +305,6 @@ resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.10.1.tgz#70e45678f06c72fa2e350e8553ec4a4d72b92e06" integrity sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg== -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.8.3": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" @@ -731,7 +701,7 @@ "@babel/traverse" "^7.16.3" "@babel/types" "^7.16.0" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.0": +"@babel/highlight@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== @@ -1626,18 +1596,18 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint/eslintrc@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" + integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" + debug "^4.3.2" + espree "^9.2.0" globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" - js-yaml "^3.13.1" + js-yaml "^4.1.0" minimatch "^3.0.4" strip-json-comments "^3.1.1" @@ -1646,10 +1616,10 @@ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@humanwhocodes/config-array@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.6.0.tgz#b5621fdb3b32309d2d16575456cbc277fa8f021a" + integrity sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A== dependencies: "@humanwhocodes/object-schema" "^1.2.0" debug "^4.1.1" @@ -1897,10 +1867,10 @@ dependencies: tslib "^2.0.0" -"@ngtools/webpack@13.1.2": - version "13.1.2" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-13.1.2.tgz#58d8bfe8b3d4ee3b5aa1ceb3f7911b77410c6c6b" - integrity sha512-F/KraxCCUjSn5nWVEQSuyVfnoE9j/bTcpIb+6e38/Hq/saPfsUoNiRjWlTAxCD44vHbMuVkJ/ZRZT6hdICAslw== +"@ngtools/webpack@13.1.3": + version "13.1.3" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-13.1.3.tgz#f3e516da2b2a352db9d723e8cebbe15b526de14c" + integrity sha512-6Pf52IbChm/dFuegfv0smeBTW2moi0Gdkyjgk/7VWqE6hN35m+YGrCh+XnPp1POJwOKxhAByhV9zs6NWxrK1vA== "@ngx-translate/core@^14.0.0": version "14.0.0" @@ -1997,47 +1967,50 @@ node-gyp "^8.2.0" read-package-json-fast "^2.0.1" -"@nrwl/angular@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-13.2.3.tgz#ec7e5304553bd75317abf4686536c17a5651f936" - integrity sha512-7IFRmyPLgoWjUGOXuUHfN7wx4T5T6sixHRJjPr2SX81ssRaQjOEFMMSON6xZdaGabd9qnR87ZR1eQVuj4c2wLg== +"@nrwl/angular@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-13.4.5.tgz#fa000ff7d62a158af151800a0d78d8c75f950f01" + integrity sha512-XzVG9SLgAYdPh7JHrUse5/l9R+QTsPWxBwsLH9SFgsO675+0yeTDgnppeaJWpgVwIMf3+kcZoxynoltPc+iI7Q== dependencies: - "@angular-devkit/schematics" "~13.0.0" - "@nrwl/cypress" "13.2.3" - "@nrwl/devkit" "13.2.3" - "@nrwl/jest" "13.2.3" - "@nrwl/linter" "13.2.3" - "@nrwl/storybook" "13.2.3" + "@angular-devkit/schematics" "~13.1.0" + "@nrwl/cypress" "13.4.5" + "@nrwl/devkit" "13.4.5" + "@nrwl/jest" "13.4.5" + "@nrwl/linter" "13.4.5" + "@nrwl/storybook" "13.4.5" "@phenomnomnominal/tsquery" "4.1.1" - "@schematics/angular" "~13.0.0" + "@schematics/angular" "~13.1.0" find-parent-dir "^0.3.1" ignore "^5.0.4" jasmine-marbles "~0.8.4" rxjs-for-await "0.0.2" + semver "7.3.4" + ts-node "~9.1.1" + tsconfig-paths "^3.9.0" tslib "^2.3.0" webpack-merge "5.7.3" -"@nrwl/cli@*", "@nrwl/cli@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-13.2.3.tgz#a0cf0d0d8f7e3c5475b4bed6c6d4c4c16d889b84" - integrity sha512-4hrOYQ9MqhWOdjQTwuQqHTfPu8lYgdFCE39PVWAcePtoi67mUeba54HkyT6nkTHI1TbO7q8Kf+R73dRhhxDlpA== +"@nrwl/cli@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-13.4.5.tgz#21937c66d7bc7d2109c5e32b7ed2f1bbf8509979" + integrity sha512-CyiGIBhVd2EEx3+HST5TwOwI6kL8zKvWBMXrHs0jAB9lJIjqdzLdTPYHsfLOcAYsl08l8eySVVCkGr9UG5XSPQ== dependencies: - "@nrwl/tao" "13.2.3" + "@nrwl/tao" "13.4.5" chalk "4.1.0" enquirer "~2.3.6" v8-compile-cache "2.3.0" yargs "15.4.1" yargs-parser "20.0.0" -"@nrwl/cypress@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-13.2.3.tgz#d8f6067317557158c496ac2954f18a77c0d37625" - integrity sha512-gp6yluBx37CV/ROHDusri2ew6dR+jFMRGZXmL4Jp+TaFc6ewAI+aQDHUI6py6tvNNtZ+8P/x1hPiaPikn8w5vQ== +"@nrwl/cypress@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-13.4.5.tgz#88bd7eb4818f27ebc13328b0ad904168231af864" + integrity sha512-hQ3lUHuiTqynvOnvTtJTWzeb7N6RrGntjwjH3CpPgTOKWz1Zj7YXGGULrl4dC/xFeKBlm1ptDX3bbxrZjdePVQ== dependencies: "@cypress/webpack-preprocessor" "^5.9.1" - "@nrwl/devkit" "13.2.3" - "@nrwl/linter" "13.2.3" - "@nrwl/workspace" "13.2.3" + "@nrwl/devkit" "13.4.5" + "@nrwl/linter" "13.4.5" + "@nrwl/workspace" "13.4.5" chalk "4.1.0" enhanced-resolve "^5.8.3" fork-ts-checker-webpack-plugin "6.2.10" @@ -2049,38 +2022,38 @@ webpack-node-externals "^3.0.0" yargs-parser "20.0.0" -"@nrwl/devkit@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-13.2.3.tgz#34c8cda7ef5d0e618a7522dbbed6ac37a961302b" - integrity sha512-/cp8hFclOXSAjj9pwb6bOU8yw593HfelcCBi8o8Jhb0Luhn1RzLCOpmHNsOf2hWzSUPEr0BuI0R55ubCEB+k6A== +"@nrwl/devkit@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-13.4.5.tgz#e0da52ea91eae1480e46461f0ea6031021a3177a" + integrity sha512-Q3jZxf4T0KKG851s9AVziaEg9rIZcBePCdE70/sQRcuFMRAjny/bt3IEzMPID1Rg12bKnAXy6sWSKjZ8xKToxg== dependencies: - "@nrwl/tao" "13.2.3" + "@nrwl/tao" "13.4.5" ejs "^3.1.5" ignore "^5.0.4" rxjs "^6.5.4" semver "7.3.4" tslib "^2.3.0" -"@nrwl/eslint-plugin-nx@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-13.2.3.tgz#a799e66755a18e2e57db007317e21e2785a2caea" - integrity sha512-WEb/ZTvc3JCFPKFng8Gsx9UU7NXePWcQSidngmzXd114/NrM8TkHOx4Ps2nEZyYzpOy/Zo8rqAmbtLgruaYvwg== +"@nrwl/eslint-plugin-nx@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-13.4.5.tgz#8d0e748d9e68c796f7991a147cf9b54e0ff38ad7" + integrity sha512-LzBKxsLZ8S1ZdKtDwKtrT07RCnKaHrTQn6Z9odLWm8s9MpOISoYcLzJm7symWYHc7u7+EOFTAK6F7V1bbzgnwg== dependencies: - "@nrwl/devkit" "13.2.3" - "@nrwl/workspace" "13.2.3" - "@typescript-eslint/experimental-utils" "~4.33.0" + "@nrwl/devkit" "13.4.5" + "@nrwl/workspace" "13.4.5" + "@typescript-eslint/experimental-utils" "~5.3.0" confusing-browser-globals "^1.0.9" ts-node "^9.1.1" tsconfig-paths "^3.9.0" -"@nrwl/jest@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-13.2.3.tgz#0902a9637d4d1a5ec6c07ad9c9091fda77603686" - integrity sha512-M9/x0uZNSVKkcyNHcA2+Muj23KRo9SDiCsTb7HnkHhtSbhIWMd1knKP45bOr8CjeeiKNPeervx7uiN5516z8JA== +"@nrwl/jest@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-13.4.5.tgz#c4fa11bfac32b1ff2c85ec1737c8bbf2d095691b" + integrity sha512-6ARJQXe7wswtrKuakSP5iNSqLC/GYJtY5ACKLjFN73JgIuV8rjlSlqEuNs4CSc89YpDegtbgNq/rRzOLabKScg== dependencies: "@jest/reporters" "27.2.2" "@jest/test-result" "27.2.2" - "@nrwl/devkit" "13.2.3" + "@nrwl/devkit" "13.4.5" chalk "4.1.0" identity-obj-proxy "3.0.0" jest-config "27.2.2" @@ -2090,43 +2063,46 @@ rxjs "^6.5.4" tslib "^2.3.0" -"@nrwl/linter@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/linter/-/linter-13.2.3.tgz#39afeff12cf5d5678d521efb52b3fb11a80da77b" - integrity sha512-kdzPWYzR96XYghJ5yIaYSybDrtcAcSxgcscwP1UWvME19O2W8DHbhIj3AzBgjSG0X6hBEh6k9kpyQ49jNkUMCw== +"@nrwl/linter@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/linter/-/linter-13.4.5.tgz#44ab2441f391c917f0868ac034135393002341fe" + integrity sha512-VCKud1DG9h9zShB/Kn7DQ5Da4dJhqYvlQ06O6ViNixKp70ghg4PgVWhxEQixDzk5Xt9EB+fVFnVpnm82mSyxzg== dependencies: - "@nrwl/devkit" "13.2.3" - "@nrwl/jest" "13.2.3" - eslint "7.32.0" + "@nrwl/devkit" "13.4.5" + "@nrwl/jest" "13.4.5" + "@phenomnomnominal/tsquery" "4.1.1" + eslint "8.2.0" glob "7.1.4" minimatch "3.0.4" tmp "~0.2.1" tslib "^2.3.0" -"@nrwl/storybook@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-13.2.3.tgz#2794770cd37a1889572743be28ca0554fb5dc07d" - integrity sha512-+stufDpXPoiT5vf2jNOLC2YRfPyebbltrPMQ0n8YxqpzN91XHj9ieYmErJ6t2AgEutcDpvfbZkVEYKqPNNn3hw== +"@nrwl/storybook@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-13.4.5.tgz#b86310ae9465633285d80fc4a546a60f3e21479a" + integrity sha512-5wg3xwkclrNybeTMv3lui48roPZgd6LNa8hKeb5/g8GAic5W0OGglGNiLXOlIY0kAs5KIVhvz+7ZXSBVpDuSlw== dependencies: - "@nrwl/cypress" "13.2.3" - "@nrwl/devkit" "13.2.3" - "@nrwl/linter" "13.2.3" - "@nrwl/workspace" "13.2.3" + "@nrwl/cypress" "13.4.5" + "@nrwl/devkit" "13.4.5" + "@nrwl/linter" "13.4.5" + "@nrwl/workspace" "13.4.5" core-js "^3.6.5" semver "7.3.4" ts-loader "^9.2.6" tsconfig-paths-webpack-plugin "3.4.1" -"@nrwl/tao@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-13.2.3.tgz#f0ca4b08258bbc280d67dae039a2d4fda5830557" - integrity sha512-vn+GqvFVinqAXzvbHznPBtCg9OCfirh3hF68sZgY2C6jZ3m47XwST3mLTRSDTtSDy9QfUrSZ6p4uAk2Iht0yBQ== +"@nrwl/tao@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-13.4.5.tgz#bb61a1280a10dfca8956af42cb3e60443381b2b3" + integrity sha512-DYVmYDEeJ9zLagU52nVXBdA+0SXrypmydrxFLhEAc79tlForNX3dmjqePhNDq7JqllmD643DiNh0pydgsPzUdQ== dependencies: chalk "4.1.0" enquirer "~2.3.6" + fast-glob "3.2.7" fs-extra "^9.1.0" + ignore "^5.0.4" jsonc-parser "3.0.0" - nx "13.2.3" + nx "13.4.5" rxjs "^6.5.4" rxjs-for-await "0.0.2" semver "7.3.4" @@ -2134,27 +2110,28 @@ tslib "^2.3.0" yargs-parser "20.0.0" -"@nrwl/workspace@13.2.3": - version "13.2.3" - resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-13.2.3.tgz#f778bd77901f06f86bde644151a140917c015761" - integrity sha512-dFB6XXDLP4Nmh/Sw8Euwdt7f0tg1O6JxJNvXV2BfWG1rK3dmhTz4Q+8fgxl7AxsrToVrXDAh16mPyfAzpqH4pw== +"@nrwl/workspace@13.4.5": + version "13.4.5" + resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-13.4.5.tgz#ca449ee876d1e242c23f5189daff3629a713d88f" + integrity sha512-1tw8bJHL55QqVhLMRosXhTeAAxv3NFkBIVY3NodbqQXPlF3qKnly6vWqga9KpKr7quPvD+9DzEpCdP/7K7QoEw== dependencies: - "@nrwl/cli" "13.2.3" - "@nrwl/devkit" "13.2.3" - "@nrwl/jest" "13.2.3" - "@nrwl/linter" "13.2.3" - "@parcel/watcher" "2.0.0-alpha.11" + "@nrwl/cli" "13.4.5" + "@nrwl/devkit" "13.4.5" + "@nrwl/jest" "13.4.5" + "@nrwl/linter" "13.4.5" + "@parcel/watcher" "2.0.4" chalk "4.1.0" chokidar "^3.5.1" + cli-spinners "2.6.1" cosmiconfig "^4.0.0" dotenv "~10.0.0" enquirer "~2.3.6" + figures "3.2.0" flat "^5.0.2" fs-extra "^9.1.0" glob "7.1.4" ignore "^5.0.4" minimatch "3.0.4" - npm-run-all "^4.1.5" npm-run-path "^4.0.1" open "^7.4.2" rxjs "^6.5.4" @@ -2165,13 +2142,13 @@ yargs "15.4.1" yargs-parser "20.0.0" -"@parcel/watcher@2.0.0-alpha.11": - version "2.0.0-alpha.11" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.0-alpha.11.tgz#8d6233d4416880810438cd2628e6a35273241ab3" - integrity sha512-zMIAsFLcnB82kkk0kSOZ/zgyihb8sty0zVrsz+3ruoYXkchymWsCDsxiX4v+X2s8Jppk3JE8vlnD4DKs3QTOEQ== +"@parcel/watcher@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" + integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg== dependencies: - node-addon-api "^3.0.2" - node-gyp-build "^4.2.3" + node-addon-api "^3.2.1" + node-gyp-build "^4.3.0" "@pdftron/webviewer@8.2.0": version "8.2.0" @@ -2220,22 +2197,13 @@ dependencies: any-observable "^0.3.0" -"@schematics/angular@13.1.2": - version "13.1.2" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.1.2.tgz#bd3fd2fd1bb225bffb24fedad1409b64b1d08323" - integrity sha512-OMbuOsnzUFjIGeo99NYwIPwjX6udJAiT5Sj5K7QZZYj66HuAqNBMV57J8GPA56edx5mOHZZApWMjXLlOxRXbJA== +"@schematics/angular@13.1.3", "@schematics/angular@~13.1.0": + version "13.1.3" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.1.3.tgz#c763cdf1a2e0784d5263c23b581bfeb4a4a2f12e" + integrity sha512-IixVWAEtN97N74PCxg3T03Ar/ECjGyJBWKAjKTTCrgNSWhm2mKgIc4RyI6cVCnltfJWIo48fcFhlOx/elShaCg== dependencies: - "@angular-devkit/core" "13.1.2" - "@angular-devkit/schematics" "13.1.2" - jsonc-parser "3.0.0" - -"@schematics/angular@~13.0.0": - version "13.0.3" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.0.3.tgz#08c5511b0e72a9934ac84545d3e49e05bd0dbf6c" - integrity sha512-qH6mnmGaDCuG1FM3vLdvSFDG394TeZO0ZvRDrw3iCYlX5Nkbz0Kvt0MPtWNZmlohwFhGlbXKVQiR++1dxa6eEA== - dependencies: - "@angular-devkit/core" "13.0.3" - "@angular-devkit/schematics" "13.0.3" + "@angular-devkit/core" "13.1.3" + "@angular-devkit/schematics" "13.1.3" jsonc-parser "3.0.0" "@sinonjs/commons@^1.7.0": @@ -2402,7 +2370,7 @@ jest-diff "^27.0.0" pretty-format "^27.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -2493,32 +2461,20 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" - integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== +"@typescript-eslint/eslint-plugin@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz#d8ff412f10f54f6364e7fd7c1e70eb6767f434c3" + integrity sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw== dependencies: - "@typescript-eslint/experimental-utils" "4.33.0" - "@typescript-eslint/scope-manager" "4.33.0" - debug "^4.3.1" + "@typescript-eslint/experimental-utils" "5.3.1" + "@typescript-eslint/scope-manager" "5.3.1" + debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" - regexpp "^3.1.0" + regexpp "^3.2.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@~4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - "@typescript-eslint/experimental-utils@5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz#ee56b4957547ed2b0fc7451205e41502e664f546" @@ -2531,23 +2487,27 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" - integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== +"@typescript-eslint/experimental-utils@5.3.1", "@typescript-eslint/experimental-utils@~5.3.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz#bbd8f9b67b4d5fdcb9d2f90297d8fcda22561e05" + integrity sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w== dependencies: - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - debug "^4.3.1" + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.3.1" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/typescript-estree" "5.3.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== +"@typescript-eslint/parser@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.3.1.tgz#8ff1977c3d3200c217b3e4628d43ef92f89e5261" + integrity sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw== dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" + "@typescript-eslint/scope-manager" "5.3.1" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/typescript-estree" "5.3.1" + debug "^4.3.2" "@typescript-eslint/scope-manager@5.3.0": version "5.3.0" @@ -2557,28 +2517,23 @@ "@typescript-eslint/types" "5.3.0" "@typescript-eslint/visitor-keys" "5.3.0" -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== +"@typescript-eslint/scope-manager@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz#3cfbfbcf5488fb2a9a6fbbe97963ee1e8d419269" + integrity sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg== + dependencies: + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/visitor-keys" "5.3.1" "@typescript-eslint/types@5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.0.tgz#af29fd53867c2df0028c57c36a655bd7e9e05416" integrity sha512-fce5pG41/w8O6ahQEhXmMV+xuh4+GayzqEogN24EK+vECA3I6pUwKuLi5QbXO721EMitpQne5VKXofPonYlAQg== -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" +"@typescript-eslint/types@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.1.tgz#afaa715b69ebfcfde3af8b0403bf27527912f9b7" + integrity sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ== "@typescript-eslint/typescript-estree@5.3.0": version "5.3.0" @@ -2593,13 +2548,18 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== +"@typescript-eslint/typescript-estree@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz#50cc4bfb93dc31bc75e08ae52e29fcb786d606ec" + integrity sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ== dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/visitor-keys" "5.3.1" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" "@typescript-eslint/visitor-keys@5.3.0": version "5.3.0" @@ -2609,6 +2569,14 @@ "@typescript-eslint/types" "5.3.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz#c2860ff22939352db4f3806f34b21d8ad00588ba" + integrity sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ== + dependencies: + "@typescript-eslint/types" "5.3.1" + eslint-visitor-keys "^3.0.0" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -2941,7 +2909,7 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.1.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== @@ -2951,6 +2919,11 @@ acorn@^8.2.4, acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== +acorn@^8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + adjust-sourcemap-loader@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" @@ -3007,17 +2980,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@8.6.3: - version "8.6.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" - integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ajv@8.8.2, ajv@^8.0.0, ajv@^8.0.1, ajv@^8.8.0: +ajv@8.8.2, ajv@^8.0.0, ajv@^8.8.0: version "8.8.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.2.tgz#01b4fef2007a28bf75f0b7fc009f62679de4abbb" integrity sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw== @@ -3190,6 +3153,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + aria-query@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" @@ -3357,6 +3325,18 @@ autoprefixer@^10.4.0: picocolors "^1.0.0" postcss-value-parser "^4.1.0" +autoprefixer@^10.4.2: + version "10.4.2" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b" + integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ== + dependencies: + browserslist "^4.19.1" + caniuse-lite "^1.0.30001297" + fraction.js "^4.1.2" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + autoprefixer@^9.6.1: version "9.8.8" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" @@ -3964,6 +3944,11 @@ caniuse-lite@^1.0.30001286: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001298.tgz#0e690039f62e91c3ea581673d716890512e7ec52" integrity sha512-AcKqikjMLlvghZL/vfTHorlQsLDhGRalYf1+GmWCf5SCMziSGjRYQW/JEksj14NaYHIR6KIhrFAy0HV5C25UzQ== +caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001299: + version "1.0.30001300" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz#11ab6c57d3eb6f964cba950401fd00a146786468" + integrity sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA== + canonical-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d" @@ -4161,7 +4146,7 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.5.0: +cli-spinners@2.6.1, cli-spinners@^2.5.0: version "2.6.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== @@ -4577,29 +4562,18 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -critters@0.0.15: - version "0.0.15" - resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.15.tgz#b1c8d18fd18e614471733d7d749deac0f386b738" - integrity sha512-AE7hkXb3eZUbEvS1SKZa+OU4o2kUOXtzVeE/2E/mjU/0mV1wpBT1HfUCWVRS4zwvkBNJ0AQYsVjAoFm+kIhfdw== +critters@0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.16.tgz#ffa2c5561a65b43c53b940036237ce72dcebfe93" + integrity sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A== dependencies: chalk "^4.1.0" - css-select "^4.1.3" + css-select "^4.2.0" parse5 "^6.0.1" parse5-htmlparser2-tree-adapter "^6.0.1" postcss "^8.3.7" pretty-bytes "^5.3.0" -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -4638,6 +4612,13 @@ css-blank-pseudo@^2.0.0: resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-2.0.0.tgz#10667f9c5f91e4fbde76c4efac55e8eaa6ed9967" integrity sha512-n7fxEOyuvAVPLPb9kL4XTIK/gnp2fKQ7KFQ+9lj60W9pDn/jTr5LjS/kHHm+rES/YJ3m0S6+uJgYSuAJg9zOyA== +css-blank-pseudo@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.2.tgz#f8660f6a48b17888a9277e53f25cc5abec1f0169" + integrity sha512-hOb1LFjRR+8ocA071xUSmg5VslJ8NGo/I2qpUpdeAYyBVCgupS5O8SEVo4SxEMYyFBNodBkzG3T1iqW9HCXxew== + dependencies: + postcss-selector-parser "^6.0.8" + css-has-pseudo@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" @@ -4653,6 +4634,13 @@ css-has-pseudo@^2.0.0: dependencies: postcss-selector-parser "^6" +css-has-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.3.tgz#4824a34cb92dae7e09ea1d3fd19691b653412098" + integrity sha512-0gDYWEKaGacwxCqvQ3Ypg6wGdD1AztbMm5h1JsactG2hP2eiflj808QITmuWBpE7sjSEVrAlZhPTVd/nNMj/hQ== + dependencies: + postcss-selector-parser "^6.0.8" + css-loader@6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.1.tgz#0c43d4fbe0d97f699c91e9818cb585759091d1b1" @@ -4679,18 +4667,23 @@ css-prefers-color-scheme@^5.0.0: resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-5.0.0.tgz#a89bc1abfe946e77a1a1e12dbc25a1439705933f" integrity sha512-XpzVrdwbppHm+Nnrzcb/hQb8eq1aKv4U8Oh59LsLfTsbIZZ6Fvn9razb66ihH2aTJ0VhO9n9sVm8piyKXJAZMA== -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== +css-prefers-color-scheme@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.2.tgz#d5c03a980caab92d8beeee176a8795d331e0c727" + integrity sha512-gv0KQBEM+q/XdoKyznovq3KW7ocO7k+FhPP+hQR1MenJdu0uPGS6IZa9PzlbqBeS6XcZJNAoqoFxlAUW461CrA== + +css-select@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" + integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== dependencies: boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" + css-what "^5.1.0" + domhandler "^4.3.0" + domutils "^2.8.0" + nth-check "^2.0.1" -css-what@^5.0.0: +css-what@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== @@ -5013,7 +5006,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.3, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: +debug@4, debug@4.3.3, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== @@ -5341,7 +5334,14 @@ domhandler@^4.2.0: dependencies: domelementtype "^2.2.0" -domutils@^2.6.0: +domhandler@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -5572,265 +5572,180 @@ esbuild-android-arm64@0.13.13: resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.13.tgz#da07b5fb2daf7d83dcd725f7cf58a6758e6e702a" integrity sha512-T02aneWWguJrF082jZworjU6vm8f4UQ+IH2K3HREtlqoY9voiJUwHLRL6khRlsNLzVglqgqb7a3HfGx7hAADCQ== -esbuild-android-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44" - integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg== - -esbuild-android-arm64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz#256b7cf2f9d382a2a92a4ff4e13187587c9b7c6a" - integrity sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw== +esbuild-android-arm64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.11.tgz#b8b34e35a5b43880664ac7a3fbc70243d7ed894f" + integrity sha512-6iHjgvMnC/SzDH8TefL+/3lgCjYWwAd1LixYfmz/TBPbDQlxcuSkX0yiQgcJB9k+ibZ54yjVXziIwGdlc+6WNw== esbuild-darwin-64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.13.tgz#e94e9fd3b4b5455a2e675cd084a19a71b6904bbf" integrity sha512-wkaiGAsN/09X9kDlkxFfbbIgR78SNjMOfUhoel3CqKBDsi9uZhw7HBNHNxTzYUK8X8LAKFpbODgcRB3b/I8gHA== -esbuild-darwin-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72" - integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ== - -esbuild-darwin-64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz#891a59ce6bc3aded0265f982469b3eb9571b92f8" - integrity sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA== +esbuild-darwin-64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.11.tgz#ba805de98c0412e50fcd0636451797da157b0625" + integrity sha512-olq84ikh6TiBcrs3FnM4eR5VPPlcJcdW8BnUz/lNoEWYifYQ+Po5DuYV1oz1CTFMw4k6bQIZl8T3yxL+ZT2uvQ== esbuild-darwin-arm64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.13.tgz#8c320eafbb3ba2c70d8062128c5b71503e342471" integrity sha512-b02/nNKGSV85Gw9pUCI5B48AYjk0vFggDeom0S6QMP/cEDtjSh1WVfoIFNAaLA0MHWfue8KBwoGVsN7rBshs4g== -esbuild-darwin-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a" - integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ== - -esbuild-darwin-arm64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz#ab834fffa9c612b2901ca1e77e4695d4d8aa63a2" - integrity sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A== +esbuild-darwin-arm64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.11.tgz#4d3573e448af76ce33e16231f3d9f878542d6fe8" + integrity sha512-Jj0ieWLREPBYr/TZJrb2GFH8PVzDqiQWavo1pOFFShrcmHWDBDrlDxPzEZ67NF/Un3t6sNNmeI1TUS/fe1xARg== esbuild-freebsd-64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.13.tgz#ce0ca5b8c4c274cfebc9326f9b316834bd9dd151" integrity sha512-ALgXYNYDzk9YPVk80A+G4vz2D22Gv4j4y25exDBGgqTcwrVQP8rf/rjwUjHoh9apP76oLbUZTmUmvCMuTI1V9A== -esbuild-freebsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85" - integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA== - -esbuild-freebsd-64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz#f7fc87a83f02de27d5a48472571efa1a432ae86d" - integrity sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ== +esbuild-freebsd-64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.11.tgz#9294e6ab359ec93590ab097b0f2017de7c78ab4d" + integrity sha512-C5sT3/XIztxxz/zwDjPRHyzj/NJFOnakAanXuyfLDwhwupKPd76/PPHHyJx6Po6NI6PomgVp/zi6GRB8PfrOTA== esbuild-freebsd-arm64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.13.tgz#463da17562fdcfdf03b3b94b28497d8d8dcc8f62" integrity sha512-uFvkCpsZ1yqWQuonw5T1WZ4j59xP/PCvtu6I4pbLejhNo4nwjW6YalqnBvBSORq5/Ifo9S/wsIlVHzkzEwdtlw== -esbuild-freebsd-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52" - integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ== - -esbuild-freebsd-arm64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz#bc8758420431106751f3180293cac0b5bc4ce2ee" - integrity sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ== +esbuild-freebsd-arm64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.11.tgz#ae3e0b09173350b66cf8321583c9a1c1fcb8bb55" + integrity sha512-y3Llu4wbs0bk4cwjsdAtVOesXb6JkdfZDLKMt+v1U3tOEPBdSu6w8796VTksJgPfqvpX22JmPLClls0h5p+L9w== esbuild-linux-32@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.13.tgz#2035793160da2c4be48a929e5bafb14a31789acc" integrity sha512-yxR9BBwEPs9acVEwTrEE2JJNHYVuPQC9YGjRfbNqtyfK/vVBQYuw8JaeRFAvFs3pVJdQD0C2BNP4q9d62SCP4w== -esbuild-linux-32@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69" - integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g== - -esbuild-linux-32@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz#0cc2dcd816d6d66e255bc7aeac139b1d04246812" - integrity sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ== +esbuild-linux-32@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.11.tgz#ddadbc7038aa5a6b1675bb1503cf79a0cbf1229a" + integrity sha512-Cg3nVsxArjyLke9EuwictFF3Sva+UlDTwHIuIyx8qpxRYAOUTmxr2LzYrhHyTcGOleLGXUXYsnUVwKqnKAgkcg== esbuild-linux-64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.13.tgz#fbe4802a8168c6d339d0749f977b099449b56f22" integrity sha512-kzhjlrlJ+6ESRB/n12WTGll94+y+HFeyoWsOrLo/Si0s0f+Vip4b8vlnG0GSiS6JTsWYAtGHReGczFOaETlKIw== -esbuild-linux-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3" - integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA== - -esbuild-linux-64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz#c790f739aa75b15c153609ea3457153fbe4db93d" - integrity sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg== +esbuild-linux-64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.11.tgz#d698e3ce3a231ddfeec6b5df8c546ae8883fcd88" + integrity sha512-oeR6dIrrojr8DKVrxtH3xl4eencmjsgI6kPkDCRIIFwv4p+K7ySviM85K66BN01oLjzthpUMvBVfWSJkBLeRbg== esbuild-linux-arm64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.13.tgz#f08d98df28d436ed4aad1529615822bb74d4d978" integrity sha512-KMrEfnVbmmJxT3vfTnPv/AiXpBFbbyExH13BsUGy1HZRPFMi5Gev5gk8kJIZCQSRfNR17aqq8sO5Crm2KpZkng== -esbuild-linux-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1" - integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA== - -esbuild-linux-arm64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz#96858a1f89ad30274dec780d0e3dd8b5691c6b0c" - integrity sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww== +esbuild-linux-arm64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.11.tgz#85faea9fa99ad355b5e3b283197a4dfd0a110fe7" + integrity sha512-+e6ZCgTFQYZlmg2OqLkg1jHLYtkNDksxWDBWNtI4XG4WxuOCUErLqfEt9qWjvzK3XBcCzHImrajkUjO+rRkbMg== esbuild-linux-arm@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.13.tgz#6f968c3a98b64e30c80b212384192d0cfcb32e7f" integrity sha512-hXub4pcEds+U1TfvLp1maJ+GHRw7oizvzbGRdUvVDwtITtjq8qpHV5Q5hWNNn6Q+b3b2UxF03JcgnpzCw96nUQ== -esbuild-linux-arm@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe" - integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA== - -esbuild-linux-arm@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz#03e193225afa9b1215d2ec6efe8edf0c03eeed6f" - integrity sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ== +esbuild-linux-arm@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.11.tgz#74cbcf0b8a22c8401bcbcd6ebd4cbf2baca8b7b4" + integrity sha512-vcwskfD9g0tojux/ZaTJptJQU3a7YgTYsptK1y6LQ/rJmw7U5QJvboNawqM98Ca3ToYEucfCRGbl66OTNtp6KQ== esbuild-linux-mips64le@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.13.tgz#690c78dc4725efe7d06a1431287966fbf7774c7f" integrity sha512-cJT9O1LYljqnnqlHaS0hdG73t7hHzF3zcN0BPsjvBq+5Ad47VJun+/IG4inPhk8ta0aEDK6LdP+F9299xa483w== -esbuild-linux-mips64le@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7" - integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg== - -esbuild-linux-mips64le@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz#972f218d2cb5125237376d40ad60a6e5356a782c" - integrity sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ== +esbuild-linux-mips64le@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.11.tgz#490429211a3233f5cbbd8575b7758b897e42979a" + integrity sha512-Rrs99L+p54vepmXIb87xTG6ukrQv+CzrM8eoeR+r/OFL2Rg8RlyEtCeshXJ2+Q66MXZOgPJaokXJZb9snq28bw== esbuild-linux-ppc64le@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.13.tgz#7ec9048502de46754567e734aae7aebd2df6df02" integrity sha512-+rghW8st6/7O6QJqAjVK3eXzKkZqYAw6LgHv7yTMiJ6ASnNvghSeOcIvXFep3W2oaJc35SgSPf21Ugh0o777qQ== -esbuild-linux-ppc64le@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2" - integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ== +esbuild-linux-ppc64le@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.11.tgz#fc79d60710213b5b98345f5b138d48245616827a" + integrity sha512-JyzziGAI0D30Vyzt0HDihp4s1IUtJ3ssV2zx9O/c+U/dhUHVP2TmlYjzCfCr2Q6mwXTeloDcLS4qkyvJtYptdQ== -esbuild-linux-ppc64le@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz#20b71622ac09142b0e523f633af0829def7fed6b" - integrity sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA== +esbuild-linux-s390x@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.11.tgz#ca4b93556bbba6cc95b0644f2ee93c982165ba07" + integrity sha512-DoThrkzunZ1nfRGoDN6REwmo8ZZWHd2ztniPVIR5RMw/Il9wiWEYBahb8jnMzQaSOxBsGp0PbyJeVLTUatnlcw== esbuild-netbsd-64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.13.tgz#439bdaefffa03a8fa84324f5d83d636f548a2de3" integrity sha512-A/B7rwmzPdzF8c3mht5TukbnNwY5qMJqes09ou0RSzA5/jm7Jwl/8z853ofujTFOLhkNHUf002EAgokzSgEMpQ== -esbuild-netbsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038" - integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w== - -esbuild-netbsd-64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz#dbd6a25117902ef67aa11d8779dd9c6bca7fbe82" - integrity sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw== +esbuild-netbsd-64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.11.tgz#edb340bc6653c88804cac2253e21b74258fce165" + integrity sha512-12luoRQz+6eihKYh1zjrw0CBa2aw3twIiHV/FAfjh2NEBDgJQOY4WCEUEN+Rgon7xmLh4XUxCQjnwrvf8zhACw== esbuild-openbsd-64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.13.tgz#c9958e5291a00a3090c1ec482d6bcdf2d5b5d107" integrity sha512-szwtuRA4rXKT3BbwoGpsff6G7nGxdKgUbW9LQo6nm0TVCCjDNDC/LXxT994duIW8Tyq04xZzzZSW7x7ttDiw1w== -esbuild-openbsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7" - integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g== - -esbuild-openbsd-64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz#3c5f199eed459b2f88865548394c0b77383d9ca4" - integrity sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q== +esbuild-openbsd-64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.11.tgz#caeff5f946f79a60ce7bcf88871ca4c71d3476e8" + integrity sha512-l18TZDjmvwW6cDeR4fmizNoxndyDHamGOOAenwI4SOJbzlJmwfr0jUgjbaXCUuYVOA964siw+Ix+A+bhALWg8Q== esbuild-sunos-64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.13.tgz#ac9ead8287379cd2f6d00bd38c5997fda9c1179e" integrity sha512-ihyds9O48tVOYF48iaHYUK/boU5zRaLOXFS+OOL3ceD39AyHo46HVmsJLc7A2ez0AxNZCxuhu+P9OxfPfycTYQ== -esbuild-sunos-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4" - integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw== +esbuild-sunos-64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.11.tgz#90ce7e1749c2958a53509b4bae7b8f7d98f276d6" + integrity sha512-bmYzDtwASBB8c+0/HVOAiE9diR7+8zLm/i3kEojUH2z0aIs6x/S4KiTuT5/0VKJ4zk69kXel1cNWlHBMkmavQg== -esbuild-sunos-64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz#900a681db6b76c6a7f60fc28d2bfe5b11698641c" - integrity sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow== - -esbuild-wasm@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.14.2.tgz#49c59c610a0be48becec87a7d9019d143468f2f9" - integrity sha512-Rs8NjWoo1UdsVjhxT2o6kLCX9Sh65pyd3/h4XeJ3jjQNM6NgL+/CSowuJgvOIjDAXMLXpc6fdGnyZQDil9IUJA== - -esbuild-wasm@^0.13.0: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.13.15.tgz#3e1f075f6d3a2203caebaf6371578f2741539111" - integrity sha512-QO/ZqlnpXtiMKrPp8lgwsNJFKGKwm0EcIN6Og3vbhkFaauRTgGsX0t96gW7pFIY5UAARW/O+i1B/YLid6jW6eQ== +esbuild-wasm@0.14.11, esbuild-wasm@^0.14.0: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.14.11.tgz#bd09f4c42969cddcae39007d284f8ef747aae85d" + integrity sha512-9e1R6hv0hiU+BkJI2edqUuWfXUbOP2Mox+Ijl/uY1vLLlSsunkrcADqD/4Rz+VCEDzw6ecscJM+uJqR2fRmEUg== esbuild-windows-32@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.13.tgz#a3820fc86631ca594cb7b348514b5cc3f058cfd6" integrity sha512-h2RTYwpG4ldGVJlbmORObmilzL8EECy8BFiF8trWE1ZPHLpECE9//J3Bi+W3eDUuv/TqUbiNpGrq4t/odbayUw== -esbuild-windows-32@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7" - integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw== - -esbuild-windows-32@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz#61e0ba5bd95b277a55d2b997ac4c04dfe2559220" - integrity sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ== +esbuild-windows-32@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.11.tgz#d067f4ce15b29efba6336e6a23597120fafe49ec" + integrity sha512-J1Ys5hMid8QgdY00OBvIolXgCQn1ARhYtxPnG6ESWNTty3ashtc4+As5nTrsErnv8ZGUcWZe4WzTP/DmEVX1UQ== esbuild-windows-64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.13.tgz#1da748441f228d75dff474ddb7d584b81887323c" integrity sha512-oMrgjP4CjONvDHe7IZXHrMk3wX5Lof/IwFEIbwbhgbXGBaN2dke9PkViTiXC3zGJSGpMvATXVplEhlInJ0drHA== -esbuild-windows-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294" - integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ== - -esbuild-windows-64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz#6ab59ef721ff75c682a1c8ae0570dabb637abddb" - integrity sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg== +esbuild-windows-64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.11.tgz#13e86dd37a6cd61a5276fa2d271342d0f74da864" + integrity sha512-h9FmMskMuGeN/9G9+LlHPAoiQk9jlKDUn9yA0MpiGzwLa82E7r1b1u+h2a+InprbSnSLxDq/7p5YGtYVO85Mlg== esbuild-windows-arm64@0.13.13: version "0.13.13" resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.13.tgz#06dfa52a6b178a5932a9a6e2fdb240c09e6da30c" integrity sha512-6fsDfTuTvltYB5k+QPah/x7LrI2+OLAJLE3bWLDiZI6E8wXMQU+wLqtEO/U/RvJgVY1loPs5eMpUBpVajczh1A== -esbuild-windows-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3" - integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA== - -esbuild-windows-arm64@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz#aca2a4f83d2f0d1592ad4be832ed0045fc888cda" - integrity sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA== +esbuild-windows-arm64@0.14.11: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.11.tgz#e8edfdf1d712085e6dc3fba18a0c225aaae32b75" + integrity sha512-dZp7Krv13KpwKklt9/1vBFBMqxEQIO6ri7Azf8C+ob4zOegpJmha2XY9VVWP/OyQ0OWk6cEeIzMJwInRZrzBUQ== esbuild@0.13.13: version "0.13.13" @@ -5855,51 +5770,29 @@ esbuild@0.13.13: esbuild-windows-64 "0.13.13" esbuild-windows-arm64 "0.13.13" -esbuild@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.2.tgz#9c1e1a652549cc33e44885eea42ea2cc6267edc2" - integrity sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg== +esbuild@0.14.11, esbuild@^0.14.0: + version "0.14.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.11.tgz#ac4acb78907874832afb704c3afe58ad37715c27" + integrity sha512-xZvPtVj6yecnDeFb3KjjCM6i7B5TCAQZT77kkW/CpXTMnd6VLnRPKrUB1XHI1pSq6a4Zcy3BGueQ8VljqjDGCg== optionalDependencies: - esbuild-android-arm64 "0.14.2" - esbuild-darwin-64 "0.14.2" - esbuild-darwin-arm64 "0.14.2" - esbuild-freebsd-64 "0.14.2" - esbuild-freebsd-arm64 "0.14.2" - esbuild-linux-32 "0.14.2" - esbuild-linux-64 "0.14.2" - esbuild-linux-arm "0.14.2" - esbuild-linux-arm64 "0.14.2" - esbuild-linux-mips64le "0.14.2" - esbuild-linux-ppc64le "0.14.2" - esbuild-netbsd-64 "0.14.2" - esbuild-openbsd-64 "0.14.2" - esbuild-sunos-64 "0.14.2" - esbuild-windows-32 "0.14.2" - esbuild-windows-64 "0.14.2" - esbuild-windows-arm64 "0.14.2" - -esbuild@^0.13.0: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf" - integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw== - optionalDependencies: - esbuild-android-arm64 "0.13.15" - esbuild-darwin-64 "0.13.15" - esbuild-darwin-arm64 "0.13.15" - esbuild-freebsd-64 "0.13.15" - esbuild-freebsd-arm64 "0.13.15" - esbuild-linux-32 "0.13.15" - esbuild-linux-64 "0.13.15" - esbuild-linux-arm "0.13.15" - esbuild-linux-arm64 "0.13.15" - esbuild-linux-mips64le "0.13.15" - esbuild-linux-ppc64le "0.13.15" - esbuild-netbsd-64 "0.13.15" - esbuild-openbsd-64 "0.13.15" - esbuild-sunos-64 "0.13.15" - esbuild-windows-32 "0.13.15" - esbuild-windows-64 "0.13.15" - esbuild-windows-arm64 "0.13.15" + esbuild-android-arm64 "0.14.11" + esbuild-darwin-64 "0.14.11" + esbuild-darwin-arm64 "0.14.11" + esbuild-freebsd-64 "0.14.11" + esbuild-freebsd-arm64 "0.14.11" + esbuild-linux-32 "0.14.11" + esbuild-linux-64 "0.14.11" + esbuild-linux-arm "0.14.11" + esbuild-linux-arm64 "0.14.11" + esbuild-linux-mips64le "0.14.11" + esbuild-linux-ppc64le "0.14.11" + esbuild-linux-s390x "0.14.11" + esbuild-netbsd-64 "0.14.11" + esbuild-openbsd-64 "0.14.11" + esbuild-sunos-64 "0.14.11" + esbuild-windows-32 "0.14.11" + esbuild-windows-64 "0.14.11" + esbuild-windows-arm64 "0.14.11" escalade@^3.1.1: version "3.1.1" @@ -6020,12 +5913,13 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== +eslint-scope@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-6.0.0.tgz#9cf45b13c5ac8f3d4c50f46a5121f61b3e318978" + integrity sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.3.0" + estraverse "^5.2.0" eslint-utils@^3.0.0: version "3.0.0" @@ -6034,11 +5928,6 @@ eslint-utils@^3.0.0: dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - eslint-visitor-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" @@ -6049,37 +5938,41 @@ eslint-visitor-keys@^3.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== -eslint@7.32.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== +eslint-visitor-keys@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" + integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== + +eslint@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.2.0.tgz#44d3fb506d0f866a506d97a0fc0e90ee6d06a815" + integrity sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw== dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" + "@eslint/eslintrc" "^1.0.4" + "@humanwhocodes/config-array" "^0.6.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" + eslint-scope "^6.0.0" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" + glob-parent "^6.0.1" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" @@ -6087,22 +5980,21 @@ eslint@7.32.0: natural-compare "^1.4.0" optionator "^0.9.1" progress "^2.0.0" - regexpp "^3.1.0" + regexpp "^3.2.0" semver "^7.2.1" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" strip-json-comments "^3.1.0" - table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.0.0, espree@^9.2.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" + integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== dependencies: - acorn "^7.4.0" + acorn "^8.7.0" acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + eslint-visitor-keys "^3.1.0" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" @@ -6393,7 +6285,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.1.1, fast-glob@^3.2.7: +fast-glob@3.2.7, fast-glob@^3.1.1, fast-glob@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== @@ -6452,6 +6344,13 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== +figures@3.2.0, figures@^3.0.0, figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -6467,13 +6366,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0, figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -6717,7 +6609,7 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.1.1: +fraction.js@^4.1.1, fraction.js@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8" integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA== @@ -6992,7 +6884,7 @@ globals@^13.6.0, globals@^13.9.0: dependencies: type-fest "^0.20.2" -globby@^11.0.1, globby@^11.0.3, globby@^11.0.4: +globby@^11.0.1, globby@^11.0.4: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -8561,6 +8453,13 @@ js-yaml@^3.13.1, js-yaml@^3.9.0: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -8981,11 +8880,6 @@ lodash.orderby@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz#e697f04ce5d78522f54d9338b32b81a3393e4eb3" integrity sha1-5pfwTOXXhSL1TZM4syuBozk+TrM= -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -9168,11 +9062,6 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= - merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -9543,10 +9432,10 @@ neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -ng-packagr@13.0.8: - version "13.0.8" - resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-13.0.8.tgz#0e3b52b59729b4c2898f559ef6418824a89232e4" - integrity sha512-m2YhziyqntCsBxZFjqlaoA7Q4eY8yvZzGiTypkIFkG4ORqGb6dXt8WTUu2p+b7vx02bIqTa+1O+1T9KnyDqdiw== +ng-packagr@13.1.3: + version "13.1.3" + resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-13.1.3.tgz#d1f2067e335d4e19f97a29ae32c4c8d1e1503bd1" + integrity sha512-u6Idmh4qAFYKNYP7tsm+Oys8enZ0FrZLN0muJFx7VY5CChq+PYqHeuWPd2a/JD0dL1Ffzr7qHL4Yak8/Ld0/0Q== dependencies: "@rollup/plugin-json" "^4.1.0" "@rollup/plugin-node-resolve" "^13.0.0" @@ -9557,7 +9446,7 @@ ng-packagr@13.0.8: chokidar "^3.5.1" commander "^8.0.0" dependency-graph "^0.11.0" - esbuild-wasm "^0.13.0" + esbuild-wasm "^0.14.0" find-cache-dir "^3.3.1" glob "^7.1.6" injection-js "^2.4.0" @@ -9565,15 +9454,15 @@ ng-packagr@13.0.8: less "^4.1.0" ora "^5.1.0" postcss "^8.2.4" - postcss-preset-env "^6.7.0" + postcss-preset-env "^7.0.0" postcss-url "^10.1.1" rollup "^2.45.1" rollup-plugin-sourcemaps "^0.6.3" rxjs "^6.5.0" sass "^1.32.8" - stylus "^0.55.0" + stylus "^0.56.0" optionalDependencies: - esbuild "^0.13.0" + esbuild "^0.14.0" ngx-color-picker@^11.0.0: version "11.0.0" @@ -9604,12 +9493,7 @@ nice-napi@^1.0.2: node-addon-api "^3.0.0" node-gyp-build "^4.2.2" -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-addon-api@^3.0.0, node-addon-api@^3.0.2: +node-addon-api@^3.0.0, node-addon-api@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== @@ -9619,7 +9503,7 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-gyp-build@^4.2.2, node-gyp-build@^4.2.3: +node-gyp-build@^4.2.2, node-gyp-build@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== @@ -9786,21 +9670,6 @@ npm-registry-fetch@^11.0.0: minizlib "^2.0.0" npm-package-arg "^8.0.0" -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -9818,7 +9687,7 @@ npmlog@^6.0.0: gauge "^4.0.0" set-blocking "^2.0.0" -nth-check@^2.0.0: +nth-check@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== @@ -9840,12 +9709,12 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -nx@13.2.3: - version "13.2.3" - resolved "https://registry.yarnpkg.com/nx/-/nx-13.2.3.tgz#d571206b0ad5f8d34aa1aec644d75cbf15b6c097" - integrity sha512-aNRbPjArROZazOKAiUhG5uZAZmL1uXdsGoA3p5mDt5fCLSj/CX1V/myuRx+Js0qsAV78W6dSf2z6TiQeIgieXg== +nx@13.4.5: + version "13.4.5" + resolved "https://registry.yarnpkg.com/nx/-/nx-13.4.5.tgz#f68857ea33dae302c0d1171f0909155ab0be2bd7" + integrity sha512-efUyCh6jgBWh8SIXoxa33M+pwLQyEbsjb0g6qoNORAibmzHlf0aI79t3pn7Ru2O33D+GTU3qQ/DJVxbE9M/2zg== dependencies: - "@nrwl/cli" "*" + "@nrwl/cli" "13.4.5" object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -10302,11 +10171,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -10385,11 +10249,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -10521,6 +10380,13 @@ postcss-color-functional-notation@^4.0.1: dependencies: postcss-values-parser "6.0.1" +postcss-color-functional-notation@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.1.tgz#a25e9e1855e14d04319222a689f120b3240d39e0" + integrity sha512-62OBIXCjRXpQZcFOYIXwXBlpAVWrYk8ek1rcjvMING4Q2cf0ipyN9qT+BhHA6HmftGSEnFQu2qgKO3gMscl3Rw== + dependencies: + postcss-value-parser "^4.2.0" + postcss-color-gray@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" @@ -10545,6 +10411,13 @@ postcss-color-hex-alpha@^8.0.0: dependencies: postcss-values-parser "^6.0.0" +postcss-color-hex-alpha@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.2.tgz#7a248b006dd47bd83063f662352d31fd982f74ec" + integrity sha512-gyx8RgqSmGVK156NAdKcsfkY3KPGHhKqvHTL3hhveFrBBToguKFzhyiuk3cljH6L4fJ0Kv+JENuPXs1Wij27Zw== + dependencies: + postcss-value-parser "^4.2.0" + postcss-color-mod-function@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" @@ -10569,6 +10442,13 @@ postcss-color-rebeccapurple@^7.0.0: dependencies: postcss-values-parser "^6" +postcss-color-rebeccapurple@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz#5d397039424a58a9ca628762eb0b88a61a66e079" + integrity sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw== + dependencies: + postcss-value-parser "^4.2.0" + postcss-custom-media@^7.0.8: version "7.0.8" resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" @@ -10588,6 +10468,13 @@ postcss-custom-properties@^12.0.0: dependencies: postcss-values-parser "^6" +postcss-custom-properties@^12.1.2: + version "12.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.2.tgz#066ecdb03779178ad60b8153755e79a2e70d17a9" + integrity sha512-Zvd+k66PHBYYPiXtdjNVx2l54Y9kQC7K1eUHzBND97RW/ayNxfaPOW+9NL3r0nsVbX1asPLdkDj585Wg0NBJCA== + dependencies: + postcss-value-parser "^4.2.0" + postcss-custom-properties@^8.0.11: version "8.0.11" resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" @@ -10626,6 +10513,13 @@ postcss-dir-pseudo-class@^6.0.0: dependencies: postcss-selector-parser "6.0.6" +postcss-dir-pseudo-class@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.3.tgz#febfe305e75267913a53bf5094c7679f5cfa9b55" + integrity sha512-qiPm+CNAlgXiMf0J5IbBBEXA9l/Q5HGsNGkL3znIwT2ZFRLGY9U2fTUpa4lqCUXQOxaLimpacHeQC80BD2qbDw== + dependencies: + postcss-selector-parser "^6.0.8" + postcss-double-position-gradients@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" @@ -10641,6 +10535,13 @@ postcss-double-position-gradients@^3.0.1: dependencies: postcss-values-parser "6.0.1" +postcss-double-position-gradients@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.0.4.tgz#2484b9785ef3ba81b0f03a279c52ec58fc5344c2" + integrity sha512-qz+s5vhKJlsHw8HjSs+HVk2QGFdRyC68KGRQGX3i+GcnUjhWhXQEmCXW6siOJkZ1giu0ddPwSO6I6JdVVVPoog== + dependencies: + postcss-value-parser "^4.2.0" + postcss-env-function@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" @@ -10656,6 +10557,13 @@ postcss-env-function@^4.0.2: dependencies: postcss-values-parser "6.0.1" +postcss-env-function@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.4.tgz#4e85359ca4fcdde4ec4b73752a41de818dbe91cc" + integrity sha512-0ltahRTPtXSIlEZFv7zIvdEib7HN0ZbUQxrxIKn8KbiRyhALo854I/CggU5lyZe6ZBvSTJ6Al2vkZecI2OhneQ== + dependencies: + postcss-value-parser "^4.2.0" + postcss-focus-visible@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" @@ -10668,6 +10576,13 @@ postcss-focus-visible@^6.0.1: resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.1.tgz#b12a859616eca7152976fec24ef337ab29bbc405" integrity sha512-UddLlBmJ78Nu7OrKME70EKxCPBdxTx7pKIyD3GDNRM8Tnq19zmscT9QzsvR8gygz0i0nNUjMtSz4N3AEWZ5R/Q== +postcss-focus-visible@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.3.tgz#14635b71a6b9140f488f11f26cbc9965a13f6843" + integrity sha512-ozOsg+L1U8S+rxSHnJJiET6dNLyADcPHhEarhhtCI9DBLGOPG/2i4ddVoFch9LzrBgb8uDaaRI4nuid2OM82ZA== + dependencies: + postcss-selector-parser "^6.0.8" + postcss-focus-within@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" @@ -10680,6 +10595,13 @@ postcss-focus-within@^5.0.1: resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.1.tgz#615659122325d86e00bc8ed84ab6129d0b3a0f62" integrity sha512-50v1AZVlFSVzLTNdBQG521Aa54VABf/X1RkhR8Fm/9dDQby0W0XdwOnuo8Juvf0ZZXbKkxyTkyyQD0QaNVZVGg== +postcss-focus-within@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.3.tgz#0b0bf425f14a646bbfd973b463e2d20d85a3a841" + integrity sha512-fk9y2uFS6/Kpp7/A9Hz9Z4rlFQ8+tzgBcQCXAFSrXFGAbKx+4ZZOmmfHuYjCOMegPWoz0pnC6fNzi8j7Xyqp5Q== + dependencies: + postcss-selector-parser "^6.0.8" + postcss-font-variant@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" @@ -10704,6 +10626,11 @@ postcss-gap-properties@^3.0.0: resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.0.tgz#8941c400df902247603fd915c7dc81e1d7686b15" integrity sha512-QJOkz1epC/iCuOdhQPm3n9T+F25+P+MYJEEcs5xz/Q+020mc9c6ZRGJkzPJd8FS9hFmT9eEKFEx9PEDl+lH5og== +postcss-gap-properties@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.2.tgz#562fbf43a6a721565b3ca0e01008690991d2f726" + integrity sha512-EaMy/pbxtQnKDsnbEjdqlkCkROTQZzolcLKgIE+3b7EuJfJydH55cZeHfm+MtIezXRqhR80VKgaztO/vHq94Fw== + postcss-image-set-function@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" @@ -10719,6 +10646,13 @@ postcss-image-set-function@^4.0.2: dependencies: postcss-values-parser "6.0.1" +postcss-image-set-function@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.4.tgz#ce91579ab2c1386d412ff5cd5e733c474b1f75ee" + integrity sha512-BlEo9gSTj66lXjRNByvkMK9dEdEGFXRfGjKRi9fo8s0/P3oEk74cAoonl/utiM50E2OPVb/XSu+lWvdW4KtE/Q== + dependencies: + postcss-value-parser "^4.2.0" + postcss-import@14.0.2, postcss-import@^14.0.2: version "14.0.2" resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.0.2.tgz#60eff77e6be92e7b67fe469ec797d9424cae1aa1" @@ -10757,6 +10691,13 @@ postcss-lab-function@^4.0.1: "@csstools/convert-colors" "2.0.0" postcss-values-parser "6.0.1" +postcss-lab-function@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.0.3.tgz#633745b324afbcd5881da85fe2cef58b17487536" + integrity sha512-MH4tymWmefdZQ7uVG/4icfLjAQmH6o2NRYyVh2mKoB4RXJp9PjsyhZwhH4ouaCQHvg+qJVj3RzeAR1EQpIlXZA== + dependencies: + postcss-value-parser "^4.2.0" + postcss-loader@6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" @@ -10778,6 +10719,11 @@ postcss-logical@^5.0.0: resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.0.tgz#f646ef6a3562890e1123a32e695d14cc271afb21" integrity sha512-fWEWMn/xf6F9SMzAD7OS0GTm8Qh1BlBmEbVT/YZGYhwipQEwOpO7YOOu+qnzLksDg9JjLRj5tLmeN8OW8+ogIA== +postcss-logical@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.3.tgz#9934e0fb16af70adbd94217b24d2f315ceb5c2f0" + integrity sha512-P5NcHWYrif0vK8rgOy/T87vg0WRIj3HSknrvp1wzDbiBeoDPVmiVRmkown2eSQdpPveat/MC1ess5uhzZFVnqQ== + postcss-media-minmax@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" @@ -10825,6 +10771,13 @@ postcss-nesting@^10.0.2: dependencies: postcss-selector-parser "6.0.6" +postcss-nesting@^10.1.2: + version "10.1.2" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.2.tgz#2e5f811b3d75602ea18a95dd445bde5297145141" + integrity sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ== + dependencies: + postcss-selector-parser "^6.0.8" + postcss-nesting@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" @@ -10844,6 +10797,11 @@ postcss-overflow-shorthand@^3.0.0: resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.0.tgz#f57631672333b302ffdcfc0735b8b7d0244c2a25" integrity sha512-4fTapLT68wUoIr4m3Z0sKn1NbXX0lJYvj4aDA2++KpNx8wMSVf55UuLPz0nSjXa7dV1p0xQHlJ0iFJRNrSY2mw== +postcss-overflow-shorthand@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.2.tgz#b4e9c89728cd1e4918173dfb95936b75f78d4148" + integrity sha512-odBMVt6PTX7jOE9UNvmnLrFzA9pXS44Jd5shFGGtSHY80QCuJF+14McSy0iavZggRZ9Oj//C9vOKQmexvyEJMg== + postcss-page-break@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" @@ -10871,7 +10829,14 @@ postcss-place@^7.0.1: dependencies: postcss-values-parser "6.0.1" -postcss-preset-env@6.7.0, postcss-preset-env@^6.7.0: +postcss-place@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.3.tgz#ca8040dfd937c7769a233a3bd6e66e139cf89e62" + integrity sha512-tDQ3m+GYoOar+KoQgj+pwPAvGHAp/Sby6vrFiyrELrMKQJ4AejL0NcS0mm296OKKYA2SRg9ism/hlT/OLhBrdQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== @@ -10914,6 +10879,45 @@ postcss-preset-env@6.7.0, postcss-preset-env@^6.7.0: postcss-selector-matches "^4.0.0" postcss-selector-not "^4.0.0" +postcss-preset-env@^7.0.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz#01b9b6eea0ff16c27a3d514f10105d56363428a6" + integrity sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA== + dependencies: + autoprefixer "^10.4.2" + browserslist "^4.19.1" + caniuse-lite "^1.0.30001299" + css-blank-pseudo "^3.0.2" + css-has-pseudo "^3.0.3" + css-prefers-color-scheme "^6.0.2" + cssdb "^5.0.0" + postcss-attribute-case-insensitive "^5.0.0" + postcss-color-functional-notation "^4.2.1" + postcss-color-hex-alpha "^8.0.2" + postcss-color-rebeccapurple "^7.0.2" + postcss-custom-media "^8.0.0" + postcss-custom-properties "^12.1.2" + postcss-custom-selectors "^6.0.0" + postcss-dir-pseudo-class "^6.0.3" + postcss-double-position-gradients "^3.0.4" + postcss-env-function "^4.0.4" + postcss-focus-visible "^6.0.3" + postcss-focus-within "^5.0.3" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.2" + postcss-image-set-function "^4.0.4" + postcss-initial "^4.0.1" + postcss-lab-function "^4.0.3" + postcss-logical "^5.0.3" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.1.2" + postcss-overflow-shorthand "^3.0.2" + postcss-page-break "^3.0.4" + postcss-place "^7.0.3" + postcss-pseudo-class-any-link "^7.0.2" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^5.0.0" + postcss-preset-env@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.0.1.tgz#7f1fc5ac38e60a8e5ff9a920396d936a830e6120" @@ -10969,6 +10973,13 @@ postcss-pseudo-class-any-link@^7.0.0: dependencies: postcss-selector-parser "^6" +postcss-pseudo-class-any-link@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.0.2.tgz#6284c2f970715c78fe992d2fac1130e9991585c9" + integrity sha512-CG35J1COUH7OOBgpw5O+0koOLUd5N4vUGKUqSAuIe4GiuLHWU96Pqp+UPC8QITTd12zYAFx76pV7qWT/0Aj/TA== + dependencies: + postcss-selector-parser "^6.0.8" + postcss-replace-overflow-wrap@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" @@ -11021,6 +11032,14 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-selector-parser@^6.0.8: + version "6.0.8" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz#f023ed7a9ea736cd7ef70342996e8e78645a7914" + integrity sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-url@^10.1.1: version "10.1.3" resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-10.1.3.tgz#54120cc910309e2475ec05c2cfa8f8a2deafdf1e" @@ -11036,6 +11055,11 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== +postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + postcss-values-parser@6.0.1, postcss-values-parser@^6, postcss-values-parser@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-6.0.1.tgz#aeb5e4522c4aabeb1ebbb14122194b9c08069675" @@ -11452,7 +11476,7 @@ regexp.prototype.flags@^1.2.0: call-bind "^1.0.2" define-properties "^1.1.3" -regexpp@^3.1.0: +regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== @@ -11832,7 +11856,7 @@ semver-regex@^3.1.2: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3" integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ== -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -11962,13 +11986,6 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -11976,21 +11993,11 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.6.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" - integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -12404,15 +12411,6 @@ string-width@^5.0.1: is-fullwidth-code-point "^4.0.0" strip-ansi "^7.0.1" -string.prototype.padend@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz#997a6de12c92c7cb34dc8a201a6c53d9bd88a5f1" - integrity sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" @@ -12521,7 +12519,7 @@ stylus-loader@6.2.0: klona "^2.0.4" normalize-path "^3.0.0" -stylus@0.55.0, stylus@^0.55.0: +stylus@0.55.0: version "0.55.0" resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.55.0.tgz#bd404a36dd93fa87744a9dd2d2b1b8450345e5fc" integrity sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw== @@ -12535,6 +12533,18 @@ stylus@0.55.0, stylus@^0.55.0: semver "^6.3.0" source-map "^0.7.3" +stylus@^0.56.0: + version "0.56.0" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.56.0.tgz#13fc85c48082db483c90d2530942fe8b0be988eb" + integrity sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA== + dependencies: + css "^3.0.0" + debug "^4.3.2" + glob "^7.1.6" + safer-buffer "^2.1.2" + sax "~1.2.4" + source-map "^0.7.3" + superagent-promise@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/superagent-promise/-/superagent-promise-1.1.0.tgz#baf22d8bbdd439a9b07dd10f8c08f54fe2503533" @@ -12606,17 +12616,6 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^6.0.9: - version "6.7.3" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.3.tgz#255388439715a738391bd2ee4cbca89a4d05a9b7" - integrity sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -12920,7 +12919,7 @@ ts-node@10.4.0: make-error "^1.1.1" yn "3.1.1" -ts-node@^9.1.1: +ts-node@^9.1.1, ts-node@~9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== @@ -13054,10 +13053,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@4.4.4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" - integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== +typescript@4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" + integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== unbox-primitive@^1.0.1: version "1.0.1" @@ -13557,13 +13556,6 @@ which-pm-runs@^1.0.0: resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" From b2ac29925420c8762440b8ed1b40870330669f5b Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Mon, 17 Jan 2022 11:14:47 +0100 Subject: [PATCH 26/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3215 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dd9b76376..18defffd2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.156.0", + "version": "3.157.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 3e9b0c6f7ec556f6091649fd5106d843c1287522..a9c4c615954a62007318a7b87e6bc8ba70327c6f 100644 GIT binary patch delta 2955 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 By`BI7 delta 2956 zcmV;73v=|28IKu%ABzY80000000ZqC+j8T!b)Wqes59-@sVMU*$?{~o$uwzSI-MqI z`_dPX1Vz*o$&ldM-i~Mb8-40aJ|l1YC;gHhfFK2spf2m&W+Lpwk^r28bHlj+$o!_n z8Ql~XOUahpy!s)U4Q(0N{L>kHcI}npJ4?r2`d+YjWjl6%;5e^P@Pkk@Xid#H7CPJ2>nA$7p-?Uy&F`OpeW?y8f^=xPlk{l>R*j)ZOcU zu~>rs7lFTgh3xN_Rdf4=>;FxZ;;JSLUHE;Ib}N&SG!%j>&~Ij0Y2R!VS8D)g@l zgx*;+kICa2Id||YB^1_QBR{aq$GeN?0mOP8lBB3%h=2@nbib*JCXcPC$ck!>K5|!{ z>pNpOlsW>03&X1EJF-R#pD!T09^|r|Bk0R$POOfU)v}$q#np!97Ar~sUTJ+{!C0{c zs*OaW?q^MK6{UiZEq=5fXv|W;W!oyUHIv-|Gk-yhcY{`iW7^cfc}tf;&PkG-NXvQ+ zh7ggo$U4OrC5|Y2S|fYDJQ3OKWh)P@MY9V>+J$BV&gvM&j)h<1IHvgq5V#<3XL%Hs zkmW6KuYVkZsv1T(T~$kwu+trSu1;rCU#x=dUE+%5?9Rx4)KoR^Dhrx3QWZl?lM>vnsm9j;ae7{`_T;_ePY0!6D zIhgnMK(m3|-Orq(qkYr*7>B-h8FLJRD$FryAb+Q3XWyC6*FryLX zik%RSrmg3F@UIbWap=18bu%*n&Xpe)jejOdQT5cJlib$QkL{eIqdT(RD{2PQL(gfR zOZ(^?pU_V)z)eMC-oZaDMz+w)2q&!BLaahgQt|)#85;~FxC7P)t7+jwj%k`wq@uCe zZ#2Gubn`}EN?hWT+q<#f)p(rpsMDG>5VlTeRWmC}sdP3%46S@%-5W5W9J!O=D1Y^L z7R)Hi$ZTRFxV1?1up(+_4r8giIx?1e3q91?Cyc=HT-iLh@qYrM$>bXC+*(PFC$hBDGBG_gdTvYTXw{C<6hc+T z!(cn0{;~00#6O zY>-JecODhxlQ`}$}3MPvI%c9@ZprNv&z#KbdWMWT-StHI<2BTKB z34uG;o*~y0e|*y{ca4*y1|KJ_RK3+(`WTBNS>7&fw?sfZBOhYzo5}5rpkFH~Ce2 zDTC!2AqX!KEcw-e*JX-1ert`kqn36o zd?tx$=l6D);w4dU}$E;(6Eso7@XrH(3 zL}4G|03azUAgqCsyNYm4hSVK>aIo90rh^2H!`(fM&ZlD0`|S6G+ilAY180C7rF3|MW_pxIC21$a6i( z)9zQ#+OA7-xa$B$^<%-IeaSSdwXOecoIg-Wr~qOxne8D?WEP+7Dndej2Q}%h|e=!3ePi8C=PGrXsP} zQ%SDJS!91SDK5o|@Snis^yQ;Esq?Y>4rn`fq~r%sknz37g#w1vo<8{Y3{rs^T7Lxm z=)v)?M~i{xN=^6%M`|{1^|+TmtfSF@JP~4YZUaLRfMbJLiL(xAlh=gpB59G$+AqTk zVl8?pH`G6iCkzTbC%jxxxiCFgP{)7pcM5xn5yAKXIg_c|0nB|6JcR!xZxB@6M?5`H zr%%2(&?g=D&|m;_YJEDn`Y0UKsG7$Cfur`c5kvB*t;>xG(q!5OW0U29GX(ClMq?)J$D^ z|J46$%ekG~xt-g&o!hyc+qs?FxgDL`xt-g&o!hyc+qs?Fxt-fDw*4Pfs8IR Date: Mon, 17 Jan 2022 12:14:04 +0200 Subject: [PATCH 27/97] update moment adapter & translate extract --- libs/common-ui | 2 +- package.json | 6 +++--- yarn.lock | 36 ++++++++++++++---------------------- 3 files changed, 18 insertions(+), 26 deletions(-) diff --git a/libs/common-ui b/libs/common-ui index ff9dad3ce..d11b54bb1 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit ff9dad3ce73c2485a64e3418f24334f4c44f7c6a +Subproject commit d11b54bb118e639274c011c41594703c71018292 diff --git a/package.json b/package.json index 18defffd2..74f1ce24a 100644 --- a/package.json +++ b/package.json @@ -30,13 +30,13 @@ "@angular/core": "13.1.2", "@angular/forms": "13.1.2", "@angular/material": "13.1.2", - "@angular/material-moment-adapter": "^13.0.2", + "@angular/material-moment-adapter": "^13.1.2", "@angular/platform-browser": "13.1.2", "@angular/platform-browser-dynamic": "13.1.2", "@angular/router": "13.1.2", "@angular/service-worker": "13.1.2", "@biesbjerg/ngx-translate-extract-marker": "^1.0.0", - "@materia-ui/ngx-monaco-editor": "^6.0.0-beta.1", + "@materia-ui/ngx-monaco-editor": "^6.0.0", "@ngx-translate/core": "^14.0.0", "@ngx-translate/http-loader": "^7.0.0", "@nrwl/angular": "13.4.5", @@ -83,7 +83,7 @@ "@typescript-eslint/eslint-plugin": "5.3.1", "@typescript-eslint/parser": "5.3.1", "axios": "^0.24.0", - "@bartholomej/ngx-translate-extract": "^8.0.1", + "@bartholomej/ngx-translate-extract": "^8.0.2", "cypress": "^6.9.1", "cypress-file-upload": "^5.0.8", "cypress-keycloak": "^1.7.0", diff --git a/yarn.lock b/yarn.lock index 9c3c668be..93a439dc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -225,20 +225,13 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@13.1.2": +"@angular/compiler@13.1.2", "@angular/compiler@^13.1.1": version "13.1.2" resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.1.2.tgz#86afbe282d0ff407fd8aeb66a79a804f40e7efa4" integrity sha512-xbM3eClhUIHEFR0Et1bVC18Q7+kJx+hNNWWQl63RNYYBxTZnZpXA3mYi6IcEasy7BHkobVW+5teqlibFQY4gfQ== dependencies: tslib "^2.3.0" -"@angular/compiler@^13.0.2": - version "13.0.2" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.0.2.tgz#5bc1bfc1931f1ff2813f8fff8b8ceaa57b47d717" - integrity sha512-EvIFT8y5VNICrnPgiamv/z9hfQ7KjLCM52g4ssXGCeGPVj58OEfslEc3jO4BCJG7xuLm7dCuSRV0pBlJNTSYFg== - dependencies: - tslib "^2.3.0" - "@angular/core@13.1.2": version "13.1.2" resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.1.2.tgz#793b97d0b7339d5b405f39dd5d021b4b78fcf256" @@ -258,10 +251,10 @@ resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-13.1.2.tgz#ff858d02ba4f1604382271f566e81f1fda22e15f" integrity sha512-x38shYdkGEZm1pOai1xon82SDIlDAB/RZfhrSPCu56ryWmI0yfD49XUXywsEmpEMG5tmvdDlicaR59Q4QXjvwA== -"@angular/material-moment-adapter@^13.0.2": - version "13.1.1" - resolved "https://registry.yarnpkg.com/@angular/material-moment-adapter/-/material-moment-adapter-13.1.1.tgz#97647eccc13e9409e0fd89ac25dcba22bafa0f0a" - integrity sha512-Q9vzU0ZIdVaEHy+IuKprN6WVumud9xu6FHO5qFAGKvHmxUfHlAyVbPMNCv6vW6qguPgaLY66TQgy+SUG5jASKg== +"@angular/material-moment-adapter@^13.1.2": + version "13.1.2" + resolved "https://registry.yarnpkg.com/@angular/material-moment-adapter/-/material-moment-adapter-13.1.2.tgz#8e6adc384dee14501b719672dc109e7dfc410989" + integrity sha512-mOvUnthT55wrRH33iuf8kg3JlJrZBpAHFrHkEMxiFs4jyYnK1TyvH6yKjs/m19lokGIh4B3gN6oK0OG73TmanQ== dependencies: tslib "^2.3.0" @@ -1488,19 +1481,18 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" -"@bartholomej/ngx-translate-extract@^8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@bartholomej/ngx-translate-extract/-/ngx-translate-extract-8.0.1.tgz#4d9cc6ffbc2ce7f34d88cd15b28da2f382f58f43" - integrity sha512-mf/G8Xjz865xjLekZ6U0q5g6BO9ZF++tn3bDs1bPPOAKCw2BjBmwbMOftfGOdHYrVcSTa0yl2sqafZqYa4+waA== +"@bartholomej/ngx-translate-extract@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@bartholomej/ngx-translate-extract/-/ngx-translate-extract-8.0.2.tgz#24fd28c34d66a91b20e6c3b0e1cc1b70878b1bc7" + integrity sha512-QBayCNhuatTL5mJJzfGtBpbbViRqG+Vv0iQGyiTcoJv40Wv4G+70rQl1Q+I+CW6jcw5L1VfR+RDtKD6WkeuWZw== dependencies: - "@angular/compiler" "^13.0.2" + "@angular/compiler" "^13.1.1" "@phenomnomnominal/tsquery" "^4.1.1" boxen "^6.2.1" colorette "^2.0.16" flat "^5.0.2" gettext-parser "^4.2.0" glob "^7.2.0" - mkdirp "^1.0.4" path "^0.12.7" terminal-link "^3.0.0" yargs "^17.2.1" @@ -1860,10 +1852,10 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz#3fdf5798f0b49e90155896f6291df186eac06c83" integrity sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA== -"@materia-ui/ngx-monaco-editor@^6.0.0-beta.1": - version "6.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@materia-ui/ngx-monaco-editor/-/ngx-monaco-editor-6.0.0-beta.1.tgz#e3f38f730fac210d8aa12655ae7fb2c21164efbf" - integrity sha512-vdKUWb4NKZfbA9AU9PpJ3GPPCZkOc0LxFzfl2uHFllrvqKbbHu1QF4YPRuRJkix5CqFzg+4DifZnU8XagYpceg== +"@materia-ui/ngx-monaco-editor@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@materia-ui/ngx-monaco-editor/-/ngx-monaco-editor-6.0.0.tgz#9ae93666019e9a6d4f787370b4373cbb63a04a38" + integrity sha512-gTqNQjOGznZxOC0NlmKdKSGCJuTts8YmK4dsTQAGc5IgIV7cZdQWiW6AL742h0ruED6q0cAunEYjXT6jzHBoIQ== dependencies: tslib "^2.0.0" From b7ae5962170c9f12b85040b8f77ea9e31799d706 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Mon, 17 Jan 2022 12:20:23 +0200 Subject: [PATCH 28/97] update some packages --- package.json | 36 +- yarn.lock | 1396 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 948 insertions(+), 484 deletions(-) diff --git a/package.json b/package.json index 74f1ce24a..556a0ac6d 100644 --- a/package.json +++ b/package.json @@ -49,13 +49,13 @@ "lodash.orderby": "^4.6.0", "messageformat": "^2.3.0", "moment": "^2.29.1", - "monaco-editor": "^0.30.1", + "monaco-editor": "^0.31.1", "ngx-color-picker": "^11.0.0", "ngx-toastr": "^14.1.3", - "ngx-translate-messageformat-compiler": "^4.11.0", + "ngx-translate-messageformat-compiler": "^5.0.1", "papaparse": "^5.3.1", "rxjs": "~6.6.7", - "sass": "^1.39.2", + "sass": "^1.48.0", "scroll-into-view-if-needed": "^2.2.28", "streamsaver": "^2.0.5", "tslib": "^2.3.1", @@ -77,10 +77,10 @@ "@nrwl/tao": "13.4.5", "@nrwl/workspace": "13.4.5", "@types/cypress": "^1.1.3", - "@types/jest": "27.0.3", - "@types/lodash": "^4.14.177", - "@types/node": "16.11.10", - "@typescript-eslint/eslint-plugin": "5.3.1", + "@types/jest": "27.4.0", + "@types/lodash": "^4.14.178", + "@types/node": "17.0.9", + "@typescript-eslint/eslint-plugin": "5.9.1", "@typescript-eslint/parser": "5.3.1", "axios": "^0.24.0", "@bartholomej/ngx-translate-extract": "^8.0.2", @@ -90,27 +90,27 @@ "cypress-keycloak-commands": "^1.2.0", "cypress-localstorage-commands": "^1.5.0", "dotenv": "10.0.0", - "eslint": "8.2.0", - "eslint-config-airbnb-base": "^14.2.1", - "eslint-config-airbnb-typescript": "^14.0.0", + "eslint": "8.7.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^16.1.0", "eslint-config-prettier": "8.3.0", - "eslint-plugin-import": "2.24.2", + "eslint-plugin-import": "2.25.4", "eslint-plugin-prettier": "^4.0.0", "google-translate-api-browser": "^1.1.71", "husky": "4.3.8", - "jest": "27.3.1", + "jest": "27.4.7", "jest-preset-angular": "11.0.1", "ng-packagr": "13.1.3", - "postcss": "^8.3.9", + "postcss": "^8.4.5", "postcss-import": "^14.0.2", - "postcss-preset-env": "^7.0.1", + "postcss-preset-env": "^7.2.3", "postcss-url": "^10.1.1", - "prettier": "2.5.0", - "pretty-quick": "^3.1.1", + "prettier": "2.5.1", + "pretty-quick": "^3.1.3", "sonarqube-scanner": "^2.8.1", - "superagent": "^6.1.0", + "superagent": "^7.0.2", "superagent-promise": "^1.1.0", - "ts-jest": "27.0.7", + "ts-jest": "27.1.3", "ts-node": "10.4.0", "typescript": "4.5.4", "webpack": "^4.18.1" diff --git a/yarn.lock b/yarn.lock index 93a439dc1..771524a79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -338,6 +338,27 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.8.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" + integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.7" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + "@babel/generator@7.16.0", "@babel/generator@^7.16.0", "@babel/generator@^7.7.2": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" @@ -694,6 +715,15 @@ "@babel/traverse" "^7.16.3" "@babel/types" "^7.16.0" +"@babel/helpers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" + integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/highlight@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" @@ -1521,11 +1551,6 @@ dependencies: "@cspotcode/source-map-consumer" "0.8.0" -"@csstools/convert-colors@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-2.0.0.tgz#6dd323583b40cfe05aaaca30debbb30f26742bbf" - integrity sha512-P7BVvddsP2Wl5v3drJ3ArzpdfXMqoZ/oHOV/yFiGFb3JQr9Z9UXZ9tnHAKJsO89lfprR1F9ExW3Yij21EjEBIA== - "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -1588,7 +1613,7 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== -"@eslint/eslintrc@^1.0.4": +"@eslint/eslintrc@^1.0.4", "@eslint/eslintrc@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== @@ -1617,7 +1642,16 @@ debug "^4.1.1" minimatch "^3.0.4" -"@humanwhocodes/object-schema@^1.2.0": +"@humanwhocodes/config-array@^0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" + integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== @@ -1650,35 +1684,47 @@ jest-util "^27.3.1" slash "^3.0.0" -"@jest/core@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.3.1.tgz#04992ef1b58b17c459afb87ab56d81e63d386925" - integrity sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg== +"@jest/console@^27.4.6": + version "27.4.6" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.4.6.tgz#0742e6787f682b22bdad56f9db2a8a77f6a86107" + integrity sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA== dependencies: - "@jest/console" "^27.3.1" - "@jest/reporters" "^27.3.1" - "@jest/test-result" "^27.3.1" - "@jest/transform" "^27.3.1" - "@jest/types" "^27.2.5" + "@jest/types" "^27.4.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.4.6" + jest-util "^27.4.2" + slash "^3.0.0" + +"@jest/core@^27.4.7": + version "27.4.7" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.4.7.tgz#84eabdf42a25f1fa138272ed229bcf0a1b5e6913" + integrity sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg== + dependencies: + "@jest/console" "^27.4.6" + "@jest/reporters" "^27.4.6" + "@jest/test-result" "^27.4.6" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^27.3.0" - jest-config "^27.3.1" - jest-haste-map "^27.3.1" - jest-message-util "^27.3.1" - jest-regex-util "^27.0.6" - jest-resolve "^27.3.1" - jest-resolve-dependencies "^27.3.1" - jest-runner "^27.3.1" - jest-runtime "^27.3.1" - jest-snapshot "^27.3.1" - jest-util "^27.3.1" - jest-validate "^27.3.1" - jest-watcher "^27.3.1" + jest-changed-files "^27.4.2" + jest-config "^27.4.7" + jest-haste-map "^27.4.6" + jest-message-util "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-resolve-dependencies "^27.4.6" + jest-runner "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + jest-validate "^27.4.6" + jest-watcher "^27.4.6" micromatch "^4.0.4" rimraf "^3.0.0" slash "^3.0.0" @@ -1694,6 +1740,16 @@ "@types/node" "*" jest-mock "^27.3.0" +"@jest/environment@^27.4.6": + version "27.4.6" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.4.6.tgz#1e92885d64f48c8454df35ed9779fbcf31c56d8b" + integrity sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg== + dependencies: + "@jest/fake-timers" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/node" "*" + jest-mock "^27.4.6" + "@jest/fake-timers@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.3.1.tgz#1fad860ee9b13034762cdb94266e95609dfce641" @@ -1706,6 +1762,18 @@ jest-mock "^27.3.0" jest-util "^27.3.1" +"@jest/fake-timers@^27.4.6": + version "27.4.6" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.4.6.tgz#e026ae1671316dbd04a56945be2fa251204324e8" + integrity sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A== + dependencies: + "@jest/types" "^27.4.2" + "@sinonjs/fake-timers" "^8.0.1" + "@types/node" "*" + jest-message-util "^27.4.6" + jest-mock "^27.4.6" + jest-util "^27.4.2" + "@jest/globals@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.3.1.tgz#ce1dfb03d379237a9da6c1b99ecfaca1922a5f9e" @@ -1715,6 +1783,15 @@ "@jest/types" "^27.2.5" expect "^27.3.1" +"@jest/globals@^27.4.6": + version "27.4.6" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.4.6.tgz#3f09bed64b0fd7f5f996920258bd4be8f52f060a" + integrity sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw== + dependencies: + "@jest/environment" "^27.4.6" + "@jest/types" "^27.4.2" + expect "^27.4.6" + "@jest/reporters@27.2.2": version "27.2.2" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.2.tgz#e2d41cd9f8088676b81b9a9908cb1ba67bdbee78" @@ -1745,16 +1822,16 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.0.0" -"@jest/reporters@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.3.1.tgz#28b5c1f5789481e23788048fa822ed15486430b9" - integrity sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w== +"@jest/reporters@^27.4.6": + version "27.4.6" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.4.6.tgz#b53dec3a93baf9b00826abf95b932de919d6d8dd" + integrity sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.3.1" - "@jest/test-result" "^27.3.1" - "@jest/transform" "^27.3.1" - "@jest/types" "^27.2.5" + "@jest/console" "^27.4.6" + "@jest/test-result" "^27.4.6" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -1762,14 +1839,14 @@ glob "^7.1.2" graceful-fs "^4.2.4" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" + istanbul-lib-instrument "^5.1.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^27.3.1" - jest-resolve "^27.3.1" - jest-util "^27.3.1" - jest-worker "^27.3.1" + istanbul-reports "^3.1.3" + jest-haste-map "^27.4.6" + jest-resolve "^27.4.6" + jest-util "^27.4.2" + jest-worker "^27.4.6" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" @@ -1785,6 +1862,15 @@ graceful-fs "^4.2.4" source-map "^0.6.0" +"@jest/source-map@^27.4.0": + version "27.4.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.4.0.tgz#2f0385d0d884fb3e2554e8f71f8fa957af9a74b6" + integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + "@jest/test-result@27.2.2": version "27.2.2" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.2.tgz#cd4ba1ca9b0521e463bd4b32349ba1842277563b" @@ -1805,7 +1891,17 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.2.2", "@jest/test-sequencer@^27.3.1": +"@jest/test-result@^27.4.6": + version "27.4.6" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.4.6.tgz#b3df94c3d899c040f602cea296979844f61bdf69" + integrity sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ== + dependencies: + "@jest/console" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.2.2": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz#4b3bde2dbb05ee74afdae608cf0768e3354683b1" integrity sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA== @@ -1815,6 +1911,16 @@ jest-haste-map "^27.3.1" jest-runtime "^27.3.1" +"@jest/test-sequencer@^27.4.6": + version "27.4.6" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz#447339b8a3d7b5436f50934df30854e442a9d904" + integrity sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw== + dependencies: + "@jest/test-result" "^27.4.6" + graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" + jest-runtime "^27.4.6" + "@jest/transform@^27.2.2", "@jest/transform@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.3.1.tgz#ff80eafbeabe811e9025e4b6f452126718455220" @@ -1836,6 +1942,27 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" +"@jest/transform@^27.4.6": + version "27.4.6" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.4.6.tgz#153621940b1ed500305eacdb31105d415dc30231" + integrity sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.4.2" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" + jest-regex-util "^27.4.0" + jest-util "^27.4.2" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/types@^27.1.1", "@jest/types@^27.2.5": version "27.2.5" resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" @@ -1847,6 +1974,17 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jest/types@^27.4.2": + version "27.4.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5" + integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@jridgewell/resolve-uri@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz#3fdf5798f0b49e90155896f6291df186eac06c83" @@ -2354,10 +2492,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@27.0.3": - version "27.0.3" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.3.tgz#0cf9dfe9009e467f70a342f0f94ead19842a783a" - integrity sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg== +"@types/jest@27.4.0": + version "27.4.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.0.tgz#037ab8b872067cae842a320841693080f9cb84ed" + integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== dependencies: jest-diff "^27.0.0" pretty-format "^27.0.0" @@ -2372,17 +2510,17 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/lodash@^4.14.177": - version "4.14.177" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.177.tgz#f70c0d19c30fab101cad46b52be60363c43c4578" - integrity sha512-0fDwydE2clKe9MNfvXHBHF9WEahRuj+msTuQqOmAApNORFvhMYZKNGGJdCzuhheVjMps/ti0Ak/iJPACMaevvw== +"@types/lodash@^4.14.178": + version "4.14.178" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8" + integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw== "@types/minimatch@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/node@*", "@types/node@16.11.10": +"@types/node@*": version "16.11.10" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae" integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA== @@ -2392,6 +2530,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.50.tgz#e9b2e85fafc15f2a8aa8fdd41091b983da5fd6ee" integrity sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w== +"@types/node@17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.9.tgz#0b7f161afb5b1cc12518d29b2cdc7175d5490628" + integrity sha512-5dNBXu/FOER+EXnyah7rn8xlNrfMOQb/qXnw4NQgLkCygKBKhdmF/CA5oXVOKZLBEahw8s2WP9LxIcN/oDDRgQ== + "@types/node@^14.14.31": version "14.17.34" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz#fe4b38b3f07617c0fa31ae923fca9249641038f0" @@ -2453,13 +2596,14 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz#d8ff412f10f54f6364e7fd7c1e70eb6767f434c3" - integrity sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw== +"@typescript-eslint/eslint-plugin@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.1.tgz#e5a86d7e1f9dc0b3df1e6d94feaf20dd838d066c" + integrity sha512-Xv9tkFlyD4MQGpJgTo6wqDqGvHIRmRgah/2Sjz1PUnJTawjHWIwBivUE9x0QtU2WVii9baYgavo/bHjrZJkqTw== dependencies: - "@typescript-eslint/experimental-utils" "5.3.1" - "@typescript-eslint/scope-manager" "5.3.1" + "@typescript-eslint/experimental-utils" "5.9.1" + "@typescript-eslint/scope-manager" "5.9.1" + "@typescript-eslint/type-utils" "5.9.1" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -2479,7 +2623,19 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/experimental-utils@5.3.1", "@typescript-eslint/experimental-utils@~5.3.0": +"@typescript-eslint/experimental-utils@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.1.tgz#8c407c4dd5ffe522329df6e4c9c2b52206d5f7f1" + integrity sha512-cb1Njyss0mLL9kLXgS/eEY53SZQ9sT519wpX3i+U457l2UXRDuo87hgKfgRazmu9/tQb0x2sr3Y0yrU+Zz0y+w== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.9.1" + "@typescript-eslint/types" "5.9.1" + "@typescript-eslint/typescript-estree" "5.9.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/experimental-utils@~5.3.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz#bbd8f9b67b4d5fdcb9d2f90297d8fcda22561e05" integrity sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w== @@ -2517,6 +2673,23 @@ "@typescript-eslint/types" "5.3.1" "@typescript-eslint/visitor-keys" "5.3.1" +"@typescript-eslint/scope-manager@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.9.1.tgz#6c27be89f1a9409f284d95dfa08ee3400166fe69" + integrity sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ== + dependencies: + "@typescript-eslint/types" "5.9.1" + "@typescript-eslint/visitor-keys" "5.9.1" + +"@typescript-eslint/type-utils@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.9.1.tgz#c6832ffe655b9b1fec642d36db1a262d721193de" + integrity sha512-tRSpdBnPRssjlUh35rE9ug5HrUvaB9ntREy7gPXXKwmIx61TNN7+l5YKgi1hMKxo5NvqZCfYhA5FvyuJG6X6vg== + dependencies: + "@typescript-eslint/experimental-utils" "5.9.1" + debug "^4.3.2" + tsutils "^3.21.0" + "@typescript-eslint/types@5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.0.tgz#af29fd53867c2df0028c57c36a655bd7e9e05416" @@ -2527,6 +2700,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.1.tgz#afaa715b69ebfcfde3af8b0403bf27527912f9b7" integrity sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ== +"@typescript-eslint/types@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.9.1.tgz#1bef8f238a2fb32ebc6ff6d75020d9f47a1593c6" + integrity sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ== + "@typescript-eslint/typescript-estree@5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.0.tgz#4f68ddd46dc2983182402d2ab21fb44ad94988cf" @@ -2553,6 +2731,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.1.tgz#d5b996f49476495070d2b8dd354861cf33c005d6" + integrity sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A== + dependencies: + "@typescript-eslint/types" "5.9.1" + "@typescript-eslint/visitor-keys" "5.9.1" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/visitor-keys@5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz#a6258790f3b7b2547f70ed8d4a1e0c3499994523" @@ -2569,6 +2760,14 @@ "@typescript-eslint/types" "5.3.1" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.1.tgz#f52206f38128dd4f675cf28070a41596eee985b7" + integrity sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg== + dependencies: + "@typescript-eslint/types" "5.9.1" + eslint-visitor-keys "^3.0.0" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -3188,7 +3387,7 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.3: +array-includes@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== @@ -3214,7 +3413,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.4: +array.prototype.flat@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== @@ -3228,6 +3427,11 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -3305,18 +3509,6 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^10.4.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.0.tgz#c3577eb32a1079a440ec253e404eaf1eb21388c8" - integrity sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA== - dependencies: - browserslist "^4.17.5" - caniuse-lite "^1.0.30001272" - fraction.js "^4.1.1" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.1.0" - autoprefixer@^10.4.2: version "10.4.2" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b" @@ -3372,7 +3564,7 @@ axobject-query@^2.2.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-jest@^27.2.2, babel-jest@^27.3.1: +babel-jest@^27.2.2: version "27.3.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.3.1.tgz#0636a3404c68e07001e434ac4956d82da8a80022" integrity sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ== @@ -3386,6 +3578,20 @@ babel-jest@^27.2.2, babel-jest@^27.3.1: graceful-fs "^4.2.4" slash "^3.0.0" +babel-jest@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.4.6.tgz#4d024e69e241cdf4f396e453a07100f44f7ce314" + integrity sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg== + dependencies: + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.4.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + babel-loader@8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" @@ -3403,7 +3609,7 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-istanbul@6.1.1, babel-plugin-istanbul@^6.0.0: +babel-plugin-istanbul@6.1.1, babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== @@ -3424,6 +3630,16 @@ babel-plugin-jest-hoist@^27.2.0: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^27.4.0: + version "27.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz#d7831fc0f93573788d80dee7e682482da4c730d6" + integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + babel-plugin-polyfill-corejs2@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" @@ -3474,6 +3690,14 @@ babel-preset-jest@^27.2.0: babel-plugin-jest-hoist "^27.2.0" babel-preset-current-node-syntax "^1.0.0" +babel-preset-jest@^27.4.0: + version "27.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz#70d0e676a282ccb200fbabd7f415db5fdf393bca" + integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== + dependencies: + babel-plugin-jest-hoist "^27.4.0" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -3926,7 +4150,7 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== -caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001272, caniuse-lite@^1.0.30001280: +caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001280: version "1.0.30001283" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz#8573685bdae4d733ef18f78d44ba0ca5fe9e896b" integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg== @@ -4248,7 +4472,7 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.1.4, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -4412,7 +4636,7 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -cookiejar@^2.1.2: +cookiejar@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== @@ -4599,11 +4823,6 @@ css-blank-pseudo@^0.1.4: dependencies: postcss "^7.0.5" -css-blank-pseudo@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-2.0.0.tgz#10667f9c5f91e4fbde76c4efac55e8eaa6ed9967" - integrity sha512-n7fxEOyuvAVPLPb9kL4XTIK/gnp2fKQ7KFQ+9lj60W9pDn/jTr5LjS/kHHm+rES/YJ3m0S6+uJgYSuAJg9zOyA== - css-blank-pseudo@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.2.tgz#f8660f6a48b17888a9277e53f25cc5abec1f0169" @@ -4619,13 +4838,6 @@ css-has-pseudo@^0.10.0: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" -css-has-pseudo@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-2.0.0.tgz#43ae03a990cf3d9e7356837c6b500e04037606b5" - integrity sha512-URYSGI0ggED1W1/xOAH0Zn1bf+YL6tYh1PQzAPlWddEAyyO37mPqMbwCzSjTTNmeCR8BMNXSFLaT5xb6MERdAA== - dependencies: - postcss-selector-parser "^6" - css-has-pseudo@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.3.tgz#4824a34cb92dae7e09ea1d3fd19691b653412098" @@ -4654,11 +4866,6 @@ css-prefers-color-scheme@^3.1.1: dependencies: postcss "^7.0.5" -css-prefers-color-scheme@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-5.0.0.tgz#a89bc1abfe946e77a1a1e12dbc25a1439705933f" - integrity sha512-XpzVrdwbppHm+Nnrzcb/hQb8eq1aKv4U8Oh59LsLfTsbIZZ6Fvn9razb66ihH2aTJ0VhO9n9sVm8piyKXJAZMA== - css-prefers-color-scheme@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.2.tgz#d5c03a980caab92d8beeee176a8795d331e0c727" @@ -4998,7 +5205,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.3, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: +debug@4, debug@4.3.3, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== @@ -5233,11 +5440,24 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== +dezalgo@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + dependencies: + asap "^2.0.0" + wrappy "1" + diff-sequences@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== +diff-sequences@^27.4.0: + version "27.4.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5" + integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -5823,21 +6043,22 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-airbnb-base@^14.2.1: - version "14.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" - integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== +eslint-config-airbnb-base@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" + integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== dependencies: confusing-browser-globals "^1.0.10" object.assign "^4.1.2" - object.entries "^1.1.2" + object.entries "^1.1.5" + semver "^6.3.0" -eslint-config-airbnb-typescript@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-14.0.2.tgz#4dc1583b9eab671bb011dea7d4ff1fc0d88e6e09" - integrity sha512-oaVR63DqpRUiOOeSVxIzhD3FXbqJRH+7Lt9GCMsS9SKgrRW3XpZINN2FO4JEsnaHEGkktumd0AHE9K7KQNuXSQ== +eslint-config-airbnb-typescript@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-16.1.0.tgz#f75a6b4f3bb679eef34c3c930359c2ca9bc3f09c" + integrity sha512-W5Cq20KpEx5ZLC54bnVrC37zq2+WD956Kp/Ma3nYFRjT1v9KM63v+DPkrrmmrVqrlDKaD0ivm/qeYmyHV6qKlw== dependencies: - eslint-config-airbnb-base "^14.2.1" + eslint-config-airbnb-base "^15.0.0" eslint-config-prettier@8.3.0: version "8.3.0" @@ -5852,35 +6073,32 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" - integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ== +eslint-module-utils@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129" + integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg== dependencies: debug "^3.2.7" find-up "^2.1.0" - pkg-dir "^2.0.0" -eslint-plugin-import@2.24.2: - version "2.24.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" - integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== +eslint-plugin-import@2.25.4: + version "2.25.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" + integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== dependencies: - array-includes "^3.1.3" - array.prototype.flat "^1.2.4" + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.6.2" - find-up "^2.0.0" + eslint-module-utils "^2.7.2" has "^1.0.3" - is-core-module "^2.6.0" + is-core-module "^2.8.0" + is-glob "^4.0.3" minimatch "^3.0.4" - object.values "^1.1.4" - pkg-up "^2.0.0" - read-pkg-up "^3.0.0" + object.values "^1.1.5" resolve "^1.20.0" - tsconfig-paths "^3.11.0" + tsconfig-paths "^3.12.0" eslint-plugin-prettier@^4.0.0: version "4.0.0" @@ -5913,6 +6131,14 @@ eslint-scope@^6.0.0: esrecurse "^4.3.0" estraverse "^5.2.0" +eslint-scope@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" + integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + eslint-utils@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" @@ -5930,7 +6156,7 @@ eslint-visitor-keys@^3.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== -eslint-visitor-keys@^3.1.0: +eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== @@ -5979,7 +6205,48 @@ eslint@8.2.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.0.0, espree@^9.2.0: +eslint@8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.7.0.tgz#22e036842ee5b7cf87b03fe237731675b4d3633c" + integrity sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w== + dependencies: + "@eslint/eslintrc" "^1.0.5" + "@humanwhocodes/config-array" "^0.9.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.0" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.2.0" + espree "^9.3.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^6.0.1" + globals "^13.6.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^9.0.0, espree@^9.2.0, espree@^9.3.0: version "9.3.0" resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== @@ -6132,6 +6399,16 @@ expect@^27.3.1: jest-message-util "^27.3.1" jest-regex-util "^27.0.6" +expect@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.4.6.tgz#f335e128b0335b6ceb4fcab67ece7cbd14c942e6" + integrity sha512-1M/0kAALIaj5LaG66sFJTbRsWTADnylly82cu4bspI0nl+pgP4E6Bh/aqdHlTUjul06K7xQnnrAoqfxVU0+/ag== + dependencies: + "@jest/types" "^27.4.2" + jest-get-type "^27.4.0" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -6298,7 +6575,7 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fast-safe-stringify@^2.0.7: +fast-safe-stringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== @@ -6464,7 +6741,7 @@ find-parent-dir@^0.3.1: resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.1.tgz#c5c385b96858c3351f95d446cab866cbf9f11125" integrity sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A== -find-up@^2.0.0, find-up@^2.1.0: +find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= @@ -6582,6 +6859,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -6591,17 +6877,22 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -formidable@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" - integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== +formidable@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.1.tgz#4310bc7965d185536f9565184dee74fbb75557ff" + integrity sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ== + dependencies: + dezalgo "1.0.3" + hexoid "1.0.0" + once "1.4.0" + qs "6.9.3" forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.1.1, fraction.js@^4.1.2: +fraction.js@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8" integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA== @@ -7076,6 +7367,11 @@ hdr-histogram-percentiles-obj@^3.0.0: resolved "https://registry.yarnpkg.com/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz#9409f4de0c2dda78e61de2d9d78b1e9f3cba283c" integrity sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw== +hexoid@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" + integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -7308,6 +7604,11 @@ ignore@^5.0.4, ignore@^5.1.4, ignore@^5.1.8: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== +ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + image-size@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" @@ -7538,13 +7839,20 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.2.0, is-core-module@^2.6.0: +is-core-module@^2.2.0: version "2.8.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== dependencies: has "^1.0.3" +is-core-module@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -7813,11 +8121,6 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-url-superb@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" - integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== - is-weakref@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" @@ -7889,7 +8192,7 @@ istanbul-lib-instrument@^4.0.3: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" -istanbul-lib-instrument@^5.0.4: +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== @@ -7926,6 +8229,14 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +istanbul-reports@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" + integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + isurl@^1.0.0-alpha5: version "1.0.0" resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" @@ -7951,16 +8262,16 @@ jasmine-marbles@~0.8.4: dependencies: lodash "^4.17.20" -jest-changed-files@^27.3.0: - version "27.3.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.3.0.tgz#22a02cc2b34583fc66e443171dc271c0529d263c" - integrity sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg== +jest-changed-files@^27.4.2: + version "27.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.4.2.tgz#da2547ea47c6e6a5f6ed336151bd2075736eb4a5" + integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== dependencies: - "@jest/types" "^27.2.5" + "@jest/types" "^27.4.2" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.2.2, jest-circus@^27.3.1: +jest-circus@^27.2.2: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.3.1.tgz#1679e74387cbbf0c6a8b42de963250a6469e0797" integrity sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw== @@ -7985,21 +8296,46 @@ jest-circus@^27.2.2, jest-circus@^27.3.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.3.1.tgz#b576f9d146ba6643ce0a162d782b40152b6b1d16" - integrity sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q== +jest-circus@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.4.6.tgz#d3af34c0eb742a967b1919fbb351430727bcea6c" + integrity sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ== dependencies: - "@jest/core" "^27.3.1" - "@jest/test-result" "^27.3.1" - "@jest/types" "^27.2.5" + "@jest/environment" "^27.4.6" + "@jest/test-result" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.4.6" + is-generator-fn "^2.0.0" + jest-each "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + pretty-format "^27.4.6" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.4.7: + version "27.4.7" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.4.7.tgz#d00e759e55d77b3bcfea0715f527c394ca314e5a" + integrity sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw== + dependencies: + "@jest/core" "^27.4.7" + "@jest/test-result" "^27.4.6" + "@jest/types" "^27.4.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - jest-config "^27.3.1" - jest-util "^27.3.1" - jest-validate "^27.3.1" + jest-config "^27.4.7" + jest-util "^27.4.2" + jest-validate "^27.4.6" prompts "^2.0.1" yargs "^16.2.0" @@ -8030,32 +8366,33 @@ jest-config@27.2.2: micromatch "^4.0.4" pretty-format "^27.2.2" -jest-config@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.3.1.tgz#cb3b7f6aaa8c0a7daad4f2b9573899ca7e09bbad" - integrity sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg== +jest-config@^27.4.7: + version "27.4.7" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.4.7.tgz#4f084b2acbd172c8b43aa4cdffe75d89378d3972" + integrity sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw== dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.3.1" - "@jest/types" "^27.2.5" - babel-jest "^27.3.1" + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.4.6" + "@jest/types" "^27.4.2" + babel-jest "^27.4.6" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-circus "^27.3.1" - jest-environment-jsdom "^27.3.1" - jest-environment-node "^27.3.1" - jest-get-type "^27.3.1" - jest-jasmine2 "^27.3.1" - jest-regex-util "^27.0.6" - jest-resolve "^27.3.1" - jest-runner "^27.3.1" - jest-util "^27.3.1" - jest-validate "^27.3.1" + jest-circus "^27.4.6" + jest-environment-jsdom "^27.4.6" + jest-environment-node "^27.4.6" + jest-get-type "^27.4.0" + jest-jasmine2 "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-runner "^27.4.6" + jest-util "^27.4.2" + jest-validate "^27.4.6" micromatch "^4.0.4" - pretty-format "^27.3.1" + pretty-format "^27.4.6" + slash "^3.0.0" jest-diff@^27.0.0, jest-diff@^27.3.1: version "27.3.1" @@ -8067,6 +8404,16 @@ jest-diff@^27.0.0, jest-diff@^27.3.1: jest-get-type "^27.3.1" pretty-format "^27.3.1" +jest-diff@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.6.tgz#93815774d2012a2cbb6cf23f84d48c7a2618f98d" + integrity sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.4.0" + jest-get-type "^27.4.0" + pretty-format "^27.4.6" + jest-docblock@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" @@ -8074,6 +8421,13 @@ jest-docblock@^27.0.6: dependencies: detect-newline "^3.0.0" +jest-docblock@^27.4.0: + version "27.4.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.4.0.tgz#06c78035ca93cbbb84faf8fce64deae79a59f69f" + integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== + dependencies: + detect-newline "^3.0.0" + jest-each@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.3.1.tgz#14c56bb4f18dd18dc6bdd853919b5f16a17761ff" @@ -8085,6 +8439,17 @@ jest-each@^27.3.1: jest-util "^27.3.1" pretty-format "^27.3.1" +jest-each@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.4.6.tgz#e7e8561be61d8cc6dbf04296688747ab186c40ff" + integrity sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA== + dependencies: + "@jest/types" "^27.4.2" + chalk "^4.0.0" + jest-get-type "^27.4.0" + jest-util "^27.4.2" + pretty-format "^27.4.6" + jest-environment-jsdom@^27.0.0, jest-environment-jsdom@^27.2.2, jest-environment-jsdom@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz#63ac36d68f7a9303494df783494856222b57f73e" @@ -8098,6 +8463,19 @@ jest-environment-jsdom@^27.0.0, jest-environment-jsdom@^27.2.2, jest-environment jest-util "^27.3.1" jsdom "^16.6.0" +jest-environment-jsdom@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz#c23a394eb445b33621dfae9c09e4c8021dea7b36" + integrity sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA== + dependencies: + "@jest/environment" "^27.4.6" + "@jest/fake-timers" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/node" "*" + jest-mock "^27.4.6" + jest-util "^27.4.2" + jsdom "^16.6.0" + jest-environment-node@^27.2.2, jest-environment-node@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.3.1.tgz#af7d0eed04edafb740311b303f3fe7c8c27014bb" @@ -8110,11 +8488,28 @@ jest-environment-node@^27.2.2, jest-environment-node@^27.3.1: jest-mock "^27.3.0" jest-util "^27.3.1" +jest-environment-node@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.4.6.tgz#ee8cd4ef458a0ef09d087c8cd52ca5856df90242" + integrity sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ== + dependencies: + "@jest/environment" "^27.4.6" + "@jest/fake-timers" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/node" "*" + jest-mock "^27.4.6" + jest-util "^27.4.2" + jest-get-type@^27.0.6, jest-get-type@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.3.1.tgz#a8a2b0a12b50169773099eee60a0e6dd11423eff" integrity sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg== +jest-get-type@^27.4.0: + version "27.4.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" + integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== + jest-haste-map@^27.2.2, jest-haste-map@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.3.1.tgz#7656fbd64bf48bda904e759fc9d93e2c807353ee" @@ -8135,7 +8530,27 @@ jest-haste-map@^27.2.2, jest-haste-map@^27.3.1: optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.2.2, jest-jasmine2@^27.3.1: +jest-haste-map@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.4.6.tgz#c60b5233a34ca0520f325b7e2cc0a0140ad0862a" + integrity sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ== + dependencies: + "@jest/types" "^27.4.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^27.4.0" + jest-serializer "^27.4.0" + jest-util "^27.4.2" + jest-worker "^27.4.6" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.2.2: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz#df6d3d07c7dafc344feb43a0072a6f09458d32b0" integrity sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg== @@ -8159,6 +8574,29 @@ jest-jasmine2@^27.2.2, jest-jasmine2@^27.3.1: pretty-format "^27.3.1" throat "^6.0.1" +jest-jasmine2@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz#109e8bc036cb455950ae28a018f983f2abe50127" + integrity sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw== + dependencies: + "@jest/environment" "^27.4.6" + "@jest/source-map" "^27.4.0" + "@jest/test-result" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.4.6" + is-generator-fn "^2.0.0" + jest-each "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + pretty-format "^27.4.6" + throat "^6.0.1" + jest-leak-detector@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz#7fb632c2992ef707a1e73286e1e704f9cc1772b2" @@ -8167,6 +8605,14 @@ jest-leak-detector@^27.3.1: jest-get-type "^27.3.1" pretty-format "^27.3.1" +jest-leak-detector@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz#ed9bc3ce514b4c582637088d9faf58a33bd59bf4" + integrity sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA== + dependencies: + jest-get-type "^27.4.0" + pretty-format "^27.4.6" + jest-matcher-utils@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz#257ad61e54a6d4044e080d85dbdc4a08811e9c1c" @@ -8177,6 +8623,16 @@ jest-matcher-utils@^27.3.1: jest-get-type "^27.3.1" pretty-format "^27.3.1" +jest-matcher-utils@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz#53ca7f7b58170638590e946f5363b988775509b8" + integrity sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA== + dependencies: + chalk "^4.0.0" + jest-diff "^27.4.6" + jest-get-type "^27.4.0" + pretty-format "^27.4.6" + jest-message-util@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.3.1.tgz#f7c25688ad3410ab10bcb862bcfe3152345c6436" @@ -8192,6 +8648,21 @@ jest-message-util@^27.3.1: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.4.6.tgz#9fdde41a33820ded3127465e1a5896061524da31" + integrity sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.4.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + pretty-format "^27.4.6" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^27.3.0: version "27.3.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.3.0.tgz#ddf0ec3cc3e68c8ccd489bef4d1f525571a1b867" @@ -8200,6 +8671,14 @@ jest-mock@^27.3.0: "@jest/types" "^27.2.5" "@types/node" "*" +jest-mock@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.4.6.tgz#77d1ba87fbd33ccb8ef1f061697e7341b7635195" + integrity sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw== + dependencies: + "@jest/types" "^27.4.2" + "@types/node" "*" + jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -8221,14 +8700,19 @@ jest-regex-util@^27.0.6: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve-dependencies@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz#85b99bdbdfa46e2c81c6228fc4c91076f624f6e2" - integrity sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A== +jest-regex-util@^27.4.0: + version "27.4.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca" + integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== + +jest-resolve-dependencies@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz#fc50ee56a67d2c2183063f6a500cc4042b5e2327" + integrity sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw== dependencies: - "@jest/types" "^27.2.5" - jest-regex-util "^27.0.6" - jest-snapshot "^27.3.1" + "@jest/types" "^27.4.2" + jest-regex-util "^27.4.0" + jest-snapshot "^27.4.6" jest-resolve@27.2.2: version "27.2.2" @@ -8262,7 +8746,23 @@ jest-resolve@^27.2.2, jest-resolve@^27.3.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^27.2.2, jest-runner@^27.3.1: +jest-resolve@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.4.6.tgz#2ec3110655e86d5bfcfa992e404e22f96b0b5977" + integrity sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw== + dependencies: + "@jest/types" "^27.4.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" + jest-pnp-resolver "^1.2.2" + jest-util "^27.4.2" + jest-validate "^27.4.6" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.2.2: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.3.1.tgz#1d594dcbf3bd8600a7e839e790384559eaf96e3e" integrity sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww== @@ -8290,6 +8790,34 @@ jest-runner@^27.2.2, jest-runner@^27.3.1: source-map-support "^0.5.6" throat "^6.0.1" +jest-runner@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.4.6.tgz#1d390d276ec417e9b4d0d081783584cbc3e24773" + integrity sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg== + dependencies: + "@jest/console" "^27.4.6" + "@jest/environment" "^27.4.6" + "@jest/test-result" "^27.4.6" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-docblock "^27.4.0" + jest-environment-jsdom "^27.4.6" + jest-environment-node "^27.4.6" + jest-haste-map "^27.4.6" + jest-leak-detector "^27.4.6" + jest-message-util "^27.4.6" + jest-resolve "^27.4.6" + jest-runtime "^27.4.6" + jest-util "^27.4.2" + jest-worker "^27.4.6" + source-map-support "^0.5.6" + throat "^6.0.1" + jest-runtime@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.3.1.tgz#80fa32eb85fe5af575865ddf379874777ee993d7" @@ -8322,6 +8850,34 @@ jest-runtime@^27.3.1: strip-bom "^4.0.0" yargs "^16.2.0" +jest-runtime@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.4.6.tgz#83ae923818e3ea04463b22f3597f017bb5a1cffa" + integrity sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ== + dependencies: + "@jest/environment" "^27.4.6" + "@jest/fake-timers" "^27.4.6" + "@jest/globals" "^27.4.6" + "@jest/source-map" "^27.4.0" + "@jest/test-result" "^27.4.6" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" + jest-message-util "^27.4.6" + jest-mock "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + slash "^3.0.0" + strip-bom "^4.0.0" + jest-serializer@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" @@ -8330,6 +8886,14 @@ jest-serializer@^27.0.6: "@types/node" "*" graceful-fs "^4.2.4" +jest-serializer@^27.4.0: + version "27.4.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.4.0.tgz#34866586e1cae2388b7d12ffa2c7819edef5958a" + integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + jest-snapshot@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.3.1.tgz#1da5c0712a252d70917d46c037054f5918c49ee4" @@ -8360,6 +8924,34 @@ jest-snapshot@^27.3.1: pretty-format "^27.3.1" semver "^7.3.2" +jest-snapshot@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.4.6.tgz#e2a3b4fff8bdce3033f2373b2e525d8b6871f616" + integrity sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.4.6" + graceful-fs "^4.2.4" + jest-diff "^27.4.6" + jest-get-type "^27.4.0" + jest-haste-map "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-util "^27.4.2" + natural-compare "^1.4.0" + pretty-format "^27.4.6" + semver "^7.3.2" + jest-util@27.2.0: version "27.2.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.0.tgz#bfccb85cfafae752257319e825a5b8d4ada470dc" @@ -8384,6 +8976,18 @@ jest-util@^27.0.0, jest-util@^27.2.0, jest-util@^27.3.1: graceful-fs "^4.2.4" picomatch "^2.2.3" +jest-util@^27.4.2: + version "27.4.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.4.2.tgz#ed95b05b1adfd761e2cda47e0144c6a58e05a621" + integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== + dependencies: + "@jest/types" "^27.4.2" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.4" + picomatch "^2.2.3" + jest-validate@^27.2.2, jest-validate@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.3.1.tgz#3a395d61a19cd13ae9054af8cdaf299116ef8a24" @@ -8396,17 +9000,29 @@ jest-validate@^27.2.2, jest-validate@^27.3.1: leven "^3.1.0" pretty-format "^27.3.1" -jest-watcher@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.3.1.tgz#ba5e0bc6aa843612b54ddb7f009d1cbff7e05f3e" - integrity sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA== +jest-validate@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.4.6.tgz#efc000acc4697b6cf4fa68c7f3f324c92d0c4f1f" + integrity sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ== dependencies: - "@jest/test-result" "^27.3.1" - "@jest/types" "^27.2.5" + "@jest/types" "^27.4.2" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.4.0" + leven "^3.1.0" + pretty-format "^27.4.6" + +jest-watcher@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.4.6.tgz#673679ebeffdd3f94338c24f399b85efc932272d" + integrity sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw== + dependencies: + "@jest/test-result" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.3.1" + jest-util "^27.4.2" string-length "^4.0.1" jest-worker@^27.0.6, jest-worker@^27.2.2, jest-worker@^27.3.1: @@ -8418,14 +9034,23 @@ jest-worker@^27.0.6, jest-worker@^27.2.2, jest-worker@^27.3.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.3.1.tgz#b5bab64e8f56b6f7e275ba1836898b0d9f1e5c8a" - integrity sha512-U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng== +jest-worker@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" + integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== dependencies: - "@jest/core" "^27.3.1" + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@27.4.7: + version "27.4.7" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.4.7.tgz#87f74b9026a1592f2da05b4d258e57505f28eca4" + integrity sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg== + dependencies: + "@jest/core" "^27.4.7" import-local "^3.0.2" - jest-cli "^27.3.1" + jest-cli "^27.4.7" js-sha256@0.9.0: version "0.9.0" @@ -8769,16 +9394,6 @@ load-json-file@^2.0.0: pify "^2.0.0" strip-bom "^3.0.0" -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -9145,7 +9760,7 @@ mime@1.6.0, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.6: +mime@^2.5.0: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -9302,10 +9917,10 @@ moment@^2.29.1: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== -monaco-editor@^0.30.1: - version "0.30.1" - resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.30.1.tgz#47f8d18a0aa2264fc5654581741ab8d7bec01689" - integrity sha512-B/y4+b2O5G2gjuxIFtCE2EkM17R2NM7/3F8x0qcPsqy4V83bitJTIO4TIeZpYlzu/xy6INiY/+84BEm6+7Cmzg== +monaco-editor@^0.31.1: + version "0.31.1" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.31.1.tgz#67f597b3e45679d1f551237e12a3a42c4438b97b" + integrity sha512-FYPwxGZAeP6mRRyrr5XTGHD9gRXVjy7GUzF4IPChnyt3fS5WrNxIkS8DNujWf6EQy0Zlzpxw8oTVE+mWI2/D1Q== move-concurrently@^1.0.1: version "1.0.1" @@ -9470,12 +10085,12 @@ ngx-toastr@^14.1.3: dependencies: tslib "^2.3.0" -ngx-translate-messageformat-compiler@^4.11.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/ngx-translate-messageformat-compiler/-/ngx-translate-messageformat-compiler-4.11.0.tgz#c9b71dd139ba5fcdcd809001e22622de589fd707" - integrity sha512-OdGfWV4fF3DhZqGIHcLmOnQDufugmZ+E90NYr1UPGRZgT10lilr9oLmIrisy3lW4THnZFNo9JXsX7+fX84LbDw== +ngx-translate-messageformat-compiler@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ngx-translate-messageformat-compiler/-/ngx-translate-messageformat-compiler-5.0.1.tgz#c9304b83440f24d6dfa33c0413dbb93668ffd0e6" + integrity sha512-dtw0GgwmLzRCrAlkFOXYY2Ulz1ADXO/+EtvzInwK9vNgnI7VLHilqKVlWjkFetjk++WAsgnAzx7qjzdsdNch2g== dependencies: - tslib "^1.10.0" + tslib "^2.3.1" nice-napi@^1.0.2: version "1.0.2" @@ -9757,7 +10372,7 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.2: +object.entries@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== @@ -9773,7 +10388,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.4: +object.values@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== @@ -9799,7 +10414,7 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@1.4.0, once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -10185,13 +10800,6 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -10275,6 +10883,11 @@ pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" +pirates@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" + integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== + piscina@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/piscina/-/piscina-3.1.0.tgz#2333636865b6cb69c5a370bbc499a98cabcf3e04" @@ -10286,13 +10899,6 @@ piscina@3.1.0: optionalDependencies: nice-napi "^1.0.2" -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -10314,13 +10920,6 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -10365,13 +10964,6 @@ postcss-color-functional-notation@^2.0.1: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-color-functional-notation@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.0.1.tgz#2fd769959e7fe658b4c0e7d40b0ab245fc8664f1" - integrity sha512-qxD/7Q2rdmqJLSYxlJFJM9gVdyVLTBVrOUc+B6+KbOe4t2G2KnoI3HdimdK4PerGLqAqKnEVGgal7YKImm0g+w== - dependencies: - postcss-values-parser "6.0.1" - postcss-color-functional-notation@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.1.tgz#a25e9e1855e14d04319222a689f120b3240d39e0" @@ -10396,13 +10988,6 @@ postcss-color-hex-alpha@^5.0.3: postcss "^7.0.14" postcss-values-parser "^2.0.1" -postcss-color-hex-alpha@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.0.tgz#84bfd985a93b0a18e047ebcb5fd463e2cae5e7a6" - integrity sha512-Z0xiE0j+hbefUj0LWOMkzmTIS7k+dqJKzLwoKww0KJhju/sWXr+84Yk7rmvFoML/4LjGpJgefZvDwExrsWfHZw== - dependencies: - postcss-values-parser "^6.0.0" - postcss-color-hex-alpha@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.2.tgz#7a248b006dd47bd83063f662352d31fd982f74ec" @@ -10427,13 +11012,6 @@ postcss-color-rebeccapurple@^4.0.1: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-color-rebeccapurple@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.0.tgz#980fbd98eb68ebbb38be02a82c7554e043c8fdf4" - integrity sha512-+Ogw3SA0ESjjO87S8Dn+aAEHK6hFAWAVbTVnyXnmbV6Xh0TKi0vXpzhlKG/yrxujxtlgQcMQNQjg75uWWv28xA== - dependencies: - postcss-values-parser "^6" - postcss-color-rebeccapurple@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz#5d397039424a58a9ca628762eb0b88a61a66e079" @@ -10453,13 +11031,6 @@ postcss-custom-media@^8.0.0: resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz#1be6aff8be7dc9bf1fe014bde3b71b92bb4552f1" integrity sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g== -postcss-custom-properties@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.0.0.tgz#fd01ec9bd1462336ea8af7ba3c1a2c47c203031e" - integrity sha512-eAyX3rMjZKxdne6tWKjkWbNWfw6bbv4xTsrjNJ7C3uGDODrzbQXR+ueshRkw7Lhlhc3qyTmYH/sFfD0AbhgdSQ== - dependencies: - postcss-values-parser "^6" - postcss-custom-properties@^12.1.2: version "12.1.2" resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.2.tgz#066ecdb03779178ad60b8153755e79a2e70d17a9" @@ -10498,13 +11069,6 @@ postcss-dir-pseudo-class@^5.0.0: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" -postcss-dir-pseudo-class@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.0.tgz#7026a070a4849072a232eaf0cdd960de3013658d" - integrity sha512-TC4eB5ZnLRSV1PLsAPualEjxFysU9IVEBx8h+Md2qzo8iWdNqwWCckx5fTWfe6dJxUpB0TWEpWEFhZ/YHvjSCA== - dependencies: - postcss-selector-parser "6.0.6" - postcss-dir-pseudo-class@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.3.tgz#febfe305e75267913a53bf5094c7679f5cfa9b55" @@ -10520,13 +11084,6 @@ postcss-double-position-gradients@^1.0.0: postcss "^7.0.5" postcss-values-parser "^2.0.0" -postcss-double-position-gradients@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.0.1.tgz#3c21ad52b6f13d81caf2563b0010a2c5872272af" - integrity sha512-L18N4Y1gpKQPEnZ6JOxO3H5gswZzTNR+ZqruZG7cOtOF/GR6J1YBRKn5hdTn3Vs4Y9XuDqaBD8vIXFIEft9Jqw== - dependencies: - postcss-values-parser "6.0.1" - postcss-double-position-gradients@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.0.4.tgz#2484b9785ef3ba81b0f03a279c52ec58fc5344c2" @@ -10542,13 +11099,6 @@ postcss-env-function@^2.0.2: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-env-function@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.2.tgz#5509d008ff0f069fa18bd2eace4f3fdb18150c28" - integrity sha512-VXKv0Vskq7olS3Q2zj38G4au4PkW+YWBRgng2Czx0pP9PyqU6uzjS6uVU1VkJN8i0OTPM7g82YFUdiz/7pEvpg== - dependencies: - postcss-values-parser "6.0.1" - postcss-env-function@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.4.tgz#4e85359ca4fcdde4ec4b73752a41de818dbe91cc" @@ -10563,11 +11113,6 @@ postcss-focus-visible@^4.0.0: dependencies: postcss "^7.0.2" -postcss-focus-visible@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.1.tgz#b12a859616eca7152976fec24ef337ab29bbc405" - integrity sha512-UddLlBmJ78Nu7OrKME70EKxCPBdxTx7pKIyD3GDNRM8Tnq19zmscT9QzsvR8gygz0i0nNUjMtSz4N3AEWZ5R/Q== - postcss-focus-visible@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.3.tgz#14635b71a6b9140f488f11f26cbc9965a13f6843" @@ -10582,11 +11127,6 @@ postcss-focus-within@^3.0.0: dependencies: postcss "^7.0.2" -postcss-focus-within@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.1.tgz#615659122325d86e00bc8ed84ab6129d0b3a0f62" - integrity sha512-50v1AZVlFSVzLTNdBQG521Aa54VABf/X1RkhR8Fm/9dDQby0W0XdwOnuo8Juvf0ZZXbKkxyTkyyQD0QaNVZVGg== - postcss-focus-within@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.3.tgz#0b0bf425f14a646bbfd973b463e2d20d85a3a841" @@ -10613,11 +11153,6 @@ postcss-gap-properties@^2.0.0: dependencies: postcss "^7.0.2" -postcss-gap-properties@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.0.tgz#8941c400df902247603fd915c7dc81e1d7686b15" - integrity sha512-QJOkz1epC/iCuOdhQPm3n9T+F25+P+MYJEEcs5xz/Q+020mc9c6ZRGJkzPJd8FS9hFmT9eEKFEx9PEDl+lH5og== - postcss-gap-properties@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.2.tgz#562fbf43a6a721565b3ca0e01008690991d2f726" @@ -10631,13 +11166,6 @@ postcss-image-set-function@^3.0.1: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-image-set-function@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.2.tgz#95b64db01b8812fcbece3bb36a3f2b8133bf7c91" - integrity sha512-NbTOc3xOq/YjIJS8/UVnhI16NxRuCiEWjem0eYt87sKvjdpk00niQ9oVo3eSR+kmMKWIO979x3j5i1GYJNxe1A== - dependencies: - postcss-values-parser "6.0.1" - postcss-image-set-function@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.4.tgz#ce91579ab2c1386d412ff5cd5e733c474b1f75ee" @@ -10675,14 +11203,6 @@ postcss-lab-function@^2.0.1: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-lab-function@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.0.1.tgz#b6a1fb1032ddd7f4f7198ca78ec84c9b5bc7d80e" - integrity sha512-8F2keZUlUiX/tznbCZ5y3Bmx6pnc19kvL4oq+x+uoK0ZYQjUWmHDdVHBG6iMq2T0Fteu+AgGAo94UcIsL4ay2w== - dependencies: - "@csstools/convert-colors" "2.0.0" - postcss-values-parser "6.0.1" - postcss-lab-function@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.0.3.tgz#633745b324afbcd5881da85fe2cef58b17487536" @@ -10706,11 +11226,6 @@ postcss-logical@^3.0.0: dependencies: postcss "^7.0.2" -postcss-logical@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.0.tgz#f646ef6a3562890e1123a32e695d14cc271afb21" - integrity sha512-fWEWMn/xf6F9SMzAD7OS0GTm8Qh1BlBmEbVT/YZGYhwipQEwOpO7YOOu+qnzLksDg9JjLRj5tLmeN8OW8+ogIA== - postcss-logical@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.3.tgz#9934e0fb16af70adbd94217b24d2f315ceb5c2f0" @@ -10756,13 +11271,6 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nesting@^10.0.2: - version "10.0.2" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.0.2.tgz#0cf9e81712fe7b6c3005e7d884cce2cb0a06326e" - integrity sha512-FdecapAKIe+kp6uLNW7icw1g1B2HRhAAfsNv/TPzopeM08gpUbnBpqKSVqxrCqLDwzQG854ZJn5I0BiJ35WvmA== - dependencies: - postcss-selector-parser "6.0.6" - postcss-nesting@^10.1.2: version "10.1.2" resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.2.tgz#2e5f811b3d75602ea18a95dd445bde5297145141" @@ -10784,11 +11292,6 @@ postcss-overflow-shorthand@^2.0.0: dependencies: postcss "^7.0.2" -postcss-overflow-shorthand@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.0.tgz#f57631672333b302ffdcfc0735b8b7d0244c2a25" - integrity sha512-4fTapLT68wUoIr4m3Z0sKn1NbXX0lJYvj4aDA2++KpNx8wMSVf55UuLPz0nSjXa7dV1p0xQHlJ0iFJRNrSY2mw== - postcss-overflow-shorthand@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.2.tgz#b4e9c89728cd1e4918173dfb95936b75f78d4148" @@ -10814,13 +11317,6 @@ postcss-place@^4.0.1: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-place@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.1.tgz#9fbd18b3d1d438d313b2a29f5a50424c8ebca28d" - integrity sha512-X+vHHzqZjI4JbSoj3uYpL6rGRUHE1O9F8g+jBFn5U94U0t6GjJuL/xSN7tU6Pnm9tpfXioHfxwt9E8+JrCB9OQ== - dependencies: - postcss-values-parser "6.0.1" - postcss-place@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.3.tgz#ca8040dfd937c7769a233a3bd6e66e139cf89e62" @@ -10871,7 +11367,7 @@ postcss-preset-env@6.7.0: postcss-selector-matches "^4.0.0" postcss-selector-not "^4.0.0" -postcss-preset-env@^7.0.0: +postcss-preset-env@^7.0.0, postcss-preset-env@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz#01b9b6eea0ff16c27a3d514f10105d56363428a6" integrity sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA== @@ -10910,46 +11406,6 @@ postcss-preset-env@^7.0.0: postcss-replace-overflow-wrap "^4.0.0" postcss-selector-not "^5.0.0" -postcss-preset-env@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.0.1.tgz#7f1fc5ac38e60a8e5ff9a920396d936a830e6120" - integrity sha512-oB7IJGwLBEwnao823mS2b9hqbp5Brm0EZKWRVROayjGwyPQVjY9gZpPZk/ItFakdx7GAPgv3ya+9R3KrUqCwYA== - dependencies: - autoprefixer "^10.4.0" - browserslist "^4.17.5" - caniuse-lite "^1.0.30001272" - css-blank-pseudo "^2.0.0" - css-has-pseudo "^2.0.0" - css-prefers-color-scheme "^5.0.0" - cssdb "^5.0.0" - postcss "^8.3" - postcss-attribute-case-insensitive "^5.0.0" - postcss-color-functional-notation "^4.0.1" - postcss-color-hex-alpha "^8.0.0" - postcss-color-rebeccapurple "^7.0.0" - postcss-custom-media "^8.0.0" - postcss-custom-properties "^12.0.0" - postcss-custom-selectors "^6.0.0" - postcss-dir-pseudo-class "^6.0.0" - postcss-double-position-gradients "^3.0.1" - postcss-env-function "^4.0.2" - postcss-focus-visible "^6.0.1" - postcss-focus-within "^5.0.1" - postcss-font-variant "^5.0.0" - postcss-gap-properties "^3.0.0" - postcss-image-set-function "^4.0.2" - postcss-initial "^4.0.1" - postcss-lab-function "^4.0.1" - postcss-logical "^5.0.0" - postcss-media-minmax "^5.0.0" - postcss-nesting "^10.0.2" - postcss-overflow-shorthand "^3.0.0" - postcss-page-break "^3.0.4" - postcss-place "^7.0.1" - postcss-pseudo-class-any-link "^7.0.0" - postcss-replace-overflow-wrap "^4.0.0" - postcss-selector-not "^5.0.0" - postcss-pseudo-class-any-link@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" @@ -10958,13 +11414,6 @@ postcss-pseudo-class-any-link@^6.0.0: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" -postcss-pseudo-class-any-link@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.0.0.tgz#b06483c8a241cee1e420f9ebd08680d4f95b2b20" - integrity sha512-Q4KjHlyBo91nvW+wTDZHGYcjtlSSkYwxweMuq1g8+dx1S8qAnedItvHLnbdAAdqJCZP1is5dLqiI8TvfJ+cjVQ== - dependencies: - postcss-selector-parser "^6" - postcss-pseudo-class-any-link@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.0.2.tgz#6284c2f970715c78fe992d2fac1130e9991585c9" @@ -11007,14 +11456,6 @@ postcss-selector-not@^5.0.0: dependencies: balanced-match "^1.0.0" -postcss-selector-parser@6.0.6, postcss-selector-parser@^6, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.6" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" @@ -11024,6 +11465,14 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-selector-parser@^6.0.8: version "6.0.8" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz#f023ed7a9ea736cd7ef70342996e8e78645a7914" @@ -11052,15 +11501,6 @@ postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss-values-parser@6.0.1, postcss-values-parser@^6, postcss-values-parser@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-6.0.1.tgz#aeb5e4522c4aabeb1ebbb14122194b9c08069675" - integrity sha512-hH3HREaFAEsVOzUgYiwvFggUqUvoIZoXD2OjhzY2CEM7uVDaQTKP5bmqbchCBoVvywsqiGVYhwC8p2wMUzpW+Q== - dependencies: - color-name "^1.1.4" - is-url-superb "^4.0.0" - quote-unquote "^1.0.0" - postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" @@ -11070,7 +11510,7 @@ postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: indexes-of "^1.0.1" uniq "^1.0.1" -postcss@8.4.4, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3, postcss@^8.3.7, postcss@^8.3.9: +postcss@8.4.4, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.7: version "8.4.4" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.4.tgz#d53d4ec6a75fd62557a66bb41978bf47ff0c2869" integrity sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q== @@ -11087,6 +11527,15 @@ postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.32, postcss@^7.0. picocolors "^0.2.1" source-map "^0.6.1" +postcss@^8.4.5: + version "8.4.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" + integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== + dependencies: + nanoid "^3.1.30" + picocolors "^1.0.0" + source-map-js "^1.0.1" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -11109,10 +11558,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.0.tgz#a6370e2d4594e093270419d9cc47f7670488f893" - integrity sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg== +prettier@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" + integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1, pretty-bytes@^5.6.0: version "5.6.0" @@ -11129,10 +11578,19 @@ pretty-format@^27.0.0, pretty-format@^27.2.2, pretty-format@^27.3.1: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-quick@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.2.tgz#89d8741af7122cbd7f34182df746c5a7ea360b5c" - integrity sha512-T+fpTJrDjTzewql4p3lKrRA7z3MrNyjBK1MKeaBm5PpKwATgVm885TpY7TgY8KFt5Q1Qn3QDseRQcyX9AKTKkA== +pretty-format@^27.4.6: + version "27.4.6" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.6.tgz#1b784d2f53c68db31797b2348fa39b49e31846b7" + integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-quick@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" + integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== dependencies: chalk "^3.0.0" execa "^4.0.0" @@ -11262,10 +11720,15 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@^6.9.4: - version "6.10.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" - integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== +qs@6.9.3: + version "6.9.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" + integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== + +qs@^6.10.1: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== dependencies: side-channel "^1.0.4" @@ -11294,11 +11757,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quote-unquote@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" - integrity sha1-Z6mncUjv/q+BpNQoQEpxC6qsigs= - ramda@~0.27.1: version "0.27.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" @@ -11354,14 +11812,6 @@ read-package-json-fast@^2.0.1: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - read-pkg@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -11371,15 +11821,6 @@ read-pkg@2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -11747,13 +12188,22 @@ sass@1.44.0: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" -sass@^1.32.8, sass@^1.39.2: +sass@^1.32.8: version "1.43.5" resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.5.tgz#25a9d91dd098793ef7229d7b04dd3daae2fc4a65" integrity sha512-WuNm+eAryMgQluL7Mbq9M4EruyGGMyal7Lu58FfnRMVWxgUzIvI7aSn60iNt3kn5yZBMR7G84fAGDcwqOF5JOg== dependencies: chokidar ">=3.0.0 <4.0.0" +sass@^1.48.0: + version "1.48.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.48.0.tgz#b53cfccc1b8ab4be375cc54f306fda9d4711162c" + integrity sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -12142,16 +12592,16 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" + integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== + source-map-js@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== -source-map-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== - source-map-loader@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.0.tgz#f2a04ee2808ad01c774dea6b7d2639839f3b3049" @@ -12542,22 +12992,22 @@ superagent-promise@^1.1.0: resolved "https://registry.yarnpkg.com/superagent-promise/-/superagent-promise-1.1.0.tgz#baf22d8bbdd439a9b07dd10f8c08f54fe2503533" integrity sha1-uvIti73UOamwfdEPjAj1T+JQNTM= -superagent@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" - integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== +superagent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-7.0.2.tgz#8fa6d283c9e7cd52928b96cf422356019248e8c4" + integrity sha512-2Kx35bZxLLJMBKtuXezxvD0aZQ7l923VwoCn7EtUx+aFxdG7co7PeRIddfrNtvvMuGaLZXA0mKzX+yWRhjrJ7A== dependencies: component-emitter "^1.3.0" - cookiejar "^2.1.2" - debug "^4.1.1" - fast-safe-stringify "^2.0.7" - form-data "^3.0.0" - formidable "^1.2.2" + cookiejar "^2.1.3" + debug "^4.3.3" + fast-safe-stringify "^2.1.1" + form-data "^4.0.0" + formidable "^2.0.1" methods "^1.1.2" - mime "^2.4.6" - qs "^6.9.4" + mime "^2.5.0" + qs "^6.10.1" readable-stream "^3.6.0" - semver "^7.3.2" + semver "^7.3.5" supports-color@^2.0.0: version "2.0.0" @@ -12869,7 +13319,21 @@ trim-repeated@^1.0.0: dependencies: escape-string-regexp "^1.0.2" -ts-jest@27.0.7, ts-jest@^27.0.0: +ts-jest@27.1.3: + version "27.1.3" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.3.tgz#1f723e7e74027c4da92c0ffbd73287e8af2b2957" + integrity sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^27.0.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-jest@^27.0.0: version "27.0.7" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.7.tgz#fb7c8c8cb5526ab371bc1b23d06e745652cca2d0" integrity sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q== @@ -12932,7 +13396,7 @@ tsconfig-paths-webpack-plugin@3.4.1: enhanced-resolve "^5.7.0" tsconfig-paths "^3.9.0" -tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0: +tsconfig-paths@^3.12.0, tsconfig-paths@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== @@ -12947,7 +13411,7 @@ tslib@2.3.1, tslib@^2.0.0, tslib@^2.3.0, tslib@^2.3.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== From 66f1e2b207a4690f1998a3f43f08ac34560241bb Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Mon, 17 Jan 2022 13:40:49 +0200 Subject: [PATCH 29/97] update ngx-charts --- .../combo-chart/combo-chart.component.ts | 69 ++++++++++--------- .../combo-series-vertical.component.ts | 36 ++++++---- .../admin/components/combo-chart/models.ts | 11 +++ .../license-information-screen.component.ts | 11 +-- package.json | 2 +- yarn.lock | 21 ++++-- 6 files changed, 95 insertions(+), 55 deletions(-) create mode 100644 apps/red-ui/src/app/modules/admin/components/combo-chart/models.ts diff --git a/apps/red-ui/src/app/modules/admin/components/combo-chart/combo-chart.component.ts b/apps/red-ui/src/app/modules/admin/components/combo-chart/combo-chart.component.ts index fff29fbc4..0f949194c 100644 --- a/apps/red-ui/src/app/modules/admin/components/combo-chart/combo-chart.component.ts +++ b/apps/red-ui/src/app/modules/admin/components/combo-chart/combo-chart.component.ts @@ -12,7 +12,18 @@ import { import { curveLinear } from 'd3-shape'; import { scaleBand, scaleLinear, scalePoint, scaleTime } from 'd3-scale'; -import { BaseChartComponent, calculateViewDimensions, ColorHelper, LineSeriesComponent, ViewDimensions } from '@swimlane/ngx-charts'; +import { + BaseChartComponent, + calculateViewDimensions, + Color, + ColorHelper, + LegendPosition, + LineSeriesComponent, + Orientation, + ScaleType, + ViewDimensions, +} from '@swimlane/ngx-charts'; +import { ILineChartSeries } from './models'; @Component({ // eslint-disable-next-line @angular-eslint/component-selector @@ -25,7 +36,7 @@ export class ComboChartComponent extends BaseChartComponent { @Input() curve: any = curveLinear; @Input() legend = false; @Input() legendTitle = 'Legend'; - @Input() legendPosition = 'right'; + @Input() legendPosition: LegendPosition = LegendPosition.Right; @Input() xAxis; @Input() yAxis; @Input() showXAxisLabel; @@ -38,33 +49,33 @@ export class ComboChartComponent extends BaseChartComponent { @Input() gradient: boolean; @Input() showGridLines = true; @Input() activeEntries: any[] = []; - @Input() schemeType: string; + @Input() schemeType: ScaleType; @Input() xAxisTickFormatting: any; @Input() yAxisTickFormatting: any; @Input() yRightAxisTickFormatting: any; @Input() roundDomains = false; - @Input() colorSchemeLine: any; + @Input() colorSchemeLine: Color; @Input() autoScale; - @Input() lineChart: any; + @Input() lineChart: ILineChartSeries[]; @Input() yLeftAxisScaleFactor: any; @Input() yRightAxisScaleFactor: any; @Input() rangeFillOpacity: number; @Input() animations = true; @Input() noBarWhenZero = true; - @Output() activate: EventEmitter = new EventEmitter(); - @Output() deactivate: EventEmitter = new EventEmitter(); + @Output() activate = new EventEmitter<{ value; entries: unknown[] }>(); + @Output() deactivate = new EventEmitter<{ value; entries: unknown[] }>(); - @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef; - @ContentChild('seriesTooltipTemplate') seriesTooltipTemplate: TemplateRef; + @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef; + @ContentChild('seriesTooltipTemplate') seriesTooltipTemplate: TemplateRef; @ViewChild(LineSeriesComponent) lineSeriesComponent: LineSeriesComponent; dims: ViewDimensions; xScale: any; yScale: any; - xDomain: any; - yDomain: any; + xDomain: string[] | number[]; + yDomain: string[] | number[]; transform: string; colors: ColorHelper; colorsLine: ColorHelper; @@ -72,19 +83,19 @@ export class ComboChartComponent extends BaseChartComponent { xAxisHeight = 0; yAxisWidth = 0; legendOptions: any; - scaleType = 'linear'; + scaleType: ScaleType = ScaleType.Linear; xScaleLine; yScaleLine; xDomainLine; yDomainLine; seriesDomain; scaledAxis; - combinedSeries; + combinedSeries: ILineChartSeries[]; xSet; filteredDomain; hoveredVertical; - yOrientLeft = 'left'; - yOrientRight = 'right'; + yOrientLeft: Orientation = Orientation.Left; + yOrientRight: Orientation = Orientation.Right; legendSpacing = 0; bandwidth: number; barPadding = 8; @@ -176,15 +187,11 @@ export class ComboChartComponent extends BaseChartComponent { return this.combinedSeries.map(d => d.name); } - isDate(value): boolean { - if (value instanceof Date) { - return true; - } - - return false; + isDate(value): value is Date { + return value instanceof Date; } - getScaleType(values): string { + getScaleType(values): ScaleType { let date = true; let num = true; @@ -199,16 +206,16 @@ export class ComboChartComponent extends BaseChartComponent { } if (date) { - return 'time'; + return ScaleType.Time; } if (num) { - return 'linear'; + return ScaleType.Linear; } - return 'ordinal'; + return ScaleType.Ordinal; } getXDomainLine(): any[] { - let values = []; + let values: number[] = []; for (const results of this.lineChart) { for (const d of results.series) { @@ -239,7 +246,7 @@ export class ComboChartComponent extends BaseChartComponent { } getYDomainLine(): any[] { - const domain = []; + const domain: number[] = []; for (const results of this.lineChart) { for (const d of results.series) { @@ -263,7 +270,7 @@ export class ComboChartComponent extends BaseChartComponent { const max = Math.max(...domain); if (this.yRightAxisScaleFactor) { const minMax = this.yRightAxisScaleFactor(min, max); - return [Math.min(0, minMax.min), minMax.max]; + return [Math.min(0, minMax.min as number), minMax.max]; } else { min = Math.min(0, min); return [min, max]; @@ -317,12 +324,12 @@ export class ComboChartComponent extends BaseChartComponent { } getYDomain() { - const values = this.results.map(d => d.value); + const values: number[] = this.results.map(d => d.value); const min = Math.min(0, ...values); const max = Math.max(...values); if (this.yLeftAxisScaleFactor) { const minMax = this.yLeftAxisScaleFactor(min, max); - return [Math.min(0, minMax.min), minMax.max]; + return [Math.min(0, minMax.min as number), minMax.max]; } else { return [min, max]; } @@ -333,7 +340,7 @@ export class ComboChartComponent extends BaseChartComponent { } setColors(): void { - let domain; + let domain: number[] | string[]; if (this.schemeType === 'ordinal') { domain = this.xDomain; } else { diff --git a/apps/red-ui/src/app/modules/admin/components/combo-chart/combo-series-vertical.component.ts b/apps/red-ui/src/app/modules/admin/components/combo-chart/combo-series-vertical.component.ts index 6289f88d6..483125c2a 100644 --- a/apps/red-ui/src/app/modules/admin/components/combo-chart/combo-series-vertical.component.ts +++ b/apps/red-ui/src/app/modules/admin/components/combo-chart/combo-series-vertical.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core'; import { animate, style, transition, trigger } from '@angular/animations'; -import { formatLabel } from '@swimlane/ngx-charts'; +import { Bar, BarOrientation, formatLabel, PlacementTypes, StyleTypes } from '@swimlane/ngx-charts'; @Component({ // eslint-disable-next-line @angular-eslint/component-selector @@ -17,7 +17,7 @@ import { formatLabel } from '@swimlane/ngx-charts'; [fill]="bar.color" [stops]="bar.gradientStops" [data]="bar.data" - [orientation]="'vertical'" + [orientation]="orientations.Vertical" [roundEdges]="bar.roundEdges" [gradient]="gradient" [isActive]="isActive(bar.data)" @@ -27,8 +27,8 @@ import { formatLabel } from '@swimlane/ngx-charts'; (deactivate)="deactivate.emit($event)" ngx-tooltip [tooltipDisabled]="tooltipDisabled" - [tooltipPlacement]="0" - [tooltipType]="1" + [tooltipPlacement]="tooltipPlacements.Top" + [tooltipType]="tooltipTypes.tooltip" [tooltipTitle]="bar.tooltipText" > `, @@ -67,6 +67,9 @@ export class ComboSeriesVerticalComponent implements OnChanges { bars: any; x: any; y: any; + readonly tooltipTypes = StyleTypes; + readonly tooltipPlacements = PlacementTypes; + readonly orientations = BarOrientation; ngOnChanges(): void { this.update(); @@ -91,7 +94,7 @@ export class ComboSeriesVerticalComponent implements OnChanges { const formattedLabel = formatLabel(label); const roundEdges = this.type === 'standard'; - const bar: any = { + const bar: Bar = { value, label, roundEdges, @@ -101,8 +104,15 @@ export class ComboSeriesVerticalComponent implements OnChanges { height: 0, x: 0, y: 0, + ariaLabel: label, + tooltipText: label, + color: undefined, + gradientStops: undefined, }; + let offset0 = d0; + let offset1 = offset0 + value; + if (this.type === 'standard') { bar.height = Math.abs(this.yScale(value) - this.yScale(0)); bar.x = this.xScale(label); @@ -113,18 +123,14 @@ export class ComboSeriesVerticalComponent implements OnChanges { bar.y = this.yScale(value); } } else if (this.type === 'stacked') { - const offset0 = d0; - const offset1 = offset0 + value; d0 += value; bar.height = this.yScale(offset0) - this.yScale(offset1); bar.x = 0; bar.y = this.yScale(offset1); - bar.offset0 = offset0; - bar.offset1 = offset1; + // bar.offset0 = offset0; + // bar.offset1 = offset1; } else if (this.type === 'normalized') { - let offset0 = d0; - let offset1 = offset0 + value; d0 += value; if (total > 0) { @@ -138,8 +144,8 @@ export class ComboSeriesVerticalComponent implements OnChanges { bar.height = this.yScale(offset0) - this.yScale(offset1); bar.x = 0; bar.y = this.yScale(offset1); - bar.offset0 = offset0; - bar.offset1 = offset1; + // bar.offset0 = offset0; + // bar.offset1 = offset1; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore value = (offset1 - offset0).toFixed(2) + '%'; @@ -152,8 +158,8 @@ export class ComboSeriesVerticalComponent implements OnChanges { bar.color = this.colors.getColor(value); bar.gradientStops = this.colors.getLinearGradientStops(value); } else { - bar.color = this.colors.getColor(bar.offset1); - bar.gradientStops = this.colors.getLinearGradientStops(bar.offset1, bar.offset0); + bar.color = this.colors.getColor(offset1); + bar.gradientStops = this.colors.getLinearGradientStops(offset1, offset0); } } diff --git a/apps/red-ui/src/app/modules/admin/components/combo-chart/models.ts b/apps/red-ui/src/app/modules/admin/components/combo-chart/models.ts new file mode 100644 index 000000000..7358f8e55 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/components/combo-chart/models.ts @@ -0,0 +1,11 @@ +export interface ISeries { + name: number; + value: number; + min: number; + max: number; +} + +export interface ILineChartSeries { + name: string; + series: ISeries[]; +} diff --git a/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.ts index 00006cde9..35abc60ff 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.ts @@ -8,6 +8,7 @@ import { UserService } from '@services/user.service'; import { RouterHistoryService } from '@services/router-history.service'; import { LicenseReportService } from '../../services/licence-report.service'; import { ILicenseReport } from '@red/domain'; +import { Color, ScaleType } from '@swimlane/ngx-charts'; @Component({ selector: 'redaction-license-information-screen', @@ -31,14 +32,16 @@ export class LicenseInformationScreenComponent implements OnInit { analysisPercentageOfLicense = 100; barChart: any[]; lineChartSeries: any[] = []; - lineChartScheme = { + lineChartScheme: Color = { + name: 'Line chart scheme', selectable: true, - group: 'Ordinal', + group: ScaleType.Ordinal, domain: ['#dd4d50', '#5ce594', '#0389ec'], }; - comboBarScheme = { + comboBarScheme: Color = { + name: 'Combo bar scheme', selectable: true, - group: 'Ordinal', + group: ScaleType.Ordinal, domain: ['#0389ec'], }; diff --git a/package.json b/package.json index 556a0ac6d..4ed7d428b 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@ngx-translate/http-loader": "^7.0.0", "@nrwl/angular": "13.4.5", "@pdftron/webviewer": "8.2.0", - "@swimlane/ngx-charts": "^17.0.1", + "@swimlane/ngx-charts": "^20.0.1", "file-saver": "^2.0.5", "jwt-decode": "^3.1.2", "keycloak-angular": "^9.0.0", diff --git a/yarn.lock b/yarn.lock index 771524a79..0d56cf786 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2350,11 +2350,12 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@swimlane/ngx-charts@^17.0.1": - version "17.0.1" - resolved "https://registry.yarnpkg.com/@swimlane/ngx-charts/-/ngx-charts-17.0.1.tgz#7d86d4725f864d798659c0c0a2eabb6f9f60982c" - integrity sha512-4pvSznkFo/vM59YUnXH0Y/f8n9cUBBelHuh7UoNlMchl1jI083eFk0zK5fEL2sF3c+vvEpBeYB523GxWvWoifw== +"@swimlane/ngx-charts@^20.0.1": + version "20.0.1" + resolved "https://registry.yarnpkg.com/@swimlane/ngx-charts/-/ngx-charts-20.0.1.tgz#6bcbf31b1ba88a53bc5796ed23e7ddf65189a493" + integrity sha512-gceTOLm4vZHBvNPyNAFqQf96xM+NLy56nRGX1cGR0dBQJq/0PtexrbEttg3AiZy5DvyXNF6rNdeZynUMZUi61Q== dependencies: + "@types/d3-shape" "^2.0.0" d3-array "^2.9.1" d3-brush "^2.1.0" d3-color "^2.0.0" @@ -2433,6 +2434,18 @@ dependencies: cypress "*" +"@types/d3-path@^2": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-2.0.1.tgz#ca03dfa8b94d8add97ad0cd97e96e2006b4763cb" + integrity sha512-6K8LaFlztlhZO7mwsZg7ClRsdLg3FJRzIIi6SZXDWmmSJc2x8dd2VkESbLXdk3p8cuvz71f36S0y8Zv2AxqvQw== + +"@types/d3-shape@^2.0.0": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-2.1.3.tgz#35d397b9e687abaa0de82343b250b9897b8cacf3" + integrity sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ== + dependencies: + "@types/d3-path" "^2" + "@types/eslint-scope@^3.7.0": version "3.7.1" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" From 77d93e1874ae813df1e861367d3663447d6e9d9f Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Mon, 17 Jan 2022 14:18:11 +0200 Subject: [PATCH 30/97] update rxjs to v7.5 --- .../app/models/file/annotation.permissions.ts | 2 +- .../digital-signature-screen.component.ts | 29 ++++++++++--------- .../file-preview-screen.component.ts | 4 +-- .../src/app/services/notifications.service.ts | 8 ++--- package.json | 2 +- yarn.lock | 11 +++++-- 6 files changed, 32 insertions(+), 24 deletions(-) diff --git a/apps/red-ui/src/app/models/file/annotation.permissions.ts b/apps/red-ui/src/app/models/file/annotation.permissions.ts index 95bf99e30..a6ad75177 100644 --- a/apps/red-ui/src/app/models/file/annotation.permissions.ts +++ b/apps/red-ui/src/app/models/file/annotation.permissions.ts @@ -1,6 +1,6 @@ import { AnnotationWrapper } from './annotation.wrapper'; -import { isArray } from 'rxjs/internal-compatibility'; import { User } from '@red/domain'; +import { isArray } from 'lodash'; export class AnnotationPermissions { canUndo = true; diff --git a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts index 66eabc70e..732c73209 100644 --- a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts @@ -6,7 +6,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; import { RouterHistoryService } from '@services/router-history.service'; import { DigitalSignatureService } from '../../services/digital-signature.service'; -import { IDigitalSignature } from '@red/domain'; +import { IDigitalSignature, IDigitalSignatureRequest } from '@red/domain'; import { HttpStatusCode } from '@angular/common/http'; @Component({ @@ -40,29 +40,30 @@ export class DigitalSignatureScreenComponent extends AutoUnsubscribe implements } saveDigitalSignature() { - const digitalSignature = { - ...this.form.getRawValue(), + const formValue = this.form.getRawValue(); + const digitalSignature: IDigitalSignature = { + ...formValue, }; //adjusted for chrome auto-complete / password manager - digitalSignature.password = digitalSignature.keySecret; + digitalSignature.password = formValue.keySecret; const observable = this.digitalSignatureExists ? this._digitalSignatureService.update(digitalSignature) : this._digitalSignatureService.save(digitalSignature); - this.addSubscription = observable.subscribe( - () => { + this.addSubscription = observable.subscribe({ + next: () => { this.loadDigitalSignatureAndInitializeForm(); this._toaster.success(_('digital-signature-screen.action.save-success')); }, - error => { + error: error => { if (error.status === HttpStatusCode.BadRequest) { this._toaster.error(_('digital-signature-screen.action.certificate-not-valid-error')); } else { this._toaster.error(_('digital-signature-screen.action.save-error')); } }, - ); + }); } removeDigitalSignature() { @@ -85,23 +86,23 @@ export class DigitalSignatureScreenComponent extends AutoUnsubscribe implements this.form.get('certificateName').setValue(file.name); input.value = null; }; - fileReader.readAsDataURL(file); + fileReader.readAsDataURL(file as Blob); } loadDigitalSignatureAndInitializeForm() { this._loadingService.start(); - this.addSubscription = this._digitalSignatureService + this._digitalSignatureService .getSignature() - .subscribe( - digitalSignature => { + .subscribe({ + next: digitalSignature => { this.digitalSignatureExists = true; this.digitalSignature = digitalSignature; }, - () => { + error: () => { this.digitalSignatureExists = false; this.digitalSignature = {}; }, - ) + }) .add(() => { this.form = this._getForm(); this._loadingService.stop(); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index f7175e113..361f278a0 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -396,7 +396,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni }); // Go to initial page from query params - const pageNumber = this._lastPage || this._activatedRoute.snapshot.queryParams.page; + const pageNumber: string = this._lastPage || this._activatedRoute.snapshot.queryParams.page; if (pageNumber) { setTimeout(() => { this.selectPage(parseInt(pageNumber, 10)); @@ -516,7 +516,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni await stampPDFPage( document, this._instance.Core.PDFNet, - this._translateService.instant('file-preview.excluded-from-redaction'), + this._translateService.instant('file-preview.excluded-from-redaction') as string, 17, 'courier', 'TOP_LEFT', diff --git a/apps/red-ui/src/app/services/notifications.service.ts b/apps/red-ui/src/app/services/notifications.service.ts index 3425ca5c8..9d798fcb5 100644 --- a/apps/red-ui/src/app/services/notifications.service.ts +++ b/apps/red-ui/src/app/services/notifications.service.ts @@ -2,7 +2,7 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, List, mapEach, QueryParam, RequiredParam, Validate } from '@iqser/common-ui'; import * as moment from 'moment'; import { TranslateService } from '@ngx-translate/core'; -import { iif, Observable } from 'rxjs'; +import { EMPTY, iif, Observable } from 'rxjs'; import { INotification, Notification, NotificationTypes } from '@red/domain'; import { map, switchMap } from 'rxjs/operators'; import { notificationsTranslations } from '../translations/notifications-translations'; @@ -40,7 +40,7 @@ export class NotificationsService extends GenericService { @Validate() getNotificationsIfChanged(@RequiredParam() includeSeen: boolean): Observable { - return this.hasChanges$().pipe(switchMap(changed => iif(() => changed, this.getNotifications(includeSeen)))); + return this.hasChanges$().pipe(switchMap(changed => iif(() => changed, this.getNotifications(includeSeen), EMPTY))); } @Validate() @@ -54,7 +54,7 @@ export class NotificationsService extends GenericService { } private _new(notification: INotification) { - const message = this._translate(notification, notificationsTranslations[notification.notificationType]); + const message = this._translate(notification, notificationsTranslations[notification.notificationType] as string); const time = this._getTime(notification.creationDate); return new Notification(notification, message, time); } @@ -64,7 +64,7 @@ export class NotificationsService extends GenericService { return moment(date).format('hh:mm A'); } - private _translate(notification: INotification, translation: string) { + private _translate(notification: INotification, translation: string): string { const fileId = notification.target.fileId; const dossierId = notification.target.dossierId; const dossier = this._dossiersService.find(dossierId); diff --git a/package.json b/package.json index 4ed7d428b..42c8aed90 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "ngx-toastr": "^14.1.3", "ngx-translate-messageformat-compiler": "^5.0.1", "papaparse": "^5.3.1", - "rxjs": "~6.6.7", + "rxjs": "~7.5.2", "sass": "^1.48.0", "scroll-into-view-if-needed": "^2.2.28", "streamsaver": "^2.0.5", diff --git a/yarn.lock b/yarn.lock index 0d56cf786..61578f11f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12149,7 +12149,7 @@ rxjs-for-await@0.0.2: resolved "https://registry.yarnpkg.com/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz#26598a1d6167147cc192172970e7eed4e620384b" integrity sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw== -rxjs@6.6.7, rxjs@^6.3.3, rxjs@^6.5.0, rxjs@^6.5.4, rxjs@~6.6.7: +rxjs@6.6.7, rxjs@^6.3.3, rxjs@^6.5.0, rxjs@^6.5.4: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -12163,6 +12163,13 @@ rxjs@^7.2.0, rxjs@^7.4.0: dependencies: tslib "~2.1.0" +rxjs@~7.5.2: + version "7.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b" + integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== + dependencies: + tslib "^2.1.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -13419,7 +13426,7 @@ tsconfig-paths@^3.12.0, tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@2.3.1, tslib@^2.0.0, tslib@^2.3.0, tslib@^2.3.1: +tslib@2.3.1, tslib@^2.0.0, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== From ee6e3c6b2af39c66e4975fdacafda8a68176cf33 Mon Sep 17 00:00:00 2001 From: Edi Cziszter Date: Mon, 17 Jan 2022 13:33:24 +0200 Subject: [PATCH 31/97] confirmation dialog for template upload with the same name --- .../reports/reports-screen.component.ts | 23 ++++++++++++++++++- apps/red-ui/src/assets/i18n/en.json | 6 +++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts index 3d34001ee..1d51481ec 100644 --- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts @@ -92,6 +92,28 @@ export class ReportsScreenComponent implements OnInit { } const dossierTemplateId = this._dossierTemplatesService.activeDossierTemplateId; + + if (!!this.availableTemplates.find(template => template.fileName === file.name)) { + const data = new ConfirmationDialogInput({ + title: _('confirmation-dialog.report-template-same-name.title'), + question: _('confirmation-dialog.report-template-same-name.question'), + confirmationText: _('confirmation-dialog.report-template-same-name.confirmation-text'), + denyText: _('confirmation-dialog.report-template-same-name.deny-text'), + }); + + this._dialogService.openDialog('confirm', null, data, null, async result => { + if (result) { + await this._openConfirmationDialog(file, dossierTemplateId); + } + }); + } else { + await this._openConfirmationDialog(file, dossierTemplateId); + } + + this._fileInput.nativeElement.value = null; + } + + private async _openConfirmationDialog(file: File, dossierTemplateId: string) { if (this._isExcelFile(file)) { const data = new ConfirmationDialogInput({ title: _('confirmation-dialog.upload-report-template.title'), @@ -113,7 +135,6 @@ export class ReportsScreenComponent implements OnInit { await this._reportTemplateService.uploadTemplateForm(dossierTemplateId, false, file).toPromise(); await this._loadReportTemplates(); } - this._fileInput.nativeElement.value = null; } private async _deleteTemplate(template: IReportTemplate) { diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index fa8141da2..b651fd42b 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -454,6 +454,12 @@ "deny-text": "Cancel Upload", "question": "Please choose if {fileName} is a single or multi-file report template", "title": "Report Template Upload" + }, + "report-template-same-name": { + "confirmation-text": "Yes. Continue upload.", + "deny-text": "No. Cancel Upload", + "question": "There is already a Report Template with the name: {fileName}. Do you wish to continue?", + "title": "Report Template Upload" } }, "content": "Reason", From efa924f3bf7fdf96923f6b25fc68420ba6edf44c Mon Sep 17 00:00:00 2001 From: Edi Cziszter Date: Mon, 17 Jan 2022 14:27:38 +0200 Subject: [PATCH 32/97] some instead of find --- .../admin/screens/reports/reports-screen.component.ts | 2 +- apps/red-ui/src/assets/i18n/de.json | 6 ++++++ apps/red-ui/src/assets/i18n/en.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts index 1d51481ec..55e61d9a6 100644 --- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts @@ -93,7 +93,7 @@ export class ReportsScreenComponent implements OnInit { const dossierTemplateId = this._dossierTemplatesService.activeDossierTemplateId; - if (!!this.availableTemplates.find(template => template.fileName === file.name)) { + if (this.availableTemplates.some(template => template.fileName === file.name)) { const data = new ConfirmationDialogInput({ title: _('confirmation-dialog.report-template-same-name.title'), question: _('confirmation-dialog.report-template-same-name.question'), diff --git a/apps/red-ui/src/assets/i18n/de.json b/apps/red-ui/src/assets/i18n/de.json index 3d1ce9f6f..a3ad0ee77 100644 --- a/apps/red-ui/src/assets/i18n/de.json +++ b/apps/red-ui/src/assets/i18n/de.json @@ -449,6 +449,12 @@ "deny-text": "Uploads abbrechen", "question": "Wählen Sie bitte aus, ob {fileName} eine Berichtsvorlage für eine oder für mehrere Dateien ist", "title": "Upload der Berichtsvorlage" + }, + "report-template-same-name": { + "confirmation-text": "", + "deny-text": "", + "question": "{fileName}", + "title": "" } }, "content": "Begründung", diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index b651fd42b..ba5a448b6 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -456,7 +456,7 @@ "title": "Report Template Upload" }, "report-template-same-name": { - "confirmation-text": "Yes. Continue upload.", + "confirmation-text": "Yes. Continue upload", "deny-text": "No. Cancel Upload", "question": "There is already a Report Template with the name: {fileName}. Do you wish to continue?", "title": "Report Template Upload" From 9c29d224c5cfd533626e901dff321729c6672690 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 17 Jan 2022 14:33:53 +0200 Subject: [PATCH 33/97] automatic updates for surrounding text --- .../dossier/translations/file-status-translations.ts | 1 + apps/red-ui/src/app/state/app-state.service.ts | 10 ++++++++++ apps/red-ui/src/assets/config/config.json | 6 +++--- libs/red-domain/src/lib/files/types.ts | 2 ++ libs/red-domain/src/lib/reports/types.ts | 1 + 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/translations/file-status-translations.ts b/apps/red-ui/src/app/modules/dossier/translations/file-status-translations.ts index 5dd0404d3..4649a8f47 100644 --- a/apps/red-ui/src/app/modules/dossier/translations/file-status-translations.ts +++ b/apps/red-ui/src/app/modules/dossier/translations/file-status-translations.ts @@ -19,5 +19,6 @@ export const processingFileStatusTranslations: { [key in ProcessingFileStatus]: OCR_PROCESSING: _('file-status.ocr-processing'), PROCESSING: _('file-status.processing'), REPROCESS: _('file-status.reprocess'), + SURROUNDING_TEXT_PROCESSING: _('file-status.processing'), UNPROCESSED: _('file-status.unprocessed'), }; diff --git a/apps/red-ui/src/app/state/app-state.service.ts b/apps/red-ui/src/app/state/app-state.service.ts index 42f1d8861..34adc5a86 100644 --- a/apps/red-ui/src/app/state/app-state.service.ts +++ b/apps/red-ui/src/app/state/app-state.service.ts @@ -160,6 +160,16 @@ export class AppStateService { } } + dictionaryData['dossier_redaction'] = new Dictionary( + { + hexColor: colors.manualRedactionColor || FALLBACK_COLOR, + type: 'dossier_redaction', + hint: false, + recommendation: false, + }, + true, + ); + dictionaryData['declined-suggestion'] = new Dictionary( { hexColor: colors.notRedacted || FALLBACK_COLOR, diff --git a/apps/red-ui/src/assets/config/config.json b/apps/red-ui/src/assets/config/config.json index 4c6dd7e9a..01c7d5793 100644 --- a/apps/red-ui/src/assets/config/config.json +++ b/apps/red-ui/src/assets/config/config.json @@ -1,9 +1,9 @@ { "ADMIN_CONTACT_NAME": null, "ADMIN_CONTACT_URL": null, - "API_URL": "https://aks-staging.iqser.cloud/redaction-gateway-v1", + "API_URL": "https://dev-04.iqser.cloud/redaction-gateway-v1", "APP_NAME": "RedactManager", - "AUTO_READ_TIME": 1.5, + "AUTO_READ_TIME": 3, "BACKEND_APP_VERSION": "4.4.40", "DELETE_RETENTION_HOURS": 96, "EULA_URL": "EULA_URL", @@ -17,7 +17,7 @@ "MAX_RETRIES_ON_SERVER_ERROR": 3, "OAUTH_CLIENT_ID": "redaction", "OAUTH_IDP_HINT": null, - "OAUTH_URL": "https://aks-staging.iqser.cloud/auth/realms/redaction", + "OAUTH_URL": "https://dev-04.iqser.cloud/auth/realms/redaction", "RECENT_PERIOD_IN_HOURS": 24, "SELECTION_MODE": "structural" } diff --git a/libs/red-domain/src/lib/files/types.ts b/libs/red-domain/src/lib/files/types.ts index 2cb697783..70155c11f 100644 --- a/libs/red-domain/src/lib/files/types.ts +++ b/libs/red-domain/src/lib/files/types.ts @@ -15,6 +15,7 @@ export const ProcessingFileStatuses = { ERROR: 'ERROR', FULLREPROCESS: 'FULLREPROCESS', IMAGE_ANALYZING: 'IMAGE_ANALYZING', + SURROUNDING_TEXT_PROCESSING: 'SURROUNDING_TEXT_PROCESSING', INDEXING: 'INDEXING', OCR_PROCESSING: 'OCR_PROCESSING', PROCESSED: 'PROCESSED', @@ -28,6 +29,7 @@ export type ProcessingFileStatus = keyof typeof ProcessingFileStatuses; export const isProcessingStatuses: List = [ ProcessingFileStatuses.REPROCESS, ProcessingFileStatuses.FULLREPROCESS, + ProcessingFileStatuses.SURROUNDING_TEXT_PROCESSING, ProcessingFileStatuses.OCR_PROCESSING, ProcessingFileStatuses.IMAGE_ANALYZING, ProcessingFileStatuses.INDEXING, diff --git a/libs/red-domain/src/lib/reports/types.ts b/libs/red-domain/src/lib/reports/types.ts index b1f811a33..b269dab0d 100644 --- a/libs/red-domain/src/lib/reports/types.ts +++ b/libs/red-domain/src/lib/reports/types.ts @@ -3,6 +3,7 @@ export const ReportStatuses = { DELETED: 'DELETED', ERROR: 'ERROR', FULLREPROCESS: 'FULLREPROCESS', + SURROUNDING_TEXT_PROCESSING: 'SURROUNDING_TEXT_PROCESSING', OCR_PROCESSING: 'OCR_PROCESSING', PROCESSING: 'PROCESSING', REPROCESS: 'REPROCESS', From 1a8b2da3dc77a52da6d1621a467d1516cb4572f0 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Mon, 17 Jan 2022 13:37:59 +0100 Subject: [PATCH 34/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3213 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 42c8aed90..465297715 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.157.0", + "version": "3.158.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index a9c4c615954a62007318a7b87e6bc8ba70327c6f..d1f8e17449c1723b65909f0d05e3b9e1c7569282 100644 GIT binary patch delta 3061 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 DYiZ>V delta 3062 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 Date: Mon, 17 Jan 2022 14:44:37 +0200 Subject: [PATCH 35/97] RED-3209 --- apps/red-ui/src/app/modules/auth/red-role.guard.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/red-ui/src/app/modules/auth/red-role.guard.ts b/apps/red-ui/src/app/modules/auth/red-role.guard.ts index 524ba77e2..9ac205529 100644 --- a/apps/red-ui/src/app/modules/auth/red-role.guard.ts +++ b/apps/red-ui/src/app/modules/auth/red-role.guard.ts @@ -28,6 +28,7 @@ export class RedRoleGuard implements CanActivate { if ( this._userService.currentUser.isUserAdmin && !this._userService.currentUser.isAdmin && + !this._userService.currentUser.isUser && !(state.url.startsWith('/main/admin/users') || state.url.startsWith('/main/my-profile')) ) { this._router.navigate(['/main/admin/users']); From b77d706e350e730dcdc8396a401dd4eeb9f39ef8 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 17 Jan 2022 15:02:57 +0200 Subject: [PATCH 36/97] Minor fix --- .../screens/file-preview-screen/file-preview-screen.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 361f278a0..4e508e83f 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -208,6 +208,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni if (!file.canBeOpened) { return this._router.navigate([this._dossiersService.find(this.dossierId)?.routerLink]); } + this.viewModeService.set('STANDARD'); await this.ngOnInit(); this._lastPage = previousRoute.queryParams.page; From 9eb2fa10e54243e7c8b40ab84ff3e9b613de2c0e Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Mon, 17 Jan 2022 14:06:49 +0100 Subject: [PATCH 37/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3213 -> 3215 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 465297715..da39282e0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.158.0", + "version": "3.159.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index d1f8e17449c1723b65909f0d05e3b9e1c7569282..e3e7a0aee24ad56be78e242a1186385f898fe303 100644 GIT binary patch delta 3095 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 From f6b2b2e66964f8d61f641d9216d5790510a7624e Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Mon, 17 Jan 2022 15:30:18 +0200 Subject: [PATCH 38/97] increase file fetch rate when uploading --- .../app/modules/upload-download/services/file-upload.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/red-ui/src/app/modules/upload-download/services/file-upload.service.ts b/apps/red-ui/src/app/modules/upload-download/services/file-upload.service.ts index ccf57e725..5494c0e81 100644 --- a/apps/red-ui/src/app/modules/upload-download/services/file-upload.service.ts +++ b/apps/red-ui/src/app/modules/upload-download/services/file-upload.service.ts @@ -41,7 +41,7 @@ export class FileUploadService extends GenericService impleme ) { super(_injector, 'upload'); const fileFetch$ = this._fetchFiles$.pipe( - throttleTime(1500), + throttleTime(250), switchMap(dossierId => this._filesService.loadAll(dossierId)), ); this._subscriptions.add(fileFetch$.subscribe()); From 3de6f6d6520c2763ecbc4f63d4f467eabc4b3c90 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Mon, 17 Jan 2022 14:36:58 +0100 Subject: [PATCH 39/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3215 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index da39282e0..5a2b5c857 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.159.0", + "version": "3.160.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index e3e7a0aee24ad56be78e242a1186385f898fe303..8bb1847b638f8315fc99cdb8f175ed9ffa9343c8 100644 GIT binary patch delta 3096 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 delta 3097 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 From 7ddcb23fc9e5be253791a403831b16131774079e Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 17 Jan 2022 15:08:29 +0200 Subject: [PATCH 40/97] excluded file btn fix --- .../shared/components/file-actions/file-actions.component.ts | 2 +- apps/red-ui/src/app/services/permissions.service.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts b/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts index 95a6427cd..f4bc25a51 100644 --- a/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts +++ b/apps/red-ui/src/app/modules/dossier/shared/components/file-actions/file-actions.component.ts @@ -159,7 +159,7 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnDestroy, ariaExpanded: this._excludedPagesService?.shown$, showDot: !!this.file.excludedPages?.length, icon: 'red:exclude-pages', - show: !!this._excludedPagesService, + show: !!this._excludedPagesService && !this.file.excluded, }, { type: ActionTypes.circleBtn, diff --git a/apps/red-ui/src/app/services/permissions.service.ts b/apps/red-ui/src/app/services/permissions.service.ts index 88b9afe77..55eeaf96b 100644 --- a/apps/red-ui/src/app/services/permissions.service.ts +++ b/apps/red-ui/src/app/services/permissions.service.ts @@ -97,7 +97,7 @@ export class PermissionsService { // TODO: Remove '?', after we make sure file is loaded before page canPerformAnnotationActions(file: File): boolean { - return (file?.isUnderReview || file?.isUnderApproval) && this.isFileAssignee(file); + return !file.excluded && (file?.isUnderReview || file?.isUnderApproval) && this.isFileAssignee(file); } canUndoApproval(file: File | File[]): boolean { From 8c87729ad6c86087f885f14fc7dd17e195c45fa4 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 17 Jan 2022 15:23:41 +0200 Subject: [PATCH 41/97] fixed invalid date --- .../attributes/edit-dossier-attributes.component.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.ts index e22722727..982311438 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.ts @@ -66,9 +66,10 @@ export class EditDossierAttributesComponent implements EditDossierSectionInterfa async save(): EditDossierSaveResult { const dossierAttributeList = this.attributes.map(attr => ({ dossierAttributeConfigId: attr.id, - value: this.isSpecificType(attr, DossierAttributeConfigTypes.DATE) - ? moment(this.currentAttrValue(attr)).format('YYYY-MM-DD') - : this.currentAttrValue(attr), + value: + this.isSpecificType(attr, DossierAttributeConfigTypes.DATE) && !!this.currentAttrValue(attr) + ? moment(this.currentAttrValue(attr)).format('YYYY-MM-DD') + : this.currentAttrValue(attr), })); try { await this._dossierAttributesService.setAttributes(this.dossier, dossierAttributeList).toPromise(); From 2072a8de1fd3610c35a120b7fa59a4dc64bc3f6c Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Mon, 17 Jan 2022 15:37:59 +0100 Subject: [PATCH 42/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3215 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5a2b5c857..309c5e505 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.160.0", + "version": "3.161.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 8bb1847b638f8315fc99cdb8f175ed9ffa9343c8..1572fc6e230a4c9cf902b283d82f873dd6f959a2 100644 GIT binary patch delta 3126 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 Date: Mon, 17 Jan 2022 18:08:17 +0200 Subject: [PATCH 43/97] added xliff for i18n tools --- apps/red-ui/src/assets/i18n/de.json | 862 ++--- package.json | 5 +- tools/auto-i18n/i18n-cleanup.ts | 53 +- tools/auto-i18n/import.xliff | 4127 +++++++++++++++++++++ tools/auto-i18n/redaction-en-to-de.xliff | 4127 +++++++++++++++++++++ tools/auto-i18n/test.xml | 4295 ++++++++++++++++++++++ yarn.lock | 14 + 7 files changed, 12846 insertions(+), 637 deletions(-) create mode 100644 tools/auto-i18n/import.xliff create mode 100644 tools/auto-i18n/redaction-en-to-de.xliff create mode 100644 tools/auto-i18n/test.xml diff --git a/apps/red-ui/src/assets/i18n/de.json b/apps/red-ui/src/assets/i18n/de.json index a3ad0ee77..074e962fe 100644 --- a/apps/red-ui/src/assets/i18n/de.json +++ b/apps/red-ui/src/assets/i18n/de.json @@ -1,29 +1,17 @@ { "account-settings": "Account Einstellungen", - "actions": { - "all": "Alle", - "none": "Keine" - }, + "actions": { "all": "Alle", "none": "Keine" }, "active": "Aktiv", "add-dossier-dialog": { - "actions": { - "save": "Speichern", - "save-and-add-members": "Speichern und Team zusammenstellen" - }, + "actions": { "save": "Speichern", "save-and-add-members": "Speichern und Team zusammenstellen" }, "errors": { "dossier-already-exists": "Dieser Dossier-Name ist bereits vergeben!", "generic": "Dossier konnte nicht gespeichert werden." }, "form": { - "description": { - "label": "Beschreibung", - "placeholder": "Bitte geben Sie eine Beschreibung ein." - }, + "description": { "label": "Beschreibung", "placeholder": "Bitte geben Sie eine Beschreibung ein." }, "due-date": "Termin", - "name": { - "label": "Dossier-Name", - "placeholder": "Geben Sie einen Namen ein." - }, + "name": { "label": "Dossier-Name", "placeholder": "Geben Sie einen Namen ein." }, "template": "Dossier-Vorlage", "watermark": "Geschwärzte Dokumente mit Wasserzeichen versehen", "watermark-preview": "Vorschau Dokumente mit Wasserzeichen versehen" @@ -56,9 +44,7 @@ "title": "{type, select, edit{Wörterbuch {name} bearbeiten} create{Wörterbuch erstellen} other{}}" }, "add-edit-dossier-attribute": { - "error": { - "generic": "Attribut konnte nicht gespeichert werden!" - }, + "error": { "generic": "Attribut konnte nicht gespeichert werden!" }, "form": { "label": "Name des Attributs", "label-placeholder": "Namen eingeben", @@ -88,8 +74,10 @@ "form": { "column-header": "CSV-Spaltenüberschrift", "column-header-placeholder": "Spaltenüberschrift für CSV eingeben", + "displayed-disabled": "Die maximale Anzahl angezeigter Attribute ({maxNumber}) wurde erreicht.", "displayedInFileList": "Wird in der Dokumentenliste angezeigt", "filterable": "Filterbar", + "filterable-disabled": "Die maximale Anzahl filterbarer Attribute ({maxNumber}) wurde erreicht.", "name": "Name des Attributs", "name-placeholder": "Namen eingeben", "primary": "Zum Primärattribut machen", @@ -100,10 +88,7 @@ "title": "{type, select, edit{Edit {name}} create{Add New} other{}} Datei-Attribut" }, "add-edit-justification": { - "actions": { - "cancel": "Abbrechen", - "save": "Begründung speichern" - }, + "actions": { "cancel": "Abbrechen", "save": "Begründung speichern" }, "form": { "description": "Beschreibung", "description-placeholder": "Beschreibung eingeben", @@ -134,33 +119,14 @@ }, "title": "{type, select, edit{Benutzer bearbeiten} create{Neuen Benutzer hinzufügen} other{}}" }, - "admin-side-nav": { - "dossier-templates": "Dossier-Vorlage", - "settings": "Einstellungen" - }, + "admin-side-nav": { "dossier-templates": "Dossier-Vorlage", "settings": "Einstellungen" }, "annotation": "Anmerkung", "annotation-actions": { - "resize": { - "label": "Größe ändern" - }, - "resize-accept": { - "label": "Größe speichern" - }, - "resize-cancel": { - "label": "Größenänderung abbrechen" - }, - "accept-recommendation": { - "label": "Empfehlung annehmen" - }, - "accept-suggestion": { - "label": "Genehmigen und zum Wörterbuch hinzufügen" - }, - "edit-reason": { - "label": "Begründung bearbeiten" - }, - "force-redaction": { - "label": "Schwärzung erzwingen" - }, + "accept-recommendation": { "label": "Empfehlung annehmen" }, + "accept-suggestion": { "label": "Genehmigen und zum Wörterbuch hinzufügen" }, + "edit-reason": { "label": "Begründung bearbeiten" }, + "force-hint": { "label": "Hinweis erzwingen" }, + "force-redaction": { "label": "Schwärzung erzwingen" }, "hide": "Ausblenden", "message": { "dictionary": { @@ -177,52 +143,28 @@ "error": "Fehler beim Ablehnen des neuen Wörterbucheintrags: {error}", "success": "Vorschlag für das Wörterbuch abgelehnt." }, - "remove": { - "error": "Fehler beim Entfernen des Wörterbucheintrags: {error}", - "success": "Wörterbucheintrag wurde gelöscht!" - }, - "request-remove": { - "error": "Dossier-Vorlage", - "success": "Löschung des Wörterbucheintrags wurde vorgeschlagen!" - }, + "remove": { "error": "Fehler beim Entfernen des Wörterbucheintrags: {error}", "success": "Wörterbucheintrag wurde gelöscht!" }, + "request-remove": { "error": "Dossier-Vorlage", "success": "Löschung des Wörterbucheintrags wurde vorgeschlagen!" }, "suggest": { "error": "Vorschlag für Änderung des Wörterbuchs konnte nicht gespeichert werden: {error}", "success": "Vorschlag für die Änderung des Wörterbuchs gespeichert!" }, - "undo": { - "error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}", - "success": "Rückgängigmachen erfolgreich" - } + "undo": { "error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}", "success": "Rückgängigmachen erfolgreich" } }, "manual-redaction": { - "add": { - "error": "Fehler beim Speichern der Schwärzung: {error}", - "success": "Schwärzung hinzugefügt!" - }, - "approve": { - "error": "Fehler beim Genehmigen des Vorschlags: {error}", - "success": "Vorschlag genehmigt" - }, + "add": { "error": "Fehler beim Speichern der Schwärzung: {error}", "success": "Schwärzung hinzugefügt!" }, + "approve": { "error": "Fehler beim Genehmigen des Vorschlags: {error}", "success": "Vorschlag genehmigt" }, "change-legal-basis": { "error": "Fehler beim Bearbeiten der in der Anmerkung genannten Begründung: {error}", "success": "In der Anmerkung genannte Begründung wurde bearbeitet." }, - "decline": { - "error": "Fehler beim Ablehnen des Vorschlags: {error}", - "success": "Vorschlag abgelehnt" - }, - "force-redaction": { - "error": "Die Schwärzung konnte nicht gespeichert werden!", - "success": "Schwärzung eingefügt!" - }, + "decline": { "error": "Fehler beim Ablehnen des Vorschlags: {error}", "success": "Vorschlag abgelehnt" }, + "force-redaction": { "error": "Die Schwärzung konnte nicht gespeichert werden!", "success": "Schwärzung eingefügt!" }, "recategorize-image": { "error": "Rekategorisierung des Bildes gescheitert: {error}", "success": "Bild wurde einer neuen Kategorie zugeordnet." }, - "remove": { - "error": "Fehler beim Entfernen der Schwärzung: {error}", - "success": "Schwärzung entfernt!" - }, + "remove": { "error": "Fehler beim Entfernen der Schwärzung: {error}", "success": "Schwärzung entfernt!" }, "request-change-legal-basis": { "error": "Fehler beim Vorschlagen der Änderung der Begründung:", "success": "Die Änderung der in der Anmerkung genannten Begründung wurde beantragt." @@ -256,22 +198,32 @@ "only-here": "nur hier entfernen", "remove-from-dict": "Aus dem Wörterbuch entfernen" }, + "resize-accept": { "label": "Größe speichern" }, + "resize-cancel": { "label": "Größenänderung abbrechen" }, + "resize": { "label": "Größe ändern" }, "show": "Zeigen", "undo": "Rückgängig" }, + "annotation-changes": { + "forced": "Redaktion erzwungen", + "header": "Manuelle Änderungen:", + "legal-basis": "Grund geändert", + "recategorized": "Bildkategorie geändert", + "removed-manual": "Schwärzung/Hinweis entfernt", + "resized": "Schwärzungsbereich wurde geändert" + }, "annotation-engines": { "dictionary": "{isHint, select, true{Hint} other{Redaction}} basierend auf Wörterbuch", "ner": "Redaktion basierend auf KI", "rule": "Schwärzung basierend auf Regel {rule}" }, "annotation-type": { - "suggestion-resize": "Vorgeschlagene Größenänderung", "declined-suggestion": "Abgelehnter Vorschlag", "hint": "Hinweis", + "ignored-hint": "Ignorierter Hinweis", "manual-redaction": "Manuelle Schwärzung", "recommendation": "Empfehlung", "redaction": "Schwärzung", - "remove-only-here": "Ausstehende Löschung (nur hier)", "skipped": "Übersprungen", "suggestion-add": "Vorschlag für Schwärzung", "suggestion-add-dictionary": "Vorschlag für neuen Wörterbucheintrag", @@ -279,7 +231,8 @@ "suggestion-force-redaction": "Vorschlag für erzwungene Schwärzung", "suggestion-recategorize-image": "Vorschlag für Rekategorisierung eines Bilds", "suggestion-remove": "Vorschlagen, die Schwärzung zu entfernen", - "suggestion-remove-dictionary": "Vorschlag für Löschung eines Wörterbucheintrags" + "suggestion-remove-dictionary": "Vorschlag für Löschung eines Wörterbucheintrags", + "suggestion-resize": "Vorgeschlagene Größenänderung" }, "annotations": "Anmerkungen", "archived": "Archiviert", @@ -287,10 +240,10 @@ "dialog": { "approvers": "Genehmiger", "make-approver": "Zum Genehmiger ernennen", - "no-approvers": "Es gibt noch keine Genehmiger. Bitte aus der Listen unten auswählen.", "no-reviewers": "Es gibt noch keine Reviewer.\nBitte aus der Liste unten auswählen.", "reviewers": "Reviewer", "search": "Suche ...", + "select-below": "Wählen Sie aus der Liste unten aus.", "single-user": "Besitzer" } }, @@ -302,10 +255,7 @@ "title": "Datei verwalten: {type, select, approver{Genehmiger} reviewer{Reviewer} other{}}" } }, - "assign-user": { - "cancel": "Abbrechen", - "save": "Speichern" - }, + "assign-user": { "cancel": "Abbrechen", "save": "Speichern" }, "assignment": { "owner": "{ownerName} wurde erfolgreich zum Dossier {dossierName} hinzugefügt.", "reviewer": "{reviewerName} wurde erfolgreich zum Dokument {filename} hinzugefügt." @@ -327,18 +277,9 @@ "project-template": "Projekt-Vorlage", "user": "Nutzer" }, - "no-data": { - "title": "Keine Protokolle verfügbar." - }, - "table-col-names": { - "category": "Kategorie", - "date": "Datum", - "message": "Nachricht", - "user": "Nutzer" - }, - "table-header": { - "title": "{length} {length, plural, one{Log} other{Logs}}" - }, + "no-data": { "title": "Keine Protokolle verfügbar." }, + "table-col-names": { "category": "Kategorie", "date": "Datum", "message": "Nachricht", "user": "Nutzer" }, + "table-header": { "title": "{length} {length, plural, one{Log} other{Logs}}" }, "to": "bis" }, "auth-error": { @@ -349,26 +290,15 @@ "logout": "Ausloggen" }, "by": "von", - "resize-annotation-dialog": { - "actions": { - "cancel": "Abbrechen", - "save": "Änderungen speichern" - }, - "content": { - "comment": "Kommentar" - }, - "header": "Schwärzung ändern" - }, "change-legal-basis-dialog": { - "actions": { - "cancel": "Abbrechen", - "save": "Änderungen speichern" - }, + "actions": { "cancel": "Abbrechen", "save": "Änderungen speichern" }, "content": { + "classification": "Wert / Klassifizierung", "comment": "Kommentar", "legalBasis": "Rechtsgrundlage", "reason": "Begründung für die Schwärzung auswählen", - "reason-placeholder": "Wählen Sie eine Begründung aus ..." + "reason-placeholder": "Wählen Sie eine Begründung aus ...", + "section": "Absatz / Ort" }, "header": "Begründung für die Schwärzung bearbeiten" }, @@ -428,10 +358,7 @@ "question": "Möchten Sie dieses Dokument wirklich löschen?", "title": "{dossierName} löschen" }, - "delete-file": { - "question": "Möchten Sie fortfahren?", - "title": "Dokument löschen" - }, + "delete-file": { "question": "Möchten Sie fortfahren?", "title": "Dokument löschen" }, "delete-justification": { "question": "Möchten Sie {count, plural, one{diese Begründung} other{diese Begründung}} wirklich löschen?", "title": "{count, plural, one{{justificationName}} other{ausgewählte Begründungen}} löschen" @@ -451,73 +378,45 @@ "title": "Upload der Berichtsvorlage" }, "report-template-same-name": { - "confirmation-text": "", - "deny-text": "", + "confirmation-text": "Ja. Hochladen fortsetzen", + "deny-text": "Nein. Hochladen abbrechen", "question": "{fileName}", - "title": "" + "title": "Hochladen von Berichtsvorlagen" } }, "content": "Begründung", "default-colors": "Farbeinstellungen", "default-colors-screen": { - "action": { - "edit": "Farbe bearbeiten" - }, - "table-col-names": { - "color": "Farbe", - "key": "Typ" - }, - "table-header": { - "title": "{length} Standard{length, plural, one{farbe} other{farben}}" - }, + "action": { "edit": "Farbe bearbeiten" }, + "table-col-names": { "color": "Farbe", "key": "Typ" }, + "table-header": { "title": "{length} Standard{length, plural, one{farbe} other{farben}}" }, "types": { "analysisColor": "Analyse", "defaultColor": "Standardfarbe", "dictionaryRequestColor": "Wörterbuch", + "ignoredHintColor": "Ignorierter Hinweis", "manualRedactionColor": "Manuelle Schwärzung", "notRedacted": "Übersprungen", "previewColor": "Vorschau", "requestAdd": "Neuen Wörterbucheintrag vorschlagen", "requestRemove": "Anfrage entfernt", - "updatedColor": "Aktualisiert", - "ignoredHintColor": "Ignorierter Hinweis" + "updatedColor": "Aktualisiert" } }, "dev-mode": "DEV", "dictionaries": "Wörterbücher", "dictionary": "Wörterbuch", "dictionary-listing": { - "action": { - "delete": "Wörterbuch löschen", - "edit": "Wörterbuch bearbeiten" - }, + "action": { "delete": "Wörterbuch löschen", "edit": "Wörterbuch bearbeiten" }, "add-new": "Neues Wörterbuch", - "bulk": { - "delete": "Ausgewählte Wörterbücher löschen" - }, + "bulk": { "delete": "Ausgewählte Wörterbücher löschen" }, "case-sensitive": "Klein-/Großschreibung berücksichtigen", - "no-data": { - "action": "Neues Wörterbuch", - "title": "Es gibt noch keine Wörterbücher." - }, - "no-match": { - "title": "Die ausgewählten Filter treffen auf kein Wörterbuch zu." - }, + "no-data": { "action": "Neues Wörterbuch", "title": "Es gibt noch keine Wörterbücher." }, + "no-match": { "title": "Die ausgewählten Filter treffen auf kein Wörterbuch zu." }, "search": "Suche ...", - "stats": { - "charts": { - "entries": "Einträge", - "types": "Typen" - } - }, - "table-col-names": { - "hint-redaction": "Hinweis/Schwärzung", - "rank": "Rang", - "type": "Typ" - }, - "table-header": { - "title": "{length} {length, plural, one{Wörterbuch} other{Wörterbücher}}" - } + "stats": { "charts": { "entries": "Einträge", "types": "Typen" } }, + "table-col-names": { "hint-redaction": "Hinweis/Schwärzung", "rank": "Rang", "type": "Typ" }, + "table-header": { "title": "{length} {length, plural, one{Wörterbuch} other{Wörterbücher}}" } }, "dictionary-overview": { "action": { @@ -532,9 +431,7 @@ "select-dossier": "Dossier auswählen", "select-dossier-template": "Dossiervorlage auswählen" }, - "dictionary-details": { - "description": "Beschreibung" - }, + "dictionary-details": { "description": "Beschreibung" }, "error": { "entries-too-short": "Einige Einträge im Wörterbuch unterschreiten die Mindestlänge von 2 Zeichen. Diese sind rot markiert.", "generic": "Es ist ein Fehler aufgetreten ... Das Wörterbuch konnte nicht aktualisiert werden!" @@ -543,9 +440,7 @@ "save-changes": "Änderungen speichern", "search": "Suche ...", "select-dictionary": "Wählen Sie oben das Wörterbuch aus, das Sie mit dem aktuellen Wörterbuch vergleichen möchten.", - "success": { - "generic": "Wörterbuch aktualisiert!" - } + "success": { "generic": "Wörterbuch aktualisiert!" } }, "digital-signature": "Digitale Signatur", "digital-signature-screen": { @@ -559,68 +454,29 @@ "save-error": "Fehler beim Speichern der digitalen Signatur", "save-success": "Digitale Signatur erfolgreich gespeichert" }, - "certificate-name": { - "label": "Name des Zertifikats", - "placeholder": "Name des Zertifikats" - }, - "contact-info": { - "label": "Kontaktdaten", - "placeholder": "Kontaktdaten" - }, - "location": { - "label": "Ort", - "placeholder": "Ort" - }, + "certificate-name": { "label": "Name des Zertifikats", "placeholder": "Name des Zertifikats" }, + "contact-info": { "label": "Kontaktdaten", "placeholder": "Kontaktdaten" }, + "location": { "label": "Ort", "placeholder": "Ort" }, "no-data": { "action": "Zertifikat hochladen", "title": "Es ist kein Zertifikat für die digitale Signatur konfiguriert. Laden Sie ein PCKS#12-Zertifikat hoch, um Ihre geschwärzten Dokumente zu signieren." }, - "password": { - "label": "Zertifikatspasswort/-schlüssel", - "placeholder": "Passwort" - }, - "reason": { - "label": "Begründung", - "placeholder": "Begründung" - } - }, - "document-info": { - "save": "Dokumenteninformation speichern", - "title": "Datei-Attribute anlegen" + "password": { "label": "Zertifikatspasswort/-schlüssel", "placeholder": "Passwort" }, + "reason": { "label": "Begründung", "placeholder": "Begründung" } }, + "document-info": { "save": "Dokumenteninformation speichern", "title": "Datei-Attribute anlegen" }, "dossier": "Dossier", - "dossier-attribute-types": { - "date": "Datum", - "image": "Bild", - "number": "Nummer", - "text": "Text" - }, + "dossier-attribute-types": { "date": "Datum", "image": "Bild", "number": "Nummer", "text": "Text" }, "dossier-attributes": "Dossier-Attribut", "dossier-attributes-listing": { - "action": { - "delete": "Attribut löschen", - "edit": "Attribut bearbeiten" - }, + "action": { "delete": "Attribut löschen", "edit": "Attribut bearbeiten" }, "add-new": "Neues Attribut", - "bulk": { - "delete": "Ausgewähltes Attribut löschen" - }, - "no-data": { - "action": "Neues Attribut", - "title": "Es sind keine Dossier-Attribute vorhanden" - }, - "no-match": { - "title": "Die ausgewählten Filter treffen auf kein Attribut zu." - }, + "bulk": { "delete": "Ausgewähltes Attribut löschen" }, + "no-data": { "action": "Neues Attribut", "title": "Es sind keine Dossier-Attribute vorhanden" }, + "no-match": { "title": "Die ausgewählten Filter treffen auf kein Attribut zu." }, "search": "Suche ...", - "table-col-names": { - "label": "Label", - "placeholder": "Platzhalter", - "type": "Typ" - }, - "table-header": { - "title": "{length} {length, plural, one{Dossier-Attribut} other{Dossier-Attribute}}" - } + "table-col-names": { "label": "Label", "placeholder": "Platzhalter", "type": "Typ" }, + "table-header": { "title": "{length} {length, plural, one{Dossier-Attribut} other{Dossier-Attribute}}" } }, "dossier-details": { "assign-members": "Mitglieder zuweisen", @@ -634,50 +490,21 @@ }, "dossier-listing": { "add-new": "Neues Dossier", - "delete": { - "action": "Dossier löschen", - "delete-failed": "Das Dossier {dossierName} konnte nicht gelöscht werden" - }, - "edit": { - "action": "Dossier bearbeiten" - }, - "filters": { - "label": "Dossiername", - "search": "Dossiername..." - }, - "no-data": { - "action": "Neues Dossier", - "title": "Sie haben momentan keine Dossiers." - }, - "no-match": { - "title": "Die ausgewählten Filter treffen auf kein Dossier zu." - }, - "quick-filters": { - "my-dossiers": "Meine Dossiers", - "other": "Sonstige", - "to-approve": "Zu Genehmigen", - "to-review": "Zu Überprüfen" - }, - "reanalyse": { - "action": "Gesamtes Dossier analysieren" - }, + "delete": { "action": "Dossier löschen", "delete-failed": "Das Dossier {dossierName} konnte nicht gelöscht werden" }, + "dossier-info": { "action": "Dossier-Info" }, + "edit": { "action": "Dossier bearbeiten" }, + "filters": { "label": "Dossiername", "search": "Dossiername..." }, + "no-data": { "action": "Neues Dossier", "title": "Sie haben momentan keine Dossiers." }, + "no-match": { "title": "Die ausgewählten Filter treffen auf kein Dossier zu." }, + "quick-filters": { "my-dossiers": "Meine Dossiers", "other": "Sonstige", "to-approve": "Zu Genehmigen", "to-review": "Zu Überprüfen" }, + "reanalyse": { "action": "Gesamtes Dossier analysieren" }, "stats": { "analyzed-pages": "Seiten", - "charts": { - "dossiers": "Dossiers", - "total-documents": "Anzahl der Dokumente" - }, + "charts": { "dossiers": "Dossiers", "total-documents": "Anzahl der Dokumente" }, "total-people": "Anzahl der Benutzer" }, - "table-col-names": { - "name": "Name", - "needs-work": "Arbeitsvorrat", - "owner": "Besitzer", - "status": "Status" - }, - "table-header": { - "title": "{length} {length, plural, one{aktives Dossier} other{aktive Dossiers}}" - } + "table-col-names": { "name": "Name", "needs-work": "Arbeitsvorrat", "owner": "Besitzer", "status": "Status" }, + "table-header": { "title": "{length} {length, plural, one{aktives Dossier} other{aktive Dossiers}}" } }, "dossier-overview": { "approve": "Genehmigen", @@ -685,22 +512,15 @@ "assign-approver": "Genehmiger zuordnen", "assign-me": "Mir zuteilen", "assign-reviewer": "Überprüfer zuordnen", - "bulk": { - "delete": "Dokumente löschen", - "reanalyse": "Dokumente analysieren" - }, - "delete": { - "action": "Datei löschen" - }, + "bulk": { "delete": "Dokumente löschen", "reanalyse": "Dokumente analysieren" }, + "delete": { "action": "Datei löschen" }, "dossier-details": { "attributes": { "expand": "{count} {count, plural, one{benutzerdefiniertes Attribut} other{benutzerdefinierte Attribute}}", "image-uploaded": "Bild hochgeladen", "show-less": "weniger anzeigen" }, - "charts": { - "documents-in-dossier": "Dokumente im Dossier" - }, + "charts": { "documents-in-dossier": "Dokumente im Dossier" }, "description": "Beschreibung", "dictionary": "Dossier-Wörterbuch", "stats": { @@ -709,44 +529,24 @@ "deleted": "{count} gelöschte Dateien", "documents": "{count} {count, plural, one{Dokument} other{Dokumente}}", "due-date": "Fällig am {date}", - "people": "{count} {count, plural, one{Benutzer} other{Benutzer}}" + "people": "{count} {count, plural, one{Benutzer} other{Benutzer}}", + "processing-documents": "{count} Verarbeitung von {count, plural, one{document} other{documents}}" } }, "download-file": "Herunterladen", "download-file-disabled": "Nur genehmigte Dateien können heruntergeladen werden", - "file-listing": { - "file-entry": { - "file-error": "Reanalyse erforderlich", - "file-pending": "Ausstehend ...", - "file-processing": "Wird analysiert" - } - }, - "filters": { - "label": "Dokumentname", - "search": "Dokumentname..." - }, + "file-listing": { "file-entry": { "file-error": "Reanalyse erforderlich", "file-pending": "Ausstehend ..." } }, + "filters": { "label": "Dokumentname", "search": "Dokumentname..." }, "header-actions": { "download-csv": "CSV-Dateibericht herunterladen", "edit": "Dossier bearbeiten", "upload-document": "Dokument hochgeladen" }, - "new-rule": { - "toast": { - "actions": { - "reanalyse-all": "Alle analysieren" - } - } - }, - "no-data": { - "action": "Dokument hochladen", - "title": "Noch gibt es keine Dokumente." - }, - "no-match": { - "title": "Die ausgewählten Filter treffen auf kein Dokument zu." - }, + "new-rule": { "toast": { "actions": { "reanalyse-all": "Alle analysieren" } } }, + "no-data": { "action": "Dokument hochladen", "title": "Noch gibt es keine Dokumente." }, + "no-match": { "title": "Die ausgewählten Filter treffen auf kein Dokument zu." }, "ocr-file": "OCR-Dokument", "ocr-performed": "Diese Datei wurde mithilfe von OCR konvertiert.", - "open-document": "Dokument öffnen", "quick-filters": { "assigned-to-me": "Mir zuweisen", "assigned-to-others": "Anderen zugewiesen", @@ -757,9 +557,7 @@ "error": "Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut.", "success": "Dateien für Reanalyse vorgesehen." }, - "reanalyse": { - "action": "Datei analysieren" - }, + "reanalyse": { "action": "Datei analysieren" }, "table-col-names": { "added-on": "Hinzugefügt", "assigned-to": "Zugewiesen an", @@ -768,44 +566,26 @@ "pages": "Seiten", "status": "Status" }, - "table-header": { - "title": "{length} {length, plural, one{document} other{documents}}" - }, + "table-header": { "title": "{length} {length, plural, one{document} other{documents}}" }, "under-approval": "Zur Genehmigung", "under-review": "In Review", "upload-files": "Sie können Dateien überall per Drag and Drop platzieren..." }, "dossier-templates": "Dossier-Vorlagen", "dossier-templates-listing": { - "action": { - "delete": "Dossier-Vorlage", - "edit": "Vorlage bearbeiten" - }, + "action": { "delete": "Dossier-Vorlage", "edit": "Vorlage bearbeiten" }, "add-new": "Neue Dossier-Vorlage", - "bulk": { - "delete": "Ausgewählte Dossier-Vorlagen löschen" - }, + "bulk": { "delete": "Ausgewählte Dossier-Vorlagen löschen" }, "dictionaries": "{length} {length, plural, one{dictionary} other{dictionaries}}", "error": { "conflict": "Dieses DossierTemplate kann nicht gelöscht werden! Zumindest auf Dossier wird diese Vorlage verwendet!", "generic": "Dieses DossierTemplate kann nicht gelöscht werden!" }, - "no-data": { - "title": "Es gibt noch keine Dossier-Vorlagen." - }, - "no-match": { - "title": "Die ausgewählten Filter treffen auf keine Dossier-Vorlage zu." - }, + "no-data": { "title": "Es gibt noch keine Dossier-Vorlagen." }, + "no-match": { "title": "Die ausgewählten Filter treffen auf keine Dossier-Vorlage zu." }, "search": "Suchen ...", - "table-col-names": { - "created-by": "Erstellt von", - "created-on": "Erstellt am", - "modified-on": "Geändert am", - "name": "Name" - }, - "table-header": { - "title": "{length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}}" - } + "table-col-names": { "created-by": "Erstellt von", "created-on": "Erstellt am", "modified-on": "Geändert am", "name": "Name" }, + "table-header": { "title": "{length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}}" } }, "download-includes": "Wählen Sie die Dokumente für Ihr Download-Paket aus", "download-status": { @@ -820,44 +600,24 @@ "redacted": "geschwärztes PDF" }, "downloads-list": { - "actions": { - "delete": "Löschen", - "download": "Herunterladen" - }, - "bulk": { - "delete": "Ausgewählte Downloads löschen" - }, - "no-data": { - "title": "Keine aktiven Downloads." - }, - "table-col-names": { - "date": "Datum", - "name": "Name", - "size": "Größe", - "status": "Status" - }, - "table-header": { - "title": "{length} {length, plural, one{download} other{downloads}}" - } + "actions": { "delete": "Löschen", "download": "Herunterladen" }, + "bulk": { "delete": "Ausgewählte Downloads löschen" }, + "no-data": { "title": "Keine aktiven Downloads." }, + "table-col-names": { "date": "Datum", "name": "Name", "size": "Größe", "status": "Status" }, + "table-header": { "title": "{length} {length, plural, one{download} other{downloads}}" } }, "edit-color-dialog": { "error": "Fehler beim Aktualisieren der Farben.", - "form": { - "color": "Farbe", - "color-placeholder": "Farbe" - }, + "form": { "color": "Farbe", "color-placeholder": "Farbe" }, "save": "Speichern", "success": "Farbe erfolgreich aktualisiert auf {color}." }, "edit-dossier-dialog": { - "actions": { - "revert": "Rückgängig machen", - "save": "Änderungen speichern", - "save-and-close": "Speichern" - }, + "actions": { "revert": "Rückgängig machen", "save": "Änderungen speichern", "save-and-close": "Speichern" }, "attributes": { "custom-attributes": "Benutzerdefinierte Dossier-Attribute", "delete-image": "Bild löschen", + "error": { "generic": "Als Bilddossierattribute sind nur PNG-, JPG- und JPEG-Dateien zulässig." }, "image-attributes": "Bild-Attribute", "no-custom-attributes": "Es sind keine Text-Attribute vorhanden", "no-image-attributes": "Es sind keine Bild-Attribute vorhanden", @@ -866,48 +626,36 @@ "change-successful": "Dossier wurde aktualisiert.", "delete-successful": "Dossier wurde gelöscht.", "deleted-documents": { - "action": { - "delete": "Endgültig löschen", - "restore": "Wiederherstellen" - }, - "bulk": { - "delete": "Ausgewählte Dokumente endgültig löschen", - "restore": "Ausgewählte Dokumente wiederherstellen" - }, + "action": { "delete": "Endgültig löschen", "restore": "Wiederherstellen" }, + "bulk": { "delete": "Ausgewählte Dokumente endgültig löschen", "restore": "Ausgewählte Dokumente wiederherstellen" }, "instructions": "Gelöschte Objekte können bis zu {hours} Stunden nach ihrer Löschung wiederhergestellt werden", - "no-data": { - "title": "Es sind keine gelöschten Dokumente vorhanden." - }, + "no-data": { "title": "Es sind keine gelöschten Dokumente vorhanden." }, "table-col-names": { + "assignee": "Bevollmächtigter", "deleted-on": "Gelöscht am", "name": "Name", "pages": "Seiten", + "status": "Status", "time-to-restore": "Verbleibende Zeit für Wiederherstellung" }, - "table-header": { - "label": "{length} {length, plural, one{gelöschtes Dokument} other{gelöschte Dokumente}}" - } + "table-header": { "label": "{length} {length, plural, one{gelöschtes Dokument} other{gelöschte Dokumente}}" } }, "dictionary": { "display-name": { "cancel": "Abbrechen", "edit": "Anzeigenamen bearbeiten", + "error": "Anzeigename des Wörterbuchs konnte nicht aktualisiert werden.", "placeholder": "Anzeigenamen eingeben", - "save": "Anzeigenamen speichern" + "save": "Anzeigenamen speichern", + "success": "Anzeigename des Wörterbuchs erfolgreich aktualisiert." }, "entries": "{length} {length, plural, one{entry} other{entries}}" }, "general-info": { "form": { - "description": { - "label": "Beschreibung", - "placeholder": "Beschreibung eingeben" - }, + "description": { "label": "Beschreibung", "placeholder": "Beschreibung eingeben" }, "due-date": "Termin", - "name": { - "label": "Dossier-Name", - "placeholder": "Namen eingeben" - }, + "name": { "label": "Dossier-Name", "placeholder": "Namen eingeben" }, "template": "Dossier-Vorlage", "watermark": "Geschwärzte Dokumente mit Wasserzeichen versehen", "watermark-preview": "Vorschau Dokumente mit Wasserzeichen versehen" @@ -930,10 +678,12 @@ "unsaved-changes": "Sie haben nicht gespeicherte Änderungen. Speichern Sie oder machen Sie die Änderungen rückgängig, bevor Sie die Registerkarte wechseln." }, "error": { - "close": "Nah dran", - "http": { - "generic": "Aktion mit Code {status} fehlgeschlagen" + "deleted-entity": { + "dossier": { "action": "Zurück zur Übersicht", "label": "Dieses Dossier wurde gelöscht!" }, + "file-dossier": { "action": "Zurück zur Übersicht", "label": "Das Dossier dieser Datei wurde gelöscht!" }, + "file": { "action": "Zurück zum Dossier", "label": "Diese Datei wurde gelöscht!" } }, + "http": { "generic": "Aktion mit Code {status} fehlgeschlagen" }, "offline": "Du bist offline", "online": "Du bist online", "reload": "Neu laden", @@ -941,19 +691,10 @@ }, "exact-date": "{day} {month} {year} um {hour}:{minute} Uhr", "file": "Datei", - "file-attribute-types": { - "date": "Datum", - "number": "Nummer", - "text": "Freier Text" - }, + "file-attribute-types": { "date": "Datum", "number": "Nummer", "text": "Freier Text" }, "file-attributes": "Datei-Attribute", "file-attributes-csv-import": { - "action": { - "cancel-edit-name": "Abbrechen", - "edit-name": "Namen bearbeiten", - "remove": "Entfernen", - "save-name": "Speichern" - }, + "action": { "cancel-edit-name": "Abbrechen", "edit-name": "Namen bearbeiten", "remove": "Entfernen", "save-name": "Speichern" }, "available": "{value} verfügbar", "cancel": "Abbrechen", "csv-column": "CSV-Spalte", @@ -964,24 +705,17 @@ "file": "Datei:", "key-column": "Schlüsselspalte", "key-column-placeholder": "Spalte auswählen ...", - "no-data": { - "title": "Keine Datei-Attribute definiert. Wählen Sie links eine Spalte aus, um Datei-Attribute zu definieren." - }, + "no-data": { "title": "Keine Datei-Attribute definiert. Wählen Sie links eine Spalte aus, um Datei-Attribute zu definieren." }, "no-hovered-column": "Fahren Sie mit der Maus über den Eintrag, um eine Vorschau der CSV-Spalte zu sehen.", "no-sample-data-for": "Keine Beispieldaten für {column}.", "parse-csv": "CSV-Datei mit neuen Optionen parsen", - "quick-activation": { - "all": "Alle", - "none": "Keine" - }, + "quick-activation": { "all": "Alle", "none": "Keine" }, "save": { "error": "Fehler beim Erstellen der Datei-Attribute!", "label": "Attribute speichern", "success": "{count} Datei-{count, plural, one{Attribut} other{Attribute}} erfolgreich erstellt!" }, - "search": { - "placeholder": "Nach Spaltennamen suchen ..." - }, + "search": { "placeholder": "Nach Spaltennamen suchen ..." }, "selected": "{value} ausgewählt", "table-col-names": { "name": "Name", @@ -1004,24 +738,12 @@ "total-rows": "{rows} Zeilen insgesamt" }, "file-attributes-listing": { - "error": { - "generic": "Attribute konnte nicht erstellt werden!", - "conflict": "Es gibt bereits ein Attribute mit diesem Name!" - }, - "action": { - "delete": "Attribut löschen", - "edit": "Attribute bearbeiten" - }, + "action": { "delete": "Attribut löschen", "edit": "Attribute bearbeiten" }, "add-new": "Neue Attribute", - "bulk-actions": { - "delete": "Ausgewählte Attribute löschen" - }, - "no-data": { - "title": "Es sind noch keine Datei-Attribute vorhanden." - }, - "no-match": { - "title": "Die aktuell ausgewählten Filter treffen auf kein Datei-Attribut zu." - }, + "bulk-actions": { "delete": "Ausgewählte Attribute löschen" }, + "error": { "conflict": "Es gibt bereits ein Attribute mit diesem Name!", "generic": "Attribute konnte nicht erstellt werden!" }, + "no-data": { "title": "Es sind noch keine Datei-Attribute vorhanden." }, + "no-match": { "title": "Die aktuell ausgewählten Filter treffen auf kein Datei-Attribut zu." }, "read-only": "Schreibgeschützt", "search": "Nach Attribut-Namen suchen ...", "table-col-names": { @@ -1034,9 +756,7 @@ "read-only": "Schreibgeschützt", "type": "Eingabetyp" }, - "table-header": { - "title": "{length} {length, plural, one{Datei-Attribut} other{Datei-Attribute}}" - }, + "table-header": { "title": "{length} {length, plural, one{Datei-Attribut} other{Datei-Attribute}}" }, "upload-csv": "Datei-Attribute hochladen" }, "file-preview": { @@ -1051,13 +771,8 @@ "excluded-from-redaction": "Von Schwärzung ausgeschlossen", "fullscreen": "Vollbildmodus", "last-reviewer": "Zuletzt überprüft von:", - "no-data": { - "title": "Auf dieser Seite gibt es keine Anmerkungen." - }, - "quick-nav": { - "jump-first": "Zur ersten Seite springen", - "jump-last": "Zur letzten Seite springen" - }, + "no-data": { "title": "Auf dieser Seite gibt es keine Anmerkungen." }, + "quick-nav": { "jump-first": "Zur ersten Seite springen", "jump-last": "Zur letzten Seite springen" }, "reanalyse-notification": "Dieses Dokument wurde nicht auf Basis des neuesten Regel-/Wörterbuchsatzes bearbeitet. Analysieren Sie es jetzt, um die Anmerkungen zu analysieren.", "redacted": "Vorschau", "redacted-tooltip": "In der Schwärzungsvorschau sehen Sie nur die Schwärzungen. Es handelt sich also um eine Vorschau der endgültigen geschwärzten Version. Diese Ansicht ist nur verfügbar, wenn für die Datei keine Änderungen ausstehen und keine Reanalyse erforderlich ist", @@ -1106,10 +821,12 @@ "approved": "Genehmigt", "deleted": "Gelöscht", "error": "Reanalyse erforderlich", - "excluded": "Ausgeschlossen", "full-reprocess": "Wird analysiert", + "image-analyzing": "Bildanalyse", "indexing": "Wird analysiert", + "new": "Neu", "ocr-processing": "OCR-Analyse", + "processed": "Verarbeitet", "processing": "Wird analysiert...", "reprocess": "Wird analysiert", "unassigned": "Nicht zugewiesen", @@ -1121,8 +838,9 @@ "filter-options": "Filteroptionen", "filter-types": "Filter", "label": "Filter", - "with-comments": "Nur Anmerkungen mit Kommentaren", - "with-reason-changes": "Nur Schwärzungen, deren Begründungen geändert wurden" + "redaction-changes": "Nur Anmerkungen mit Schwärzungsänderungen", + "unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten", + "with-comments": "Nur Anmerkungen mit Kommentaren" }, "filter": { "analysis": "Analyse erforderlich", @@ -1144,14 +862,8 @@ "status": "Status" }, "general-config-screen": { - "actions": { - "save": "Einstellungen speichern", - "test-connection": "Verbindung testen" - }, - "app-name": { - "label": "Name der Applikation", - "placeholder": "RedactManager" - }, + "actions": { "save": "Einstellungen speichern", "test-connection": "Verbindung testen" }, + "app-name": { "label": "Name der Applikation", "placeholder": "RedactManager" }, "form": { "auth": "Authentifizierung aktivieren", "change-credentials": "Zugangsdaten ändern", @@ -1174,9 +886,7 @@ "starttls": "StartTLS aktivieren" }, "general": { - "form": { - "forgot-password": "„Passwort vergessen?“-Link auf der Login-Seite anzeigen" - }, + "form": { "forgot-password": "„Passwort vergessen?“-Link auf der Login-Seite anzeigen" }, "subtitle": "", "title": "Allgemeine Einstellungen" }, @@ -1195,34 +905,15 @@ "welcome-to-help-mode": " Willkommen im Hilfe-Modus!
Klicken Sie auf interaktive Elemente, um in einem neuen Tab Infos dazu zu erhalten.
" }, "hint": "Hinweis", - "image-category": { - "formula": "Formel", - "image": "Bild", - "logo": "Logo", - "signature": "Signatur" - }, - "initials-avatar": { - "unassigned": "Unbekannt", - "you": "Sie" - }, + "image-category": { "formula": "Formel", "image": "Bild", "logo": "Logo", "signature": "Signatur" }, + "initials-avatar": { "unassigned": "Unbekannt", "you": "Sie" }, "justifications": "Begründungen", "justifications-listing": { - "actions": { - "delete": "Begründung löschen", - "edit": "Begründung bearbeiten" - }, + "actions": { "delete": "Begründung löschen", "edit": "Begründung bearbeiten" }, "add-new": "Neue Begründung hinzufügen", - "bulk": { - "delete": "Ausgewählte Begründungen löschen" - }, - "no-data": { - "title": "Es gibt noch keine Begründungen." - }, - "table-col-names": { - "description": "Beschreibung", - "name": "Name", - "reason": "Rechtliche Grundlage" - }, + "bulk": { "delete": "Ausgewählte Begründungen löschen" }, + "no-data": { "title": "Es gibt noch keine Begründungen." }, + "table-col-names": { "description": "Beschreibung", "name": "Name", "reason": "Rechtliche Grundlage" }, "table-header": "{length} {length, plural, one{Begründung} other{Begründung}}" }, "license-info-screen": { @@ -1261,22 +952,23 @@ "license-information": "Lizenzinformationen", "manual-annotation": { "dialog": { - "actions": { - "save": "Speichern" - }, + "actions": { "save": "Speichern" }, "content": { + "classification": "Wert / Klassifizierung", "comment": "Kommentar", "dictionary": "Wörterbuch", "legalBasis": "Rechtsgrundlage", "reason": "Begründung", "reason-placeholder": "Wählen Sie eine Begründung aus ...", "rectangle": "Benutzerdefinierter Bereich", + "section": "Absatz / Ort", "text": "Ausgewählter Text:" }, "header": { "dictionary": "Zum Wörterbuch hinzufügen", "false-positive": "Als Falsch-Positiv definieren", - "force": "Schwärzung erzwingen", + "force-hint": "Hinweis erzwingen", + "force-redaction": "Schwärzung erzwingen", "redaction": "Schwärzung", "request-dictionary": "Neuen Wörterbucheintrag vorschlagen", "request-false-positive": "Als Falsch-Positiv vorschlagen", @@ -1299,14 +991,14 @@ "sep": "Sept." }, "notification": { - "no-data": "Du hast aktuell keine Benachrichtigungen", "assign-approver": "Sie wurden dem Dokument
{fileName} im Dossier {dossierName} als Genehmiger zugewiesen!", "assign-reviewer": "Sie wurden dem Dokument {fileName} im Dossier {dossierName} als Reviewer zugewiesen!", "document-approved": "{fileName} wurde genehmigt!", "dossier-deleted": "Dossier: {dossierName} wurde gelöscht!", - "dossier-owner-deleted": "Der Dossier-Owner von {dossierName} wurde entfernt!", "dossier-owner-removed": "Der Dossier-Owner von {dossierName} wurde entfernt!", "dossier-owner-set": "Eigentümer von {dossierName} geändert zu {user}!", + "download-ready": "Ihr Download ist fertig!", + "no-data": "Du hast aktuell keine Benachrichtigungen", "unassigned-from-file": "Sie wurden vom Dokument {fileName} im Dossier {dossierName} entfernt!", "user-becomes-dossier-member": "{user} ist jetzt Mitglied des Dossiers {dossierName}!", "user-demoted-to-reviewer": "{user} wurde im Dossier {dossierName} auf die Reviewer-Berechtigung heruntergestuft!", @@ -1315,36 +1007,32 @@ }, "notifications": "Benachrichtigungen", "notifications-screen": { - "category": { - "email-notifications": "E-Mail Benachrichtigungen", - "in-app-notifications": "In-App-Benachrichtigungen" - }, - "error": { - "generic": "Ein Fehler ist aufgetreten... Aktualisierung der Einstellungen fehlgeschlagen!" - }, + "category": { "email-notifications": "E-Mail Benachrichtigungen", "in-app-notifications": "In-App-Benachrichtigungen" }, + "error": { "generic": "Ein Fehler ist aufgetreten... Aktualisierung der Einstellungen fehlgeschlagen!" }, "groups": { - "approver": "Dossiers, für die Sie genehmigend sind", - "own": "Dossiers, die Sie besitzen", - "reviewer": "Dossiers, für die Sie Bewerter sind" + "document": "Dokumentbezogene Benachrichtigungen", + "dossier": "Dossierbezogene Benachrichtigungen", + "other": "Andere Benachrichtigungen" }, "options-title": "Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten", "options": { - "document-is-sent-for-approval": "Dokument wird zur Genehmigung gesendet", - "document-status-changes": "Dokumentstatusänderungen", - "dossier-status-changes": "Änderungen des Dossierstatus", - "request-to-join-the-dossier": "Antrag auf Beitritt zum Dossier", - "when-a-document-is-approved": "Wenn ein Dokument genehmigt wird", - "when-a-document-is-assigned-to-a-reviewer": "Wenn ein Dokument einem Prüfer zugewiesen wird", - "when-a-document-is-sent-for-approval": "Wenn ein Dokument zur Genehmigung gesendet wird", - "when-a-reviewer-is-unassigned-from-a-document": "Wenn die Zuweisung eines Prüfers zu einem Dokument aufgehoben wird", - "when-i-am-assigned-on-a-document": "Wenn ich einem Dokument zugewiesen bin", - "when-i-am-unassigned-from-a-document": "Wenn ich einem Dokument nicht zugewiesen bin" - }, - "schedule": { - "daily": "Tägliche Zusammenfassung", - "instant": "Sofortig", - "weekly": "Wöchentliche Zusammenfassung" + "ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen bin", + "ASSIGN_REVIEWER": "Wenn ich einem Dokument als Überprüfer zugewiesen bin", + "DOCUMENT_APPROVED": "Wenn sich der Dokumentstatus in Genehmigt ändert", + "DOCUMENT_UNDER_APPROVAL": "Wenn sich der Dokumentstatus in „In Genehmigung“ ändert", + "DOCUMENT_UNDER_REVIEW": "Wenn sich der Dokumentstatus in Wird überprüft ändert", + "DOSSIER_DELETED": "Wenn ein Dossier gelöscht wurde", + "DOSSIER_OWNER_DELETED": "Wenn der Eigentümer eines Dossiers gelöscht wurde", + "DOSSIER_OWNER_REMOVED": "Wenn ich den Besitz des Dossiers verliere", + "DOSSIER_OWNER_SET": "Wenn ich der Besitzer des Dossiers werde", + "DOWNLOAD_READY": "Wenn ein Download bereit ist", + "UNASSIGNED_FROM_FILE": "Wenn die Zuweisung zu einem Dokument aufgehoben wird", + "USER_BECOMES_DOSSIER_MEMBER": "Wenn ein Benutzer zu meinem Dossier hinzugefügt wurde", + "USER_DEGRADED_TO_REVIEWER": "Wenn ich Gutachter in einem Dossier werde", + "USER_PROMOTED_TO_APPROVER": "Wenn ich Genehmiger in einem Dossier werde", + "USER_REMOVED_AS_DOSSIER_MEMBER": "Wenn ich die Dossier-Mitgliedschaft verliere" }, + "schedule": { "daily": "Tägliche Zusammenfassung", "instant": "Sofortig", "weekly": "Wöchentliche Zusammenfassung" }, "title": "Benachrichtigungseinstellungen" }, "overwrite-files-dialog": { @@ -1358,29 +1046,16 @@ "title": "Das Dokument existiert bereits!" }, "page": "Seite", - "pagination": { - "next": "Nächste", - "previous": "Vorherige" - }, + "pagination": { "next": "Nächste", "previous": "Vorherige" }, "pdf-viewer": { - "text-popup": { - "actions": { - "search": "Nach Auswahl suchen" - } - } + "text-popup": { "actions": { "search": "Nach Auswahl suchen" } }, + "toggle-tooltips": "{active, select, true{Disable} false{Enable} other{}} Kurzinfos für Anmerkungen" }, "pending-changes-guard": "ACHTUNG: Sie haben ungespeicherte Änderungen. Klicken Sie auf „Abbrechen“, wenn Sie zurückkehren und die Änderungen speichern möchten. Klicken Sie auf „OK“, um die Änderungen zu speichern.", "readonly": "Lesemodus", "recategorize-image-dialog": { - "actions": { - "cancel": "Abbrechen", - "save": "Änderungen speichern" - }, - "content": { - "comment": "Kommentar", - "type": "Ausgewählter Bildtyp", - "type-placeholder": "Einen Typ auswählen ..." - }, + "actions": { "cancel": "Abbrechen", "save": "Änderungen speichern" }, + "content": { "comment": "Kommentar", "type": "Ausgewählter Bildtyp", "type-placeholder": "Einen Typ auswählen ..." }, "header": "Bildtypen bearbeiten" }, "redaction": "Schwärzung", @@ -1393,15 +1068,10 @@ "question": "Folgende Einträge werden aus den jeweiligen Wörterbüchern gelöscht:", "title": "Aus dem Wörterbuch löschen" }, - "remove-only-here": { - "question": "Folgende Schwärzungen werden nur hier entfernt:", - "title": "Schwärzung entfernen" - }, + "remove-only-here": { "question": "Folgende Schwärzungen werden nur hier entfernt:", "title": "Schwärzung entfernen" }, "value": "Wert" }, - "report-type": { - "label": "{length} {length, plural, one{Berichtstyp} other{Berichtstypen}}" - }, + "report-type": { "label": "{length} {length, plural, one{Berichtstyp} other{Berichtstypen}}" }, "reports": "Berichte", "reports-screen": { "description": "Ein kurzer Text, der erläutert, was Platzhalter sind und wie Sie sie in Ihrer Berichtsvorlage einsetzen können. Es ist bekannt, dass ein Leser vom lesbaren Inhalt einer Seite abgelenkt wird, wenn er sich das Layout ansieht.", @@ -1417,9 +1087,7 @@ "dossier": { "name": "Dieser Platzhalter wird durch den Namen des Dossiers ersetzt, in dem die geschwärzten Dateien gespeichert sind." }, - "file": { - "name": "Dieser Platzhalter wird durch den Dateinamen ersetzt." - }, + "file": { "name": "Dieser Platzhalter wird durch den Dateinamen ersetzt." }, "redaction": { "excerpt": "Dieser Platzhalter wird durch einen Textausschnitt ersetzt, der die Schwärzung enthält.", "justification": "Dieser Platzhalter wird durch die Begründung der Schwärzung ersetzt. Es ist eine Kombination aus dem Rechtsverweis (justificationParagraph) und dem Begründungstext (justificationReason).", @@ -1428,9 +1096,7 @@ "page": "Dieser Platzhalter wird durch die Seitenzahl der Redaktion ersetzt.", "paragraph": "Dieser Platzhalter wird durch den Absatz ersetzt, der die Schwärzung enthält." }, - "time": { - "h-m": "Dieser Platzhalter wird durch den Zeitpunkt ersetzt, zu dem der Bericht erstellt wurde." - } + "time": { "h-m": "Dieser Platzhalter wird durch den Zeitpunkt ersetzt, zu dem der Bericht erstellt wurde." } } }, "document-setup-description": "Ein kurzer Text, der erläutert, was Platzhalter sind und wie Sie sie in Ihrer Berichtsvorlage einsetzen können. Es ist bekannt, dass ein Leser vom lesbaren Inhalt einer Seite abgelenkt wird, wenn er sich das Layout ansieht.", @@ -1438,24 +1104,24 @@ "invalid-upload": "Ungültiges Upload-Format ausgewählt! Unterstützt werden Dokumente im .xlsx- und im .docx-Format", "multi-file-report": "(Mehrere Dateien)", "report-documents": "Dokumente für den Bericht", - "table-header": { - "description": "Beschreibung", - "placeholders": "Platzhalter" - }, + "table-header": { "description": "Beschreibung", "placeholders": "Platzhalter" }, "title": "Berichte", "upload-document": "Ein Dokument hochladen" }, "reset-filters": "Zurücksetzen", "reset-password-dialog": { - "actions": { - "cancel": "Abbrechen", - "save": "Speichern" - }, - "form": { - "password": "Temporäres Passwort" + "actions": { "cancel": "Abbrechen", "save": "Speichern" }, + "error": { + "password-policy": "Kennwort konnte nicht zurückgesetzt werden. Das neue Passwort entspricht nicht der Passwortrichtlinie." }, + "form": { "password": "Temporäres Passwort" }, "header": "Temporäres Passwort für {userName} festlegen" }, + "resize-annotation-dialog": { + "actions": { "cancel": "Abbrechen", "save": "Änderungen speichern" }, + "content": { "comment": "Kommentar" }, + "header": "Schwärzung ändern" + }, "roles": { "inactive": "Inaktiv", "manager-admin": "Manager & Admin", @@ -1468,29 +1134,18 @@ }, "rule-editor": "Regel-Editor", "rules-screen": { - "error": { - "generic": "Es ist ein Fehler aufgetreten ... Die Regeln konnten nicht aktualisiert werden!" - }, + "error": { "generic": "Es ist ein Fehler aufgetreten ... Die Regeln konnten nicht aktualisiert werden!" }, "revert-changes": "Anmeldedaten speichern", "save-changes": "Änderungen speichern", - "success": { - "generic": "Die Regeln wurden aktualisiert!" - } + "success": { "generic": "Die Regeln wurden aktualisiert!" } }, "search-screen": { - "cols": { - "document": "Dokument", - "dossier": "Dossier", - "pages": "Seiten", - "status": "Status" - }, - "filters": { - "by-dossier": "Nach Dossier filtern", - "search-placeholder": "Dossiername..." - }, + "cols": { "assignee": "Bevollmächtigter", "document": "Dokument", "dossier": "Dossier", "pages": "Seiten", "status": "Status" }, + "filters": { "by-dossier": "Nach Dossier filtern", "search-placeholder": "Dossiername..." }, "missing": "Fehlt", "must-contain": "Muss enthalten", "no-data": "Geben Sie einen Suchbegriff in die Suchleiste, um nach Dokumenten oder Inhalten von Dokumenten zu suchen.", + "no-match": "Keine Dokumente entsprechen Ihren aktuellen Filtern.", "table-header": "{length} {length, plural, one{Suchergebnis} other{Suchergebnisse}}" }, "search": { @@ -1499,15 +1154,8 @@ "this-dossier": "in diesem Dossier" }, "smtp-auth-config": { - "actions": { - "cancel": "Abbrechen", - "save": "Anmeldedaten speichern" - }, - "form": { - "password": "Passwort", - "username": "Benutzername", - "username-placeholder": "Login-Benutzername" - }, + "actions": { "cancel": "Abbrechen", "save": "Anmeldedaten speichern" }, + "form": { "password": "Passwort", "username": "Benutzername", "username-placeholder": "Login-Benutzername" }, "title": "Authentifizierung aktivieren" }, "time": { @@ -1525,11 +1173,7 @@ "account": "Konto", "admin": "Einstellungen", "downloads": "Meine Downloads", - "language": { - "de": "Deutsch", - "en": "Englisch", - "label": "Sprache" - }, + "language": { "de": "Deutsch", "en": "Englisch", "label": "Sprache" }, "logout": "Abmelden", "trash": "Papierkorb" } @@ -1537,97 +1181,56 @@ } }, "trash": { - "action": { - "delete": "Endgültig löschen", - "restore": "Wiederherstellen" - }, - "bulk": { - "delete": "Ausgewählte Dossiert endgültig löschen", - "restore": "Ausgewählte Dossiers wiederherstellen" - }, + "action": { "delete": "Endgültig löschen", "restore": "Wiederherstellen" }, + "bulk": { "delete": "Ausgewählte Dossiert endgültig löschen", "restore": "Ausgewählte Dossiers wiederherstellen" }, "label": "Papierkorb", - "no-data": { - "title": "Es wurde noch kein Dossier angelegt." - }, - "no-match": { - "title": "Die ausgewählten Filter treffen auf kein Dossier zu." - }, + "no-data": { "title": "Es wurde noch kein Dossier angelegt." }, + "no-match": { "title": "Die ausgewählten Filter treffen auf kein Dossier zu." }, "table-col-names": { "deleted-on": "Gelöscht am", "name": "Name", "owner": "Eigentümer", "time-to-restore": "Verbleibende Zeit für Wiederherstellung" }, - "table-header": { - "title": "{length} {length, plural, one{gelöschtes Dossier} other{gelöschte Dossiers}}" - } + "table-header": { "title": "{length} {length, plural, one{gelöschtes Dossier} other{gelöschte Dossiers}}" } }, "type": "Typ", "unknown": "Unbekannt", + "upload-dictionary-dialog": { + "options": { "cancel": "Abbrechen", "merge": "Einträge zusammenführen", "overwrite": "Überschreiben" }, + "question": "Wählen Sie, wie Sie fortfahren möchten:", + "title": "Das Wörterbuch hat bereits Einträge!" + }, "upload-status": { - "dialog": { - "actions": { - "cancel": "Upload abbrechen", - "re-upload": "Upload erneut versuchen" - }, - "title": "Datei-Uploads ({len})" - }, + "dialog": { "actions": { "cancel": "Upload abbrechen", "re-upload": "Upload erneut versuchen" }, "title": "Datei-Uploads ({len})" }, "error": { "file-size": "Datei zu groß. Die maximal zulässige Größe beträgt {size} MB.", "generic": "Fehler beim Hochladen des Dokuments" } }, "user-listing": { - "action": { - "delete": "Benutzer löschen", - "edit": "Benutzer bearbeiten" - }, + "action": { "delete": "Benutzer löschen", "edit": "Benutzer bearbeiten" }, "add-new": "Neuer Benutzer", - "bulk": { - "delete": "Benutzer löschen", - "delete-disabled": "Sie können Ihr eigenes Konto nicht löschen." - }, - "no-match": { - "title": "Die ausgewählten Filter treffen auf keinen Benutzer zu." - }, + "bulk": { "delete": "Benutzer löschen", "delete-disabled": "Sie können Ihr eigenes Konto nicht löschen." }, + "no-match": { "title": "Die ausgewählten Filter treffen auf keinen Benutzer zu." }, "search": "Suche ...", - "table-col-names": { - "active": "Aktiv", - "email": "E-Mail-Adresse", - "name": "Name", - "roles": "Rollen" - }, - "table-header": { - "title": "{length} {length, plural, one{user} other{users}}" - } + "table-col-names": { "active": "Aktiv", "email": "E-Mail-Adresse", "name": "Name", "roles": "Rollen" }, + "table-header": { "title": "{length} {length, plural, one{user} other{users}}" } }, "user-management": "Benutzerverwaltung", "user-profile": "Mein Profil", "user-profile-screen": { - "actions": { - "change-password": "Passwort ändern", - "save": "Änderungen speichern" - }, - "form": { - "email": "Email", - "first-name": "Vorname", - "last-name": "Nachname" - }, + "actions": { "change-password": "Passwort ändern", "save": "Änderungen speichern" }, + "form": { "email": "Email", "first-name": "Vorname", "last-name": "Nachname" }, "title": "Profil bearbeiten" }, "user-stats": { - "chart": { - "users": "Benutzer im Arbeitsbereich" - }, + "chart": { "users": "Benutzer im Arbeitsbereich" }, "collapse": "Details ausblenden", "expand": "Details anzeigen", "title": "Benutzer" }, - "view-mode": { - "list": "Liste", - "view-as": "Ansicht als:", - "workflow": "Arbeitsablauf" - }, + "view-mode": { "list": "Liste", "view-as": "Ansicht als:", "workflow": "Arbeitsablauf" }, "watermark": "Wasserzeichen", "watermark-screen": { "action": { @@ -1647,5 +1250,6 @@ }, "title": "Wasserzeichen" }, + "workflow": { "selection": { "all": "Alle", "count": "{count} ausgewählt", "none": "Keiner", "select": "Wählen" } }, "yesterday": "Gestern" } diff --git a/package.json b/package.json index 309c5e505..2e64f5e31 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "@angular/cli": "13.1.3", "@angular/compiler-cli": "13.1.2", "@angular/language-service": "13.1.2", + "@bartholomej/ngx-translate-extract": "^8.0.2", "@nrwl/cli": "13.4.5", "@nrwl/cypress": "13.4.5", "@nrwl/eslint-plugin-nx": "13.4.5", @@ -83,7 +84,6 @@ "@typescript-eslint/eslint-plugin": "5.9.1", "@typescript-eslint/parser": "5.3.1", "axios": "^0.24.0", - "@bartholomej/ngx-translate-extract": "^8.0.2", "cypress": "^6.9.1", "cypress-file-upload": "^5.0.8", "cypress-keycloak": "^1.7.0", @@ -113,6 +113,7 @@ "ts-jest": "27.1.3", "ts-node": "10.4.0", "typescript": "4.5.4", - "webpack": "^4.18.1" + "webpack": "^4.18.1", + "xliff": "^6.0.0" } } diff --git a/tools/auto-i18n/i18n-cleanup.ts b/tools/auto-i18n/i18n-cleanup.ts index 96feb5476..a134b005d 100644 --- a/tools/auto-i18n/i18n-cleanup.ts +++ b/tools/auto-i18n/i18n-cleanup.ts @@ -1,6 +1,9 @@ import * as fs from 'fs'; import axios from 'axios'; -import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler'; +// @ts-ignore +import * as xliff from 'xliff'; + +// import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler'; function flatten(data: any) { const result: any = {}; @@ -55,7 +58,7 @@ async function execute() { const apiKey = 'AIzaSyBiqNTundSKFjAJnSb4wSVLDU6w0Kv651M'; - const tmfc = new TranslateMessageFormatCompiler(); + // const tmfc = new TranslateMessageFormatCompiler(); for (const key of Object.keys(flatEnglish)) { if (!flatGerman[key]) { @@ -80,8 +83,8 @@ async function execute() { for (let key of Object.keys(flatGerman)) { try { - const result = tmfc.compile(flatGerman[key], 'de'); - //console.log(result); + // const result = tmfc.compile(flatGerman[key], 'de'); + // console.log(result); } catch (e) { console.error('ERROR AT: ', flatGerman[key]); } @@ -89,8 +92,8 @@ async function execute() { for (let key of Object.keys(flatEnglish)) { try { - const result = tmfc.compile(flatEnglish[key], 'de'); - console.log(result); + // const result = tmfc.compile(flatEnglish[key], 'de'); + // console.log(result); } catch (e) { console.error('ERROR AT: ', flatEnglish[key]); } @@ -101,6 +104,44 @@ async function execute() { const finalGerman = unflatten(mergedGerman); fs.writeFileSync('./../../apps/red-ui/src/assets/i18n/de.json', JSON.stringify(finalGerman)); + + const js: any = { + resources: { + redaction: {}, + }, + sourceLanguage: 'en-US', + targetLanguage: 'de-DE', + }; + + for (const key of Object.keys(flatEnglish)) { + js.resources.redaction[`${key}`] = { + source: flatEnglish[`${key}`], + target: flatGerman[`${key}`], + }; + } + + xliff.jsToXliff12(js, (err: any, res: any) => { + fs.writeFileSync('./redaction-en-to-de.xliff', res); + }); + + const xliffImport = fs.readFileSync('./import.xliff', 'utf-8'); + xliff.xliff12ToJs(xliffImport, (err: any, res: any) => { + const ns = res.resources.redaction; + + const importGerman: any = {}; + const importEnglish: any = {}; + + for (let key of Object.keys(ns)) { + importGerman[key] = ns[key].target; + importEnglish[key] = ns[key].source; + } + + const importReadyEnglish = unflatten(importEnglish); + const importReadyGerman = unflatten(importGerman); + + console.log(importReadyEnglish); + console.log(importReadyGerman); + }); } execute().then(); diff --git a/tools/auto-i18n/import.xliff b/tools/auto-i18n/import.xliff new file mode 100644 index 000000000..f89e69300 --- /dev/null +++ b/tools/auto-i18n/import.xliff @@ -0,0 +1,4127 @@ + + + + + + Account Settings + Account Einstellungen + + + All + Alle + + + None + Keine + + + Active + Aktiv + + + Save + Speichern + + + Save and Edit Team + Speichern und Team zusammenstellen + + + Dossier with this name already exists! + Dieser Dossier-Name ist bereits vergeben! + + + Failed to save dossier. + Dossier konnte nicht gespeichert werden. + + + Description + Beschreibung + + + Enter Description + Bitte geben Sie eine Beschreibung ein. + + + Due Date + Termin + + + Dossier Name + Dossier-Name + + + Enter Name + Geben Sie einen Namen ein. + + + Dossier Template + Dossier-Vorlage + + + Watermark application on redacted documents + Geschwärzte Dokumente mit Wasserzeichen versehen + + + Watermark application on preview documents + Vorschau Dokumente mit Wasserzeichen versehen + + + Create Dossier + Dossier erstellen + + + Dictionary with this name already exists! + Ein Wörterbuch mit diesem Namen existiert bereits! + + + Failed to save dictionary! + Wörterbuch konnte nicht gespeichert werden! + + + Invalid color or rank! Rank is already used by another dictionary or the color is not a valid hexColor! + Ungültige Farbe oder Rang! Der Rang wird bereits von einem anderen Wörterbuch verwendet oder die Farbe ist kein gültiger Hex-Farbcode! + + + Enable 'Add to dictionary' + Anwender können Einträge hinzufügen + + + Case Sensitive + Groß-/Kleinschreibung berücksichtigen + + + Hex Color + Hex-Farbcode + + + # + # + + + Description + Beschreibung + + + Enter Description + Beschreibung eingeben + + + Hint + Hinweis + + + Display Name + Name des Wörterbuches + + + Cannot be edited after saving. + Kann nach dem Speichern nicht mehr bearbeitet werden. + + + Enter Name + Namen eingeben + + + Rank + Rang + + + 1000 + 1000 + + + Redaction + Schwärzung + + + Technical Name + Technischer Name + + + Save Dictionary + Wörterbuch speichern + + + {type, select, edit{Edit {name}} create{Create} other{}} Dictionary + {type, select, edit{Wörterbuch {name} bearbeiten} create{Wörterbuch erstellen} other{}} + + + Failed to save attribute! + Attribut konnte nicht gespeichert werden! + + + Attribute Name + Name des Attributs + + + Enter Name + Namen eingeben + + + Attribute Placeholder + Platzhalter für Attribut + + + Attribute Type + Attributtyp + + + Save Attribute + Attribut speichern + + + {type, select, edit{Edit {name}} create{Add New} other{}} Dossier Attribute + {type, select, edit{Dossier-Attribut {name} bearbeiten} create{Neues Dossier-Attribut hinzufügen} other{}} + + + Failed to create dossier template: a dossier template with the same name already exists. + Dossiervorlage konnte nicht erstellt werden: Es existiert bereits eine Dossiervorlage mit demselben Namen. + + + Failed to create dossier template. + Fehler beim Erstellen der Dossiervorlage. + + + Description + Beschreibung + + + Enter Description + Beschreibung eingeben + + + Dossier Template Name + Name der Dossier-Vorlage + + + Enter Name + Namen eingeben + + + Valid from + Gültig ab + + + Valid to + Gültig bis + + + Save Dossier Template + Dossier-Vorlage speichern + + + {type, select, edit{Edit {name}} create{Create} other{}} Dossier Template + {type, select, edit{Dossier-Vorlage {name} bearbeiten} create{Dossier-Vorlage erstellen} other{}} + + + CSV Column Header + CSV-Spaltenüberschrift + + + Enter CSV Column Header + Spaltenüberschrift für CSV eingeben + + + The maximum number of displayed attributes ({maxNumber}) has been reached. + Die maximale Anzahl angezeigter Attribute ({maxNumber}) wurde erreicht. + + + Displayed In File List + Wird in der Dokumentenliste angezeigt + + + Filterable + Filterbar + + + The maximum number of filterable attributes ({maxNumber}) has been reached. + Die maximale Anzahl filterbarer Attribute ({maxNumber}) wurde erreicht. + + + Attribute Name + Name des Attributs + + + Enter Name + Namen eingeben + + + Set as Primary + Zum Primärattribut machen + + + Make Read-Only + Schreibgeschützt + + + Type + Typ + + + Save Attribute + Attribut speichern + + + {type, select, edit{Edit {name}} create{Add New} other{}} File Attribute + {type, select, edit{Edit {name}} create{Add New} other{}} Datei-Attribut + + + Cancel + Abbrechen + + + Save Justification + Begründung speichern + + + Description + Beschreibung + + + Enter Description + Beschreibung eingeben + + + Name + Name + + + Enter Name + Name eingeben + + + Legal Basis + Rechtliche Grundlage + + + Enter Legal Basis + Rechtsgrundlage eingeben + + + {type, select, edit{Edit {name}} create{Add New} other{}} Justification + {type, select, edit{Edit {name}} create{Add New} other{}} Begründung + + + Cancel + Abbrechen + + + Delete User + Benutzer löschen + + + Save User + Benutzer speichern + + + Save Changes + Änderungen speichern + + + This e-mail address is already in use by a different user! + Diese E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet! + + + Failed to save user! + Benutzer konnte nicht gespeichert werden! + + + Email + E-Mail + + + First Name + Vorname + + + Last Name + Nachname + + + Reset Password + Passwort zurücksetzen + + + Role + Rolle + + + {type, select, edit{Edit} create{Add New} other{}} User + {type, select, edit{Benutzer bearbeiten} create{Neuen Benutzer hinzufügen} other{}} + + + Dossier Templates + Dossier-Vorlage + + + Settings + Einstellungen + + + Annotation + Anmerkung + + + Accept Recommendation + Empfehlung annehmen + + + Approve Suggestion + Genehmigen und zum Wörterbuch hinzufügen + + + Edit Reason + Begründung bearbeiten + + + Force Hint + Hinweis erzwingen + + + Force Redaction + Schwärzung erzwingen + + + Hide + Ausblenden + + + Cannot add ''{content}'' to the {dictionaryName} dictionary because it was recognized as a general term that appears too often in texts. + &#39;&#39;{content}&#39;&#39; kann nicht zum {dictionaryName}-Wörterbuch hinzugefügt werden, da es als allgemeiner Begriff erkannt wurde, der zu oft in Texten vorkommt. + + + Failed to add entry to dictionary: {error} + Fehler beim Hinzufügen des neuen Wörterbucheintrags: {error} + + + Entry added to dictionary. Changes will be visible after reanalysis. + Eintrag zum Wörterbuch hinzugefügt. Änderungen nach der Reanalyse sichtbar. + + + Failed to approve dictionary entry: {error} + Fehler beim Genehmigen des Wörterbucheintrags: {error} + + + Dictionary entry approved. Changes will be visible after reanalysis. + Neuer Wörterbucheintrag wurde genehmigt. Änderungen sind nach der Reanalyse sichtbar. + + + Failed to decline dictionary suggestion: {error} + Fehler beim Ablehnen des neuen Wörterbucheintrags: {error} + + + Dictionary suggestion declined. + Vorschlag für das Wörterbuch abgelehnt. + + + Failed to remove dictionary entry: {error} + Fehler beim Entfernen des Wörterbucheintrags: {error} + + + Dictionary entry removed! + Wörterbucheintrag wurde gelöscht! + + + Failed to request removal of dictionary entry: {error} + Dossier-Vorlage + + + Requested to remove dictionary entry! + Löschung des Wörterbucheintrags wurde vorgeschlagen! + + + Failed to save suggestion for dictionary modification: {error} + Vorschlag für Änderung des Wörterbuchs konnte nicht gespeichert werden: {error} + + + Suggestion for dictionary modification saved! + Vorschlag für die Änderung des Wörterbuchs gespeichert! + + + Failed to undo: {error} + Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error} + + + Undo successful + Rückgängigmachen erfolgreich + + + Failed to save redaction: {error} + Fehler beim Speichern der Schwärzung: {error} + + + Redaction added! + Schwärzung hinzugefügt! + + + Failed to approve suggestion: {error} + Fehler beim Genehmigen des Vorschlags: {error} + + + Suggestion approved. + Vorschlag genehmigt + + + Failed to edit annotation reason: {error} + Fehler beim Bearbeiten der in der Anmerkung genannten Begründung: {error} + + + Annotation reason was edited. + In der Anmerkung genannte Begründung wurde bearbeitet. + + + Failed to decline suggestion: {error} + Fehler beim Ablehnen des Vorschlags: {error} + + + Suggestion declined. + Vorschlag abgelehnt + + + Failed to save redaction: {error} + Die Schwärzung konnte nicht gespeichert werden! + + + Redaction added! + Schwärzung eingefügt! + + + Failed to recategorize image: {error} + Rekategorisierung des Bildes gescheitert: {error} + + + Image recategorized. + Bild wurde einer neuen Kategorie zugeordnet. + + + Failed to remove redaction: {error} + Fehler beim Entfernen der Schwärzung: {error} + + + Redaction removed! + Schwärzung entfernt! + + + Failed to request annotation reason change: {error} + Fehler beim Vorschlagen der Änderung der Begründung: + + + Annotation reason change requested. + Die Änderung der in der Anmerkung genannten Begründung wurde beantragt. + + + Failed to save redaction suggestion: {error} + Fehler beim Speichern des Schwärzungsvorschlags: {error} + + + Redaction suggestion saved + Vorschlag einer Schwärzung gespeichert + + + Failed to request image recategorization: {error} + Fehler beim Vorschlagen der Neukategorisierung des Bilds: {error} + + + Image recategorization requested. + Bild-Neuklassifizierung angefordert. + + + Failed to request removal of redaction: {error} + Fehler beim Erstellen des Vorschlags für das Entfernen der Schwärzung: {error} + + + Requested to remove redaction! + Entfernen der Schwärzung wurde vorgeschlagen! + + + Failed to save redaction suggestion: {error} + Vorschlag einer Schwärzung wurde nicht gespeichert: {error} + + + Redaction suggestion saved + Vorschlag einer Schwärzung gespeichert + + + Failed to undo: {error} + Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error} + + + Undo successful + erfolgreich Rückgängig gemacht + + + Recategorize + neu kategorisieren + + + Reject Suggestion + Vorschlag ablehnen + + + False Positive + Falsch positiv + + + Remove only here + nur hier entfernen + + + Remove from dictionary + Aus dem Wörterbuch entfernen + + + Save Resize + Größe speichern + + + Abort Resize + Größenänderung abbrechen + + + Resize + Größe ändern + + + Show + Zeigen + + + Undo + Rückgängig + + + Redaction forced + Redaktion erzwungen + + + Manual changes: + Manuelle Änderungen: + + + Reason changed + Grund geändert + + + Image category changed + Bildkategorie geändert + + + Redaction/Hint removed + Schwärzung/Hinweis entfernt + + + Redaction area has been modified + Schwärzungsbereich wurde geändert + + + {isHint, select, true{Hint} other{Redaction}} based on dictionary + {isHint, select, true{Hint} other{Redaction}} basierend auf Wörterbuch + + + Redaction based on AI + Redaktion basierend auf KI + + + Redaction based on rule {rule} + Schwärzung basierend auf Regel {rule} + + + Declined Suggestion + Abgelehnter Vorschlag + + + Hint + Hinweis + + + Ignored Hint + Ignorierter Hinweis + + + Manual Redaction + Manuelle Schwärzung + + + Recommendation + Empfehlung + + + Redaction + Schwärzung + + + Skipped + Übersprungen + + + Suggested redaction + Vorschlag für Schwärzung + + + Suggested dictionary add + Vorschlag für neuen Wörterbucheintrag + + + Suggested change legal basis + Vorschlag für Änderung der Rechtsgrundlage + + + Suggestion force redaction + Vorschlag für erzwungene Schwärzung + + + Suggested recategorize image + Vorschlag für Rekategorisierung eines Bilds + + + Suggested redaction removal + Vorschlagen, die Schwärzung zu entfernen + + + Suggested dictionary removal + Vorschlag für Löschung eines Wörterbucheintrags + + + Suggested Resize + Vorgeschlagene Größenänderung + + + Annotations + Anmerkungen + + + Archived + Archiviert + + + Approvers + Genehmiger + + + Make Approver + Zum Genehmiger ernennen + + + No members with "review only" permission. + Es gibt noch keine Reviewer.Bitte aus der Liste unten auswählen. + + + Reviewers + Reviewer + + + Search... + Suche ... + + + Select from the list below. + Wählen Sie aus der Liste unten aus. + + + Owner + Besitzer + + + Cancel + Abbrechen + + + {type, select, approver{Approver} reviewer{Reviewer} other{}} + {type, select, approver{Genehmiger} reviewer{Reviewer} other{}} + + + Save + Speichern + + + Manage File {type, select, approver{Approver} reviewer{Reviewer} other{}} + Datei verwalten: {type, select, approver{Genehmiger} reviewer{Reviewer} other{}} + + + Cancel + Abbrechen + + + Save + Speichern + + + Successfully assigned {ownerName} to dossier: {dossierName}. + {ownerName} wurde erfolgreich zum Dossier {dossierName} hinzugefügt. + + + Successfully {reviewerName, select, undefined{unassigned user from} other{assigned {reviewerName} to file:}} {filename}. + {reviewerName} wurde erfolgreich zum Dokument {filename} hinzugefügt. + + + Audit + Aktivitätenprotokoll + + + All Users + Alle Benutzer + + + All Categories + Alle Bereiche + + + Audit + Aktivitätenprotokoll + + + Audit Log + Aktivitätenprotokoll + + + Dictionary + Wörterbuch + + + Document + Dokument + + + Dossier + Dossier + + + Dossier Template + Dossier-Vorlage + + + Download + Download + + + License + Lizenz + + + Project + Projekt + + + Project Template + Projekt-Vorlage + + + User + Nutzer + + + No available logs. + Keine Protokolle verfügbar. + + + Category + Kategorie + + + Date + Datum + + + Message + Nachricht + + + User + Nutzer + + + {length} {length, plural, one{Log} other{Logs}} + {length} {length, plural, one{Log} other{Logs}} + + + to + bis + + + Your user is successfully logged in but has no role assigned yet. Please contact your RedactManager administrator to assign appropriate roles. + Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie Ihren Admin, um den Zugang anzufordern! + + + Your user is successfully logged in but has no role assigned yet. Please contact <a href={adminUrl} target=_blank >your RedactManager administrator</a> to assign appropriate roles! + Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie <a href={adminUrl} target=_blank >Ihren Admin</a>, um den Zugang anzufordern! + + + Your user is successfully logged in but has no role assigned yet. Please contact {adminName} to assign appropriate roles. + Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie {adminName}, um den Zugang anzufordern! + + + Your user is successfully logged in but has no role assigned yet. Please contact <a href={adminUrl} target=_blank >{adminName}</a> to assign appropriate roles. + Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie <a href={adminUrl} target=_blank >{adminName}</a>, um den Zugang anzufordern! + + + Logout + Ausloggen + + + by + von + + + Cancel + Abbrechen + + + Save Changes + Änderungen speichern + + + Value / Classification + Wert / Klassifizierung + + + Comment + Kommentar + + + Legal Basis + Rechtsgrundlage + + + Select redaction reason + Begründung für die Schwärzung auswählen + + + Select a reason... + Wählen Sie eine Begründung aus ... + + + Paragraph / Location + Absatz / Ort + + + Edit Redaction Reason + Begründung für die Schwärzung bearbeiten + + + Enter comment + Kommentar eingeben + + + {count} {count, plural, one{comment} other{comments}} + {count} {count, plural, one{Kommentar} other{Kommentare}} + + + Hide comments + Kommentare verbergen + + + Close View + Ansicht schließen + + + Yes + Ja + + + No + Nein + + + This action requires confirmation, do you wish to proceed? + Diese Aktion erfordert eine Bestätigung. Möchten Sie fortfahren? + + + Confirm Action + Aktion bestätigen + + + Configurations + Einstellungen + + + Keep {type, select, single{Attribute} bulk{Attributes} other{}} + {type, select, single{Attribut} bulk{Attribute} other{}} behalten + + + Delete {type, select, single{Attribute} bulk{Attributes} other{}} + {type, select, single{Attribut} bulk{Attribute} other{}} löschen + + + All documents {type, select, single{it is} bulk{they are} other{}} used on will be impacted + Alle Dokumente {type, select, single{ist} bulk{sind} other{}} betroffen + + + All inputted details on the documents will be lost + Alle in die Dokumente eingegebenen Daten gehen verloren + + + Delete {type, select, single{{name}} bulk{File Attributes} other{}} + {type, select, single{{name}} bulk{Datei-Attribute} other{}} löschen + + + Please confirm that you understand the ramifications of your action! + Bitte bestätigen Sie, dass Ihnen die Konsequenzen dieser Aktion bewusst sind! + + + Warning: this cannot be undone! + Achtung: Diese Aktion kann nicht rückgängig gemacht werden! + + + Keep {usersCount, plural, one{User} other{Users}} + {usersCount, plural, one{Benutzer} other{Benutzer}} behalten + + + Delete {usersCount, plural, one{User} other{Users}} + {usersCount, plural, one{Benutzer} other{Benutzer}} löschen + + + All documents pending review from the {usersCount, plural, one{user} other{users}} will be impacted + Betroffen sind alle Dokumente, deren Review durch den/die {usersCount, plural, one{user} other{users}} noch aussteht + + + {dossiersCount} {dossiersCount, plural, one{dossier} other{dossiers}} will be impacted + {dossiersCount} {dossiersCount, plural, one{Dossier} other{Dossiers}} sind betroffen + + + Delete {usersCount, plural, one{User} other{Users}} from Workspace + {usersCount, plural, one{Benutzer} other{Benutzer}} aus dem Arbeitsbereich entfernen + + + Please confirm that you understand the ramifications of your action! + Bitte bestätigen Sie, dass Ihnen die Konsequenzen dieser Aktion bewusst sind! + + + Warning: this cannot be undone! + Achtung: Diese Aktion kann nicht rückgängig gemacht werden! + + + This document has unseen changes, do you wish to approve it anyway? + Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen? + + + Warning! + Warnung! + + + At least one of the files you selected has unseen changes, do you wish to approve them anyway? + Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen? + + + Warning! + Warnung! + + + This document is currently reviewed by someone else. Do you want to become the reviewer and assign yourself to this document? + Dieses Dokument wird gerade von einer anderen Person geprüft. Möchten Sie Reviewer werden und sich selbst dem Dokument zuweisen? + + + Re-assign user + Neuen Reviewer zuweisen + + + <strong>Warning!</strong> <br><br> Number of pages does not match, current document has <strong>{currentDocumentPageCount} page(s)</strong>. Uploaded document has <strong>{compareDocumentPageCount} page(s)</strong>. <br><br> Do you wish to proceed? + <strong>Achtung!</strong> <br><br> Seitenzahl stimmt nicht überein, aktuelles Dokument hat <strong>{currentDocumentPageCount} Seite(n)</strong>. Das hochgeladene Dokument hat <strong>{compareDocumentPageCount} Seite(n)</strong>. <br><br> Möchten Sie fortfahren? + + + Compare with file: {fileName} + Vergleichen mit: {fileName} + + + Delete {dossiersCount, plural, one{Dossier} other{Dossiers}} + Dossier löschen + + + Keep {dossiersCount, plural, one{Dossier} other{Dossiers}} + Dossier behalten + + + Are you sure you want to delete {dossiersCount, plural, one{this dossier} other{these dossiers}}? + Möchten Sie dieses Dokument wirklich löschen? + + + Delete {dossiersCount, plural, one{{dossierName}} other{Selected Dossiers}} + {dossierName} löschen + + + Do you wish to proceed? + Möchten Sie fortfahren? + + + Delete Document + Dokument löschen + + + Are you sure you want to delete {count, plural, one{this justification} other{these justifications}}? + Möchten Sie {count, plural, one{diese Begründung} other{diese Begründung}} wirklich löschen? + + + Delete {count, plural, one{{justificationName}} other{Selected Justifications}} + {count, plural, one{{justificationName}} other{ausgewählte Begründungen}} löschen + + + To proceed please type below + Bitte geben Sie unten Folgendes ein, um fortzufahren + + + Delete {filesCount, plural, one{Document} other{Documents}} + {filesCount, plural, one{Document} other{Documents}} löschen + + + Keep {filesCount, plural, one{Document} other{Documents}} + {filesCount, plural, one{Dokument} other{Dokumente}} behalten + + + Are you sure you want to delete {filesCount, plural, one{this document} other{these documents}}? + Möchten Sie {filesCount, plural, one{dieses Dokument} other{diese Dokumente}} wirklich löschen? + + + Delete {filesCount, plural, one{{fileName}} other{Selected Documents}} + {filesCount, plural, one{{fileName}} other{ausgewählte Dokumente}} löschen + + + Upload as multi-file report + Als Bericht für mehrere Dokumente hochladen + + + Upload as single-file report + Als Bericht für ein Dokument hochladen + + + Cancel Upload + Uploads abbrechen + + + Please choose if <b>{fileName}</b> is a single or multi-file report template + Wählen Sie bitte aus, ob <b>{fileName}</b> eine Berichtsvorlage für eine oder für mehrere Dateien ist + + + Report Template Upload + Upload der Berichtsvorlage + + + Yes. Continue upload + Ja. Hochladen fortsetzen + + + No. Cancel Upload + Nein. Hochladen abbrechen + + + There is already a Report Template with the name: <b>{fileName}</b>. Do you wish to continue? + <b>{fileName}</b> + + + Report Template Upload + Hochladen von Berichtsvorlagen + + + Reason + Begründung + + + Default Colors + Farbeinstellungen + + + Edit Color + Farbe bearbeiten + + + Color + Farbe + + + Type + Typ + + + {length} Default {length, plural, one{Color} other{Colors}} + {length} Standard{length, plural, one{farbe} other{farben}} + + + Analysis + Analyse + + + Default Color + Standardfarbe + + + Dictionary Request + Wörterbuch + + + Ignored Hint + Ignorierter Hinweis + + + Manual Redaction + Manuelle Schwärzung + + + Skipped + Übersprungen + + + Preview + Vorschau + + + Request Add + Neuen Wörterbucheintrag vorschlagen + + + Request Remove + Anfrage entfernt + + + Updated + Aktualisiert + + + DEV + DEV + + + Dictionaries + Wörterbücher + + + Dictionary + Wörterbuch + + + Delete Dictionary + Wörterbuch löschen + + + Edit Dictionary + Wörterbuch bearbeiten + + + New Dictionary + Neues Wörterbuch + + + Delete Selected Dictionaries + Ausgewählte Wörterbücher löschen + + + Case Sensitive + Klein-/Großschreibung berücksichtigen + + + New Dictionary + Neues Wörterbuch + + + There are no dictionaries yet. + Es gibt noch keine Wörterbücher. + + + No dictionaries match your current filters. + Die ausgewählten Filter treffen auf kein Wörterbuch zu. + + + Search... + Suche ... + + + Entries + Einträge + + + Types + Typen + + + Hint/Redaction + Hinweis/Schwärzung + + + Rank + Rang + + + Type + Typ + + + {length} {length, plural, one{dictionary} other{dictionaries}} + {length} {length, plural, one{Wörterbuch} other{Wörterbücher}} + + + Delete Dictionary + Wörterbuch löschen + + + Download Dictionary + Wörterbuch herunterladen + + + Edit Dictionary + Wörterbuch bearbeiten + + + Upload Dictionary + Wörterbuch hochladen + + + Compare + Vergleichen + + + Select Dictionary + Wörterbuch auswählen + + + Select Dossier + Dossier auswählen + + + Select Dossier Template + Dossiervorlage auswählen + + + Description + Beschreibung + + + Some entries of the dictionary are below the minimum length of 2. These are highlighted with red! + Einige Einträge im Wörterbuch unterschreiten die Mindestlänge von 2 Zeichen. Diese sind rot markiert. + + + Something went wrong... Dictionary update failed! + Es ist ein Fehler aufgetreten ... Das Wörterbuch konnte nicht aktualisiert werden! + + + Revert + Rückgängig machen + + + Save Changes + Änderungen speichern + + + Search... + Suche ... + + + Select a dictionary above to compare with the current one. + Wählen Sie oben das Wörterbuch aus, das Sie mit dem aktuellen Wörterbuch vergleichen möchten. + + + Dictionary updated! + Wörterbuch aktualisiert! + + + Digital Signature + Digitale Signatur + + + Uploaded Certificate is not valid for signing PDFs. PCKS.12 format is required. + Das hochgeladene Zertifikat eignet sich nicht zum Signieren von PDF-Dokumenten. Sie benötigen das Format PCKS#12. + + + Delete Digital Signature + Digitale Signatur löschen + + + Failed to remove digital signature, please try again. + Die digitale Signatur konnte nicht entfernt werden, bitte versuchen Sie es erneut. + + + Digital signature removed. Redacted files will no longer be signed! + Die digitale Signatur wurde gelöscht. Geschwärzte Dateien werden nicht länger mit einer Signatur versehen! + + + Reset + Zurücksetzen + + + Save Digital Signature + Digitale Signatur speichern + + + Failed to save digital signature + Fehler beim Speichern der digitalen Signatur + + + Digital signature saved successfully + Digitale Signatur erfolgreich gespeichert + + + Certificate Name + Name des Zertifikats + + + Certificate Name + Name des Zertifikats + + + Contact Information + Kontaktdaten + + + Contact Information + Kontaktdaten + + + Location + Ort + + + Location + Ort + + + Upload Certificate + Zertifikat hochladen + + + No Digital Signature certificate is configured. For signing redacted documents please upload a PCKS.12 certificate. + Es ist kein Zertifikat für die digitale Signatur konfiguriert. Laden Sie ein PCKS#12-Zertifikat hoch, um Ihre geschwärzten Dokumente zu signieren. + + + Certificate Password/Key + Zertifikatspasswort/-schlüssel + + + Password + Passwort + + + Reason + Begründung + + + Reason + Begründung + + + Save Document Info + Dokumenteninformation speichern + + + Introduce File Attributes + Datei-Attribute anlegen + + + Dossier + Dossier + + + Date + Datum + + + Image + Bild + + + Number + Nummer + + + Free Text + Text + + + Dossier Attributes + Dossier-Attribut + + + Delete Attribute + Attribut löschen + + + Edit Attribute + Attribut bearbeiten + + + New Attribute + Neues Attribut + + + Delete Selected Attributes + Ausgewähltes Attribut löschen + + + New Attribute + Neues Attribut + + + There are no dossier attributes. + Es sind keine Dossier-Attribute vorhanden + + + No attributes match your current filters. + Die ausgewählten Filter treffen auf kein Attribut zu. + + + Search... + Suche ... + + + Label + Label + + + Placeholder + Platzhalter + + + Type + Typ + + + {length} dossier {length, plural, one{attribute} other{attributes}} + {length} {length, plural, one{Dossier-Attribut} other{Dossier-Attribute}} + + + Assign Members + Mitglieder zuweisen + + + Hide Details + Details ausblenden + + + Edit Owner + Eigentümer bearbeiten + + + Show Details + Details zeigen + + + Members + Mitglieder + + + Owner + Eigentümer + + + See less + Weniger anzeigen + + + Dossier Details + Dossier-Details + + + New Dossier + Neues Dossier + + + Delete Dossier + Dossier löschen + + + Failed to delete dossier: {dossierName} + Das Dossier {dossierName} konnte nicht gelöscht werden + + + Dossier Info + Dossier-Info + + + Edit Dossier + Dossier bearbeiten + + + Dossier Name + Dossiername + + + Dossier name... + Dossiername... + + + New Dossier + Neues Dossier + + + You currently have no dossiers. + Sie haben momentan keine Dossiers. + + + No dossiers match your current filters. + Die ausgewählten Filter treffen auf kein Dossier zu. + + + My Dossiers + Meine Dossiers + + + Other + Sonstige + + + To Approve + Zu Genehmigen + + + To Review + Zu Überprüfen + + + Analyze entire dossier + Gesamtes Dossier analysieren + + + {count, plural, one{Page} other{Pages}} + Seiten + + + {count, plural, one{Dossier} other{Dossiers}} + Dossiers + + + Total Documents + Anzahl der Dokumente + + + Total users + Anzahl der Benutzer + + + Name + Name + + + Workload + Arbeitsvorrat + + + Owner + Besitzer + + + Status + Status + + + {length} active {length, plural, one{Dossier} other{Dossiers}} + {length} {length, plural, one{aktives Dossier} other{aktive Dossiers}} + + + Approve + Genehmigen + + + File can only be approved once it has been analysed with the latest dictionaries and all suggestions have been processed. + Das Dokument kann erst genehmigt werden, wenn eine Analyse auf Basis der aktuellen Wörterbücher durchgeführt wurde und die Vorschläge bearbeitet wurden. + + + Assign Approver + Genehmiger zuordnen + + + Assign To Me + Mir zuteilen + + + Assign User + Überprüfer zuordnen + + + Delete Documents + Dokumente löschen + + + Analyze Documents + Dokumente analysieren + + + Delete File + Datei löschen + + + {count} custom {count, plural, one{attribute} other{attributes}} + {count} {count, plural, one{benutzerdefiniertes Attribut} other{benutzerdefinierte Attribute}} + + + Image uploaded + Bild hochgeladen + + + show less + weniger anzeigen + + + Documents in Dossier + Dokumente im Dossier + + + Description + Beschreibung + + + Dossier Dictionary + Dossier-Wörterbuch + + + {count} {count, plural, one{page} other{pages}} + {count} {count, plural, one{Seite} other{Seiten}} + + + Created on {date} + Erstellt am {date} + + + {count} deleted files + {count} gelöschte Dateien + + + {count} {count, plural, one{document} other{documents}} + {count} {count, plural, one{Dokument} other{Dokumente}} + + + Due {date} + Fällig am {date} + + + {count} {count, plural, one{user} other{users}} + {count} {count, plural, one{Benutzer} other{Benutzer}} + + + {count} processing {count, plural, one{document} other{documents}} + {count} Verarbeitung von {count, plural, one{document} other{documents}} + + + Download + Herunterladen + + + You need to be approver in the dossier and the {count, plural, one{file needs} other{files need}} to be approved in order to download. + Nur genehmigte Dateien können heruntergeladen werden + + + Re-processing required + Reanalyse erforderlich + + + Pending... + Ausstehend ... + + + Document Name + Dokumentname + + + Document name... + Dokumentname... + + + Download CSV File Report + CSV-Dateibericht herunterladen + + + Edit Dossier + Dossier bearbeiten + + + Upload Document + Dokument hochgeladen + + + Analyze all + Alle analysieren + + + Upload Document + Dokument hochladen + + + There are no documents yet. + Noch gibt es keine Dokumente. + + + No documents match your current filters. + Die ausgewählten Filter treffen auf kein Dokument zu. + + + OCR Document + OCR-Dokument + + + OCR was performed for this file. + Diese Datei wurde mithilfe von OCR konvertiert. + + + Assigned to me + Mir zuweisen + + + Assigned to others + Anderen zugewiesen + + + Recent ({hours} h) + Neu ({hours} h) + + + Unassigned + Niemandem zugewiesen + + + Failed to schedule files for reanalysis. Please try again. + Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut. + + + Files scheduled for reanalysis. + Dateien für Reanalyse vorgesehen. + + + Analyze File + Datei analysieren + + + Added + Hinzugefügt + + + Assigned to + Zugewiesen an + + + Name + Name + + + Workload + Arbeitsvorrat + + + Pages + Seiten + + + Status + Status + + + {length} {length, plural, one{document} other{documents}} + {length} {length, plural, one{document} other{documents}} + + + For Approval + Zur Genehmigung + + + Under Review + In Review + + + Drag & drop files anywhere... + Sie können Dateien überall per Drag and Drop platzieren... + + + Dossier Templates + Dossier-Vorlagen + + + Delete Template + Dossier-Vorlage + + + Edit Template + Vorlage bearbeiten + + + New Dossier Template + Neue Dossier-Vorlage + + + Delete Selected Dossier Templates + Ausgewählte Dossier-Vorlagen löschen + + + {length} {length, plural, one{dictionary} other{dictionaries}} + {length} {length, plural, one{dictionary} other{dictionaries}} + + + Cannot delete this DossierTemplate! At least one Dossier uses this template! + Dieses DossierTemplate kann nicht gelöscht werden! Zumindest auf Dossier wird diese Vorlage verwendet! + + + Cannot delete this DossierTemplate! + Dieses DossierTemplate kann nicht gelöscht werden! + + + There are no dossier templates yet. + Es gibt noch keine Dossier-Vorlagen. + + + No dossier templates match your current filters. + Die ausgewählten Filter treffen auf keine Dossier-Vorlage zu. + + + Search... + Suchen ... + + + Created by + Erstellt von + + + Created on + Erstellt am + + + Modified on + Geändert am + + + Name + Name + + + {length} dossier {length, plural, one{template} other{templates}} + {length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}} + + + Choose what is included at download: + Wählen Sie die Dokumente für Ihr Download-Paket aus + + + Your download has been queued, you can see all your requested downloads here: <a href='/ui/main/downloads'>My Downloads<a/>. + Ihr Download wurde zur Warteschlange hinzugefügt. Hier finden Sie alle angeforderten Downloads: <a href='/main/downloads'>My Downloads<a/>. + + + Annotated PDF + PDF mit Anmerkungen + + + Flatten PDF + PDF verflachen + + + {length} document {length, plural, one{version} other{versions}} + {length} Dokumenten{length, plural, one{version} other{versionen}} + + + Optimized PDF + Optimiertes PDF + + + Preview PDF + PDF-Vorschau + + + Redacted PDF + geschwärztes PDF + + + Delete + Löschen + + + Download + Herunterladen + + + Delete Selected Downloads + Ausgewählte Downloads löschen + + + No active downloads. + Keine aktiven Downloads. + + + Date + Datum + + + Name + Name + + + Size + Größe + + + Status + Status + + + {length} {length, plural, one{download} other{downloads}} + {length} {length, plural, one{download} other{downloads}} + + + Failed to update colors. + Fehler beim Aktualisieren der Farben. + + + Color + Farbe + + + Color + Farbe + + + Save + Speichern + + + Successfully updated color for {color}. + Farbe erfolgreich aktualisiert auf {color}. + + + Revert + Rückgängig machen + + + Save + Änderungen speichern + + + Save & Close + Speichern + + + Custom Dossier Attributes + Benutzerdefinierte Dossier-Attribute + + + Delete Image + Bild löschen + + + Only PNG, JPG and JPEG files are allowed as image dossier attributes. + Als Bilddossierattribute sind nur PNG-, JPG- und JPEG-Dateien zulässig. + + + Image Attributes + Bild-Attribute + + + There are no text attributes + Es sind keine Text-Attribute vorhanden + + + There are no image attributes + Es sind keine Bild-Attribute vorhanden + + + Upload Image + Bild hochladen + + + Dossier {dossierName} was updated. + Dossier wurde aktualisiert. + + + Dossier {dossierName} was deleted. + Dossier wurde gelöscht. + + + Delete Forever + Endgültig löschen + + + Restore + Wiederherstellen + + + Forever Delete Selected Documents + Ausgewählte Dokumente endgültig löschen + + + Restore Selected Documents + Ausgewählte Dokumente wiederherstellen + + + Deleted items can be restored up to {hours} hours from their deletion + Gelöschte Objekte können bis zu {hours} Stunden nach ihrer Löschung wiederhergestellt werden + + + There are no deleted documents. + Es sind keine gelöschten Dokumente vorhanden. + + + Assignee + Bevollmächtigter + + + Deleted On + Gelöscht am + + + Name + Name + + + Pages + Seiten + + + Status + Status + + + Time To Restore + Verbleibende Zeit für Wiederherstellung + + + {length} deleted {length, plural, one{document} other{documents}} + {length} {length, plural, one{gelöschtes Dokument} other{gelöschte Dokumente}} + + + Cancel + Abbrechen + + + Edit Display Name + Anzeigenamen bearbeiten + + + Failed to update dictionary display name. + Anzeigename des Wörterbuchs konnte nicht aktualisiert werden. + + + Enter Display Name + Anzeigenamen eingeben + + + Save Display Name + Anzeigenamen speichern + + + Successfully updated dictionary display name. + Anzeigename des Wörterbuchs erfolgreich aktualisiert. + + + {length} {length, plural, one{entry} other{entries}} + {length} {length, plural, one{entry} other{entries}} + + + Description + Beschreibung + + + Enter Description + Beschreibung eingeben + + + Due Date + Termin + + + Dossier Name + Dossier-Name + + + Enter Name + Namen eingeben + + + Dossier Template + Dossier-Vorlage + + + Watermark application on redacted documents + Geschwärzte Dokumente mit Wasserzeichen versehen + + + Watermark application on preview documents + Vorschau Dokumente mit Wasserzeichen versehen + + + Edit {dossierName} + {dossierName} bearbeiten + + + Choose what is included at download: + Wählen Sie die Dokumente für Ihr Download-Paket aus: + + + Deleted Documents + Gelöschte Dokumente + + + Dictionary + Wörterbuch + + + Dossier Attributes + Dossier-Attribute + + + Dossier Dictionary + Dossier-Wörterbuch + + + Dossier Info + Dossier-Info + + + Download Package + Download-Paket + + + General Information + Allgemeine Informationen + + + Members + Mitglieder + + + Team Members + Team-Mitglieder + + + Configurations + Konfiguration + + + You have unsaved changes. Save or revert before changing the tab. + Sie haben nicht gespeicherte Änderungen. Speichern Sie oder machen Sie die Änderungen rückgängig, bevor Sie die Registerkarte wechseln. + + + Back to overview + Zurück zur Übersicht + + + This dossier has been deleted! + Dieses Dossier wurde gelöscht! + + + Back to overview + Zurück zur Übersicht + + + The dossier of this file has been deleted! + Das Dossier dieser Datei wurde gelöscht! + + + Back to dossier + Zurück zum Dossier + + + This file has been deleted! + Diese Datei wurde gelöscht! + + + Action failed with code {status} + Aktion mit Code {status} fehlgeschlagen + + + Disconnected + Du bist offline + + + Reconnected + Du bist online + + + Reload + Neu laden + + + Oops! Something went wrong... + Hoppla! Etwas ist schief gelaufen... + + + {day} {month} {year} at {hour}:{minute} + {day} {month} {year} um {hour}:{minute} Uhr + + + File + Datei + + + Date + Datum + + + Number + Nummer + + + Free Text + Freier Text + + + File Attributes + Datei-Attribute + + + Cancel + Abbrechen + + + Edit Name + Namen bearbeiten + + + Remove + Entfernen + + + Save + Speichern + + + {value} available + {value} verfügbar + + + Cancel + Abbrechen + + + CSV Column + CSV-Spalte + + + Delimiter + Trennzeichen + + + , + , + + + Encoding + Wird verschlüsselt + + + UTF-8 + UTF-8 + + + File: + Datei: + + + Key Column + Schlüsselspalte + + + Select column... + Spalte auswählen ... + + + No file attributes defined. Select a column from the left panel to start defining file attributes. + Keine Datei-Attribute definiert. Wählen Sie links eine Spalte aus, um Datei-Attribute zu definieren. + + + Preview CSV column by hovering the entry. + Fahren Sie mit der Maus über den Eintrag, um eine Vorschau der CSV-Spalte zu sehen. + + + No sample data for {column}. + Keine Beispieldaten für {column}. + + + Parse CSV with new options + CSV-Datei mit neuen Optionen parsen + + + All + Alle + + + None + Keine + + + Failed to create File Attributes! + Fehler beim Erstellen der Datei-Attribute! + + + Save Attributes + Attribute speichern + + + {count} file {count, plural, one{attribute} other{attributes}} created successfully! + {count} Datei-{count, plural, one{Attribut} other{Attribute}} erfolgreich erstellt! + + + Search by column name... + Nach Spaltennamen suchen ... + + + {value} selected + {value} ausgewählt + + + Name + Name + + + primary + Primärattribut + + + The value of the attribute set as primary shows up under the file name in the documents list. + Der Wert des Attributs, das als Primärattribut ausgewählt wurde, wird in der Dokumentenliste unter dem Dateinamen angezeigt. + + + Read-Only + Schreibgeschützt + + + Type + Typ + + + Disable Read-only for all attributes + Schreibschutz für alle Attribute aufheben + + + Enable Read-only for all attributes + Schreibschutz für alle Attribute aktivieren + + + Make Read-only + Schreibschutz aktivieren + + + Remove Selected + Ausgewählte entfernen + + + Type + Typ + + + {length} file {length, plural, one{attribute} other{attributes}} + {length} Datei-{length, plural, one{Attribut} other{Attribute}} + + + Select CSV columns to use as File Attributes + CSV-Spalten auswählen, die als Datei-Attribute verwendet werden sollen + + + {rows} rows in total + {rows} Zeilen insgesamt + + + Delete Attribute + Attribut löschen + + + Edit Attribute + Attribute bearbeiten + + + New Attribute + Neue Attribute + + + Delete Selected Attributes + Ausgewählte Attribute löschen + + + File-Attribute with this name already exists! + Es gibt bereits ein Attribute mit diesem Name! + + + Failed to add File-Attribute + Attribute konnte nicht erstellt werden! + + + There are no file attributes yet. + Es sind noch keine Datei-Attribute vorhanden. + + + No file attributes match your current filters. + Die aktuell ausgewählten Filter treffen auf kein Datei-Attribut zu. + + + Read-only + Schreibgeschützt + + + Search by attribute name... + Nach Attribut-Namen suchen ... + + + CSV Column + CSV-Spalte + + + Displayed in File List + In Dokumentenliste anzeigen + + + Filterable + Filterbar + + + Name + Name + + + Primary + Primärattribut + + + The value of the attribute set as primary shows up under the file name in the documents list. + Der Wert des Attributs, das als Primärattribut ausgewählt wurde, wird in der Dokumentenliste unter dem Dateinamen angezeigt. + + + Read-Only + Schreibgeschützt + + + Input Type + Eingabetyp + + + {length} file {length, plural, one{attribute} other{attributes}} + {length} {length, plural, one{Datei-Attribut} other{Datei-Attribute}} + + + Upload File Attributes Configuration + Datei-Attribute hochladen + + + Assign to me + Mir zuweisen + + + Assign User + Reviewer zuweisen + + + Change User + Reviewer wechseln + + + Delta + Delta + + + Delta View shows only the changes since last re-analysis. This view is only available if there is at least 1 change + Die Delta-Ansicht zeigt nur die Änderungen seit der letzten Reanalyse an. Die Ansicht ist nur verfügbar, wenn es seit der letzten Analyse mindestens 1 Änderung gab + + + Your Document Info lives here. This includes metadata required on each document. + Dok-Infos: Hier finden Sie die zu Ihrem Dokument hinterlegten Informationen; u. a. die für das Dokument erforderlichen Metadaten. + + + Download Original File + Originaldatei herunterladen + + + Exclude pages from redaction + Seiten von Schwärzung ausschließen + + + excluded + Von Schwärzung ausgeschlossen + + + Full Screen (F) + Vollbildmodus + + + Last Reviewed by: + Zuletzt überprüft von: + + + There are no annotations on this page. + Auf dieser Seite gibt es keine Anmerkungen. + + + Jump to first page + Zur ersten Seite springen + + + Jump to last page + Zur letzten Seite springen + + + This document was not processed with the latest rule/dictionary set. Analyze now to get updated annotations. + Dieses Dokument wurde nicht auf Basis des neuesten Regel-/Wörterbuchsatzes bearbeitet. Analysieren Sie es jetzt, um die Anmerkungen zu analysieren. + + + Preview + Vorschau + + + Redaction preview shows only redactions. Consider this a preview for the final redacted version. This view is only available if the file has no pending changes & doesn't require a reanalysis + In der Schwärzungsvorschau sehen Sie nur die Schwärzungen. Es handelt sich also um eine Vorschau der endgültigen geschwärzten Version. Diese Ansicht ist nur verfügbar, wenn für die Datei keine Änderungen ausstehen und keine Reanalyse erforderlich ist + + + Standard + Standard + + + Standard Workload view shows all hints, redactions, recommendations & suggestions. This view allows editing. + In der Standard-Ansicht des Workloads werden alle Hinweise, Schwärzungen, Empfehlungen und Vorschläge angezeigt. In dieser Ansicht ist die Bearbeitung möglich. + + + Jump to Next + Springe zu Nächster + + + Jump to Previous + Springe zu Vorheriger + + + Workload + Arbeitsvorrat + + + This page is + Diese Seite ist + + + Select + Auswählen + + + All + Alle + + + None + Keine + + + Close Document Info + Dokumenteninformation schließen + + + Created on: {date} + Erstellt am: {date} + + + in {dossierName} + in {dossierName} + + + Due: {date} + Termin: {date} + + + {pages} pages + {pages} Seiten + + + Edit Document Info + Infos zum Dokument bearbeiten + + + Document Info + Infos zum Dokument + + + Close + Schließen + + + Error! Invalid page selection. + Fehler! Seitenauswahl ungültig. + + + Minus (-) for range and comma (,) for enumeration. + Minus (-) für Bereich und Komma (,) für Aufzählung. + + + e.g. 1-20,22,32 + z. B. 1-20,22,32 + + + Exclude Pages + Seiten ausschließen + + + No excluded pages. + Es sind keine Seiten ausgeschlossen. + + + Undo + Rückgängig machen + + + Removed from redaction + Von der Schwärzung ausgeschlossen + + + Redaction is disabled for this document. + Schwärzungen für dieses Dokument deaktiviert. + + + Disable redaction + Schwärzen deaktivieren + + + Enable for redaction + Schwärzen aktivieren + + + Enabling / disabling is permitted only for managers + Aktivieren/deaktivieren ist nur Managern gestattet + + + Approved + Genehmigt + + + Deleted + Gelöscht + + + Re-processing required + Reanalyse erforderlich + + + Processing + Wird analysiert + + + Image Analyzing + Bildanalyse + + + Processing + Wird analysiert + + + New + Neu + + + OCR Processing + OCR-Analyse + + + Processed + Verarbeitet + + + Processing... + Wird analysiert... + + + Processing + Wird analysiert + + + Unassigned + Nicht zugewiesen + + + Under Approval + In Genehmigung + + + Under Review + In Review + + + Unprocessed + Unbearbeitet + + + Filter options + Filteroptionen + + + Filter + Filter + + + Filter + Filter + + + Only annotations with redaction changes + Nur Anmerkungen mit Schwärzungsänderungen + + + Only annotations on unseen pages + Nur Anmerkungen auf unsichtbaren Seiten + + + Only annotations with comments + Nur Anmerkungen mit Kommentaren + + + Analysis pending + Analyse erforderlich + + + Comments + Kommentare + + + Hints only + Nut Hinweise + + + Images + Bilder + + + No Annotations + Keine Anmerkungen + + + Redacted + Geschwärzt + + + Suggested Redaction + Vorgeschlagene Schwärzung + + + Updated + Aktualisiert + + + Assignee(s) + Beauftragt + + + Dossier Templates + Regelsätze + + + Empty + Leer + + + Filter: + Filter: + + + Workload + Arbeitsvorrat + + + Dossier Member(s) + Dossier-Mitglied(er) + + + Status + Status + + + Save Configurations + Einstellungen speichern + + + Test Connection + Verbindung testen + + + Environment + Name der Applikation + + + RedactManager + RedactManager + + + Enable Authentication + Authentifizierung aktivieren + + + Change Credentials + Zugangsdaten ändern + + + Envelope From + Ausgangsadresse + + + Info text regarding envelope from field. + Infotext zum Feld „Ausgangsadresse“. + + + Sender Envelope Email Address + Ausgangsadresse + + + From + Von + + + Name for Sender + Antworten an + + + Info text regarding the name for sender. + Info-Text zum Absendernamen. + + + Display Name for Sender Email Address + Anzeigename zur Ausgangsadresse + + + Sender Email Address + E-Mail-Adresse des Absenders + + + Host + Host + + + SMTP Host + SMTP-Host + + + Port + Port + + + Reply To + Antwortadresse + + + Name for Reply To + Name für Antwortadresse + + + Display Name for Reply To Email Address + Anzeigename zu Antwort-E-Mail + + + Reply To Email Address + Antwort-E-Mail + + + Enable SSL + SSL aktivieren + + + Enable StartTLS + StartTLS aktivieren + + + Show Forgot password link on Login screen + „Passwort vergessen?“-Link auf der Login-Seite anzeigen + + + + + + + General Configurations + Allgemeine Einstellungen + + + SMTP (Simple Mail Transfer Protocol) enables you to send your emails through the specified server settings. + SMTP (Simple Mail Transfer Protocol) ermöglicht es Ihnen, Ihre E-Mails über die angegebenen Servereinstellungen zu versenden. + + + Test email could not be sent! Please revise the email address. + Die Test-E-Mail konnte nicht gesendet werden! Bitte überprüfen Sie die E-Mail-Adresse. + + + Test email was sent successfully! + Die Test-E-Mail wurde erfolgreich versendet! + + + Configure SMTP Account + SMTP-Konto konfigurieren + + + Help Mode (H) + Hilfe-Modus (H) + + + <b> Clicking anywhere on the screen </b> will show you which areas are interactive. Hovering an interactive area will <b> change the mouse cursor </b> to let you know if the element is interactive. + <b>Klicken Sie auf eine beliebige Stelle des Bildschirms </b> um zu sehen, welche Bereiche interaktiv sind. Wenn Sie mit der Maus über einen interaktiven Bereich fahren, <b>verändert sich der Mauszeiger</b>, um Ihnen zu zeigen, ob ein Element interaktiv ist. + + + Open Help Mode Instructions + Hilfe-Modus-Anleitungen öffnen + + + Help Mode + Hilfe-Modus + + + <b> Welcome to Help Mode! <br> Clicking on interactive elements will open info about them in new tab. </b> + <b> Willkommen im Hilfe-Modus! <br> Klicken Sie auf interaktive Elemente, um in einem neuen Tab Infos dazu zu erhalten. </b> + + + Hint + Hinweis + + + Formula + Formel + + + Image + Bild + + + + Signature + Signatur + + + Unassigned + Unbekannt + + + You + Sie + + + Justifications + Begründungen + + + Delete Justification + Begründung löschen + + + Edit Justification + Begründung bearbeiten + + + Add New Justification + Neue Begründung hinzufügen + + + Delete Selected Justifications + Ausgewählte Begründungen löschen + + + There are no justifications yet. + Es gibt noch keine Begründungen. + + + Description + Beschreibung + + + Name + Name + + + Legal Basis + Rechtliche Grundlage + + + {length} {length, plural, one{justification} other{justifications}} + {length} {length, plural, one{Begründung} other{Begründung}} + + + Analyzed Pages + Analysierte Seiten + + + Backend Application Version + Backend-Version der Anwendung + + + Cumulative Pages + Seiten insgesamt + + + Legend + Legende + + + Licensed Total + Insgesamt lizensiert + + + Pages per Month + Seiten pro Monat + + + Total Pages + Gesamtzahl der Seiten + + + Copyright © 2020 - {currentYear} knecon AG (powered by IQSER) + Copyright © 2020 - {currentYear} knecon AG (powered by IQSER) + + + Copyright Claim + Copyright + + + Analyzed Pages in Current Licensing Period + In aktuellem Lizenzzeitraum analysierte Seiten + + + Custom Application Title + Name der Anwendung + + + Email Report + E-Mail-Bericht + + + Total Analyzed Pages in current license period: {pages}. + Im aktuellen Lizenzzeitraum insgesamt analysierte Seiten: {pages}. + + + Licensed Pages: {pages}. + Lizenzierte Seiten: {pages}. + + + License Report {licenseCustomer} + Lizenzbericht {licenseCustomer} + + + The use of this product is subject to the terms of the Redaction End User Agreement, unless otherwise specified therein. + Die Nutzung dieses Produkts unterliegt den Bedingungen der Endbenutzer-Lizenzvereinbarung für den RedactManager, sofern darin nichts anderweitig festgelegt. + + + End User License Agreement + Endbenutzer-Lizenzvereinbarung + + + Number of licensed pages + Anzahl der lizenzierten Seiten + + + Licensed to + Lizenziert für + + + Licensing Details + Lizenzdetails + + + Licensing Period + Laufzeit der Lizenz + + + OCR Analyzed Pages + Mit OCR konvertierte Seiten + + + Total Analyzed Pages Since {date} + Seit {date} insgesamt analysierte Seiten + + + Unlicensed Analyzed Pages + Über Lizenz hinaus analysierte Seiten + + + Usage Details + Nutzungsdetails + + + License Information + Lizenzinformationen + + + Save + Speichern + + + Value / Classification + Wert / Klassifizierung + + + Comment + Kommentar + + + Dictionary + Wörterbuch + + + Legal Basis + Rechtsgrundlage + + + Reason + Begründung + + + Select a reason ... + Wählen Sie eine Begründung aus ... + + + Custom Rectangle + Benutzerdefinierter Bereich + + + Paragraph / Location + Absatz / Ort + + + Selected text: + Ausgewählter Text: + + + Add to dictionary + Zum Wörterbuch hinzufügen + + + Set false positive + Als Falsch-Positiv definieren + + + Force Hint + Hinweis erzwingen + + + Force Redaction + Schwärzung erzwingen + + + Redaction + Schwärzung + + + Request add to dictionary + Neuen Wörterbucheintrag vorschlagen + + + Request false positive + Als Falsch-Positiv vorschlagen + + + Request Redaction + Schwärzung vorschlagen + + + Apr. + Apr. + + + Aug. + August + + + Dec. + Dez. + + + Feb. + Feb. + + + Jan. + Jan. + + + Jul. + Jul. + + + Jun. + März + + + Mar. + März + + + May + Nov. + + + Nov. + Nov. + + + Oct. + Okt. + + + Sep. + Sept. + + + You have been assigned as approver for <b><a href="{fileHref}" target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + Sie wurden dem Dokument <b><a href="{fileHref}" target="_blank">{fileName}</a></b> im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b> als Genehmiger zugewiesen! + + + You have been assigned as reviewer for <b><a href="{fileHref}" target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + Sie wurden dem Dokument <b><a href="{fileHref}" target="_blank">{fileName}</a></b> im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b> als Reviewer zugewiesen! + + + <b><a href="{fileHref}" target="_blank">{fileName}</a></b> has been approved! + <b><a href="{fileHref}" target="_blank">{fileName}</a></b> wurde genehmigt! + + + Dossier: <b>{dossierName}</b> has been deleted! + Dossier: <b>{dossierName}</b> wurde gelöscht! + + + <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> owner removed! + Der Dossier-Owner von <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> wurde entfernt! + + + <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> owner changed to <b>{user}</b>! + Eigentümer von <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> geändert zu <b>{user}</b>! + + + Your <b><a href='/ui/main/downloads', target="_blank">download</a></b> is ready! + Ihr <b><a href='/ui/main/downloads', target="_blank">Download</a></b> ist fertig! + + + You currently have no notifications + Du hast aktuell keine Benachrichtigungen + + + You have been unassigned from <b><a href="{fileHref}" target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + Sie wurden vom Dokument <b><a href="{fileHref}" target="_blank">{fileName}</a></b> im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b> entfernt! + + + You have been added to dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b>! + <b>{user}</b> ist jetzt Mitglied des Dossiers <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b>! + + + You have been demoted to reviewer in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b>! + <b>{user}</b> wurde im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> auf die Reviewer-Berechtigung heruntergestuft! + + + You have been promoted to approver in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b>! + <b>{user}</b> wurde im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> zum Genehmiger ernannt! + + + You have been removed as a member from dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> ! + <b>{user}</b> wurde als Mitglied von: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> entfernt! + + + Notifications + Benachrichtigungen + + + Email Notifications + E-Mail Benachrichtigungen + + + In-App Notifications + In-App-Benachrichtigungen + + + Something went wrong... Preferences update failed! + Ein Fehler ist aufgetreten... Aktualisierung der Einstellungen fehlgeschlagen! + + + Document related notifications + Dokumentbezogene Benachrichtigungen + + + Dossier related notifications + Dossierbezogene Benachrichtigungen + + + Other notifications + Andere Benachrichtigungen + + + Choose on which action you want to be notified + Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten + + + When I am assigned to a document as Approver + Wenn ich einem Dokument als Genehmiger zugewiesen bin + + + When I am assigned to a document as Reviewer + Wenn ich einem Dokument als Überprüfer zugewiesen bin + + + When the document status changes to Approved + Wenn sich der Dokumentstatus in Genehmigt ändert + + + When the document status changes to Under Approval + Wenn sich der Dokumentstatus in „In Genehmigung“ ändert + + + When the document status changes to Under Review + Wenn sich der Dokumentstatus in Wird überprüft ändert + + + When a dossier was deleted + Wenn ein Dossier gelöscht wurde + + + When the owner of a dossier got deleted + Wenn der Eigentümer eines Dossiers gelöscht wurde + + + When I loose dossier ownership + Wenn ich den Besitz des Dossiers verliere + + + When I become the dossier owner + Wenn ich der Besitzer des Dossiers werde + + + When a download is ready + Wenn ein Download bereit ist + + + When I am unassigned from a document + Wenn die Zuweisung zu einem Dokument aufgehoben wird + + + When a user was added to my dossier + Wenn ein Benutzer zu meinem Dossier hinzugefügt wurde + + + When I become a Reviewer in a dossier + Wenn ich Gutachter in einem Dossier werde + + + When I become an Approver in a dossier + Wenn ich Genehmiger in einem Dossier werde + + + When I loose dossier membership + Wenn ich die Dossier-Mitgliedschaft verliere + + + Daily Summary + Tägliche Zusammenfassung + + + Instant + Sofortig + + + Weekly Summary + Wöchentliche Zusammenfassung + + + Notifications Preferences + Benachrichtigungseinstellungen + + + Cancel all uploads + Alle Uploads abbrechen + + + Replace existing document + Vorhandenes Dokument ersetzen + + + Remember choice and don't ask me again + Auswahl speichern und nicht noch einmal fragen + + + Keep existing document + Vorhandenes Dokument behalten + + + <b>{filename}</b> already exists. Choose how to proceed: + <b>{filename}</b> ist bereits vorhanden. Wie möchten Sie fortfahren? + + + Document already exists! + Das Dokument existiert bereits! + + + Page + Seite + + + Next + Nächste + + + Prev + Vorherige + + + Search for selection + Nach Auswahl suchen + + + {active, select, true{Disable} false{Enable} other{}} annotation tooltips + {active, select, true{Disable} false{Enable} other{}} Kurzinfos für Anmerkungen + + + WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes. + ACHTUNG: Sie haben ungespeicherte Änderungen. Klicken Sie auf „Abbrechen“, wenn Sie zurückkehren und die Änderungen speichern möchten. Klicken Sie auf „OK“, um die Änderungen zu speichern. + + + Read only + Lesemodus + + + Cancel + Abbrechen + + + Save Changes + Änderungen speichern + + + Comment + Kommentar + + + Select image type + Ausgewählter Bildtyp + + + Select a type... + Einen Typ auswählen ... + + + Edit Image Type + Bildtypen bearbeiten + + + Redaction + Schwärzung + + + Cancel + Abbrechen + + + Yes, proceed and remove! + Ja, fortfahren und löschen! + + + Dictionary + Wörterbuch + + + Image: {typeLabel} + Bild: {typeLabel} + + + Following entries will be removed from their respective dictionaries: + Folgende Einträge werden aus den jeweiligen Wörterbüchern gelöscht: + + + Remove From Dictionary + Aus dem Wörterbuch löschen + + + Following redactions will be removed only here: + Folgende Schwärzungen werden nur hier entfernt: + + + Remove Redaction + Schwärzung entfernen + + + Value + Wert + + + {length} report {length, plural, one{type} other{types}} + {length} {length, plural, one{Berichtstyp} other{Berichtstypen}} + + + Reports + Berichte + + + A short text explaining how to create report documents. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. + Ein kurzer Text, der erläutert, was Platzhalter sind und wie Sie sie in Ihrer Berichtsvorlage einsetzen können. Es ist bekannt, dass ein Leser vom lesbaren Inhalt einer Seite abgelenkt wird, wenn er sich das Layout ansieht. + + + This placeholder gets replaced with the value of the dossier attribute <code>{attribute}</code>. + Dieser Platzhalter wird durch den Wert des Dossier-Attributs <code>{attribute}</code> ersetzt. + + + This placeholder gets replaced with the value of the file attribute <code>{attribute}</code>. + Dieser Platzhalter wird durch den Wert des Dateiattributs <code>{attribute}</code> ersetzt. + + + This placeholder is replaced by the creation date of the report in the common day-month-year notation (dd.MM.yyyy), e.g. 15.10.2021. + Dieser Platzhalter wird durch das Erstellungsdatum des Berichts in der üblichen Tag-Monat-Jahr-Notation (TT.MM.JJJJ) ersetzt, zB 15.10.2021. + + + This placeholder gets replaced by the creation date of the report in the American all-numeric date format (MM/dd/yyyy), e.g. 10/15/2021. + Dieser Platzhalter wird durch das Erstellungsdatum des Berichts im amerikanischen rein numerischen Datumsformat (MM/dd/yyyy) ersetzt, zB 15.10.2021. + + + This placeholder is replaced by the creation date of the report in the international ISO 8601 format (yyyy-MM-dd), e.g. 2021-10-15. + Dieser Platzhalter wird durch das Erstellungsdatum des Berichts im internationalen ISO 8601-Format (yyyy-MM-dd) ersetzt, zB 2021-10-15. + + + This placeholder is replaced by the name of the dossier in which the redacted files are stored. + Dieser Platzhalter wird durch den Namen des Dossiers ersetzt, in dem die geschwärzten Dateien gespeichert sind. + + + This placeholder is replaced by the file name. + Dieser Platzhalter wird durch den Dateinamen ersetzt. + + + This placeholder is replaced by a text snippet that contains the redaction. + Dieser Platzhalter wird durch einen Textausschnitt ersetzt, der die Schwärzung enthält. + + + This placeholder is replaced by the justification of the redaction. It is a combination of the legal reference (justificationParagraph) and the justification text (justificationReason). + Dieser Platzhalter wird durch die Begründung der Schwärzung ersetzt. Es ist eine Kombination aus dem Rechtsverweis (justificationParagraph) und dem Begründungstext (justificationReason). + + + This placeholder is replaced by the legal reference of the justification of the redaction. + Dieser Platzhalter wird durch den Rechtshinweis der Begründung der Redaktion ersetzt. + + + This placeholder is replaced by the justification text of the redaction. + Dieser Platzhalter wird durch den Begründungstext der Schwärzung ersetzt. + + + This placeholder is replaced by the page number of the redaction. + Dieser Platzhalter wird durch die Seitenzahl der Redaktion ersetzt. + + + This placeholder is replaced by the paragraph that contains the redaction. + Dieser Platzhalter wird durch den Absatz ersetzt, der die Schwärzung enthält. + + + This placeholder is replaced by the time the report was created. + Dieser Platzhalter wird durch den Zeitpunkt ersetzt, zu dem der Bericht erstellt wurde. + + + A short text explaining what placeholders are and how to use them in your report template. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. + Ein kurzer Text, der erläutert, was Platzhalter sind und wie Sie sie in Ihrer Berichtsvorlage einsetzen können. Es ist bekannt, dass ein Leser vom lesbaren Inhalt einer Seite abgelenkt wird, wenn er sich das Layout ansieht. + + + Document Setup + Dokumenten-Konfiguration + + + Invalid format selected for Upload! Supported formats are XLSX and DOCX + Ungültiges Upload-Format ausgewählt! Unterstützt werden Dokumente im .xlsx- und im .docx-Format + + + (Multi-file) + (Mehrere Dateien) + + + Report Documents + Dokumente für den Bericht + + + Description + Beschreibung + + + Placeholders + Platzhalter + + + Reports + Berichte + + + Upload a Document + Ein Dokument hochladen + + + Reset + Zurücksetzen + + + Cancel + Abbrechen + + + Save + Speichern + + + Failed to reset password. The new password doesn't match the password policy. + Kennwort konnte nicht zurückgesetzt werden. Das neue Passwort entspricht nicht der Passwortrichtlinie. + + + Temporary password + Temporäres Passwort + + + Set Temporary Password for {userName} + Temporäres Passwort für {userName} festlegen + + + Cancel + Abbrechen + + + Save Changes + Änderungen speichern + + + Comment + Kommentar + + + Resize Redaction + Schwärzung ändern + + + Inactive + Inaktiv + + + Manager & Admin + Manager & Admin + + + No role defined + Keine Rolle definiert + + + Application Admin + Anwendungsadministrator + + + Manager + Manager + + + User + Benutzer + + + Users Admin + Benutzer-Admin + + + Regular + Regulär + + + Rule Editor + Regel-Editor + + + Something went wrong... Rules update failed! + Es ist ein Fehler aufgetreten ... Die Regeln konnten nicht aktualisiert werden! + + + Revert + Anmeldedaten speichern + + + Save Changes + Änderungen speichern + + + Rules updated! + Die Regeln wurden aktualisiert! + + + Assignee + Bevollmächtigter + + + Document + Dokument + + + Dossier + Dossier + + + Pages + Seiten + + + Status + Status + + + Filter by Dossier + Nach Dossier filtern + + + Dossier name... + Dossiername... + + + Missing + Fehlt + + + Must contain + Muss enthalten + + + Please enter a keyword into the search bar to look for documents or document content. + Geben Sie einen Suchbegriff in die Suchleiste, um nach Dokumenten oder Inhalten von Dokumenten zu suchen. + + + No documents match your current filters. + Keine Dokumente entsprechen Ihren aktuellen Filtern. + + + {length} search {length, plural, one{result} other{results}} + {length} {length, plural, one{Suchergebnis} other{Suchergebnisse}} + + + across all dossiers + ganze Plattform + + + Search documents... + Nach Dokumenten oder Dokumenteninhalt suchen + + + in this dossier + in diesem Dossier + + + Cancel + Abbrechen + + + Save Credentials + Anmeldedaten speichern + + + Password + Passwort + + + Username + Benutzername + + + Login Username + Login-Benutzername + + + Enable Authentication + Authentifizierung aktivieren + + + {days} {days, plural, one{day} other{days}} + {days} {days, plural, one{Tag} other{Tage}} + + + {hours} {hours, plural, one{hour} other{hours}} + {hours} {hours, plural, one{Stunde} other{Stunden}} + + + < 1 hour + < 1 Stunde + + + Time to restore already passed + Frist für Wiederherstellung verstrichen + + + Back + Zurück + + + Active Dossiers + Aktives Dossier + + + Account + Konto + + + Settings + Einstellungen + + + My Downloads + Meine Downloads + + + German + Deutsch + + + English + Englisch + + + Language + Sprache + + + Logout + Abmelden + + + Trash + Papierkorb + + + Delete Forever + Endgültig löschen + + + Restore + Wiederherstellen + + + Forever Delete Selected Dossiers + Ausgewählte Dossiert endgültig löschen + + + Restore Selected Dossiers + Ausgewählte Dossiers wiederherstellen + + + Trash + Papierkorb + + + There are no dossiers yet. + Es wurde noch kein Dossier angelegt. + + + No dossiers match your current filters. + Die ausgewählten Filter treffen auf kein Dossier zu. + + + Deleted on + Gelöscht am + + + Name + Name + + + Owner + Eigentümer + + + Time to restore + Verbleibende Zeit für Wiederherstellung + + + {length} deleted {length, plural, one{dossier} other{dossiers}} + {length} {length, plural, one{gelöschtes Dossier} other{gelöschte Dossiers}} + + + Type + Typ + + + Unknown + Unbekannt + + + Cancel + Abbrechen + + + Merge entries + Einträge zusammenführen + + + Overwrite + Überschreiben + + + Choose how you want to proceed: + Wählen Sie, wie Sie fortfahren möchten: + + + The dictionary already has entries! + Das Wörterbuch hat bereits Einträge! + + + Cancel Upload + Upload abbrechen + + + Retry Upload + Upload erneut versuchen + + + File Uploads ({len}) + Datei-Uploads ({len}) + + + File too large. Limit is {size}MB. + Datei zu groß. Die maximal zulässige Größe beträgt {size} MB. + + + Failed to upload file. + Fehler beim Hochladen des Dokuments + + + Delete User + Benutzer löschen + + + Edit User + Benutzer bearbeiten + + + New User + Neuer Benutzer + + + Delete Users + Benutzer löschen + + + You cannot delete your own account. + Sie können Ihr eigenes Konto nicht löschen. + + + No users match your current filters. + Die ausgewählten Filter treffen auf keinen Benutzer zu. + + + Search... + Suche ... + + + Active + Aktiv + + + Email + E-Mail-Adresse + + + Name + Name + + + Roles + Rollen + + + {length} {length, plural, one{user} other{users}} + {length} {length, plural, one{user} other{users}} + + + User Management + Benutzerverwaltung + + + My Profile + Mein Profil + + + Change Password + Passwort ändern + + + Save Changes + Änderungen speichern + + + Email + Email + + + First name + Vorname + + + Last name + Nachname + + + Edit Profile + Profil bearbeiten + + + Users in Workspace + Benutzer im Arbeitsbereich + + + Hide Details + Details ausblenden + + + Show Details + Details anzeigen + + + Users + Benutzer + + + List + Liste + + + View as: + Ansicht als: + + + Workflow + Arbeitsablauf + + + Watermark + Wasserzeichen + + + Watermark updated! + Das Wasserzeichen wurde aktualisiert! + + + Watermark deleted. + Das Wasserzeichen wurde gelöscht. + + + Failed to update Watermark + Fehler beim Aktualisieren des Wasserzeichens + + + Revert + Rückgängig machen + + + Save Changes + Änderungen speichern + + + Color + Farbe + + + Font Size + Schriftgröße + + + Font Type + Schriftart + + + Opacity + Deckkraft + + + Orientation + Ausrichtung + + + Enter text + Text eingeben + + + Watermark + Wasserzeichen + + + All + Alle + + + {count} selected + {count} ausgewählt + + + None + Keiner + + + Select + Wählen + + + Yesterday + Gestern + + + + diff --git a/tools/auto-i18n/redaction-en-to-de.xliff b/tools/auto-i18n/redaction-en-to-de.xliff new file mode 100644 index 000000000..0e75c7033 --- /dev/null +++ b/tools/auto-i18n/redaction-en-to-de.xliff @@ -0,0 +1,4127 @@ + + + + + Account Settings + Account Einstellungen + + + All + Alle + + + None + Keine + + + Active + Aktiv + + + Save + Speichern + + + Save and Edit Team + Speichern und Team zusammenstellen + + + Dossier with this name already exists! + Dieser Dossier-Name ist bereits vergeben! + + + Failed to save dossier. + Dossier konnte nicht gespeichert werden. + + + Description + Beschreibung + + + Enter Description + Bitte geben Sie eine Beschreibung ein. + + + Due Date + Termin + + + Dossier Name + Dossier-Name + + + Enter Name + Geben Sie einen Namen ein. + + + Dossier Template + Dossier-Vorlage + + + Watermark application on redacted documents + Geschwärzte Dokumente mit Wasserzeichen versehen + + + Watermark application on preview documents + Vorschau Dokumente mit Wasserzeichen versehen + + + Create Dossier + Dossier erstellen + + + Dictionary with this name already exists! + Ein Wörterbuch mit diesem Namen existiert bereits! + + + Failed to save dictionary! + Wörterbuch konnte nicht gespeichert werden! + + + Invalid color or rank! Rank is already used by another dictionary or the color is not a valid hexColor! + Ungültige Farbe oder Rang! Der Rang wird bereits von einem anderen Wörterbuch verwendet oder die Farbe ist kein gültiger Hex-Farbcode! + + + Enable 'Add to dictionary' + Anwender können Einträge hinzufügen + + + Case Sensitive + Groß-/Kleinschreibung berücksichtigen + + + Hex Color + Hex-Farbcode + + + # + # + + + Description + Beschreibung + + + Enter Description + Beschreibung eingeben + + + Hint + Hinweis + + + Display Name + Name des Wörterbuches + + + Cannot be edited after saving. + Kann nach dem Speichern nicht mehr bearbeitet werden. + + + Enter Name + Namen eingeben + + + Rank + Rang + + + 1000 + 1000 + + + Redaction + Schwärzung + + + Technical Name + Technischer Name + + + Save Dictionary + Wörterbuch speichern + + + {type, select, edit{Edit {name}} create{Create} other{}} Dictionary + {type, select, edit{Wörterbuch {name} bearbeiten} create{Wörterbuch erstellen} other{}} + + + Failed to save attribute! + Attribut konnte nicht gespeichert werden! + + + Attribute Name + Name des Attributs + + + Enter Name + Namen eingeben + + + Attribute Placeholder + Platzhalter für Attribut + + + Attribute Type + Attributtyp + + + Save Attribute + Attribut speichern + + + {type, select, edit{Edit {name}} create{Add New} other{}} Dossier Attribute + {type, select, edit{Dossier-Attribut {name} bearbeiten} create{Neues Dossier-Attribut hinzufügen} other{}} + + + Failed to create dossier template: a dossier template with the same name already exists. + Dossiervorlage konnte nicht erstellt werden: Es existiert bereits eine Dossiervorlage mit demselben Namen. + + + Failed to create dossier template. + Fehler beim Erstellen der Dossiervorlage. + + + Description + Beschreibung + + + Enter Description + Beschreibung eingeben + + + Dossier Template Name + Name der Dossier-Vorlage + + + Enter Name + Namen eingeben + + + Valid from + Gültig ab + + + Valid to + Gültig bis + + + Save Dossier Template + Dossier-Vorlage speichern + + + {type, select, edit{Edit {name}} create{Create} other{}} Dossier Template + {type, select, edit{Dossier-Vorlage {name} bearbeiten} create{Dossier-Vorlage erstellen} other{}} + + + CSV Column Header + CSV-Spaltenüberschrift + + + Enter CSV Column Header + Spaltenüberschrift für CSV eingeben + + + The maximum number of displayed attributes ({maxNumber}) has been reached. + Die maximale Anzahl angezeigter Attribute ({maxNumber}) wurde erreicht. + + + Displayed In File List + Wird in der Dokumentenliste angezeigt + + + Filterable + Filterbar + + + The maximum number of filterable attributes ({maxNumber}) has been reached. + Die maximale Anzahl filterbarer Attribute ({maxNumber}) wurde erreicht. + + + Attribute Name + Name des Attributs + + + Enter Name + Namen eingeben + + + Set as Primary + Zum Primärattribut machen + + + Make Read-Only + Schreibgeschützt + + + Type + Typ + + + Save Attribute + Attribut speichern + + + {type, select, edit{Edit {name}} create{Add New} other{}} File Attribute + {type, select, edit{Edit {name}} create{Add New} other{}} Datei-Attribut + + + Cancel + Abbrechen + + + Save Justification + Begründung speichern + + + Description + Beschreibung + + + Enter Description + Beschreibung eingeben + + + Name + Name + + + Enter Name + Name eingeben + + + Legal Basis + Rechtliche Grundlage + + + Enter Legal Basis + Rechtsgrundlage eingeben + + + {type, select, edit{Edit {name}} create{Add New} other{}} Justification + {type, select, edit{Edit {name}} create{Add New} other{}} Begründung + + + Cancel + Abbrechen + + + Delete User + Benutzer löschen + + + Save User + Benutzer speichern + + + Save Changes + Änderungen speichern + + + This e-mail address is already in use by a different user! + Diese E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet! + + + Failed to save user! + Benutzer konnte nicht gespeichert werden! + + + Email + E-Mail + + + First Name + Vorname + + + Last Name + Nachname + + + Reset Password + Passwort zurücksetzen + + + Role + Rolle + + + {type, select, edit{Edit} create{Add New} other{}} User + {type, select, edit{Benutzer bearbeiten} create{Neuen Benutzer hinzufügen} other{}} + + + Dossier Templates + Dossier-Vorlage + + + Settings + Einstellungen + + + Annotation + Anmerkung + + + Accept Recommendation + Empfehlung annehmen + + + Approve Suggestion + Genehmigen und zum Wörterbuch hinzufügen + + + Edit Reason + Begründung bearbeiten + + + Force Hint + Hinweis erzwingen + + + Force Redaction + Schwärzung erzwingen + + + Hide + Ausblenden + + + Cannot add ''{content}'' to the {dictionaryName} dictionary because it was recognized as a general term that appears too often in texts. + &#39;&#39;{content}&#39;&#39; kann nicht zum {dictionaryName}-Wörterbuch hinzugefügt werden, da es als allgemeiner Begriff erkannt wurde, der zu oft in Texten vorkommt. + + + Failed to add entry to dictionary: {error} + Fehler beim Hinzufügen des neuen Wörterbucheintrags: {error} + + + Entry added to dictionary. Changes will be visible after reanalysis. + Eintrag zum Wörterbuch hinzugefügt. Änderungen nach der Reanalyse sichtbar. + + + Failed to approve dictionary entry: {error} + Fehler beim Genehmigen des Wörterbucheintrags: {error} + + + Dictionary entry approved. Changes will be visible after reanalysis. + Neuer Wörterbucheintrag wurde genehmigt. Änderungen sind nach der Reanalyse sichtbar. + + + Failed to decline dictionary suggestion: {error} + Fehler beim Ablehnen des neuen Wörterbucheintrags: {error} + + + Dictionary suggestion declined. + Vorschlag für das Wörterbuch abgelehnt. + + + Failed to remove dictionary entry: {error} + Fehler beim Entfernen des Wörterbucheintrags: {error} + + + Dictionary entry removed! + Wörterbucheintrag wurde gelöscht! + + + Failed to request removal of dictionary entry: {error} + Dossier-Vorlage + + + Requested to remove dictionary entry! + Löschung des Wörterbucheintrags wurde vorgeschlagen! + + + Failed to save suggestion for dictionary modification: {error} + Vorschlag für Änderung des Wörterbuchs konnte nicht gespeichert werden: {error} + + + Suggestion for dictionary modification saved! + Vorschlag für die Änderung des Wörterbuchs gespeichert! + + + Failed to undo: {error} + Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error} + + + Undo successful + Rückgängigmachen erfolgreich + + + Failed to save redaction: {error} + Fehler beim Speichern der Schwärzung: {error} + + + Redaction added! + Schwärzung hinzugefügt! + + + Failed to approve suggestion: {error} + Fehler beim Genehmigen des Vorschlags: {error} + + + Suggestion approved. + Vorschlag genehmigt + + + Failed to edit annotation reason: {error} + Fehler beim Bearbeiten der in der Anmerkung genannten Begründung: {error} + + + Annotation reason was edited. + In der Anmerkung genannte Begründung wurde bearbeitet. + + + Failed to decline suggestion: {error} + Fehler beim Ablehnen des Vorschlags: {error} + + + Suggestion declined. + Vorschlag abgelehnt + + + Failed to save redaction: {error} + Die Schwärzung konnte nicht gespeichert werden! + + + Redaction added! + Schwärzung eingefügt! + + + Failed to recategorize image: {error} + Rekategorisierung des Bildes gescheitert: {error} + + + Image recategorized. + Bild wurde einer neuen Kategorie zugeordnet. + + + Failed to remove redaction: {error} + Fehler beim Entfernen der Schwärzung: {error} + + + Redaction removed! + Schwärzung entfernt! + + + Failed to request annotation reason change: {error} + Fehler beim Vorschlagen der Änderung der Begründung: + + + Annotation reason change requested. + Die Änderung der in der Anmerkung genannten Begründung wurde beantragt. + + + Failed to save redaction suggestion: {error} + Fehler beim Speichern des Schwärzungsvorschlags: {error} + + + Redaction suggestion saved + Vorschlag einer Schwärzung gespeichert + + + Failed to request image recategorization: {error} + Fehler beim Vorschlagen der Neukategorisierung des Bilds: {error} + + + Image recategorization requested. + Bild-Neuklassifizierung angefordert. + + + Failed to request removal of redaction: {error} + Fehler beim Erstellen des Vorschlags für das Entfernen der Schwärzung: {error} + + + Requested to remove redaction! + Entfernen der Schwärzung wurde vorgeschlagen! + + + Failed to save redaction suggestion: {error} + Vorschlag einer Schwärzung wurde nicht gespeichert: {error} + + + Redaction suggestion saved + Vorschlag einer Schwärzung gespeichert + + + Failed to undo: {error} + Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error} + + + Undo successful + erfolgreich Rückgängig gemacht + + + Recategorize + neu kategorisieren + + + Reject Suggestion + Vorschlag ablehnen + + + False Positive + Falsch positiv + + + Remove only here + nur hier entfernen + + + Remove from dictionary + Aus dem Wörterbuch entfernen + + + Save Resize + Größe speichern + + + Abort Resize + Größenänderung abbrechen + + + Resize + Größe ändern + + + Show + Zeigen + + + Undo + Rückgängig + + + Redaction forced + Redaktion erzwungen + + + Manual changes: + Manuelle Änderungen: + + + Reason changed + Grund geändert + + + Image category changed + Bildkategorie geändert + + + Redaction/Hint removed + Schwärzung/Hinweis entfernt + + + Redaction area has been modified + Schwärzungsbereich wurde geändert + + + {isHint, select, true{Hint} other{Redaction}} based on dictionary + {isHint, select, true{Hint} other{Redaction}} basierend auf Wörterbuch + + + Redaction based on AI + Redaktion basierend auf KI + + + Redaction based on rule {rule} + Schwärzung basierend auf Regel {rule} + + + Declined Suggestion + Abgelehnter Vorschlag + + + Hint + Hinweis + + + Ignored Hint + Ignorierter Hinweis + + + Manual Redaction + Manuelle Schwärzung + + + Recommendation + Empfehlung + + + Redaction + Schwärzung + + + Skipped + Übersprungen + + + Suggested redaction + Vorschlag für Schwärzung + + + Suggested dictionary add + Vorschlag für neuen Wörterbucheintrag + + + Suggested change legal basis + Vorschlag für Änderung der Rechtsgrundlage + + + Suggestion force redaction + Vorschlag für erzwungene Schwärzung + + + Suggested recategorize image + Vorschlag für Rekategorisierung eines Bilds + + + Suggested redaction removal + Vorschlagen, die Schwärzung zu entfernen + + + Suggested dictionary removal + Vorschlag für Löschung eines Wörterbucheintrags + + + Suggested Resize + Vorgeschlagene Größenänderung + + + Annotations + Anmerkungen + + + Archived + Archiviert + + + Approvers + Genehmiger + + + Make Approver + Zum Genehmiger ernennen + + + No members with "review only" permission. + Es gibt noch keine Reviewer. +Bitte aus der Liste unten auswählen. + + + Reviewers + Reviewer + + + Search... + Suche ... + + + Select from the list below. + Wählen Sie aus der Liste unten aus. + + + Owner + Besitzer + + + Cancel + Abbrechen + + + {type, select, approver{Approver} reviewer{Reviewer} other{}} + {type, select, approver{Genehmiger} reviewer{Reviewer} other{}} + + + Save + Speichern + + + Manage File {type, select, approver{Approver} reviewer{Reviewer} other{}} + Datei verwalten: {type, select, approver{Genehmiger} reviewer{Reviewer} other{}} + + + Cancel + Abbrechen + + + Save + Speichern + + + Successfully assigned {ownerName} to dossier: {dossierName}. + {ownerName} wurde erfolgreich zum Dossier {dossierName} hinzugefügt. + + + Successfully {reviewerName, select, undefined{unassigned user from} other{assigned {reviewerName} to file:}} {filename}. + {reviewerName} wurde erfolgreich zum Dokument {filename} hinzugefügt. + + + Audit + Aktivitätenprotokoll + + + All Users + Alle Benutzer + + + All Categories + Alle Bereiche + + + Audit + Aktivitätenprotokoll + + + Audit Log + Aktivitätenprotokoll + + + Dictionary + Wörterbuch + + + Document + Dokument + + + Dossier + Dossier + + + Dossier Template + Dossier-Vorlage + + + Download + Download + + + License + Lizenz + + + Project + Projekt + + + Project Template + Projekt-Vorlage + + + User + Nutzer + + + No available logs. + Keine Protokolle verfügbar. + + + Category + Kategorie + + + Date + Datum + + + Message + Nachricht + + + User + Nutzer + + + {length} {length, plural, one{Log} other{Logs}} + {length} {length, plural, one{Log} other{Logs}} + + + to + bis + + + Your user is successfully logged in but has no role assigned yet. Please contact your RedactManager administrator to assign appropriate roles. + Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie Ihren Admin, um den Zugang anzufordern! + + + Your user is successfully logged in but has no role assigned yet. Please contact <a href={adminUrl} target=_blank >your RedactManager administrator</a> to assign appropriate roles! + Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie <a href={adminUrl} target=_blank >Ihren Admin</a>, um den Zugang anzufordern! + + + Your user is successfully logged in but has no role assigned yet. Please contact {adminName} to assign appropriate roles. + Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie {adminName}, um den Zugang anzufordern! + + + Your user is successfully logged in but has no role assigned yet. Please contact <a href={adminUrl} target=_blank >{adminName}</a> to assign appropriate roles. + Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie <a href={adminUrl} target=_blank >{adminName}</a>, um den Zugang anzufordern! + + + Logout + Ausloggen + + + by + von + + + Cancel + Abbrechen + + + Save Changes + Änderungen speichern + + + Value / Classification + Wert / Klassifizierung + + + Comment + Kommentar + + + Legal Basis + Rechtsgrundlage + + + Select redaction reason + Begründung für die Schwärzung auswählen + + + Select a reason... + Wählen Sie eine Begründung aus ... + + + Paragraph / Location + Absatz / Ort + + + Edit Redaction Reason + Begründung für die Schwärzung bearbeiten + + + Enter comment + Kommentar eingeben + + + {count} {count, plural, one{comment} other{comments}} + {count} {count, plural, one{Kommentar} other{Kommentare}} + + + Hide comments + Kommentare verbergen + + + Close View + Ansicht schließen + + + Yes + Ja + + + No + Nein + + + This action requires confirmation, do you wish to proceed? + Diese Aktion erfordert eine Bestätigung. Möchten Sie fortfahren? + + + Confirm Action + Aktion bestätigen + + + Configurations + Einstellungen + + + Keep {type, select, single{Attribute} bulk{Attributes} other{}} + {type, select, single{Attribut} bulk{Attribute} other{}} behalten + + + Delete {type, select, single{Attribute} bulk{Attributes} other{}} + {type, select, single{Attribut} bulk{Attribute} other{}} löschen + + + All documents {type, select, single{it is} bulk{they are} other{}} used on will be impacted + Alle Dokumente {type, select, single{ist} bulk{sind} other{}} betroffen + + + All inputted details on the documents will be lost + Alle in die Dokumente eingegebenen Daten gehen verloren + + + Delete {type, select, single{{name}} bulk{File Attributes} other{}} + {type, select, single{{name}} bulk{Datei-Attribute} other{}} löschen + + + Please confirm that you understand the ramifications of your action! + Bitte bestätigen Sie, dass Ihnen die Konsequenzen dieser Aktion bewusst sind! + + + Warning: this cannot be undone! + Achtung: Diese Aktion kann nicht rückgängig gemacht werden! + + + Keep {usersCount, plural, one{User} other{Users}} + {usersCount, plural, one{Benutzer} other{Benutzer}} behalten + + + Delete {usersCount, plural, one{User} other{Users}} + {usersCount, plural, one{Benutzer} other{Benutzer}} löschen + + + All documents pending review from the {usersCount, plural, one{user} other{users}} will be impacted + Betroffen sind alle Dokumente, deren Review durch den/die {usersCount, plural, one{user} other{users}} noch aussteht + + + {dossiersCount} {dossiersCount, plural, one{dossier} other{dossiers}} will be impacted + {dossiersCount} {dossiersCount, plural, one{Dossier} other{Dossiers}} sind betroffen + + + Delete {usersCount, plural, one{User} other{Users}} from Workspace + {usersCount, plural, one{Benutzer} other{Benutzer}} aus dem Arbeitsbereich entfernen + + + Please confirm that you understand the ramifications of your action! + Bitte bestätigen Sie, dass Ihnen die Konsequenzen dieser Aktion bewusst sind! + + + Warning: this cannot be undone! + Achtung: Diese Aktion kann nicht rückgängig gemacht werden! + + + This document has unseen changes, do you wish to approve it anyway? + Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen? + + + Warning! + Warnung! + + + At least one of the files you selected has unseen changes, do you wish to approve them anyway? + Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen? + + + Warning! + Warnung! + + + This document is currently reviewed by someone else. Do you want to become the reviewer and assign yourself to this document? + Dieses Dokument wird gerade von einer anderen Person geprüft. Möchten Sie Reviewer werden und sich selbst dem Dokument zuweisen? + + + Re-assign user + Neuen Reviewer zuweisen + + + <strong>Warning!</strong> <br><br> Number of pages does not match, current document has <strong>{currentDocumentPageCount} page(s)</strong>. Uploaded document has <strong>{compareDocumentPageCount} page(s)</strong>. <br><br> Do you wish to proceed? + <strong>Achtung!</strong> <br><br> Seitenzahl stimmt nicht überein, aktuelles Dokument hat <strong>{currentDocumentPageCount} Seite(n)</strong>. Das hochgeladene Dokument hat <strong>{compareDocumentPageCount} Seite(n)</strong>. <br><br> Möchten Sie fortfahren? + + + Compare with file: {fileName} + Vergleichen mit: {fileName} + + + Delete {dossiersCount, plural, one{Dossier} other{Dossiers}} + Dossier löschen + + + Keep {dossiersCount, plural, one{Dossier} other{Dossiers}} + Dossier behalten + + + Are you sure you want to delete {dossiersCount, plural, one{this dossier} other{these dossiers}}? + Möchten Sie dieses Dokument wirklich löschen? + + + Delete {dossiersCount, plural, one{{dossierName}} other{Selected Dossiers}} + {dossierName} löschen + + + Do you wish to proceed? + Möchten Sie fortfahren? + + + Delete Document + Dokument löschen + + + Are you sure you want to delete {count, plural, one{this justification} other{these justifications}}? + Möchten Sie {count, plural, one{diese Begründung} other{diese Begründung}} wirklich löschen? + + + Delete {count, plural, one{{justificationName}} other{Selected Justifications}} + {count, plural, one{{justificationName}} other{ausgewählte Begründungen}} löschen + + + To proceed please type below + Bitte geben Sie unten Folgendes ein, um fortzufahren + + + Delete {filesCount, plural, one{Document} other{Documents}} + {filesCount, plural, one{Document} other{Documents}} löschen + + + Keep {filesCount, plural, one{Document} other{Documents}} + {filesCount, plural, one{Dokument} other{Dokumente}} behalten + + + Are you sure you want to delete {filesCount, plural, one{this document} other{these documents}}? + Möchten Sie {filesCount, plural, one{dieses Dokument} other{diese Dokumente}} wirklich löschen? + + + Delete {filesCount, plural, one{{fileName}} other{Selected Documents}} + {filesCount, plural, one{{fileName}} other{ausgewählte Dokumente}} löschen + + + Upload as multi-file report + Als Bericht für mehrere Dokumente hochladen + + + Upload as single-file report + Als Bericht für ein Dokument hochladen + + + Cancel Upload + Uploads abbrechen + + + Please choose if <b>{fileName}</b> is a single or multi-file report template + Wählen Sie bitte aus, ob <b>{fileName}</b> eine Berichtsvorlage für eine oder für mehrere Dateien ist + + + Report Template Upload + Upload der Berichtsvorlage + + + Yes. Continue upload + Ja. Hochladen fortsetzen + + + No. Cancel Upload + Nein. Hochladen abbrechen + + + There is already a Report Template with the name: <b>{fileName}</b>. Do you wish to continue? + <b>{fileName}</b> + + + Report Template Upload + Hochladen von Berichtsvorlagen + + + Reason + Begründung + + + Default Colors + Farbeinstellungen + + + Edit Color + Farbe bearbeiten + + + Color + Farbe + + + Type + Typ + + + {length} Default {length, plural, one{Color} other{Colors}} + {length} Standard{length, plural, one{farbe} other{farben}} + + + Analysis + Analyse + + + Default Color + Standardfarbe + + + Dictionary Request + Wörterbuch + + + Ignored Hint + Ignorierter Hinweis + + + Manual Redaction + Manuelle Schwärzung + + + Skipped + Übersprungen + + + Preview + Vorschau + + + Request Add + Neuen Wörterbucheintrag vorschlagen + + + Request Remove + Anfrage entfernt + + + Updated + Aktualisiert + + + DEV + DEV + + + Dictionaries + Wörterbücher + + + Dictionary + Wörterbuch + + + Delete Dictionary + Wörterbuch löschen + + + Edit Dictionary + Wörterbuch bearbeiten + + + New Dictionary + Neues Wörterbuch + + + Delete Selected Dictionaries + Ausgewählte Wörterbücher löschen + + + Case Sensitive + Klein-/Großschreibung berücksichtigen + + + New Dictionary + Neues Wörterbuch + + + There are no dictionaries yet. + Es gibt noch keine Wörterbücher. + + + No dictionaries match your current filters. + Die ausgewählten Filter treffen auf kein Wörterbuch zu. + + + Search... + Suche ... + + + Entries + Einträge + + + Types + Typen + + + Hint/Redaction + Hinweis/Schwärzung + + + Rank + Rang + + + Type + Typ + + + {length} {length, plural, one{dictionary} other{dictionaries}} + {length} {length, plural, one{Wörterbuch} other{Wörterbücher}} + + + Delete Dictionary + Wörterbuch löschen + + + Download Dictionary + Wörterbuch herunterladen + + + Edit Dictionary + Wörterbuch bearbeiten + + + Upload Dictionary + Wörterbuch hochladen + + + Compare + Vergleichen + + + Select Dictionary + Wörterbuch auswählen + + + Select Dossier + Dossier auswählen + + + Select Dossier Template + Dossiervorlage auswählen + + + Description + Beschreibung + + + Some entries of the dictionary are below the minimum length of 2. These are highlighted with red! + Einige Einträge im Wörterbuch unterschreiten die Mindestlänge von 2 Zeichen. Diese sind rot markiert. + + + Something went wrong... Dictionary update failed! + Es ist ein Fehler aufgetreten ... Das Wörterbuch konnte nicht aktualisiert werden! + + + Revert + Rückgängig machen + + + Save Changes + Änderungen speichern + + + Search... + Suche ... + + + Select a dictionary above to compare with the current one. + Wählen Sie oben das Wörterbuch aus, das Sie mit dem aktuellen Wörterbuch vergleichen möchten. + + + Dictionary updated! + Wörterbuch aktualisiert! + + + Digital Signature + Digitale Signatur + + + Uploaded Certificate is not valid for signing PDFs. PCKS.12 format is required. + Das hochgeladene Zertifikat eignet sich nicht zum Signieren von PDF-Dokumenten. Sie benötigen das Format PCKS#12. + + + Delete Digital Signature + Digitale Signatur löschen + + + Failed to remove digital signature, please try again. + Die digitale Signatur konnte nicht entfernt werden, bitte versuchen Sie es erneut. + + + Digital signature removed. Redacted files will no longer be signed! + Die digitale Signatur wurde gelöscht. Geschwärzte Dateien werden nicht länger mit einer Signatur versehen! + + + Reset + Zurücksetzen + + + Save Digital Signature + Digitale Signatur speichern + + + Failed to save digital signature + Fehler beim Speichern der digitalen Signatur + + + Digital signature saved successfully + Digitale Signatur erfolgreich gespeichert + + + Certificate Name + Name des Zertifikats + + + Certificate Name + Name des Zertifikats + + + Contact Information + Kontaktdaten + + + Contact Information + Kontaktdaten + + + Location + Ort + + + Location + Ort + + + Upload Certificate + Zertifikat hochladen + + + No Digital Signature certificate is configured. For signing redacted documents please upload a PCKS.12 certificate. + Es ist kein Zertifikat für die digitale Signatur konfiguriert. Laden Sie ein PCKS#12-Zertifikat hoch, um Ihre geschwärzten Dokumente zu signieren. + + + Certificate Password/Key + Zertifikatspasswort/-schlüssel + + + Password + Passwort + + + Reason + Begründung + + + Reason + Begründung + + + Save Document Info + Dokumenteninformation speichern + + + Introduce File Attributes + Datei-Attribute anlegen + + + Dossier + Dossier + + + Date + Datum + + + Image + Bild + + + Number + Nummer + + + Free Text + Text + + + Dossier Attributes + Dossier-Attribut + + + Delete Attribute + Attribut löschen + + + Edit Attribute + Attribut bearbeiten + + + New Attribute + Neues Attribut + + + Delete Selected Attributes + Ausgewähltes Attribut löschen + + + New Attribute + Neues Attribut + + + There are no dossier attributes. + Es sind keine Dossier-Attribute vorhanden + + + No attributes match your current filters. + Die ausgewählten Filter treffen auf kein Attribut zu. + + + Search... + Suche ... + + + Label + Label + + + Placeholder + Platzhalter + + + Type + Typ + + + {length} dossier {length, plural, one{attribute} other{attributes}} + {length} {length, plural, one{Dossier-Attribut} other{Dossier-Attribute}} + + + Assign Members + Mitglieder zuweisen + + + Hide Details + Details ausblenden + + + Edit Owner + Eigentümer bearbeiten + + + Show Details + Details zeigen + + + Members + Mitglieder + + + Owner + Eigentümer + + + See less + Weniger anzeigen + + + Dossier Details + Dossier-Details + + + New Dossier + Neues Dossier + + + Delete Dossier + Dossier löschen + + + Failed to delete dossier: {dossierName} + Das Dossier {dossierName} konnte nicht gelöscht werden + + + Dossier Info + Dossier-Info + + + Edit Dossier + Dossier bearbeiten + + + Dossier Name + Dossiername + + + Dossier name... + Dossiername... + + + New Dossier + Neues Dossier + + + You currently have no dossiers. + Sie haben momentan keine Dossiers. + + + No dossiers match your current filters. + Die ausgewählten Filter treffen auf kein Dossier zu. + + + My Dossiers + Meine Dossiers + + + Other + Sonstige + + + To Approve + Zu Genehmigen + + + To Review + Zu Überprüfen + + + Analyze entire dossier + Gesamtes Dossier analysieren + + + {count, plural, one{Page} other{Pages}} + Seiten + + + {count, plural, one{Dossier} other{Dossiers}} + Dossiers + + + Total Documents + Anzahl der Dokumente + + + Total users + Anzahl der Benutzer + + + Name + Name + + + Workload + Arbeitsvorrat + + + Owner + Besitzer + + + Status + Status + + + {length} active {length, plural, one{Dossier} other{Dossiers}} + {length} {length, plural, one{aktives Dossier} other{aktive Dossiers}} + + + Approve + Genehmigen + + + File can only be approved once it has been analysed with the latest dictionaries and all suggestions have been processed. + Das Dokument kann erst genehmigt werden, wenn eine Analyse auf Basis der aktuellen Wörterbücher durchgeführt wurde und die Vorschläge bearbeitet wurden. + + + Assign Approver + Genehmiger zuordnen + + + Assign To Me + Mir zuteilen + + + Assign User + Überprüfer zuordnen + + + Delete Documents + Dokumente löschen + + + Analyze Documents + Dokumente analysieren + + + Delete File + Datei löschen + + + {count} custom {count, plural, one{attribute} other{attributes}} + {count} {count, plural, one{benutzerdefiniertes Attribut} other{benutzerdefinierte Attribute}} + + + Image uploaded + Bild hochgeladen + + + show less + weniger anzeigen + + + Documents in Dossier + Dokumente im Dossier + + + Description + Beschreibung + + + Dossier Dictionary + Dossier-Wörterbuch + + + {count} {count, plural, one{page} other{pages}} + {count} {count, plural, one{Seite} other{Seiten}} + + + Created on {date} + Erstellt am {date} + + + {count} deleted files + {count} gelöschte Dateien + + + {count} {count, plural, one{document} other{documents}} + {count} {count, plural, one{Dokument} other{Dokumente}} + + + Due {date} + Fällig am {date} + + + {count} {count, plural, one{user} other{users}} + {count} {count, plural, one{Benutzer} other{Benutzer}} + + + {count} processing {count, plural, one{document} other{documents}} + {count} Verarbeitung von {count, plural, one{document} other{documents}} + + + Download + Herunterladen + + + You need to be approver in the dossier and the {count, plural, one{file needs} other{files need}} to be approved in order to download. + Nur genehmigte Dateien können heruntergeladen werden + + + Re-processing required + Reanalyse erforderlich + + + Pending... + Ausstehend ... + + + Document Name + Dokumentname + + + Document name... + Dokumentname... + + + Download CSV File Report + CSV-Dateibericht herunterladen + + + Edit Dossier + Dossier bearbeiten + + + Upload Document + Dokument hochgeladen + + + Analyze all + Alle analysieren + + + Upload Document + Dokument hochladen + + + There are no documents yet. + Noch gibt es keine Dokumente. + + + No documents match your current filters. + Die ausgewählten Filter treffen auf kein Dokument zu. + + + OCR Document + OCR-Dokument + + + OCR was performed for this file. + Diese Datei wurde mithilfe von OCR konvertiert. + + + Assigned to me + Mir zuweisen + + + Assigned to others + Anderen zugewiesen + + + Recent ({hours} h) + Neu ({hours} h) + + + Unassigned + Niemandem zugewiesen + + + Failed to schedule files for reanalysis. Please try again. + Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut. + + + Files scheduled for reanalysis. + Dateien für Reanalyse vorgesehen. + + + Analyze File + Datei analysieren + + + Added + Hinzugefügt + + + Assigned to + Zugewiesen an + + + Name + Name + + + Workload + Arbeitsvorrat + + + Pages + Seiten + + + Status + Status + + + {length} {length, plural, one{document} other{documents}} + {length} {length, plural, one{document} other{documents}} + + + For Approval + Zur Genehmigung + + + Under Review + In Review + + + Drag & drop files anywhere... + Sie können Dateien überall per Drag and Drop platzieren... + + + Dossier Templates + Dossier-Vorlagen + + + Delete Template + Dossier-Vorlage + + + Edit Template + Vorlage bearbeiten + + + New Dossier Template + Neue Dossier-Vorlage + + + Delete Selected Dossier Templates + Ausgewählte Dossier-Vorlagen löschen + + + {length} {length, plural, one{dictionary} other{dictionaries}} + {length} {length, plural, one{dictionary} other{dictionaries}} + + + Cannot delete this DossierTemplate! At least one Dossier uses this template! + Dieses DossierTemplate kann nicht gelöscht werden! Zumindest auf Dossier wird diese Vorlage verwendet! + + + Cannot delete this DossierTemplate! + Dieses DossierTemplate kann nicht gelöscht werden! + + + There are no dossier templates yet. + Es gibt noch keine Dossier-Vorlagen. + + + No dossier templates match your current filters. + Die ausgewählten Filter treffen auf keine Dossier-Vorlage zu. + + + Search... + Suchen ... + + + Created by + Erstellt von + + + Created on + Erstellt am + + + Modified on + Geändert am + + + Name + Name + + + {length} dossier {length, plural, one{template} other{templates}} + {length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}} + + + Choose what is included at download: + Wählen Sie die Dokumente für Ihr Download-Paket aus + + + Your download has been queued, you can see all your requested downloads here: <a href='/ui/main/downloads'>My Downloads<a/>. + Ihr Download wurde zur Warteschlange hinzugefügt. Hier finden Sie alle angeforderten Downloads: <a href='/main/downloads'>My Downloads<a/>. + + + Annotated PDF + PDF mit Anmerkungen + + + Flatten PDF + PDF verflachen + + + {length} document {length, plural, one{version} other{versions}} + {length} Dokumenten{length, plural, one{version} other{versionen}} + + + Optimized PDF + Optimiertes PDF + + + Preview PDF + PDF-Vorschau + + + Redacted PDF + geschwärztes PDF + + + Delete + Löschen + + + Download + Herunterladen + + + Delete Selected Downloads + Ausgewählte Downloads löschen + + + No active downloads. + Keine aktiven Downloads. + + + Date + Datum + + + Name + Name + + + Size + Größe + + + Status + Status + + + {length} {length, plural, one{download} other{downloads}} + {length} {length, plural, one{download} other{downloads}} + + + Failed to update colors. + Fehler beim Aktualisieren der Farben. + + + Color + Farbe + + + Color + Farbe + + + Save + Speichern + + + Successfully updated color for {color}. + Farbe erfolgreich aktualisiert auf {color}. + + + Revert + Rückgängig machen + + + Save + Änderungen speichern + + + Save & Close + Speichern + + + Custom Dossier Attributes + Benutzerdefinierte Dossier-Attribute + + + Delete Image + Bild löschen + + + Only PNG, JPG and JPEG files are allowed as image dossier attributes. + Als Bilddossierattribute sind nur PNG-, JPG- und JPEG-Dateien zulässig. + + + Image Attributes + Bild-Attribute + + + There are no text attributes + Es sind keine Text-Attribute vorhanden + + + There are no image attributes + Es sind keine Bild-Attribute vorhanden + + + Upload Image + Bild hochladen + + + Dossier {dossierName} was updated. + Dossier wurde aktualisiert. + + + Dossier {dossierName} was deleted. + Dossier wurde gelöscht. + + + Delete Forever + Endgültig löschen + + + Restore + Wiederherstellen + + + Forever Delete Selected Documents + Ausgewählte Dokumente endgültig löschen + + + Restore Selected Documents + Ausgewählte Dokumente wiederherstellen + + + Deleted items can be restored up to {hours} hours from their deletion + Gelöschte Objekte können bis zu {hours} Stunden nach ihrer Löschung wiederhergestellt werden + + + There are no deleted documents. + Es sind keine gelöschten Dokumente vorhanden. + + + Assignee + Bevollmächtigter + + + Deleted On + Gelöscht am + + + Name + Name + + + Pages + Seiten + + + Status + Status + + + Time To Restore + Verbleibende Zeit für Wiederherstellung + + + {length} deleted {length, plural, one{document} other{documents}} + {length} {length, plural, one{gelöschtes Dokument} other{gelöschte Dokumente}} + + + Cancel + Abbrechen + + + Edit Display Name + Anzeigenamen bearbeiten + + + Failed to update dictionary display name. + Anzeigename des Wörterbuchs konnte nicht aktualisiert werden. + + + Enter Display Name + Anzeigenamen eingeben + + + Save Display Name + Anzeigenamen speichern + + + Successfully updated dictionary display name. + Anzeigename des Wörterbuchs erfolgreich aktualisiert. + + + {length} {length, plural, one{entry} other{entries}} + {length} {length, plural, one{entry} other{entries}} + + + Description + Beschreibung + + + Enter Description + Beschreibung eingeben + + + Due Date + Termin + + + Dossier Name + Dossier-Name + + + Enter Name + Namen eingeben + + + Dossier Template + Dossier-Vorlage + + + Watermark application on redacted documents + Geschwärzte Dokumente mit Wasserzeichen versehen + + + Watermark application on preview documents + Vorschau Dokumente mit Wasserzeichen versehen + + + Edit {dossierName} + {dossierName} bearbeiten + + + Choose what is included at download: + Wählen Sie die Dokumente für Ihr Download-Paket aus: + + + Deleted Documents + Gelöschte Dokumente + + + Dictionary + Wörterbuch + + + Dossier Attributes + Dossier-Attribute + + + Dossier Dictionary + Dossier-Wörterbuch + + + Dossier Info + Dossier-Info + + + Download Package + Download-Paket + + + General Information + Allgemeine Informationen + + + Members + Mitglieder + + + Team Members + Team-Mitglieder + + + Configurations + Konfiguration + + + You have unsaved changes. Save or revert before changing the tab. + Sie haben nicht gespeicherte Änderungen. Speichern Sie oder machen Sie die Änderungen rückgängig, bevor Sie die Registerkarte wechseln. + + + Back to overview + Zurück zur Übersicht + + + This dossier has been deleted! + Dieses Dossier wurde gelöscht! + + + Back to overview + Zurück zur Übersicht + + + The dossier of this file has been deleted! + Das Dossier dieser Datei wurde gelöscht! + + + Back to dossier + Zurück zum Dossier + + + This file has been deleted! + Diese Datei wurde gelöscht! + + + Action failed with code {status} + Aktion mit Code {status} fehlgeschlagen + + + Disconnected + Du bist offline + + + Reconnected + Du bist online + + + Reload + Neu laden + + + Oops! Something went wrong... + Hoppla! Etwas ist schief gelaufen... + + + {day} {month} {year} at {hour}:{minute} + {day} {month} {year} um {hour}:{minute} Uhr + + + File + Datei + + + Date + Datum + + + Number + Nummer + + + Free Text + Freier Text + + + File Attributes + Datei-Attribute + + + Cancel + Abbrechen + + + Edit Name + Namen bearbeiten + + + Remove + Entfernen + + + Save + Speichern + + + {value} available + {value} verfügbar + + + Cancel + Abbrechen + + + CSV Column + CSV-Spalte + + + Delimiter + Trennzeichen + + + , + , + + + Encoding + Wird verschlüsselt + + + UTF-8 + UTF-8 + + + File: + Datei: + + + Key Column + Schlüsselspalte + + + Select column... + Spalte auswählen ... + + + No file attributes defined. Select a column from the left panel to start defining file attributes. + Keine Datei-Attribute definiert. Wählen Sie links eine Spalte aus, um Datei-Attribute zu definieren. + + + Preview CSV column by hovering the entry. + Fahren Sie mit der Maus über den Eintrag, um eine Vorschau der CSV-Spalte zu sehen. + + + No sample data for {column}. + Keine Beispieldaten für {column}. + + + Parse CSV with new options + CSV-Datei mit neuen Optionen parsen + + + All + Alle + + + None + Keine + + + Failed to create File Attributes! + Fehler beim Erstellen der Datei-Attribute! + + + Save Attributes + Attribute speichern + + + {count} file {count, plural, one{attribute} other{attributes}} created successfully! + {count} Datei-{count, plural, one{Attribut} other{Attribute}} erfolgreich erstellt! + + + Search by column name... + Nach Spaltennamen suchen ... + + + {value} selected + {value} ausgewählt + + + Name + Name + + + primary + Primärattribut + + + The value of the attribute set as primary shows up under the file name in the documents list. + Der Wert des Attributs, das als Primärattribut ausgewählt wurde, wird in der Dokumentenliste unter dem Dateinamen angezeigt. + + + Read-Only + Schreibgeschützt + + + Type + Typ + + + Disable Read-only for all attributes + Schreibschutz für alle Attribute aufheben + + + Enable Read-only for all attributes + Schreibschutz für alle Attribute aktivieren + + + Make Read-only + Schreibschutz aktivieren + + + Remove Selected + Ausgewählte entfernen + + + Type + Typ + + + {length} file {length, plural, one{attribute} other{attributes}} + {length} Datei-{length, plural, one{Attribut} other{Attribute}} + + + Select CSV columns to use as File Attributes + CSV-Spalten auswählen, die als Datei-Attribute verwendet werden sollen + + + {rows} rows in total + {rows} Zeilen insgesamt + + + Delete Attribute + Attribut löschen + + + Edit Attribute + Attribute bearbeiten + + + New Attribute + Neue Attribute + + + Delete Selected Attributes + Ausgewählte Attribute löschen + + + File-Attribute with this name already exists! + Es gibt bereits ein Attribute mit diesem Name! + + + Failed to add File-Attribute + Attribute konnte nicht erstellt werden! + + + There are no file attributes yet. + Es sind noch keine Datei-Attribute vorhanden. + + + No file attributes match your current filters. + Die aktuell ausgewählten Filter treffen auf kein Datei-Attribut zu. + + + Read-only + Schreibgeschützt + + + Search by attribute name... + Nach Attribut-Namen suchen ... + + + CSV Column + CSV-Spalte + + + Displayed in File List + In Dokumentenliste anzeigen + + + Filterable + Filterbar + + + Name + Name + + + Primary + Primärattribut + + + The value of the attribute set as primary shows up under the file name in the documents list. + Der Wert des Attributs, das als Primärattribut ausgewählt wurde, wird in der Dokumentenliste unter dem Dateinamen angezeigt. + + + Read-Only + Schreibgeschützt + + + Input Type + Eingabetyp + + + {length} file {length, plural, one{attribute} other{attributes}} + {length} {length, plural, one{Datei-Attribut} other{Datei-Attribute}} + + + Upload File Attributes Configuration + Datei-Attribute hochladen + + + Assign to me + Mir zuweisen + + + Assign User + Reviewer zuweisen + + + Change User + Reviewer wechseln + + + Delta + Delta + + + Delta View shows only the changes since last re-analysis. This view is only available if there is at least 1 change + Die Delta-Ansicht zeigt nur die Änderungen seit der letzten Reanalyse an. Die Ansicht ist nur verfügbar, wenn es seit der letzten Analyse mindestens 1 Änderung gab + + + Your Document Info lives here. This includes metadata required on each document. + Dok-Infos: Hier finden Sie die zu Ihrem Dokument hinterlegten Informationen; u. a. die für das Dokument erforderlichen Metadaten. + + + Download Original File + Originaldatei herunterladen + + + Exclude pages from redaction + Seiten von Schwärzung ausschließen + + + excluded + Von Schwärzung ausgeschlossen + + + Full Screen (F) + Vollbildmodus + + + Last Reviewed by: + Zuletzt überprüft von: + + + There are no annotations on this page. + Auf dieser Seite gibt es keine Anmerkungen. + + + Jump to first page + Zur ersten Seite springen + + + Jump to last page + Zur letzten Seite springen + + + This document was not processed with the latest rule/dictionary set. Analyze now to get updated annotations. + Dieses Dokument wurde nicht auf Basis des neuesten Regel-/Wörterbuchsatzes bearbeitet. Analysieren Sie es jetzt, um die Anmerkungen zu analysieren. + + + Preview + Vorschau + + + Redaction preview shows only redactions. Consider this a preview for the final redacted version. This view is only available if the file has no pending changes & doesn't require a reanalysis + In der Schwärzungsvorschau sehen Sie nur die Schwärzungen. Es handelt sich also um eine Vorschau der endgültigen geschwärzten Version. Diese Ansicht ist nur verfügbar, wenn für die Datei keine Änderungen ausstehen und keine Reanalyse erforderlich ist + + + Standard + Standard + + + Standard Workload view shows all hints, redactions, recommendations & suggestions. This view allows editing. + In der Standard-Ansicht des Workloads werden alle Hinweise, Schwärzungen, Empfehlungen und Vorschläge angezeigt. In dieser Ansicht ist die Bearbeitung möglich. + + + Jump to Next + Springe zu Nächster + + + Jump to Previous + Springe zu Vorheriger + + + Workload + Arbeitsvorrat + + + This page is + Diese Seite ist + + + Select + Auswählen + + + All + Alle + + + None + Keine + + + Close Document Info + Dokumenteninformation schließen + + + Created on: {date} + Erstellt am: {date} + + + in {dossierName} + in {dossierName} + + + Due: {date} + Termin: {date} + + + {pages} pages + {pages} Seiten + + + Edit Document Info + Infos zum Dokument bearbeiten + + + Document Info + Infos zum Dokument + + + Close + Schließen + + + Error! Invalid page selection. + Fehler! Seitenauswahl ungültig. + + + Minus (-) for range and comma (,) for enumeration. + Minus (-) für Bereich und Komma (,) für Aufzählung. + + + e.g. 1-20,22,32 + z. B. 1-20,22,32 + + + Exclude Pages + Seiten ausschließen + + + No excluded pages. + Es sind keine Seiten ausgeschlossen. + + + Undo + Rückgängig machen + + + Removed from redaction + Von der Schwärzung ausgeschlossen + + + Redaction is disabled for this document. + Schwärzungen für dieses Dokument deaktiviert. + + + Disable redaction + Schwärzen deaktivieren + + + Enable for redaction + Schwärzen aktivieren + + + Enabling / disabling is permitted only for managers + Aktivieren/deaktivieren ist nur Managern gestattet + + + Approved + Genehmigt + + + Deleted + Gelöscht + + + Re-processing required + Reanalyse erforderlich + + + Processing + Wird analysiert + + + Image Analyzing + Bildanalyse + + + Processing + Wird analysiert + + + New + Neu + + + OCR Processing + OCR-Analyse + + + Processed + Verarbeitet + + + Processing... + Wird analysiert... + + + Processing + Wird analysiert + + + Unassigned + Nicht zugewiesen + + + Under Approval + In Genehmigung + + + Under Review + In Review + + + Unprocessed + Unbearbeitet + + + Filter options + Filteroptionen + + + Filter + Filter + + + Filter + Filter + + + Only annotations with redaction changes + Nur Anmerkungen mit Schwärzungsänderungen + + + Only annotations on unseen pages + Nur Anmerkungen auf unsichtbaren Seiten + + + Only annotations with comments + Nur Anmerkungen mit Kommentaren + + + Analysis pending + Analyse erforderlich + + + Comments + Kommentare + + + Hints only + Nut Hinweise + + + Images + Bilder + + + No Annotations + Keine Anmerkungen + + + Redacted + Geschwärzt + + + Suggested Redaction + Vorgeschlagene Schwärzung + + + Updated + Aktualisiert + + + Assignee(s) + Beauftragt + + + Dossier Templates + Regelsätze + + + Empty + Leer + + + Filter: + Filter: + + + Workload + Arbeitsvorrat + + + Dossier Member(s) + Dossier-Mitglied(er) + + + Status + Status + + + Save Configurations + Einstellungen speichern + + + Test Connection + Verbindung testen + + + Environment + Name der Applikation + + + RedactManager + RedactManager + + + Enable Authentication + Authentifizierung aktivieren + + + Change Credentials + Zugangsdaten ändern + + + Envelope From + Ausgangsadresse + + + Info text regarding envelope from field. + Infotext zum Feld „Ausgangsadresse“. + + + Sender Envelope Email Address + Ausgangsadresse + + + From + Von + + + Name for Sender + Antworten an + + + Info text regarding the name for sender. + Info-Text zum Absendernamen. + + + Display Name for Sender Email Address + Anzeigename zur Ausgangsadresse + + + Sender Email Address + E-Mail-Adresse des Absenders + + + Host + Host + + + SMTP Host + SMTP-Host + + + Port + Port + + + Reply To + Antwortadresse + + + Name for Reply To + Name für Antwortadresse + + + Display Name for Reply To Email Address + Anzeigename zu Antwort-E-Mail + + + Reply To Email Address + Antwort-E-Mail + + + Enable SSL + SSL aktivieren + + + Enable StartTLS + StartTLS aktivieren + + + Show Forgot password link on Login screen + „Passwort vergessen?“-Link auf der Login-Seite anzeigen + + + + + + + General Configurations + Allgemeine Einstellungen + + + SMTP (Simple Mail Transfer Protocol) enables you to send your emails through the specified server settings. + SMTP (Simple Mail Transfer Protocol) ermöglicht es Ihnen, Ihre E-Mails über die angegebenen Servereinstellungen zu versenden. + + + Test email could not be sent! Please revise the email address. + Die Test-E-Mail konnte nicht gesendet werden! Bitte überprüfen Sie die E-Mail-Adresse. + + + Test email was sent successfully! + Die Test-E-Mail wurde erfolgreich versendet! + + + Configure SMTP Account + SMTP-Konto konfigurieren + + + Help Mode (H) + Hilfe-Modus (H) + + + <b> Clicking anywhere on the screen </b> will show you which areas are interactive. Hovering an interactive area will <b> change the mouse cursor </b> to let you know if the element is interactive. + <b>Klicken Sie auf eine beliebige Stelle des Bildschirms </b> um zu sehen, welche Bereiche interaktiv sind. Wenn Sie mit der Maus über einen interaktiven Bereich fahren, <b>verändert sich der Mauszeiger</b>, um Ihnen zu zeigen, ob ein Element interaktiv ist. + + + Open Help Mode Instructions + Hilfe-Modus-Anleitungen öffnen + + + Help Mode + Hilfe-Modus + + + <b> Welcome to Help Mode! <br> Clicking on interactive elements will open info about them in new tab. </b> + <b> Willkommen im Hilfe-Modus! <br> Klicken Sie auf interaktive Elemente, um in einem neuen Tab Infos dazu zu erhalten. </b> + + + Hint + Hinweis + + + Formula + Formel + + + Image + Bild + + + + Signature + Signatur + + + Unassigned + Unbekannt + + + You + Sie + + + Justifications + Begründungen + + + Delete Justification + Begründung löschen + + + Edit Justification + Begründung bearbeiten + + + Add New Justification + Neue Begründung hinzufügen + + + Delete Selected Justifications + Ausgewählte Begründungen löschen + + + There are no justifications yet. + Es gibt noch keine Begründungen. + + + Description + Beschreibung + + + Name + Name + + + Legal Basis + Rechtliche Grundlage + + + {length} {length, plural, one{justification} other{justifications}} + {length} {length, plural, one{Begründung} other{Begründung}} + + + Analyzed Pages + Analysierte Seiten + + + Backend Application Version + Backend-Version der Anwendung + + + Cumulative Pages + Seiten insgesamt + + + Legend + Legende + + + Licensed Total + Insgesamt lizensiert + + + Pages per Month + Seiten pro Monat + + + Total Pages + Gesamtzahl der Seiten + + + Copyright © 2020 - {currentYear} knecon AG (powered by IQSER) + Copyright © 2020 - {currentYear} knecon AG (powered by IQSER) + + + Copyright Claim + Copyright + + + Analyzed Pages in Current Licensing Period + In aktuellem Lizenzzeitraum analysierte Seiten + + + Custom Application Title + Name der Anwendung + + + Email Report + E-Mail-Bericht + + + Total Analyzed Pages in current license period: {pages}. + Im aktuellen Lizenzzeitraum insgesamt analysierte Seiten: {pages}. + + + Licensed Pages: {pages}. + Lizenzierte Seiten: {pages}. + + + License Report {licenseCustomer} + Lizenzbericht {licenseCustomer} + + + The use of this product is subject to the terms of the Redaction End User Agreement, unless otherwise specified therein. + Die Nutzung dieses Produkts unterliegt den Bedingungen der Endbenutzer-Lizenzvereinbarung für den RedactManager, sofern darin nichts anderweitig festgelegt. + + + End User License Agreement + Endbenutzer-Lizenzvereinbarung + + + Number of licensed pages + Anzahl der lizenzierten Seiten + + + Licensed to + Lizenziert für + + + Licensing Details + Lizenzdetails + + + Licensing Period + Laufzeit der Lizenz + + + OCR Analyzed Pages + Mit OCR konvertierte Seiten + + + Total Analyzed Pages Since {date} + Seit {date} insgesamt analysierte Seiten + + + Unlicensed Analyzed Pages + Über Lizenz hinaus analysierte Seiten + + + Usage Details + Nutzungsdetails + + + License Information + Lizenzinformationen + + + Save + Speichern + + + Value / Classification + Wert / Klassifizierung + + + Comment + Kommentar + + + Dictionary + Wörterbuch + + + Legal Basis + Rechtsgrundlage + + + Reason + Begründung + + + Select a reason ... + Wählen Sie eine Begründung aus ... + + + Custom Rectangle + Benutzerdefinierter Bereich + + + Paragraph / Location + Absatz / Ort + + + Selected text: + Ausgewählter Text: + + + Add to dictionary + Zum Wörterbuch hinzufügen + + + Set false positive + Als Falsch-Positiv definieren + + + Force Hint + Hinweis erzwingen + + + Force Redaction + Schwärzung erzwingen + + + Redaction + Schwärzung + + + Request add to dictionary + Neuen Wörterbucheintrag vorschlagen + + + Request false positive + Als Falsch-Positiv vorschlagen + + + Request Redaction + Schwärzung vorschlagen + + + Apr. + Apr. + + + Aug. + August + + + Dec. + Dez. + + + Feb. + Feb. + + + Jan. + Jan. + + + Jul. + Jul. + + + Jun. + März + + + Mar. + März + + + May + Nov. + + + Nov. + Nov. + + + Oct. + Okt. + + + Sep. + Sept. + + + You have been assigned as approver for <b><a href="{fileHref}" target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + Sie wurden dem Dokument <b><a href="{fileHref}" target="_blank">{fileName}</a></b> im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b> als Genehmiger zugewiesen! + + + You have been assigned as reviewer for <b><a href="{fileHref}" target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + Sie wurden dem Dokument <b><a href="{fileHref}" target="_blank">{fileName}</a></b> im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b> als Reviewer zugewiesen! + + + <b><a href="{fileHref}" target="_blank">{fileName}</a></b> has been approved! + <b><a href="{fileHref}" target="_blank">{fileName}</a></b> wurde genehmigt! + + + Dossier: <b>{dossierName}</b> has been deleted! + Dossier: <b>{dossierName}</b> wurde gelöscht! + + + <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> owner removed! + Der Dossier-Owner von <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> wurde entfernt! + + + <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> owner changed to <b>{user}</b>! + Eigentümer von <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> geändert zu <b>{user}</b>! + + + Your <b><a href='/ui/main/downloads', target="_blank">download</a></b> is ready! + Ihr <b><a href='/ui/main/downloads', target="_blank">Download</a></b> ist fertig! + + + You currently have no notifications + Du hast aktuell keine Benachrichtigungen + + + You have been unassigned from <b><a href="{fileHref}" target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + Sie wurden vom Dokument <b><a href="{fileHref}" target="_blank">{fileName}</a></b> im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b> entfernt! + + + You have been added to dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b>! + <b>{user}</b> ist jetzt Mitglied des Dossiers <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b>! + + + You have been demoted to reviewer in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b>! + <b>{user}</b> wurde im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> auf die Reviewer-Berechtigung heruntergestuft! + + + You have been promoted to approver in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b>! + <b>{user}</b> wurde im Dossier <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> zum Genehmiger ernannt! + + + You have been removed as a member from dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> ! + <b>{user}</b> wurde als Mitglied von: <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> entfernt! + + + Notifications + Benachrichtigungen + + + Email Notifications + E-Mail Benachrichtigungen + + + In-App Notifications + In-App-Benachrichtigungen + + + Something went wrong... Preferences update failed! + Ein Fehler ist aufgetreten... Aktualisierung der Einstellungen fehlgeschlagen! + + + Document related notifications + Dokumentbezogene Benachrichtigungen + + + Dossier related notifications + Dossierbezogene Benachrichtigungen + + + Other notifications + Andere Benachrichtigungen + + + Choose on which action you want to be notified + Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten + + + When I am assigned to a document as Approver + Wenn ich einem Dokument als Genehmiger zugewiesen bin + + + When I am assigned to a document as Reviewer + Wenn ich einem Dokument als Überprüfer zugewiesen bin + + + When the document status changes to Approved + Wenn sich der Dokumentstatus in Genehmigt ändert + + + When the document status changes to Under Approval + Wenn sich der Dokumentstatus in „In Genehmigung“ ändert + + + When the document status changes to Under Review + Wenn sich der Dokumentstatus in Wird überprüft ändert + + + When a dossier was deleted + Wenn ein Dossier gelöscht wurde + + + When the owner of a dossier got deleted + Wenn der Eigentümer eines Dossiers gelöscht wurde + + + When I loose dossier ownership + Wenn ich den Besitz des Dossiers verliere + + + When I become the dossier owner + Wenn ich der Besitzer des Dossiers werde + + + When a download is ready + Wenn ein Download bereit ist + + + When I am unassigned from a document + Wenn die Zuweisung zu einem Dokument aufgehoben wird + + + When a user was added to my dossier + Wenn ein Benutzer zu meinem Dossier hinzugefügt wurde + + + When I become a Reviewer in a dossier + Wenn ich Gutachter in einem Dossier werde + + + When I become an Approver in a dossier + Wenn ich Genehmiger in einem Dossier werde + + + When I loose dossier membership + Wenn ich die Dossier-Mitgliedschaft verliere + + + Daily Summary + Tägliche Zusammenfassung + + + Instant + Sofortig + + + Weekly Summary + Wöchentliche Zusammenfassung + + + Notifications Preferences + Benachrichtigungseinstellungen + + + Cancel all uploads + Alle Uploads abbrechen + + + Replace existing document + Vorhandenes Dokument ersetzen + + + Remember choice and don't ask me again + Auswahl speichern und nicht noch einmal fragen + + + Keep existing document + Vorhandenes Dokument behalten + + + <b>{filename}</b> already exists. Choose how to proceed: + <b>{filename}</b> ist bereits vorhanden. Wie möchten Sie fortfahren? + + + Document already exists! + Das Dokument existiert bereits! + + + Page + Seite + + + Next + Nächste + + + Prev + Vorherige + + + Search for selection + Nach Auswahl suchen + + + {active, select, true{Disable} false{Enable} other{}} annotation tooltips + {active, select, true{Disable} false{Enable} other{}} Kurzinfos für Anmerkungen + + + WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes. + ACHTUNG: Sie haben ungespeicherte Änderungen. Klicken Sie auf „Abbrechen“, wenn Sie zurückkehren und die Änderungen speichern möchten. Klicken Sie auf „OK“, um die Änderungen zu speichern. + + + Read only + Lesemodus + + + Cancel + Abbrechen + + + Save Changes + Änderungen speichern + + + Comment + Kommentar + + + Select image type + Ausgewählter Bildtyp + + + Select a type... + Einen Typ auswählen ... + + + Edit Image Type + Bildtypen bearbeiten + + + Redaction + Schwärzung + + + Cancel + Abbrechen + + + Yes, proceed and remove! + Ja, fortfahren und löschen! + + + Dictionary + Wörterbuch + + + Image: {typeLabel} + Bild: {typeLabel} + + + Following entries will be removed from their respective dictionaries: + Folgende Einträge werden aus den jeweiligen Wörterbüchern gelöscht: + + + Remove From Dictionary + Aus dem Wörterbuch löschen + + + Following redactions will be removed only here: + Folgende Schwärzungen werden nur hier entfernt: + + + Remove Redaction + Schwärzung entfernen + + + Value + Wert + + + {length} report {length, plural, one{type} other{types}} + {length} {length, plural, one{Berichtstyp} other{Berichtstypen}} + + + Reports + Berichte + + + A short text explaining how to create report documents. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. + Ein kurzer Text, der erläutert, was Platzhalter sind und wie Sie sie in Ihrer Berichtsvorlage einsetzen können. Es ist bekannt, dass ein Leser vom lesbaren Inhalt einer Seite abgelenkt wird, wenn er sich das Layout ansieht. + + + This placeholder gets replaced with the value of the dossier attribute <code>{attribute}</code>. + Dieser Platzhalter wird durch den Wert des Dossier-Attributs <code>{attribute}</code> ersetzt. + + + This placeholder gets replaced with the value of the file attribute <code>{attribute}</code>. + Dieser Platzhalter wird durch den Wert des Dateiattributs <code>{attribute}</code> ersetzt. + + + This placeholder is replaced by the creation date of the report in the common day-month-year notation (dd.MM.yyyy), e.g. 15.10.2021. + Dieser Platzhalter wird durch das Erstellungsdatum des Berichts in der üblichen Tag-Monat-Jahr-Notation (TT.MM.JJJJ) ersetzt, zB 15.10.2021. + + + This placeholder gets replaced by the creation date of the report in the American all-numeric date format (MM/dd/yyyy), e.g. 10/15/2021. + Dieser Platzhalter wird durch das Erstellungsdatum des Berichts im amerikanischen rein numerischen Datumsformat (MM/dd/yyyy) ersetzt, zB 15.10.2021. + + + This placeholder is replaced by the creation date of the report in the international ISO 8601 format (yyyy-MM-dd), e.g. 2021-10-15. + Dieser Platzhalter wird durch das Erstellungsdatum des Berichts im internationalen ISO 8601-Format (yyyy-MM-dd) ersetzt, zB 2021-10-15. + + + This placeholder is replaced by the name of the dossier in which the redacted files are stored. + Dieser Platzhalter wird durch den Namen des Dossiers ersetzt, in dem die geschwärzten Dateien gespeichert sind. + + + This placeholder is replaced by the file name. + Dieser Platzhalter wird durch den Dateinamen ersetzt. + + + This placeholder is replaced by a text snippet that contains the redaction. + Dieser Platzhalter wird durch einen Textausschnitt ersetzt, der die Schwärzung enthält. + + + This placeholder is replaced by the justification of the redaction. It is a combination of the legal reference (justificationParagraph) and the justification text (justificationReason). + Dieser Platzhalter wird durch die Begründung der Schwärzung ersetzt. Es ist eine Kombination aus dem Rechtsverweis (justificationParagraph) und dem Begründungstext (justificationReason). + + + This placeholder is replaced by the legal reference of the justification of the redaction. + Dieser Platzhalter wird durch den Rechtshinweis der Begründung der Redaktion ersetzt. + + + This placeholder is replaced by the justification text of the redaction. + Dieser Platzhalter wird durch den Begründungstext der Schwärzung ersetzt. + + + This placeholder is replaced by the page number of the redaction. + Dieser Platzhalter wird durch die Seitenzahl der Redaktion ersetzt. + + + This placeholder is replaced by the paragraph that contains the redaction. + Dieser Platzhalter wird durch den Absatz ersetzt, der die Schwärzung enthält. + + + This placeholder is replaced by the time the report was created. + Dieser Platzhalter wird durch den Zeitpunkt ersetzt, zu dem der Bericht erstellt wurde. + + + A short text explaining what placeholders are and how to use them in your report template. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. + Ein kurzer Text, der erläutert, was Platzhalter sind und wie Sie sie in Ihrer Berichtsvorlage einsetzen können. Es ist bekannt, dass ein Leser vom lesbaren Inhalt einer Seite abgelenkt wird, wenn er sich das Layout ansieht. + + + Document Setup + Dokumenten-Konfiguration + + + Invalid format selected for Upload! Supported formats are XLSX and DOCX + Ungültiges Upload-Format ausgewählt! Unterstützt werden Dokumente im .xlsx- und im .docx-Format + + + (Multi-file) + (Mehrere Dateien) + + + Report Documents + Dokumente für den Bericht + + + Description + Beschreibung + + + Placeholders + Platzhalter + + + Reports + Berichte + + + Upload a Document + Ein Dokument hochladen + + + Reset + Zurücksetzen + + + Cancel + Abbrechen + + + Save + Speichern + + + Failed to reset password. The new password doesn't match the password policy. + Kennwort konnte nicht zurückgesetzt werden. Das neue Passwort entspricht nicht der Passwortrichtlinie. + + + Temporary password + Temporäres Passwort + + + Set Temporary Password for {userName} + Temporäres Passwort für {userName} festlegen + + + Cancel + Abbrechen + + + Save Changes + Änderungen speichern + + + Comment + Kommentar + + + Resize Redaction + Schwärzung ändern + + + Inactive + Inaktiv + + + Manager & Admin + Manager & Admin + + + No role defined + Keine Rolle definiert + + + Application Admin + Anwendungsadministrator + + + Manager + Manager + + + User + Benutzer + + + Users Admin + Benutzer-Admin + + + Regular + Regulär + + + Rule Editor + Regel-Editor + + + Something went wrong... Rules update failed! + Es ist ein Fehler aufgetreten ... Die Regeln konnten nicht aktualisiert werden! + + + Revert + Anmeldedaten speichern + + + Save Changes + Änderungen speichern + + + Rules updated! + Die Regeln wurden aktualisiert! + + + Assignee + Bevollmächtigter + + + Document + Dokument + + + Dossier + Dossier + + + Pages + Seiten + + + Status + Status + + + Filter by Dossier + Nach Dossier filtern + + + Dossier name... + Dossiername... + + + Missing + Fehlt + + + Must contain + Muss enthalten + + + Please enter a keyword into the search bar to look for documents or document content. + Geben Sie einen Suchbegriff in die Suchleiste, um nach Dokumenten oder Inhalten von Dokumenten zu suchen. + + + No documents match your current filters. + Keine Dokumente entsprechen Ihren aktuellen Filtern. + + + {length} search {length, plural, one{result} other{results}} + {length} {length, plural, one{Suchergebnis} other{Suchergebnisse}} + + + across all dossiers + ganze Plattform + + + Search documents... + Nach Dokumenten oder Dokumenteninhalt suchen + + + in this dossier + in diesem Dossier + + + Cancel + Abbrechen + + + Save Credentials + Anmeldedaten speichern + + + Password + Passwort + + + Username + Benutzername + + + Login Username + Login-Benutzername + + + Enable Authentication + Authentifizierung aktivieren + + + {days} {days, plural, one{day} other{days}} + {days} {days, plural, one{Tag} other{Tage}} + + + {hours} {hours, plural, one{hour} other{hours}} + {hours} {hours, plural, one{Stunde} other{Stunden}} + + + < 1 hour + < 1 Stunde + + + Time to restore already passed + Frist für Wiederherstellung verstrichen + + + Back + Zurück + + + Active Dossiers + Aktives Dossier + + + Account + Konto + + + Settings + Einstellungen + + + My Downloads + Meine Downloads + + + German + Deutsch + + + English + Englisch + + + Language + Sprache + + + Logout + Abmelden + + + Trash + Papierkorb + + + Delete Forever + Endgültig löschen + + + Restore + Wiederherstellen + + + Forever Delete Selected Dossiers + Ausgewählte Dossiert endgültig löschen + + + Restore Selected Dossiers + Ausgewählte Dossiers wiederherstellen + + + Trash + Papierkorb + + + There are no dossiers yet. + Es wurde noch kein Dossier angelegt. + + + No dossiers match your current filters. + Die ausgewählten Filter treffen auf kein Dossier zu. + + + Deleted on + Gelöscht am + + + Name + Name + + + Owner + Eigentümer + + + Time to restore + Verbleibende Zeit für Wiederherstellung + + + {length} deleted {length, plural, one{dossier} other{dossiers}} + {length} {length, plural, one{gelöschtes Dossier} other{gelöschte Dossiers}} + + + Type + Typ + + + Unknown + Unbekannt + + + Cancel + Abbrechen + + + Merge entries + Einträge zusammenführen + + + Overwrite + Überschreiben + + + Choose how you want to proceed: + Wählen Sie, wie Sie fortfahren möchten: + + + The dictionary already has entries! + Das Wörterbuch hat bereits Einträge! + + + Cancel Upload + Upload abbrechen + + + Retry Upload + Upload erneut versuchen + + + File Uploads ({len}) + Datei-Uploads ({len}) + + + File too large. Limit is {size}MB. + Datei zu groß. Die maximal zulässige Größe beträgt {size} MB. + + + Failed to upload file. + Fehler beim Hochladen des Dokuments + + + Delete User + Benutzer löschen + + + Edit User + Benutzer bearbeiten + + + New User + Neuer Benutzer + + + Delete Users + Benutzer löschen + + + You cannot delete your own account. + Sie können Ihr eigenes Konto nicht löschen. + + + No users match your current filters. + Die ausgewählten Filter treffen auf keinen Benutzer zu. + + + Search... + Suche ... + + + Active + Aktiv + + + Email + E-Mail-Adresse + + + Name + Name + + + Roles + Rollen + + + {length} {length, plural, one{user} other{users}} + {length} {length, plural, one{user} other{users}} + + + User Management + Benutzerverwaltung + + + My Profile + Mein Profil + + + Change Password + Passwort ändern + + + Save Changes + Änderungen speichern + + + Email + Email + + + First name + Vorname + + + Last name + Nachname + + + Edit Profile + Profil bearbeiten + + + Users in Workspace + Benutzer im Arbeitsbereich + + + Hide Details + Details ausblenden + + + Show Details + Details anzeigen + + + Users + Benutzer + + + List + Liste + + + View as: + Ansicht als: + + + Workflow + Arbeitsablauf + + + Watermark + Wasserzeichen + + + Watermark updated! + Das Wasserzeichen wurde aktualisiert! + + + Watermark deleted. + Das Wasserzeichen wurde gelöscht. + + + Failed to update Watermark + Fehler beim Aktualisieren des Wasserzeichens + + + Revert + Rückgängig machen + + + Save Changes + Änderungen speichern + + + Color + Farbe + + + Font Size + Schriftgröße + + + Font Type + Schriftart + + + Opacity + Deckkraft + + + Orientation + Ausrichtung + + + Enter text + Text eingeben + + + Watermark + Wasserzeichen + + + All + Alle + + + {count} selected + {count} ausgewählt + + + None + Keiner + + + Select + Wählen + + + Yesterday + Gestern + + + + \ No newline at end of file diff --git a/tools/auto-i18n/test.xml b/tools/auto-i18n/test.xml new file mode 100644 index 000000000..d0d98ac60 --- /dev/null +++ b/tools/auto-i18n/test.xml @@ -0,0 +1,4295 @@ + + + +
+ +
+ + + Account Settings + + + All + + + + None + + + + Active + + + + Save + + + + Save and Edit Team + + + + Dossier with this name already exists! + + + + Failed to save dossier. + + + + Description + + + + Enter Description + + + + Due Date + + + + Dossier Name + + + + Enter Name + + + + Dossier Template + + + + Watermark application on redacted documents + + + + Watermark application on preview documents + + + + Create Dossier + + + + Dictionary with this name already exists! + + + + Failed to save dictionary! + + + + Invalid color or rank! Rank is already used by another dictionary or the color is not a valid hexColor! + + + + Enable 'Add to dictionary' + + + + Case Sensitive + + + + Hex Color + + + + # + + + + Description + + + + Enter Description + + + + Hint + + + + Display Name + + + + Cannot be edited after saving. + + + + Enter Name + + + + Rank + + + + 1000 + + + + Redaction + + + + Technical Name + + + + Save Dictionary + + + + {type, select, edit{Edit + {name}} create{Create} other{}} Dictionary + + + + Failed to save attribute! + + + + Attribute Name + + + + Enter Name + + + + Attribute Placeholder + + + + Attribute Type + + + + Save Attribute + + + + {type, select, edit{Edit + {name}} create{Add New} other{}} Dossier + Attribute + + + + Failed to create dossier template: a dossier template with the same name already exists. + + + + Failed to create dossier template. + + + + Description + + + + Enter Description + + + + Dossier Template Name + + + + Enter Name + + + + Valid from + + + + Valid to + + + + Save Dossier Template + + + + {type, select, edit{Edit + {name}} create{Create} other{}} Dossier + Template + + + + CSV Column Header + + + + Enter CSV Column Header + + + + The maximum number of displayed attributes ({maxNumber}) + has been reached. + + + + Displayed In File List + + + + Filterable + + + + The maximum number of filterable attributes ({maxNumber}) + has been reached. + + + + Attribute Name + + + + Enter Name + + + + Set as Primary + + + + Make Read-Only + + + + Type + + + + Save Attribute + + + + {type, select, edit{Edit + {name}} create{Add New} other{}} File + Attribute + + + + Cancel + + + + Save Justification + + + + Description + + + + Enter Description + + + + Name + + + + Enter Name + + + + Legal Basis + + + + Enter Legal Basis + + + + {type, select, edit{Edit + {name}} create{Add New} other{}} Justification + + + + Cancel + + + + Delete User + + + + Save User + + + + Save Changes + + + + This e-mail address is already in use by a different user! + + + + Failed to save user! + + + + Email + + + + First Name + + + + Last Name + + + + Reset Password + + + + Role + + + + {type, select, edit{Edit} create{Add + New} other{}} User + + + + Dossier Templates + + + + Settings + + + + Annotation + + + + Accept Recommendation + + + + Approve Suggestion + + + + Edit Reason + + + + Force Hint + + + + Force Redaction + + + + Hide + + + + Cannot add ''{content}'' to the {dictionaryName} dictionary + because it was recognized as a general term that appears too often in texts. + + + + Failed to add entry to dictionary: {error} + + + + Entry added to dictionary. Changes will be visible after reanalysis. + + + + Failed to approve dictionary entry: {error} + + + + Dictionary entry approved. Changes will be visible after reanalysis. + + + + Failed to decline dictionary suggestion: {error} + + + + Dictionary suggestion declined. + + + + Failed to remove dictionary entry: {error} + + + + Dictionary entry removed! + + + + Failed to request removal of dictionary entry: {error} + + + + Requested to remove dictionary entry! + + + + Failed to save suggestion for dictionary modification: {error} + + + + Suggestion for dictionary modification saved! + + + + Failed to undo: {error} + + + + Undo successful + + + + Failed to save redaction: {error} + + + + Redaction added! + + + + Failed to approve suggestion: {error} + + + + Suggestion approved. + + + + Failed to edit annotation reason: {error} + + + + Annotation reason was edited. + + + + Failed to decline suggestion: {error} + + + + Suggestion declined. + + + + Failed to save redaction: {error} + + + + Redaction added! + + + + Failed to recategorize image: {error} + + + + Image recategorized. + + + + Failed to remove redaction: {error} + + + + Redaction removed! + + + + Failed to request annotation reason change: {error} + + + + Annotation reason change requested. + + + + Failed to save redaction suggestion: {error} + + + + Redaction suggestion saved + + + + Failed to request image recategorization: {error} + + + + Image recategorization requested. + + + + Failed to request removal of redaction: {error} + + + + Requested to remove redaction! + + + + Failed to save redaction suggestion: {error} + + + + Redaction suggestion saved + + + + Failed to undo: {error} + + + + Undo successful + + + + Recategorize + + + + Reject Suggestion + + + + False Positive + + + + Remove only here + + + + Remove from dictionary + + + + Save Resize + + + + Abort Resize + + + + Resize + + + + Show + + + + Undo + + + + Redaction forced + + + + Manual changes: + + + + Reason changed + + + + Image category changed + + + + Redaction/Hint removed + + + + Redaction area has been modified + + + + {isHint, select, true{Hint} other{Redaction}} based on dictionary + + + + Redaction based on AI + + + + Redaction based on rule {rule} + + + + Declined Suggestion + + + + Hint + + + + Ignored Hint + + + + Manual Redaction + + + + Recommendation + + + + Redaction + + + + Skipped + + + + Suggested redaction + + + + Suggested dictionary add + + + + Suggested change legal basis + + + + Suggestion force redaction + + + + Suggested recategorize image + + + + Suggested redaction removal + + + + Suggested dictionary removal + + + + Suggested Resize + + + + Annotations + + + + Archived + + + + Approvers + + + + Make Approver + + + + No members with "review only" permission. + + + + Reviewers + + + + Search... + + + + Select from the list below. + + + + Owner + + + + Cancel + + + + {type, select, approver{Approver} reviewer{Reviewer + } other{}} + + + + Save + + + + Manage File {type, select, approver{Approver} reviewer{Reviewer + } other{}} + + + + Cancel + + + + Save + + + + Successfully assigned {ownerName} to dossier: {dossierName}. + + + + Successfully {reviewerName, select, undefined{unassigned + user from} other{assigned {reviewerName} to + file:}} {filename}. + + + + Audit + + + + All Users + + + + All Categories + + + + Audit + + + + Audit Log + + + + Dictionary + + + + Document + + + + Dossier + + + + Dossier Template + + + + Download + + + + License + + + + Project + + + + Project Template + + + + User + + + + No available logs. + + + + Category + + + + Date + + + + Message + + + + User + + + + {length} {length, plural, one{Log} other{Logs + }} + + + + to + + + + Your user is successfully logged in but has no role assigned yet. Please contact your RedactManager administrator to assign appropriate roles. + + + + Your user is successfully logged in but has no role assigned yet. Please contact <a href={adminUrl} target=_blank >your RedactManager administrator</a> to assign + appropriate roles! + + + + Your user is successfully logged in but has no role assigned yet. Please contact {adminName} to + assign appropriate roles. + + + + Your user is successfully logged in but has no role assigned yet. Please contact <a href={adminUrl} target=_blank >{adminName}</a> + to assign appropriate roles. + + + + Logout + + + + by + + + + Cancel + + + + Save Changes + + + + Value / Classification + + + + Comment + + + + Legal Basis + + + + Select redaction reason + + + + Select a reason... + + + + Paragraph / Location + + + + Edit Redaction Reason + + + + Enter comment + + + + {count} {count, plural, one{comment} other{comments + }} + + + + Hide comments + + + + Close View + + + + Yes + + + + No + + + + This action requires confirmation, do you wish to proceed? + + + + Confirm Action + + + + Configurations + + + + Keep {type, select, single{Attribute} bulk{Attributes + } other{}} + + + + Delete {type, select, single{Attribute} bulk{Attributes + } other{}} + + + + All documents {type, select, single{it is} bulk{they + are} other{}} used on will be impacted + + + + All inputted details on the documents will be lost + + + + Delete {type, select, single{{name}} bulk{File Attributes + } other{}} + + + + Please confirm that you understand the ramifications of your action! + + + + Warning: this cannot be undone! + + + + Keep {usersCount, plural, one{User} other{Users + }} + + + + Delete {usersCount, plural, one{User} other{Users + }} + + + + All documents pending review from the {usersCount, plural, one{user} other{users}} will be impacted + + + + {dossiersCount} {dossiersCount, plural, one{dossier} other{dossiers}} will be impacted + + + + Delete {usersCount, plural, one{User} other{Users}} from Workspace + + + + Please confirm that you understand the ramifications of your action! + + + + Warning: this cannot be undone! + + + + This document has unseen changes, do you wish to approve it anyway? + + + + Warning! + + + + At least one of the files you selected has unseen changes, do you wish to approve them anyway? + + + + Warning! + + + + This document is currently reviewed by someone else. Do you want to become the reviewer and assign yourself to this document? + + + + Re-assign user + + + + <strong>Warning!</strong> <br><br> Number of pages does not match, current document has <strong>{currentDocumentPageCount} page(s)</strong>. Uploaded document has <strong>{compareDocumentPageCount} page(s)</strong>. <br><br> Do you wish to + proceed? + + + + Compare with file: {fileName} + + + + Delete {dossiersCount, plural, one{Dossier} other{Dossiers + }} + + + + Keep {dossiersCount, plural, one{Dossier} other{Dossiers + }} + + + + Are you sure you want to delete {dossiersCount, plural, one{this + dossier} other{these dossiers}}? + + + + Delete {dossiersCount, plural, one{{dossierName}} other{Selected Dossiers + }} + + + + Do you wish to proceed? + + + + Delete Document + + + + Are you sure you want to delete {count, plural, one{this + justification} other{these justifications}}? + + + + Delete {count, plural, one{{justificationName}} other{Selected Justifications + }} + + + + To proceed please type below + + + + Delete {filesCount, plural, one{Document} other{Documents + }} + + + + Keep {filesCount, plural, one{Document} other{Documents + }} + + + + Are you sure you want to delete {filesCount, plural, one{this + document} other{these documents}}? + + + + Delete {filesCount, plural, one{{fileName}} other{Selected Documents + }} + + + + Upload as multi-file report + + + + Upload as single-file report + + + + Cancel Upload + + + + Please choose if <b>{fileName}</b> is a single + or multi-file report template + + + + Report Template Upload + + + + Yes. Continue upload + + + + No. Cancel Upload + + + + There is already a Report Template with the name: <b>{fileName}</b>. + Do you wish to continue? + + + + Report Template Upload + + + + Reason + + + + Default Colors + + + + Edit Color + + + + Color + + + + Type + + + + {length} Default {length, plural, one{Color} other{Colors + }} + + + + Analysis + + + + Default Color + + + + Dictionary Request + + + + Ignored Hint + + + + Manual Redaction + + + + Skipped + + + + Preview + + + + Request Add + + + + Request Remove + + + + Updated + + + + DEV + + + + Dictionaries + + + + Dictionary + + + + Delete Dictionary + + + + Edit Dictionary + + + + New Dictionary + + + + Delete Selected Dictionaries + + + + Case Sensitive + + + + New Dictionary + + + + There are no dictionaries yet. + + + + No dictionaries match your current filters. + + + + Search... + + + + Entries + + + + Types + + + + Hint/Redaction + + + + Rank + + + + Type + + + + {length} {length, plural, one{dictionary} other{dictionaries + }} + + + + Delete Dictionary + + + + Download Dictionary + + + + Edit Dictionary + + + + Upload Dictionary + + + + Compare + + + + Select Dictionary + + + + Select Dossier + + + + Select Dossier Template + + + + Description + + + + Some entries of the dictionary are below the minimum length of 2. These are highlighted with red! + + + + Something went wrong... Dictionary update failed! + + + + Revert + + + + Save Changes + + + + Search... + + + + Select a dictionary above to compare with the current one. + + + + Dictionary updated! + + + + Digital Signature + + + + Uploaded Certificate is not valid for signing PDFs. PCKS.12 format is required. + + + + Delete Digital Signature + + + + Failed to remove digital signature, please try again. + + + + Digital signature removed. Redacted files will no longer be signed! + + + + Reset + + + + Save Digital Signature + + + + Failed to save digital signature + + + + Digital signature saved successfully + + + + Certificate Name + + + + Certificate Name + + + + Contact Information + + + + Contact Information + + + + Location + + + + Location + + + + Upload Certificate + + + + No Digital Signature certificate is configured. For signing redacted documents please upload a PCKS.12 certificate. + + + + Certificate Password/Key + + + + Password + + + + Reason + + + + Reason + + + + Save Document Info + + + + Introduce File Attributes + + + + Dossier + + + + Date + + + + Image + + + + Number + + + + Free Text + + + + Dossier Attributes + + + + Delete Attribute + + + + Edit Attribute + + + + New Attribute + + + + Delete Selected Attributes + + + + New Attribute + + + + There are no dossier attributes. + + + + No attributes match your current filters. + + + + Search... + + + + Label + + + + Placeholder + + + + Type + + + + {length} dossier {length, plural, one{attribute} other{attributes + }} + + + + Assign Members + + + + Hide Details + + + + Edit Owner + + + + Show Details + + + + Members + + + + Owner + + + + See less + + + + Dossier Details + + + + New Dossier + + + + Delete Dossier + + + + Failed to delete dossier: {dossierName} + + + + Dossier Info + + + + Edit Dossier + + + + Dossier Name + + + + Dossier name... + + + + New Dossier + + + + You currently have no dossiers. + + + + No dossiers match your current filters. + + + + My Dossiers + + + + Other + + + + To Approve + + + + To Review + + + + Analyze entire dossier + + + + {count, plural, one{Page} other{Pages + }} + + + + {count, plural, one{Dossier} other{Dossiers + }} + + + + Total Documents + + + + Total users + + + + Name + + + + Workload + + + + Owner + + + + Status + + + + {length} active {length, plural, one{Dossier} other{Dossiers + }} + + + + Approve + + + + File can only be approved once it has been analysed with the latest dictionaries and all suggestions have been processed. + + + + Assign Approver + + + + Assign To Me + + + + Assign User + + + + Delete Documents + + + + Analyze Documents + + + + Delete File + + + + {count} custom {count, plural, one{attribute} other{attributes + }} + + + + Image uploaded + + + + show less + + + + Documents in Dossier + + + + Description + + + + Dossier Dictionary + + + + {count} {count, plural, one{page} other{pages + }} + + + + Created on {date} + + + + {count} deleted files + + + + {count} {count, plural, one{document} other{documents + }} + + + + Due {date} + + + + {count} {count, plural, one{user} other{users + }} + + + + {count} processing {count, plural, one{document} other{documents + }} + + + + Download + + + + You need to be approver in the dossier and the {count, plural, one{file + needs} other{files need}} to be approved in + order to download. + + + + Re-processing required + + + + Pending... + + + + Document Name + + + + Document name... + + + + Download CSV File Report + + + + Edit Dossier + + + + Upload Document + + + + Analyze all + + + + Upload Document + + + + There are no documents yet. + + + + No documents match your current filters. + + + + OCR Document + + + + OCR was performed for this file. + + + + Assigned to me + + + + Assigned to others + + + + Recent ({hours} h) + + + + Unassigned + + + + Failed to schedule files for reanalysis. Please try again. + + + + Files scheduled for reanalysis. + + + + Analyze File + + + + Added + + + + Assigned to + + + + Name + + + + Workload + + + + Pages + + + + Status + + + + {length} {length, plural, one{document} other{documents + }} + + + + For Approval + + + + Under Review + + + + Drag & drop files anywhere... + + + + Dossier Templates + + + + Delete Template + + + + Edit Template + + + + New Dossier Template + + + + Delete Selected Dossier Templates + + + + {length} {length, plural, one{dictionary} other{dictionaries + }} + + + + Cannot delete this DossierTemplate! At least one Dossier uses this template! + + + + Cannot delete this DossierTemplate! + + + + There are no dossier templates yet. + + + + No dossier templates match your current filters. + + + + Search... + + + + Created by + + + + Created on + + + + Modified on + + + + Name + + + + {length} dossier {length, plural, one{template} other{templates + }} + + + + Choose what is included at download: + + + + Your download has been queued, you can see all your requested downloads here: <a href='/ui/main/downloads'>My Downloads<a/>. + + + + Annotated PDF + + + + Flatten PDF + + + + {length} document {length, plural, one{version} other{versions + }} + + + + Optimized PDF + + + + Preview PDF + + + + Redacted PDF + + + + Delete + + + + Download + + + + Delete Selected Downloads + + + + No active downloads. + + + + Date + + + + Name + + + + Size + + + + Status + + + + {length} {length, plural, one{download} other{downloads + }} + + + + Failed to update colors. + + + + Color + + + + Color + + + + Save + + + + Successfully updated color for {color}. + + + + Revert + + + + Save + + + + Save & Close + + + + Custom Dossier Attributes + + + + Delete Image + + + + Only PNG, JPG and JPEG files are allowed as image dossier attributes. + + + + Image Attributes + + + + There are no text attributes + + + + There are no image attributes + + + + Upload Image + + + + Dossier {dossierName} was updated. + + + + Dossier {dossierName} was deleted. + + + + Delete Forever + + + + Restore + + + + Forever Delete Selected Documents + + + + Restore Selected Documents + + + + Deleted items can be restored up to {hours} hours from + their deletion + + + + There are no deleted documents. + + + + Assignee + + + + Deleted On + + + + Name + + + + Pages + + + + Status + + + + Time To Restore + + + + {length} deleted {length, plural, one{document} other{documents + }} + + + + Cancel + + + + Edit Display Name + + + + Failed to update dictionary display name. + + + + Enter Display Name + + + + Save Display Name + + + + Successfully updated dictionary display name. + + + + {length} {length, plural, one{entry} other{entries + }} + + + + Description + + + + Enter Description + + + + Due Date + + + + Dossier Name + + + + Enter Name + + + + Dossier Template + + + + Watermark application on redacted documents + + + + Watermark application on preview documents + + + + Edit {dossierName} + + + + Choose what is included at download: + + + + Deleted Documents + + + + Dictionary + + + + Dossier Attributes + + + + Dossier Dictionary + + + + Dossier Info + + + + Download Package + + + + General Information + + + + Members + + + + Team Members + + + + Configurations + + + + You have unsaved changes. Save or revert before changing the tab. + + + + Back to overview + + + + This dossier has been deleted! + + + + Back to overview + + + + The dossier of this file has been deleted! + + + + Back to dossier + + + + This file has been deleted! + + + + Action failed with code {status} + + + + Disconnected + + + + Reconnected + + + + Reload + + + + Oops! Something went wrong... + + + + {day} {month} {year} at {hour}: + {minute} + + + + File + + + + Date + + + + Number + + + + Free Text + + + + File Attributes + + + + Cancel + + + + Edit Name + + + + Remove + + + + Save + + + + {value} available + + + + Cancel + + + + CSV Column + + + + Delimiter + + + + , + + + + Encoding + + + + UTF-8 + + + + File: + + + + Key Column + + + + Select column... + + + + No file attributes defined. Select a column from the left panel to start defining file attributes. + + + + Preview CSV column by hovering the entry. + + + + No sample data for {column}. + + + + Parse CSV with new options + + + + All + + + + None + + + + Failed to create File Attributes! + + + + Save Attributes + + + + {count} file {count, plural, one{attribute} other{attributes}} created successfully! + + + + Search by column name... + + + + {value} selected + + + + Name + + + + primary + + + + The value of the attribute set as primary shows up under the file name in the documents list. + + + + Read-Only + + + + Type + + + + Disable Read-only for all attributes + + + + Enable Read-only for all attributes + + + + Make Read-only + + + + Remove Selected + + + + Type + + + + {length} file {length, plural, one{attribute} other{attributes + }} + + + + Select CSV columns to use as File Attributes + + + + {rows} rows in total + + + + Delete Attribute + + + + Edit Attribute + + + + New Attribute + + + + Delete Selected Attributes + + + + File-Attribute with this name already exists! + + + + Failed to add File-Attribute + + + + There are no file attributes yet. + + + + No file attributes match your current filters. + + + + Read-only + + + + Search by attribute name... + + + + CSV Column + + + + Displayed in File List + + + + Filterable + + + + Name + + + + Primary + + + + The value of the attribute set as primary shows up under the file name in the documents list. + + + + Read-Only + + + + Input Type + + + + {length} file {length, plural, one{attribute} other{attributes + }} + + + + Upload File Attributes Configuration + + + + Assign to me + + + + Assign User + + + + Change User + + + + Delta + + + + Delta View shows only the changes since last re-analysis. This view is only available if there is at least 1 change + + + + Your Document Info lives here. This includes metadata required on each document. + + + + Download Original File + + + + Exclude pages from redaction + + + + excluded + + + + Full Screen (F) + + + + Last Reviewed by: + + + + There are no annotations on this page. + + + + Jump to first page + + + + Jump to last page + + + + This document was not processed with the latest rule/dictionary set. Analyze now to get updated annotations. + + + + Preview + + + + Redaction preview shows only redactions. Consider this a preview for the final redacted version. This view is only available if the file has no pending changes & doesn't require a reanalysis + + + + Standard + + + + Standard Workload view shows all hints, redactions, recommendations & suggestions. This view allows editing. + + + + Jump to Next + + + + Jump to Previous + + + + Workload + + + + This page is + + + + Select + + + + All + + + + None + + + + Close Document Info + + + + Created on: {date} + + + + in {dossierName} + + + + Due: {date} + + + + {pages} pages + + + + Edit Document Info + + + + Document Info + + + + Close + + + + Error! Invalid page selection. + + + + Minus (-) for range and comma (,) for enumeration. + + + + e.g. 1-20,22,32 + + + + Exclude Pages + + + + No excluded pages. + + + + Undo + + + + Removed from redaction + + + + Redaction is disabled for this document. + + + + Disable redaction + + + + Enable for redaction + + + + Enabling / disabling is permitted only for managers + + + + Approved + + + + Deleted + + + + Re-processing required + + + + Processing + + + + Image Analyzing + + + + Processing + + + + New + + + + OCR Processing + + + + Processed + + + + Processing... + + + + Processing + + + + Unassigned + + + + Under Approval + + + + Under Review + + + + Unprocessed + + + + Filter options + + + + Filter + + + + Filter + + + + Only annotations with redaction changes + + + + Only annotations on unseen pages + + + + Only annotations with comments + + + + Analysis pending + + + + Comments + + + + Hints only + + + + Images + + + + No Annotations + + + + Redacted + + + + Suggested Redaction + + + + Updated + + + + Assignee(s) + + + + Dossier Templates + + + + Empty + + + + Filter: + + + + Workload + + + + Dossier Member(s) + + + + Status + + + + Save Configurations + + + + Test Connection + + + + Environment + + + + RedactManager + + + + Enable Authentication + + + + Change Credentials + + + + Envelope From + + + + Info text regarding envelope from field. + + + + Sender Envelope Email Address + + + + From + + + + Name for Sender + + + + Info text regarding the name for sender. + + + + Display Name for Sender Email Address + + + + Sender Email Address + + + + Host + + + + SMTP Host + + + + Port + + + + Reply To + + + + Name for Reply To + + + + Display Name for Reply To Email Address + + + + Reply To Email Address + + + + Enable SSL + + + + Enable StartTLS + + + + Show Forgot password link on Login screen + + + + General Configurations + + + + SMTP (Simple Mail Transfer Protocol) enables you to send your emails through the specified server settings. + + + + Test email could not be sent! Please revise the email address. + + + + Test email was sent successfully! + + + + Configure SMTP Account + + + + Help Mode (H) + + + + <b> Clicking anywhere on the screen </b> will show you which areas are interactive. Hovering an interactive area will <b> change the mouse cursor </b> to let you know if the element is interactive. + + + + Open Help Mode Instructions + + + + Help Mode + + + + <b> Welcome to Help Mode! <br> Clicking on interactive elements will open info about them in new tab. </b> + + + + Hint + + + + Formula + + + + Image + + + + Logo + + + + Signature + + + + Unassigned + + + + You + + + + Justifications + + + + Delete Justification + + + + Edit Justification + + + + Add New Justification + + + + Delete Selected Justifications + + + + There are no justifications yet. + + + + Description + + + + Name + + + + Legal Basis + + + + {length} {length, plural, one{justification} other{justifications + }} + + + + Analyzed Pages + + + + Backend Application Version + + + + Cumulative Pages + + + + Legend + + + + Licensed Total + + + + Pages per Month + + + + Total Pages + + + + Copyright © 2020 - {currentYear} knecon AG (powered by + IQSER) + + + + Copyright Claim + + + + Analyzed Pages in Current Licensing Period + + + + Custom Application Title + + + + Email Report + + + + Total Analyzed Pages in current license period: {pages}. + + + + Licensed Pages: {pages}. + + + + License Report {licenseCustomer} + + + + The use of this product is subject to the terms of the Redaction End User Agreement, unless otherwise specified therein. + + + + End User License Agreement + + + + Number of licensed pages + + + + Licensed to + + + + Licensing Details + + + + Licensing Period + + + + OCR Analyzed Pages + + + + Total Analyzed Pages Since {date} + + + + Unlicensed Analyzed Pages + + + + Usage Details + + + + License Information + + + + Save + + + + Value / Classification + + + + Comment + + + + Dictionary + + + + Legal Basis + + + + Reason + + + + Select a reason ... + + + + Custom Rectangle + + + + Paragraph / Location + + + + Selected text: + + + + Add to dictionary + + + + Set false positive + + + + Force Hint + + + + Force Redaction + + + + Redaction + + + + Request add to dictionary + + + + Request false positive + + + + Request Redaction + + + + Apr. + + + + Aug. + + + + Dec. + + + + Feb. + + + + Jan. + + + + Jul. + + + + Jun. + + + + Mar. + + + + May + + + + Nov. + + + + Oct. + + + + Sep. + + + + You have been assigned as approver for <b><a href="{fileHref}" + target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + + + + You have been assigned as reviewer for <b><a href="{fileHref}" + target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + + + + <b><a href="{fileHref}" target="_blank">{fileName}</a></b> has been approved! + + + + Dossier: <b>{dossierName}</b> has been + deleted! + + + + <b><a href="{dossierHref}" target="_blank">{dossierName}</a></b> owner removed! + + + + <b><a href="{dossierHref}" + target="_blank">{dossierName}</a></b> owner changed to <b>{user}</b>! + + + + Your <b><a href='/ui/main/downloads', target="_blank">download</a></b> is ready! + + + + You currently have no notifications + + + + You have been unassigned from <b><a href="{fileHref}" + target="_blank">{fileName}</a></b> in dossier: <b><a href="{dossierHref}" target="_blank">{dossierName}</a><b>! + + + + You have been added to dossier: <b><a href="{dossierHref}" + target="_blank">{dossierName}</a></b>! + + + + You have been demoted to reviewer in dossier: <b><a href="{dossierHref}" + target="_blank">{dossierName}</a></b>! + + + + You have been promoted to approver in dossier: <b><a href="{dossierHref}" + target="_blank">{dossierName}</a></b>! + + + + You have been removed as a member from dossier: <b><a href="{dossierHref}" + target="_blank">{dossierName}</a></b> ! + + + + Notifications + + + + Email Notifications + + + + In-App Notifications + + + + Something went wrong... Preferences update failed! + + + + Document related notifications + + + + Dossier related notifications + + + + Other notifications + + + + Choose on which action you want to be notified + + + + When I am assigned to a document as Approver + + + + When I am assigned to a document as Reviewer + + + + When the document status changes to Approved + + + + When the document status changes to Under Approval + + + + When the document status changes to Under Review + + + + When a dossier was deleted + + + + When the owner of a dossier got deleted + + + + When I loose dossier ownership + + + + When I become the dossier owner + + + + When a download is ready + + + + When I am unassigned from a document + + + + When a user was added to my dossier + + + + When I become a Reviewer in a dossier + + + + When I become an Approver in a dossier + + + + When I loose dossier membership + + + + Daily Summary + + + + Instant + + + + Weekly Summary + + + + Notifications Preferences + + + + Cancel all uploads + + + + Replace existing document + + + + Remember choice and don't ask me again + + + + Keep existing document + + + + <b>{filename}</b> already exists. Choose how + to proceed: + + + + Document already exists! + + + + Page + + + + Next + + + + Prev + + + + Search for selection + + + + {active, select, true{Disable} false{Enable} other{}} annotation tooltips + + + + WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes. + + + + Read only + + + + Cancel + + + + Save Changes + + + + Comment + + + + Select image type + + + + Select a type... + + + + Edit Image Type + + + + Redaction + + + + Cancel + + + + Yes, proceed and remove! + + + + Dictionary + + + + Image: {typeLabel} + + + + Following entries will be removed from their respective dictionaries: + + + + Remove From Dictionary + + + + Following redactions will be removed only here: + + + + Remove Redaction + + + + Value + + + + {length} report {length, plural, one{type} other{types + }} + + + + Reports + + + + A short text explaining how to create report documents. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. + + + + This placeholder gets replaced with the value of the dossier attribute <code>{attribute}</code>. + + + + This placeholder gets replaced with the value of the file attribute <code>{attribute}</code>. + + + + This placeholder is replaced by the creation date of the report in the common day-month-year notation (dd.MM.yyyy), e.g. 15.10.2021. + + + + This placeholder gets replaced by the creation date of the report in the American all-numeric date format (MM/dd/yyyy), e.g. 10/15/2021. + + + + This placeholder is replaced by the creation date of the report in the international ISO 8601 format (yyyy-MM-dd), e.g. 2021-10-15. + + + + This placeholder is replaced by the name of the dossier in which the redacted files are stored. + + + + This placeholder is replaced by the file name. + + + + This placeholder is replaced by a text snippet that contains the redaction. + + + + This placeholder is replaced by the justification of the redaction. It is a combination of the legal reference (justificationParagraph) and the justification text (justificationReason). + + + + This placeholder is replaced by the legal reference of the justification of the redaction. + + + + This placeholder is replaced by the justification text of the redaction. + + + + This placeholder is replaced by the page number of the redaction. + + + + This placeholder is replaced by the paragraph that contains the redaction. + + + + This placeholder is replaced by the time the report was created. + + + + A short text explaining what placeholders are and how to use them in your report template. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. + + + + Document Setup + + + + Invalid format selected for Upload! Supported formats are XLSX and DOCX + + + + (Multi-file) + + + + Report Documents + + + + Description + + + + Placeholders + + + + Reports + + + + Upload a Document + + + + Reset + + + + Cancel + + + + Save + + + + Failed to reset password. The new password doesn't match the password policy. + + + + Temporary password + + + + Set Temporary Password for {userName} + + + + Cancel + + + + Save Changes + + + + Comment + + + + Resize Redaction + + + + Inactive + + + + Manager & Admin + + + + No role defined + + + + Application Admin + + + + Manager + + + + User + + + + Users Admin + + + + Regular + + + + Rule Editor + + + + Something went wrong... Rules update failed! + + + + Revert + + + + Save Changes + + + + Rules updated! + + + + Assignee + + + + Document + + + + Dossier + + + + Pages + + + + Status + + + + Filter by Dossier + + + + Dossier name... + + + + Missing + + + + Must contain + + + + Please enter a keyword into the search bar to look for documents or document content. + + + + No documents match your current filters. + + + + {length} search {length, plural, one{result} other{results + }} + + + + across all dossiers + + + + Search documents... + + + + in this dossier + + + + Cancel + + + + Save Credentials + + + + Password + + + + Username + + + + Login Username + + + + Enable Authentication + + + + {days} {days, plural, one{day} other{days + }} + + + + {hours} {hours, plural, one{hour} other{hours + }} + + + + < 1 hour + + + + Time to restore already passed + + + + Back + + + + Active Dossiers + + + + Account + + + + Settings + + + + My Downloads + + + + German + + + + English + + + + Language + + + + Logout + + + + Trash + + + + Delete Forever + + + + Restore + + + + Forever Delete Selected Dossiers + + + + Restore Selected Dossiers + + + + Trash + + + + There are no dossiers yet. + + + + No dossiers match your current filters. + + + + Deleted on + + + + Name + + + + Owner + + + + Time to restore + + + + {length} deleted {length, plural, one{dossier} other{dossiers + }} + + + + Type + + + + Unknown + + + + Cancel + + + + Merge entries + + + + Overwrite + + + + Choose how you want to proceed: + + + + The dictionary already has entries! + + + + Cancel Upload + + + + Retry Upload + + + + File Uploads ({len}) + + + + File too large. Limit is {size}MB. + + + + Failed to upload file. + + + + Delete User + + + + Edit User + + + + New User + + + + Delete Users + + + + You cannot delete your own account. + + + + No users match your current filters. + + + + Search... + + + + Active + + + + Email + + + + Name + + + + Roles + + + + {length} {length, plural, one{user} other{users + }} + + + + User Management + + + + My Profile + + + + Change Password + + + + Save Changes + + + + Email + + + + First name + + + + Last name + + + + Edit Profile + + + + Users in Workspace + + + + Hide Details + + + + Show Details + + + + Users + + + + List + + + + View as: + + + + Workflow + + + + Watermark + + + + Watermark updated! + + + + Watermark deleted. + + + + Failed to update Watermark + + + + Revert + + + + Save Changes + + + + Color + + + + Font Size + + + + Font Type + + + + Opacity + + + + Orientation + + + + Enter text + + + + Watermark + + + + All + + + + {count} selected + + + + None + + + + Select + + + + Yesterday + + + +
+
diff --git a/yarn.lock b/yarn.lock index 61578f11f..9335f42c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14130,6 +14130,20 @@ ws@^8.1.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.3.0.tgz#7185e252c8973a60d57170175ff55fdbd116070d" integrity sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw== +xliff@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/xliff/-/xliff-6.0.0.tgz#4f32ec481e6272af0020cbe6b1d57030647bec8d" + integrity sha512-N058dhmntriq/8BZw8HGWuseFoBjT+hRq0ETi4i+ioPraSay0LkpSr8lW7pB7NdbulqrYoA7Uu0X8t+Plu7GCQ== + dependencies: + xml-js "1.6.11" + +xml-js@1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" From 73b7c3e95bbfe777c25656f0d6caf25cb3385287 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 17 Jan 2022 19:57:10 +0200 Subject: [PATCH 44/97] fixed annotation multi-select issues --- .../table-item/file-workload/file-workload.component.html | 7 ++++++- .../table-item/file-workload/file-workload.component.ts | 7 ++++++- .../annotations-list/annotations-list.component.ts | 1 + .../file-preview-screen/file-preview-screen.component.ts | 6 +++++- apps/red-ui/src/assets/config/config.json | 4 ++-- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/file-workload/file-workload.component.html b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/file-workload/file-workload.component.html index f5d0bc0e4..9ae92f1b8 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/file-workload/file-workload.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/file-workload/file-workload.component.html @@ -1,6 +1,11 @@
- + diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/file-workload/file-workload.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/file-workload/file-workload.component.ts index 0b69ee12a..cd7ceaddc 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/file-workload/file-workload.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/table-item/file-workload/file-workload.component.ts @@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; import { File } from '@red/domain'; import { DossiersService } from '@services/entity-services/dossiers.service'; +import { UserService } from '../../../../../../../services/user.service'; @Component({ selector: 'redaction-file-workload', @@ -12,7 +13,11 @@ import { DossiersService } from '@services/entity-services/dossiers.service'; export class FileWorkloadComponent { @Input() file: File; - constructor(private readonly _appStateService: AppStateService, private readonly _dossiersService: DossiersService) {} + constructor( + public readonly userService: UserService, + private readonly _appStateService: AppStateService, + private readonly _dossiersService: DossiersService, + ) {} get suggestionColor() { return this._getDictionaryColor('suggestion'); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotations-list/annotations-list.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotations-list/annotations-list.component.ts index 437b31c31..c26966bdb 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotations-list/annotations-list.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/annotations-list/annotations-list.component.ts @@ -41,6 +41,7 @@ export class AnnotationsListComponent implements OnChanges { if (this.canMultiSelect && ($event.ctrlKey || $event.metaKey) && this.selectedAnnotations.length > 0) { this.multiSelectService.activate(); } + console.log('emit', annotation); this.selectAnnotations.emit([annotation]); } } diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 4e508e83f..60812e67a 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -278,7 +278,8 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni @Debounce(10) selectAnnotations(annotations?: AnnotationWrapper[]) { if (annotations) { - this.viewerComponent?.utils?.selectAnnotations(annotations, this.multiSelectService.isActive); + const annotationsToSelect = this.multiSelectService.isActive ? [...this.selectedAnnotations, ...annotations] : annotations; + this.viewerComponent?.utils?.selectAnnotations(annotationsToSelect, this.multiSelectService.isActive); } else { this.viewerComponent?.utils?.deselectAllAnnotations(); } @@ -413,6 +414,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } async annotationsChangedByReviewAction(annotation: AnnotationWrapper) { + this.multiSelectService.deactivate(); await this._reloadAnnotationsForPage(annotation?.pageNumber || this.activeViewerPage); } @@ -655,6 +657,8 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni const oldPageSpecificFilters = this._annotationProcessingService.getAnnotationFilter(currentPageAnnotations); const newPageSpecificFilters = this._annotationProcessingService.getAnnotationFilter(newPageAnnotations); + + console.log(currentPageAnnotations, newPageAnnotations); handleFilterDelta(oldPageSpecificFilters, newPageSpecificFilters, primaryFilters); this._filterService.addFilterGroup({ ...primaryFilterGroup, diff --git a/apps/red-ui/src/assets/config/config.json b/apps/red-ui/src/assets/config/config.json index 01c7d5793..06d1f5e73 100644 --- a/apps/red-ui/src/assets/config/config.json +++ b/apps/red-ui/src/assets/config/config.json @@ -1,7 +1,7 @@ { "ADMIN_CONTACT_NAME": null, "ADMIN_CONTACT_URL": null, - "API_URL": "https://dev-04.iqser.cloud/redaction-gateway-v1", + "API_URL": "https://aks-staging.iqser.cloud/redaction-gateway-v1", "APP_NAME": "RedactManager", "AUTO_READ_TIME": 3, "BACKEND_APP_VERSION": "4.4.40", @@ -17,7 +17,7 @@ "MAX_RETRIES_ON_SERVER_ERROR": 3, "OAUTH_CLIENT_ID": "redaction", "OAUTH_IDP_HINT": null, - "OAUTH_URL": "https://dev-04.iqser.cloud/auth/realms/redaction", + "OAUTH_URL": "https://aks-staging.iqser.cloud/auth/realms/redaction", "RECENT_PERIOD_IN_HOURS": 24, "SELECTION_MODE": "structural" } From bc8eab3e9226cf282a4a9cf8ce41925df2c85159 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Mon, 17 Jan 2022 19:04:27 +0100 Subject: [PATCH 45/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3215 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2e64f5e31..1c16663a3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.161.0", + "version": "3.162.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 1572fc6e230a4c9cf902b283d82f873dd6f959a2..cf00da565b72f14d8576d6f59aaf5227223201c3 100644 GIT binary patch delta 3126 zcmV-649WA48IBo{cYkx2_QHK-J9c3EuTb!VP%~&v&2WX#kFnIxvCVb;%O5p+%1Hfv zS;Oi2_dMu2>;Fe+d-Y$D7)MNw&7->hur;`X7ygv~JqOg?>wn=cLH~=uhy8DVzpR?u zFI@j`q7+v(Vd(O&Uw>h(F7Gbh&}~^%3^i4Db(u0&*6W*_q<_d+J>L|?CL_3{^*k!J zH((I%?-IPF+0!R~E=m5|uW(+kDZ|<9VUw~q_6)Z1ojvo#-$49bh`&qmcLjePF~<>e z95Kfca~v_p;d6cy)4I&?(vc$yq9Ot^#L@kxDw;gDq9QA*HTuY1d9Lq_;ZW)b5H1X>rtioa zEquO!?0S&Pa*m)cqdBoUQdY}$;ucpMnp>_oImGU+iP#pVlATV9L z*^-!IROHzcs-udK9N|1hSIQPy^8I!#aGCeDra|9rMb%S>PI6mIKelsccp;gVSD5cWb2r;zsfpu@dgmUCgf}_;mSumq4BeRK#;MOA1!-}Y#IgF+5 z>d08?E%Z=lpFkeMClH8@j{bzTTK9Fzii*P1P}gFbfX zKSUp?kNBRNvI&rd>R!fy;KKr)$zkquifu3x2##?Y1GmxTo;)1he2hM)c}6H}@(ud< z=3)-WERX=nEXU|cFaMFa%jKou7NGxLRQE|%JPcsnDOfvldf2~#W||txn|H7{NPkL4 z;Z31%?Asp2XC!afJ5p^){{B0zU}Tk5ku zYR+Hv>wH;c8LY!)_8FqFT~ib`s?>Qc&JE zpjJju2pMMxCd#FS155(^J$7%EV7E84iS2oqr^UD?mpE84RR5#+<8=#Pk-XL!;EV;t{!v+ zyxs!6tt*%;1}uwyQ-g-eiURMDk%>JSW{o&c8H`%hCIs$Wdxl(3{P9h*+%{^ETO;5hh4t1*d}z2ba21?m_)z<^)=Eb6 zYXVLLGrq|{9Qew07a$II#bpA5vFEqf>hy0K8r@rvvN7TKT1T!NSa$O^6?uZ3RIRwQ zA(u1dw~=Ttsew zf`|mS+GT+9~nLY+v3gK`sHj|9Uid3&VcJ6)`I81YYP2fbU1-_jMa9A~fG*Pi5L)EeIP3R!*Q`xj5fRR!D=6WSg&YVM*D3=j^(67_x1R9!rzE=l!8Mb5qoW3W zBTV{V<5|Z@r7K;&sO+dKHR4Kzwo;PTntzSH$V5m|{a2|w7q|C$b8&cUcycmn7sIXi z+~H_HfXVo2u;MOf>rw_I#2RF9CGVMv#9~h+xgKYc{n4bj6f44i0+Z91kLsk($L>3z z?c9-)A3#CI_Zk-p7*>1w;M+4u1!iaw@S_LEzaA|HnkzNo8yuF zh{?GP3`GEr4PqtEI;2fr6Sj+_MK)`{3@?ba=%w6H|16#`DD<50azW+7^k6|9|H0oW z>?KA7;{)VOrfvr?_d)Ow{+GN#P;npe^gx|H`QkvIblgLO0nCx_3kKx8_*uaa-%B!R zUAx^Qf&rg<-wvE2$i6^7NszriE`O^cA~9H>DADFMBjtftw-YIzV@grRveU)ipF@1p zkh*^(XRMI=8LttGN5N6tf7v3=AjABT1iM;RKCkTEXhI+PK9ohLEMnRajn)hnBdo`~ z|8<#&kLI1Z=iXE@-@eseqf7o;8}ZlLmorquhgFk`3cvdkABzh1QfG$5mw!2YlU;7# z<#t_O-{o~(e&6MHT|wU!bX|+SYazSJ?z19emvx-zTH231jGdTz+8OL5k`F$59Z7!} z`c8cA{ybLR5M%eu_8`VU!>H(fh|xP1qwlF071McPz<(ZF-YDrit!R)K$GPLa;3GiH z5v&_Ly8N9)kQ7lfb?N<6|1YmC=XP%Ac5df(Zs&Gx=XP%Ac5df(Zs&Gx=XP%Ac5df( QZok;}f2;H`UjR@509wfkQ~&?~ delta 3127 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 From 2e8c73d21a96a2eeab96a84e876f543466e2cb1b Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 17 Jan 2022 20:26:17 +0200 Subject: [PATCH 46/97] annotation filter expansion --- .../file-preview-screen.component.ts | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 60812e67a..45c33001a 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -538,8 +538,9 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni .pipe(filter(file => file.fileId === this.fileId)) .subscribe(async file => { if (file.lastProcessed !== this.fileData?.file.lastProcessed) { + const previousAnnotations = this.visibleAnnotations; await this._loadFileData(file); - await this._reloadAnnotations(); + await this._reloadAnnotations(previousAnnotations); } this._loadingService.stop(); }); @@ -591,13 +592,9 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni this._workloadComponent?.scrollAnnotations(); } - private async _reloadAnnotations() { - this.fileData.redactionLog = await this._fileDownloadService.loadRedactionLogFor(this.dossierId, this.fileId).toPromise(); - this._instance.Core.annotationManager.deleteAnnotations(this._instance.Core.annotationManager.getAnnotationsList(), { - imported: true, - force: true, - }); - await this._cleanupAndRedrawAnnotations(); + private async _reloadAnnotations(previousAnnotations?: AnnotationWrapper[]) { + this._deleteAnnotations(); + await this._cleanupAndRedrawAnnotations(previousAnnotations); } private async _reloadAnnotationsForPage(page: number) { @@ -612,22 +609,32 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni const currentPageAnnotations = this.visibleAnnotations.filter(a => a.pageNumber === page); this.fileData.redactionLog = await this._fileDownloadService.loadRedactionLogFor(this.dossierId, this.fileId).toPromise(); + this._deleteAnnotations(currentPageAnnotations); await this._cleanupAndRedrawAnnotations(currentPageAnnotations, annotation => annotation.pageNumber === page); } + private _deleteAnnotations(annotationsToDelete?: AnnotationWrapper[]) { + if (!annotationsToDelete) { + this._instance.Core.annotationManager.deleteAnnotations(this._instance.Core.annotationManager.getAnnotationsList(), { + imported: true, + force: true, + }); + } + annotationsToDelete?.forEach(annotation => { + this._findAndDeleteAnnotation(annotation.id); + }); + } + private async _cleanupAndRedrawAnnotations( - annotationsToDelete?: AnnotationWrapper[], + currentAnnotations?: AnnotationWrapper[], newAnnotationsFilter?: (annotation: AnnotationWrapper) => boolean, ) { this.rebuildFilters(); if (this.viewModeService.viewMode === 'STANDARD') { const startTime = new Date().getTime(); - annotationsToDelete?.forEach(annotation => { - this._findAndDeleteAnnotation(annotation.id); - }); - const newAnnotations = newAnnotationsFilter ? this.allAnnotations.filter(newAnnotationsFilter) : this.allAnnotations; - this._handleDeltaAnnotationFilters(annotationsToDelete ?? [], newAnnotations); + const newAnnotations = newAnnotationsFilter ? this.visibleAnnotations.filter(newAnnotationsFilter) : this.visibleAnnotations; + this._handleDeltaAnnotationFilters(currentAnnotations ?? [], newAnnotations); await this._redrawAnnotations(newAnnotations); console.log( `[REDACTION] Annotations redraw time: ${new Date().getTime() - startTime} ms for ${newAnnotations.length} annotations`, @@ -658,7 +665,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni const oldPageSpecificFilters = this._annotationProcessingService.getAnnotationFilter(currentPageAnnotations); const newPageSpecificFilters = this._annotationProcessingService.getAnnotationFilter(newPageAnnotations); - console.log(currentPageAnnotations, newPageAnnotations); handleFilterDelta(oldPageSpecificFilters, newPageSpecificFilters, primaryFilters); this._filterService.addFilterGroup({ ...primaryFilterGroup, From 58c754f417a8df5ba0f5af26e97f3d3c9cd71287 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Mon, 17 Jan 2022 19:30:08 +0100 Subject: [PATCH 47/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3215 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1c16663a3..896cddb56 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.162.0", + "version": "3.163.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index cf00da565b72f14d8576d6f59aaf5227223201c3..163cfcb495c79c9a856f6e1dbacc9d2dc04e22e7 100644 GIT binary patch delta 3127 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 Rx&30>{{acyk(vNd001nnD8T># delta 3126 zcmV-649WA48IBo{cYkx2_QHK-J9c3EuTb!VP%~&v&2WX#kFnIxvCVb;%O5p+%1Hfv zS;Oi2_dMu2>;Fe+d-Y$D7)MNw&7->hur;`X7ygv~JqOg?>wn=cLH~=uhy8DVzpR?u zFI@j`q7+v(Vd(O&Uw>h(F7Gbh&}~^%3^i4Db(u0&*6W*_q<_d+J>L|?CL_3{^*k!J zH((I%?-IPF+0!R~E=m5|uW(+kDZ|<9VUw~q_6)Z1ojvo#-$49bh`&qmcLjePF~<>e z95Kfca~v_p;d6cy)4I&?(vc$yq9Ot^#L@kxDw;gDq9QA*HTuY1d9Lq_;ZW)b5H1X>rtioa zEquO!?0S&Pa*m)cqdBoUQdY}$;ucpMnp>_oImGU+iP#pVlATV9L z*^-!IROHzcs-udK9N|1hSIQPy^8I!#aGCeDra|9rMb%S>PI6mIKelsccp;gVSD5cWb2r;zsfpu@dgmUCgf}_;mSumq4BeRK#;MOA1!-}Y#IgF+5 z>d08?E%Z=lpFkeMClH8@j{bzTTK9Fzii*P1P}gFbfX zKSUp?kNBRNvI&rd>R!fy;KKr)$zkquifu3x2##?Y1GmxTo;)1he2hM)c}6H}@(ud< z=3)-WERX=nEXU|cFaMFa%jKou7NGxLRQE|%JPcsnDOfvldf2~#W||txn|H7{NPkL4 z;Z31%?Asp2XC!afJ5p^){{B0zU}Tk5ku zYR+Hv>wH;c8LY!)_8FqFT~ib`s?>Qc&JE zpjJju2pMMxCd#FS155(^J$7%EV7E84iS2oqr^UD?mpE84RR5#+<8=#Pk-XL!;EV;t{!v+ zyxs!6tt*%;1}uwyQ-g-eiURMDk%>JSW{o&c8H`%hCIs$Wdxl(3{P9h*+%{^ETO;5hh4t1*d}z2ba21?m_)z<^)=Eb6 zYXVLLGrq|{9Qew07a$II#bpA5vFEqf>hy0K8r@rvvN7TKT1T!NSa$O^6?uZ3RIRwQ zA(u1dw~=Ttsew zf`|mS+GT+9~nLY+v3gK`sHj|9Uid3&VcJ6)`I81YYP2fbU1-_jMa9A~fG*Pi5L)EeIP3R!*Q`xj5fRR!D=6WSg&YVM*D3=j^(67_x1R9!rzE=l!8Mb5qoW3W zBTV{V<5|Z@r7K;&sO+dKHR4Kzwo;PTntzSH$V5m|{a2|w7q|C$b8&cUcycmn7sIXi z+~H_HfXVo2u;MOf>rw_I#2RF9CGVMv#9~h+xgKYc{n4bj6f44i0+Z91kLsk($L>3z z?c9-)A3#CI_Zk-p7*>1w;M+4u1!iaw@S_LEzaA|HnkzNo8yuF zh{?GP3`GEr4PqtEI;2fr6Sj+_MK)`{3@?ba=%w6H|16#`DD<50azW+7^k6|9|H0oW z>?KA7;{)VOrfvr?_d)Ow{+GN#P;npe^gx|H`QkvIblgLO0nCx_3kKx8_*uaa-%B!R zUAx^Qf&rg<-wvE2$i6^7NszriE`O^cA~9H>DADFMBjtftw-YIzV@grRveU)ipF@1p zkh*^(XRMI=8LttGN5N6tf7v3=AjABT1iM;RKCkTEXhI+PK9ohLEMnRajn)hnBdo`~ z|8<#&kLI1Z=iXE@-@eseqf7o;8}ZlLmorquhgFk`3cvdkABzh1QfG$5mw!2YlU;7# z<#t_O-{o~(e&6MHT|wU!bX|+SYazSJ?z19emvx-zTH231jGdTz+8OL5k`F$59Z7!} z`c8cA{ybLR5M%eu_8`VU!>H(fh|xP1qwlF071McPz<(ZF-YDrit!R)K$GPLa;3GiH z5v&_Ly8N9)kQ7lfb?N<6|1YmC=XP%Ac5df(Zs&Gx=XP%Ac5df(Zs&Gx=XP%Ac5df( QZok;}f2;H`UjR@509wfkQ~&?~ From 0f2c40677cbaa8977fa5f413bd0d19f987591a11 Mon Sep 17 00:00:00 2001 From: Edi Cziszter Date: Tue, 18 Jan 2022 11:02:06 +0200 Subject: [PATCH 48/97] pass fileName to confirmation dialog --- .../modules/admin/screens/reports/reports-screen.component.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts index 55e61d9a6..791e5d5c1 100644 --- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.ts @@ -99,6 +99,9 @@ export class ReportsScreenComponent implements OnInit { question: _('confirmation-dialog.report-template-same-name.question'), confirmationText: _('confirmation-dialog.report-template-same-name.confirmation-text'), denyText: _('confirmation-dialog.report-template-same-name.deny-text'), + translateParams: { + fileName: file.name, + }, }); this._dialogService.openDialog('confirm', null, data, null, async result => { From 1e569999ab79daadd1092c28042766dab3314d27 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Tue, 18 Jan 2022 10:12:17 +0100 Subject: [PATCH 49/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3215 -> 3215 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 896cddb56..87056bdc0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.163.0", + "version": "3.164.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 163cfcb495c79c9a856f6e1dbacc9d2dc04e22e7..30aa6ee138b07f5e56cecff096a46dda5ed0c452 100644 GIT binary patch delta 3128 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 From 3f00ec4e48f4295120467b14a650a39907466c92 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Tue, 18 Jan 2022 10:58:14 +0200 Subject: [PATCH 50/97] fixed compare-mode to not be linked to view-mode, enabled for all users --- .../pdf-viewer/pdf-viewer.component.ts | 56 +++++++++---------- .../file-preview-screen.component.ts | 6 +- .../services/view-mode.service.ts | 18 ++++-- libs/red-domain/src/lib/shared/view-mode.ts | 2 +- 4 files changed, 44 insertions(+), 38 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts index 1cb6893be..a60280479 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts @@ -161,7 +161,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { this.instance, this.file, () => { - this.viewModeService.set('COMPARE'); + this.viewModeService.compareMode = true; }, () => { this.utils.navigateToPage(1); @@ -198,7 +198,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { } async closeCompareMode() { - this.viewModeService.set('STANDARD'); + this.viewModeService.compareMode = false; const pdfNet = this.instance.Core.PDFNet; await pdfNet.initialize(environment.licenseKey ? atob(environment.licenseKey) : null); const currentDocument = await pdfNet.PDFDoc.createFromBuffer(await this.fileData.arrayBuffer()); @@ -390,36 +390,34 @@ export class PdfViewerComponent implements OnInit, OnChanges { const originalHeaderItems = header.getItems(); originalHeaderItems.splice(8, 0, ...headerItems); - if (this._userPreferenceService.areDevFeaturesEnabled) { - const devHeaderItems = [ - { - type: 'actionButton', - element: 'compare', - dataElement: dataElements.COMPARE_BUTTON, - img: this._convertPath('/assets/icons/general/pdftron-action-compare.svg'), - title: 'Compare', - onClick: () => { - this.compareFileInput.nativeElement.click(); - }, + const compareHeaderItems = [ + { + type: 'actionButton', + element: 'compare', + dataElement: dataElements.COMPARE_BUTTON, + img: this._convertPath('/assets/icons/general/pdftron-action-compare.svg'), + title: 'Compare', + onClick: () => { + this.compareFileInput.nativeElement.click(); }, - { - type: 'actionButton', - element: 'closeCompare', - dataElement: dataElements.CLOSE_COMPARE_BUTTON, - img: this._convertPath('/assets/icons/general/pdftron-action-close-compare.svg'), - title: 'Leave Compare Mode', - onClick: async () => { - await this.closeCompareMode(); - }, + }, + { + type: 'actionButton', + element: 'closeCompare', + dataElement: dataElements.CLOSE_COMPARE_BUTTON, + img: this._convertPath('/assets/icons/general/pdftron-action-close-compare.svg'), + title: 'Leave Compare Mode', + onClick: async () => { + await this.closeCompareMode(); }, - { - type: 'divider', - dataElement: dataElements.COMPARE_TOOL_DIVIDER, - }, - ]; + }, + { + type: 'divider', + dataElement: dataElements.COMPARE_TOOL_DIVIDER, + }, + ]; - originalHeaderItems.splice(9, 0, ...devHeaderItems); - } + originalHeaderItems.splice(9, 0, ...compareHeaderItems); }); this.instance.UI.disableElements([dataElements.CLOSE_COMPARE_BUTTON]); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 45c33001a..c387b3130 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -154,7 +154,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } private get _canPerformAnnotationActions$() { - return combineLatest([this.file$, this.viewModeService.viewMode$]).pipe( + return combineLatest([this.file$, this.viewModeService.viewMode$, this.viewModeService.compareMode$]).pipe( map(([file, viewMode]) => this.permissionsService.canPerformAnnotationActions(file) && viewMode === 'STANDARD'), shareDistinctLast(), ); @@ -208,7 +208,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni if (!file.canBeOpened) { return this._router.navigate([this._dossiersService.find(this.dossierId)?.routerLink]); } - this.viewModeService.set('STANDARD'); + this.viewModeService.viewMode = 'STANDARD'; await this.ngOnInit(); this._lastPage = previousRoute.queryParams.page; @@ -425,7 +425,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } async switchView(viewMode: ViewMode) { - this.viewModeService.set(viewMode); + this.viewModeService.viewMode = viewMode; await this.updateViewMode(); this._scrollViews(); } diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/view-mode.service.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/view-mode.service.ts index a506d19aa..d38a0cc30 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/view-mode.service.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/view-mode.service.ts @@ -5,10 +5,14 @@ import { ViewMode } from '@red/domain'; @Injectable() export class ViewModeService { readonly viewMode$: Observable; + readonly compareMode$: Observable; private readonly _viewMode$ = new BehaviorSubject('STANDARD'); + private readonly _compareMode$ = new BehaviorSubject(false); + constructor() { this.viewMode$ = this._viewMode$.asObservable(); + this.compareMode$ = this._compareMode$.asObservable(); } get viewMode() { @@ -23,15 +27,19 @@ export class ViewModeService { return this._viewMode$.value === 'DELTA'; } - get isCompare() { - return this._viewMode$.value === 'COMPARE'; - } - get isRedacted() { return this._viewMode$.value === 'REDACTED'; } - set(mode: ViewMode) { + set viewMode(mode: ViewMode) { this._viewMode$.next(mode); } + + get isCompare() { + return this._compareMode$.value; + } + + set compareMode(compareMode: boolean) { + this._compareMode$.next(compareMode); + } } diff --git a/libs/red-domain/src/lib/shared/view-mode.ts b/libs/red-domain/src/lib/shared/view-mode.ts index 268023956..e4f649334 100644 --- a/libs/red-domain/src/lib/shared/view-mode.ts +++ b/libs/red-domain/src/lib/shared/view-mode.ts @@ -1 +1 @@ -export type ViewMode = 'STANDARD' | 'DELTA' | 'REDACTED' | 'COMPARE'; +export type ViewMode = 'STANDARD' | 'DELTA' | 'REDACTED'; From dd2f0c4ecac6a12d06f3650d9688458997d66294 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Tue, 18 Jan 2022 12:11:53 +0200 Subject: [PATCH 51/97] removed cypress --- cypress.env.json | 13 - cypress.json | 13 - cypress/.gitignore | 4 - cypress/fixtures/users/manager.json | 4 - cypress/fixtures/users/user.json | 4 - cypress/integration/base/no-op.spec.ts | 18 - cypress/plugins/index.js | 20 - cypress/support/commands.js | 43 -- cypress/support/index.d.ts | 20 - cypress/support/index.js | 20 - cypress/tsconfig.json | 8 - docker/cypress/Dockerfile | 4 - nx.json | 3 +- package.json | 8 +- yarn.lock | 973 +------------------------ 15 files changed, 39 insertions(+), 1116 deletions(-) delete mode 100644 cypress.env.json delete mode 100644 cypress.json delete mode 100644 cypress/.gitignore delete mode 100644 cypress/fixtures/users/manager.json delete mode 100644 cypress/fixtures/users/user.json delete mode 100644 cypress/integration/base/no-op.spec.ts delete mode 100644 cypress/plugins/index.js delete mode 100644 cypress/support/commands.js delete mode 100644 cypress/support/index.d.ts delete mode 100644 cypress/support/index.js delete mode 100644 cypress/tsconfig.json delete mode 100644 docker/cypress/Dockerfile diff --git a/cypress.env.json b/cypress.env.json deleted file mode 100644 index 4d776336f..000000000 --- a/cypress.env.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "reporter": "junit", - "baseUrl": "http://localhost:4200", - "env": { - "api_url": "https://timo-redaction-dev.iqser.cloud", - "auth_base_url": "https://redkc-staging.iqser.cloud/auth", - "auth_realm": "redaction", - "auth_client_id": "redaction" - }, - "reporterOptions": { - "mochaFile": "cypress/test-reports/test-[hash].xml" - } -} diff --git a/cypress.json b/cypress.json deleted file mode 100644 index 68104c293..000000000 --- a/cypress.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "reporter": "junit", - "baseUrl": "https://app-ui-automated.iqser.cloud", - "env": { - "api_url": "https://api-ui-automated.iqser.cloud", - "auth_base_url": "https://keycloak-ui-automated.iqser.cloud/auth", - "auth_realm": "redaction", - "auth_client_id": "redaction" - }, - "reporterOptions": { - "mochaFile": "cypress/test-reports/test-[hash].xml" - } -} diff --git a/cypress/.gitignore b/cypress/.gitignore deleted file mode 100644 index f638ce500..000000000 --- a/cypress/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/videos -/screenshots -/results -/test-reports \ No newline at end of file diff --git a/cypress/fixtures/users/manager.json b/cypress/fixtures/users/manager.json deleted file mode 100644 index 740e65f97..000000000 --- a/cypress/fixtures/users/manager.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "username": "manager", - "password": "OsloImWinter" -} diff --git a/cypress/fixtures/users/user.json b/cypress/fixtures/users/user.json deleted file mode 100644 index 0fcb3ce05..000000000 --- a/cypress/fixtures/users/user.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "username": "user", - "password": "OsloImWinter" -} diff --git a/cypress/integration/base/no-op.spec.ts b/cypress/integration/base/no-op.spec.ts deleted file mode 100644 index ed9fec437..000000000 --- a/cypress/integration/base/no-op.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -/// -/// - -describe('it should only test login/logout flow', () => { - before(() => { - // cy.init('user'); - }); - - after(() => { - // cy.cleanup(); - }); - - it('it should land on homepage with no projects', () => { - console.log('no-op'); - // cy.visit('/main/projects'); - // cy.get('redaction-project-listing-empty', { timeout: 30000 }); - }); -}); diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js deleted file mode 100644 index 0f13eafa2..000000000 --- a/cypress/plugins/index.js +++ /dev/null @@ -1,20 +0,0 @@ -/// -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -/** - * @type {Cypress.PluginConfig} - */ -module.exports = (on, config) => { - return config; -}; diff --git a/cypress/support/commands.js b/cypress/support/commands.js deleted file mode 100644 index 0e91187b1..000000000 --- a/cypress/support/commands.js +++ /dev/null @@ -1,43 +0,0 @@ -import 'cypress-localstorage-commands'; -import 'cypress-file-upload'; -import 'cypress-keycloak-commands'; - -Cypress.Commands.add('cleanup', () => { - localStorage.clear(); - cy.clearLocalStorageSnapshot(); - cy.kcLogout(); -}); - -Cypress.Commands.add('init', (user) => { - cy.kcLogin('manager').as('tokens'); - cy.deleteAllProjects(); - cy.kcLogout(); - cy.kcLogin(user).as('tokens'); -}); - -Cypress.Commands.add('deleteAllProjects', () => { - cy.get('@tokens').then((tokens) => { - const projectListRequest = { - method: 'GET', - url: Cypress.env('api_url') + '/project', - headers: { - Authorization: 'bearer ' + tokens.access_token - } - }; - - cy.request(projectListRequest).then((projects) => { - projects.body.forEach((project) => { - const deleteProjectRequest = { - method: 'DELETE', - url: Cypress.env('api_url') + '/project/' + project.projectId, - headers: { - Authorization: 'bearer ' + tokens.access_token - } - }; - cy.request(deleteProjectRequest).then((response) => { - console.log('Project Deleted', project.projectId, response); - }); - }); - }); - }); -}); diff --git a/cypress/support/index.d.ts b/cypress/support/index.d.ts deleted file mode 100644 index db6925276..000000000 --- a/cypress/support/index.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/// - -declare namespace Cypress { - interface Chainable { - /** - * Should run before each spec! - */ - init(user?: string): Chainable; - - /** - * Should run after each spec! - */ - cleanup(): Chainable; - - /** - * Deletes user uploads before tests - */ - deleteAllProjects(): Chainable; - } -} diff --git a/cypress/support/index.js b/cypress/support/index.js deleted file mode 100644 index 37a498fb5..000000000 --- a/cypress/support/index.js +++ /dev/null @@ -1,20 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json deleted file mode 100644 index dee68d8cf..000000000 --- a/cypress/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["es5", "dom"], - "types": ["cypress"] - }, - "include": ["**/*.ts"] -} diff --git a/docker/cypress/Dockerfile b/docker/cypress/Dockerfile deleted file mode 100644 index 9be8e71ef..000000000 --- a/docker/cypress/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM cypress/included:5.6.0 -COPY package.json yarn.lock ./ -RUN yarn install -COPY . . diff --git a/nx.json b/nx.json index b7f156c8e..0ad31e2c6 100644 --- a/nx.json +++ b/nx.json @@ -39,8 +39,7 @@ "generators": { "@nrwl/angular:application": { "linter": "eslint", - "unitTestRunner": "jest", - "e2eTestRunner": "cypress" + "unitTestRunner": "jest" }, "@nrwl/angular:library": { "linter": "eslint", diff --git a/package.json b/package.json index 87056bdc0..1c8513060 100644 --- a/package.json +++ b/package.json @@ -71,24 +71,18 @@ "@angular/language-service": "13.1.2", "@bartholomej/ngx-translate-extract": "^8.0.2", "@nrwl/cli": "13.4.5", - "@nrwl/cypress": "13.4.5", "@nrwl/eslint-plugin-nx": "13.4.5", "@nrwl/jest": "13.4.5", "@nrwl/linter": "13.4.5", "@nrwl/tao": "13.4.5", "@nrwl/workspace": "13.4.5", - "@types/cypress": "^1.1.3", "@types/jest": "27.4.0", "@types/lodash": "^4.14.178", "@types/node": "17.0.9", + "@types/puppeteer": "^5.4.4", "@typescript-eslint/eslint-plugin": "5.9.1", "@typescript-eslint/parser": "5.3.1", "axios": "^0.24.0", - "cypress": "^6.9.1", - "cypress-file-upload": "^5.0.8", - "cypress-keycloak": "^1.7.0", - "cypress-keycloak-commands": "^1.2.0", - "cypress-localstorage-commands": "^1.5.0", "dotenv": "10.0.0", "eslint": "8.7.0", "eslint-config-airbnb-base": "^15.0.0", diff --git a/yarn.lock b/yarn.lock index 9335f42c3..52d4f0e75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1556,41 +1556,6 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@cypress/listr-verbose-renderer@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" - integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= - dependencies: - chalk "^1.1.3" - cli-cursor "^1.0.2" - date-fns "^1.27.2" - figures "^1.7.0" - -"@cypress/request@^2.88.5", "@cypress/request@^2.88.7": - version "2.88.9" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.9.tgz#7428fc66008ec3a4727c189857f6bb7f758f1d92" - integrity sha512-6md3dtAd3DXfTEXFb2Yde3TSaqpYsSBw3a1VFwAC9Fscu2B0DtY2Venu35csZyJj09XNkPMGRoE4ZXUdtkI+zg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.3.6" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^8.3.2" - "@cypress/webpack-preprocessor@^5.9.1": version "5.10.0" resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.10.0.tgz#477eee82c04caec956a07e51d2d90a9947ed6d7e" @@ -1600,14 +1565,6 @@ debug "4.3.2" lodash "^4.17.20" -"@cypress/xvfb@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" - integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== - dependencies: - debug "^3.1.0" - lodash.once "^4.1.1" - "@discoveryjs/json-ext@0.5.6": version "0.5.6" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" @@ -2320,13 +2277,6 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" - integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== - dependencies: - any-observable "^0.3.0" - "@schematics/angular@13.1.3", "@schematics/angular@~13.1.0": version "13.1.3" resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.1.3.tgz#c763cdf1a2e0784d5263c23b581bfeb4a4a2f12e" @@ -2427,13 +2377,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/cypress@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@types/cypress/-/cypress-1.1.3.tgz#0a700c040d53e9e12b5af98e41d4a88c39f39b6a" - integrity sha512-OXe0Gw8LeCflkG1oPgFpyrYWJmEKqYncBsD/J0r17r0ETx/TnIGDNLwXt/pFYSYuYTpzcq1q3g62M9DrfsBL4g== - dependencies: - cypress "*" - "@types/d3-path@^2": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-2.0.1.tgz#ca03dfa8b94d8add97ad0cd97e96e2006b4763cb" @@ -2538,21 +2481,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae" integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA== -"@types/node@12.12.50": - version "12.12.50" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.50.tgz#e9b2e85fafc15f2a8aa8fdd41091b983da5fd6ee" - integrity sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w== - "@types/node@17.0.9": version "17.0.9" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.9.tgz#0b7f161afb5b1cc12518d29b2cdc7175d5490628" integrity sha512-5dNBXu/FOER+EXnyah7rn8xlNrfMOQb/qXnw4NQgLkCygKBKhdmF/CA5oXVOKZLBEahw8s2WP9LxIcN/oDDRgQ== -"@types/node@^14.14.31": - version "14.17.34" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz#fe4b38b3f07617c0fa31ae923fca9249641038f0" - integrity sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg== - "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -2563,6 +2496,13 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== +"@types/puppeteer@^5.4.4": + version "5.4.4" + resolved "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-5.4.4.tgz#e92abeccc4f46207c3e1b38934a1246be080ccd0" + integrity sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q== + dependencies: + "@types/node" "*" + "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -2575,16 +2515,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== -"@types/sinonjs__fake-timers@^6.0.1", "@types/sinonjs__fake-timers@^6.0.2": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz#0ecc1b9259b76598ef01942f547904ce61a6a77d" - integrity sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A== - -"@types/sizzle@^2.3.2": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== - "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -2602,13 +2532,6 @@ dependencies: "@types/yargs-parser" "*" -"@types/yauzl@^2.9.1": - version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" - integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== - dependencies: - "@types/node" "*" - "@typescript-eslint/eslint-plugin@5.9.1": version "5.9.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.1.tgz#e5a86d7e1f9dc0b3df1e6d94feaf20dd838d066c" @@ -3194,7 +3117,7 @@ ajv@8.8.2, ajv@^8.0.0, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3216,12 +3139,7 @@ ansi-colors@4.1.1, ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -3247,16 +3165,6 @@ ansi-html-community@^0.0.8: resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -3267,11 +3175,6 @@ ansi-regex@^6.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -3301,11 +3204,6 @@ ansi-wrap@0.1.0: resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -3332,11 +3230,6 @@ aproba@^1.1.1: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -arch@^2.1.2, arch@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - are-we-there-yet@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" @@ -3455,18 +3348,6 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" @@ -3480,11 +3361,6 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -3502,11 +3378,6 @@ async@^2.6.2: dependencies: lodash "^4.17.14" -async@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" - integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -3547,16 +3418,6 @@ autoprefixer@^9.6.1: postcss "^7.0.32" postcss-value-parser "^4.1.0" -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - axios@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" @@ -3744,13 +3605,6 @@ batch@0.6.1: resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -3790,12 +3644,7 @@ bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -blob-util@2.0.2, blob-util@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" - integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== - -bluebird@3.7.2, bluebird@^3.5.5, bluebird@^3.7.1, bluebird@^3.7.2: +bluebird@^3.5.5, bluebird@^3.7.1: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -4135,11 +3984,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -4183,11 +4027,6 @@ canonical-path@1.0.0: resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d" integrity sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - caw@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" @@ -4206,18 +4045,7 @@ chalk@4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4252,11 +4080,6 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= - "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" @@ -4354,20 +4177,6 @@ cli-boxes@^3.0.0: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== -cli-cursor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= - dependencies: - restore-cursor "^1.0.1" - -cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -4380,32 +4189,6 @@ cli-spinners@2.6.1, cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== -cli-table3@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" - integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== - dependencies: - object-assign "^4.1.0" - string-width "^4.2.0" - optionalDependencies: - colors "^1.1.2" - -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= - dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" @@ -4448,11 +4231,6 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -4500,12 +4278,7 @@ colorette@^2.0.10, colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== -colors@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -4517,21 +4290,11 @@ commander@^2.20.0, commander@^2.8.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - commander@^8.0.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -common-tags@^1.8.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -4577,7 +4340,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.6.2: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -4713,11 +4476,6 @@ core-js@^3.6.5: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.1.tgz#f6f173cae23e73a7d88fa23b6e9da329276c6641" integrity sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg== -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -4956,119 +4714,6 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -cypress-file-upload@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1" - integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== - -cypress-keycloak-commands@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/cypress-keycloak-commands/-/cypress-keycloak-commands-1.2.0.tgz#7f241e8e104ebd389f9a844966dcca43694d0645" - integrity sha512-j0THu0XMVlWah7YjDoVlFg2bIwSiBSda6g5Pm8HpC/9U2Glk0Hrp4yLggoseft3ThAlrpIkoLaIKMDbmvtgicw== - -cypress-keycloak@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/cypress-keycloak/-/cypress-keycloak-1.7.0.tgz#7556c297b12645405cd17d060d4fd6d1b73905ed" - integrity sha512-sBlq7VUCTAUps/67mnDXg6rhVWS+PygspCGLfucmT/sQYanTVqmu374JCutNZGnNArOjmkaw0Rn80dC9dp9tJw== - -cypress-localstorage-commands@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/cypress-localstorage-commands/-/cypress-localstorage-commands-1.6.1.tgz#22299ee8a5555037f4e42111ffb280f2e0fe7d7b" - integrity sha512-rvXCB0iLzC3i9y91XH4N2I55NicH62gQk5z/APblCjnNR3wWTbDs8svC7GvE1fjt9AMIHSQm1RfWx037y+TciQ== - -cypress@*: - version "9.1.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.1.0.tgz#5d23c1b363b7d4853009c74a422a083a8ad2601c" - integrity sha512-fyXcCN51vixkPrz/vO/Qy6WL3hKYJzCQFeWofOpGOFewVVXrGfmfSOGFntXpzWBXsIwPn3wzW0HOFw51jZajNQ== - dependencies: - "@cypress/request" "^2.88.7" - "@cypress/xvfb" "^1.2.4" - "@types/node" "^14.14.31" - "@types/sinonjs__fake-timers" "^6.0.2" - "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "3.7.2" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.0" - commander "^5.1.0" - common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.2" - enquirer "^2.3.6" - eventemitter2 "^6.4.3" - execa "4.1.0" - executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" - getos "^3.2.1" - is-ci "^3.0.0" - is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" - log-symbols "^4.0.0" - minimist "^1.2.5" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - proxy-from-env "1.0.0" - request-progress "^3.0.0" - supports-color "^8.1.1" - tmp "~0.2.1" - untildify "^4.0.0" - url "^0.11.0" - yauzl "^2.10.0" - -cypress@^6.9.1: - version "6.9.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-6.9.1.tgz#ce1106bfdc47f8d76381dba63f943447883f864c" - integrity sha512-/RVx6sOhsyTR9sd9v0BHI4tnDZAhsH9rNat7CIKCUEr5VPWxyfGH0EzK4IHhAqAH8vjFcD4U14tPiJXshoUrmQ== - dependencies: - "@cypress/listr-verbose-renderer" "^0.4.1" - "@cypress/request" "^2.88.5" - "@cypress/xvfb" "^1.2.4" - "@types/node" "12.12.50" - "@types/sinonjs__fake-timers" "^6.0.1" - "@types/sizzle" "^2.3.2" - arch "^2.1.2" - blob-util "2.0.2" - bluebird "^3.7.2" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - cli-table3 "~0.6.0" - commander "^5.1.0" - common-tags "^1.8.0" - dayjs "^1.9.3" - debug "4.3.2" - eventemitter2 "^6.4.2" - execa "^4.0.2" - executable "^4.1.1" - extract-zip "^1.7.0" - fs-extra "^9.0.1" - getos "^3.2.1" - is-ci "^2.0.0" - is-installed-globally "^0.3.2" - lazy-ass "^1.6.0" - listr "^0.14.3" - lodash "^4.17.19" - log-symbols "^4.0.0" - minimist "^1.2.5" - moment "^2.29.1" - ospath "^1.2.2" - pretty-bytes "^5.4.1" - ramda "~0.27.1" - request-progress "^3.0.0" - supports-color "^7.2.0" - tmp "~0.2.1" - untildify "^4.0.0" - url "^0.11.0" - yauzl "^2.10.0" - d3-array@2, d3-array@^2.3.0, d3-array@^2.9.1: version "2.12.1" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" @@ -5185,13 +4830,6 @@ d3-transition@2, d3-transition@^2.0.0: d3-interpolate "1 - 2" d3-timer "1 - 2" -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -5201,16 +4839,6 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -date-fns@^1.27.2: - version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - -dayjs@^1.10.4, dayjs@^1.9.3: - version "1.10.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" - integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== - debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -5239,7 +4867,7 @@ debug@=3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: +debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -5612,14 +5240,6 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -5642,11 +5262,6 @@ electron-to-chromium@^1.4.17: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.38.tgz#10ea58d73d36b13e78d5024f3b74a352d3958d01" integrity sha512-WhHt3sZazKj0KK/UpgsbGQnUUoFeAHVishzHFExMxagpZgjiGYSC9S0ZlbhCfSH2L2i+2A1yyqOIliTctMx7KQ== -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= - elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -5716,7 +5331,7 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.7.0, enhanced-resolve@^5.8.3: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5, enquirer@^2.3.6, enquirer@~2.3.6: +enquirer@^2.3.5, enquirer@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -6317,11 +5932,6 @@ eventemitter-asyncresource@^1.0.0: resolved "https://registry.yarnpkg.com/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz#734ff2e44bf448e627f7748f905d6bdd57bdb65b" integrity sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ== -eventemitter2@^6.4.2, eventemitter2@^6.4.3: - version "6.4.5" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" - integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== - eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -6340,7 +5950,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@4.1.0, execa@^4.0.0, execa@^4.0.2: +execa@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== @@ -6370,18 +5980,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -executable@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -6488,7 +6086,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@3.0.2, extend@~3.0.2: +extend@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -6516,37 +6114,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -extract-zip@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - fancy-log@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" @@ -6626,28 +6193,13 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@3.2.0, figures@^3.0.0, figures@^3.2.0: +figures@3.2.0, figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" -figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -6839,11 +6391,6 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - fork-ts-checker-webpack-plugin@6.2.10: version "6.2.10" resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.2.10.tgz#800ab1fa523c76011a3413bc4e7815e45b63e826" @@ -6881,15 +6428,6 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - formidable@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.1.tgz#4310bc7965d185536f9565184dee74fbb75557ff" @@ -6935,7 +6473,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.0, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -7054,7 +6592,7 @@ get-stream@^3.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -7079,20 +6617,6 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getos@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" - integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== - dependencies: - async "^3.2.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - gettext-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-4.2.0.tgz#9327140f76b122d44f0e8cb9338fd855667d9434" @@ -7154,20 +6678,6 @@ glob@7.2.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glo once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - -global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== - dependencies: - ini "2.0.0" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -7242,31 +6752,11 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - harmony-reflect@^1.4.6: version "1.6.2" resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -7509,15 +6999,6 @@ http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== - dependencies: - assert-plus "^1.0.0" - jsprim "^2.0.2" - sshpk "^1.14.1" - https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -7653,11 +7134,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -7696,11 +7172,6 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -7838,13 +7309,6 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - is-ci@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" @@ -7932,18 +7396,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -7973,22 +7425,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-installed-globally@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-installed-globally@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -8038,19 +7474,12 @@ is-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== - dependencies: - symbol-observable "^1.1.0" - is-path-cwd@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^3.0.1, is-path-inside@^3.0.2: +is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -8077,11 +7506,6 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - is-regex@^1.0.4, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -8124,7 +7548,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -8185,11 +7609,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -9090,11 +8509,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -9158,21 +8572,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - json5@2.x, json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" @@ -9206,16 +8610,6 @@ jsonparse@^1.3.1: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= -jsprim@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" - integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - jwt-decode@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" @@ -9277,11 +8671,6 @@ klona@^2.0.4, klona@^2.0.5: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== -lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= - less-loader@10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-10.2.0.tgz#97286d8797dc3dc05b1d16b0ecec5f968bdd4e32" @@ -9339,64 +8728,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= - -listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" - integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" - integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== - dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" - -listr2@^3.8.3: - version "3.13.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.5.tgz#105a813f2eb2329c4aae27373a281d610ee4985f" - integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.4.0" - through "^2.3.8" - wrap-ansi "^7.0.0" - -listr@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" - load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -9490,11 +8821,6 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.once@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - lodash.orderby@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz#e697f04ce5d78522f54d9338b32b81a3393e4eb3" @@ -9505,19 +8831,12 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: +lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= - dependencies: - chalk "^1.0.0" - -log-symbols@^4.0.0, log-symbols@^4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -9525,25 +8844,6 @@ log-symbols@^4.0.0, log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= - dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -9761,7 +9061,7 @@ mime-db@1.51.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24: version "2.1.34" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== @@ -9783,11 +9083,6 @@ mime@~2.5.2: resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -9913,7 +9208,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5: +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -10319,11 +9614,6 @@ num2fraction@^1.2.2: resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -10336,7 +9626,7 @@ nx@13.4.5: dependencies: "@nrwl/cli" "13.4.5" -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -10434,18 +9724,6 @@ once@1.4.0, once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -10524,11 +9802,6 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -ospath@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= - p-cancelable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" @@ -10595,11 +9868,6 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - p-map@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -10842,11 +10110,6 @@ pend@~1.2.0: resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - picocolors@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" @@ -10862,7 +10125,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== -pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -11576,7 +10839,7 @@ prettier@2.5.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== -pretty-bytes@^5.3.0, pretty-bytes@^5.4.1, pretty-bytes@^5.6.0: +pretty-bytes@^5.3.0: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== @@ -11661,17 +10924,12 @@ proxy-addr@~2.0.5: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-from-env@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= - prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -psl@^1.1.28, psl@^1.1.33: +psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -11745,11 +11003,6 @@ qs@^6.10.1: dependencies: side-channel "^1.0.4" -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -11770,11 +11023,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -ramda@~0.27.1: - version "0.27.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" - integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -11966,13 +11214,6 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request-progress@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= - dependencies: - throttleit "^1.0.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -12039,22 +11280,6 @@ resolve@1.20.0, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19. is-core-module "^2.2.0" path-parse "^1.0.6" -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -12083,11 +11308,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -12149,14 +11369,14 @@ rxjs-for-await@0.0.2: resolved "https://registry.yarnpkg.com/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz#26598a1d6167147cc192172970e7eed4e620384b" integrity sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw== -rxjs@6.6.7, rxjs@^6.3.3, rxjs@^6.5.0, rxjs@^6.5.4: +rxjs@6.6.7, rxjs@^6.5.0, rxjs@^6.5.4: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -rxjs@^7.2.0, rxjs@^7.4.0: +rxjs@^7.2.0: version "7.4.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== @@ -12187,7 +11407,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0, safer-buffer@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -12489,29 +11709,6 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - slugify@^1.4.0: version "1.6.3" resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.3.tgz#325aec50871acfb17976f2d3cb09ee1e7ab563be" @@ -12744,21 +11941,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.14.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - ssri@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" @@ -12838,15 +12020,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -12856,14 +12029,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.0.1.tgz#0d8158335a6cfd8eb95da9b6b262ce314a036ffd" @@ -12910,20 +12075,6 @@ strip-ansi@6.0.0: dependencies: ansi-regex "^5.0.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -13029,11 +12180,6 @@ superagent@^7.0.2: readable-stream "^3.6.0" semver "^7.3.5" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -13041,14 +12187,14 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.0.0, supports-color@^8.1.1: +supports-color@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -13068,11 +12214,6 @@ symbol-observable@4.0.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== -symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -13192,11 +12333,6 @@ throat@^6.0.1: resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== -throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= - through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -13312,14 +12448,6 @@ tough-cookie@^4.0.0: punycode "^2.1.1" universalify "^0.1.2" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tr46@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" @@ -13460,11 +12588,6 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -13627,11 +12750,6 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -13705,7 +12823,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@8.3.2, uuid@^8.3.2: +uuid@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -13749,15 +12867,6 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" @@ -14070,14 +13179,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -14252,7 +13353,7 @@ yargs@^17.2.1: y18n "^5.0.5" yargs-parser "^20.2.2" -yauzl@^2.10.0, yauzl@^2.4.2: +yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= From 63c0c1e9c5f41fafc329757ddfbcdcedf4907410 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Tue, 18 Jan 2022 12:13:33 +0200 Subject: [PATCH 52/97] archived dossiers are not deleted dossiers --- .../dossiers-listing-details.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/components/dossiers-listing-details/dossiers-listing-details.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/components/dossiers-listing-details/dossiers-listing-details.component.ts index cb44b7a4c..68f053b36 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/components/dossiers-listing-details/dossiers-listing-details.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/components/dossiers-listing-details/dossiers-listing-details.component.ts @@ -38,10 +38,10 @@ export class DossiersListingDetailsComponent { private async _toDossierChartData(dossiers: Dossier[]): Promise { // TODO: deleted dossiers count should come with stats - const deletedDossiers = await this.dossiersService.getDeleted(); + // const deletedDossiers = await this.dossiersService.getDeleted(); return [ { value: dossiers.length, color: 'ACTIVE', label: _('active') }, - { value: deletedDossiers.length, color: 'DELETED', label: _('archived') }, + // { value: deletedDossiers.length, color: 'DELETED', label: _('archived') }, ]; } From d2aaa4652230684a008ebe395ed4221050674642 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Tue, 18 Jan 2022 11:19:31 +0100 Subject: [PATCH 53/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3215 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1c8513060..5f1fde561 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.164.0", + "version": "3.165.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 30aa6ee138b07f5e56cecff096a46dda5ed0c452..a3dc206eee9768339c301df9367bc915d9e26674 100644 GIT binary patch delta 3063 zcmVZiVXZFjF5b{>SyT))Rd#imGFH~>o13J_Sv}tr#U>-Tr1d;1wl`o9?(Y)3rP+pln5uPMXX>|v9#H}=f4?K^wsi@$;RyAXeu;_nLnI%19^<~U-GBj$fNVvfV- z{3fP#nc=5T>IYn2Uf*5JIej>@Qi5Yrp?_T<^vA8?ZhpvHZ-?bQ38MPO6v;?#)>UaZ6q3XKWl=kC>4Zk@uT%XW0nFg+g6dS z5pGz)f0so~87-ivA{l1%Ejf&P-hNsMC0Q(1lB+nj{cDaiEGjNXRSk zS0rb5M*gFws(Dvg(43LVU<)?42JxSL91H8Tcq`>?FrYa0<3M1#c(Wxj#i+=$Csaoj zAvwZ%jINX|vgG^iTHt>&?`utizT3*dytfCM4dm{A=1e67vj##ZkO^V{*bIjx6Dvqh zwnll8i+wnrJvFbB4QMJOR@sCZjWAd2gm5%%J@12mjc|)Y*OjlEnE`OF{IF;=Ns6kc z4xQw-mVRvK6dm1>^zmg^IY0T=lFzvdI4@K8uJeRX)%AYg^e_ z|JTphU?9OAus&E#3m_e@dc!tH~LcI5}(}Ojs3313bwaC} zSy4)*vk_uwy#B0hc|Yxj65B zZ1e1qA*q|%wfC4H2hOkwcAODSP^v4cb2oZKUKk>>yKid<#0Gur(0_HDwbZ z3)Q`h1Hp#{I+MfP=M>vuCJ-FsGzM;?%RPBGy!jY?PV;|^P}bxd^zqHb9FSQc0g_pc z(UV^OBXO6@OTjHb|GlX0ldO0cz`9egcI5Q1e*?`lHIz5+U~!O?j>4Nl;n=r5iqA;i zuy>@|lKlO5T*1gHt0JM<0GU5YkG)ip;V7+Wlrp+8krYf~NxUA*S51^AO@1$eunxbN zro!#vKM#LN4lC0f@#Lptun0+&WbeO?QUd)o`cf4Cf5JK5kg6W6vz*kNzv|cdvdA)6 zhs*3UQjtlfSCd4q{2tlwi@K&jF3`eAj~Djl1J2k8t=f~;5=0{^A=i%5jFR{Nm4v3GYIuKAoI%1lB-WYS2ez{_#4n`A>-XP* zrfP0OLp;-a!oxkDKV(279^DP5Zm-_ z2qZ^(vTs$SZZbBNKqdkFTeff#fFs4U^JOxk^$|m6k$czaqu|Qs!HxeD5KSi6Xy?{S zay);LrJa_E>7mhcTS7;xc8sPFsxls~lzfRF&+(X0ZE+@O&Zq_rmb}%&zFeoLs27xp zpI$N?2(3Cv4p)GV3^Eu1CTpzmOVOuD)As3@Prafcb#Zd^U+3V6K*dRtd8SqxYf z{iX&Dl@$fvAtMueGRzuro-!DVZGV4@ z*>OFAbcP(qQ71vZh{KG;V12jV?F!rKU|z6(g2niU#WySWR<{XGLUnG)ApPE0BKuvd zcBoI_uy*1k8ha18%K1PX#n=bX?uyF<1Y^%{uhr?_G&H)mAZ34J!tu3^Tsg4p=4~qS1Uac%acM&?XUcCQ(O}4f zA&hYpdZQuVC_XV1Op~!NN>&Uljmi~6E2Azqyh;#^*>;lHLogWQoCOgHZnf2(AkQiu z1YnYcD=#z*x<*CI!FCq}pb}?wJ44zOUL`wPHMO&bh6vF_LF^H2(UfH6wupbpZWjvr zrBmjcyQVP-@#Kl&PP0%uL3#>PyRo;py4qtg*V=^E9f#*iz z*B_x!gK!2vp9j>=vtm;i&WIpvx4Fr$+DjQM5A#&u^%{a;cu&F6c9dvG_KtM12Vg8F zXw~JmHZy$;wiLqQUTh{Aj}?EZUU%%={Vs5r=Kjdn7Y9i=;@09Ij@bvT^MX5y;{@BQ zWXZ1%ye?DB@mp)O9ksM$A(t7=oWnSc!1d?%T4vvZIW5Vfbl*`@!h_r?8Jg7k0YdiQ zLU@iB`(y$Ml+g4ofsAFy*9Rlg&$?utq2)$0%Cf%7$2PDR~gDD%6SXG3oPY4&83XwP-gP${c&Bd~Mcs4+JBTwA*l| z{S-GoW*r-Bacp)&`@C%@3i}WT07+2+VGWerRfKCYr0(d0gWZ2_H60{q9PaL6bUqb} z-e1>t!r&sdC<)LIop6f}TcE5Voc3qOgT?a6#9}5ocOQvbAwAucYz*bC%KTreh@LITi zVxYz^86qN_MOS}N!Xpbg5H7A&22kor;@fXM;q6aJbo+yACiO-~4f;ly^uNZlj*&`N zx_nXDQCDijl?rX8B&{_YeUXWfr24N?cP?)4^XB64*6`$H(k_Nu@wvm%egKp4(_qD2 z&eo+2Mu;`Y;7Z;z6^X^3N^(8UBKxCBaVb`W{{$wdFCTx^Nu7_~cR<^@BPBn8f{gDq zE)+1V_VmHGXOIfa&?4YR4~~C5S`0K-YQi@-QnPWZ$G!Yv9gPO$i4c=>8yJcJ92>++ zoOMW>ye4cHNsDaOei>d6Ytc)&q5fGsVNmEf;pKwLh3Ub9I{t&dQ`k$42*wA_U;87xLvk9q&=G7%rmJ9E#y zsbs!=tGz~-{IxdXueC2{sD=-#CKVNa_a{CU73`(X42dsu_$IsDzRT^pyuQopy8OP& z@4AA%E9klweb+*EmEC7W#xCnP(Y3T6c^Eq}^|UkCNhBY9^g5FMF!Y`H-2Hj1ydlQ! zneAsmjDdzx(ftskcPvKVQ!y&0^TL4tJhr@1(sx?XATf?}$9=&^fS4m#H+XdUJBc7E zqGsyS`=|b2Th8s=&h6aJ?cC1o+|KRX&h6aJ?cC1o+|KRX&h6aJ?c9E`?f;v&xMi@>vAA^ZDf)!csJ`hOFpxT*<5 zmw)~G3u|?Gckza9%c5easj{ofl(Dj2-`pfc&g%K5C^i|vC9UUCvAqFe95H{#5px_q z=QlB}%M3q#Qa|AG^7`&#&gsLMl@c723jON>p?4O|WAeC0&K>+p35E67$PeuD@$TYz z0I^<&Bq=H)AVVD8Z>plnV=F4MqFSSm+?D70&KM4*jsW4puxk2_tkJ^f3&^eqxh&@h z`ZAgmt0QH#Y$tAUwV}DiiV}Z-S6W|KFjj1VY9rC8`&koQMX4ZUiyy5A8nYB|*|v&o zjc~&X{<|z{%4h*S70EE8Z^>cY^Y+t9D9K{6l3c~H?O$`GVNr28BBy*rb&=5+eH43f z5aZpTRpFR6HE`b2Wsq}{Bq!3cUV|Y-BrUQ|@kNOv%AVH9o-a>CHhX{B%0p|>?81?D zq1k}5I!3W$;g>j$X}$pjF38(i9)%@jc?;a@ABUi-h7nFz)lwwvbcdd+)0xy4t6+PV zxFR{bGx8rbRn5D~g651=23xSXHHiQ0<5*ay#ak(Fg8{{{9|r={#hWdODMm$}J)t_P z2+0x7V|1l#ktN@6*8+c+d0%T9^xakt=Dj`8Y#?{{GiNFxm^BbOflLqsz-BlknOH%3 zvNg(!Tv#sU(+hA@(U^DePm6z%E%Y+N32U|xtB{ja z{J(z21_KH1fc3#@TKJG-nx+(~Xl(WyjV~bGywR5um-yuNZtQn89;ZC&v?dLNtrJ?+ z%!*PfosAGfD<4?*223bN?j$%${hb9f$}%#WmaLEArQSjhb@mD5 zA$$UX*y!j_SgU_^U#G07IJ~igW#o}rF^P%_w=NxYPbw~(X{wrRygPbB+#|V+YHK>kox9N^^1=|2-F;g_AU5b@hyFwKk@|@5sVSQP zS*Y%190)!v(3u?OKBw3QGlAe3r!jCFUGB-l;mybBbDDo=gt8{zppS1Z=77us36RWk zjGpxJABnqMUJ7mj`tL<`pJc_u0M?y?wIip8{TpbesiC}i2aAKGbQInc3dg?fQG7=7 zhP@-zmgMih;|fMrSrrM*2FUzLdhDf&3`c22qmOXBrdzG|X0Y4Up!gmw7E zG!h$lZCgGETHBzymDloIH#(U+q5{}ayfhE(-no#mwF{8hismqnJr zI$UO-k%~+*y_zI?<@d;bU(_`Pa)A~`dc3eVA8^J-C~qfGE+YlyeFJJ`1ci`shG3#x zDqHkUcdhi zG*xpO8seGW6CUpI{2>Dx@rb?2&0xFnj)qVF^1pxor$$%l`)`|sZV39K0`thPhuEff zLm)ZQlYOfqb(68F1TqQW-?D|1030c%oiCFSt&bQoi`=_T9|c!74{rRQfM_zgMmx7w zlH-4gEbX*ROb?Bo+Y&ljwPQ4eP?hm;rQ}Qec#g+}YKt>Lb4E32u;i^C_T@S~MZKU* z{PdFHKxoxTa<~F?WRSr?x?^1XU!X#(TvLYpj2LrY__ z!V1dBsA{%hZA=stD@=-liG&b}aw31J#aDk@0`1j_RtU8i_F>n@rpm1$MwurJ2%W07 zb~{OIq=nzf?)d!6us9T^ADan)0euG>WYW!@M@9K0jyue_cH`Ic;M)8TEV494DQL0F^ka+ZocP@G9BSs;QkdG(?Cd3Sy6Fi>4$iw?%(UcDqo} zFP$>q+%=6!h$l}BcbbLT3DQ%T+Ks)%)zu!0xz;AM_HeBulD>nbH0J}5FMVAB2|PCv zzy1h?8iX_W`8=R@o)w$Ia7F}SyUk60)n3YAd6=gHuh$R+!+Q#jwxdKlvUjA5Jpf}d zL8~sewVCN-u%!?V_hK{2c&vX&^}1u{?stL1H1|iozBow25w{ixam+qwofq6u94FXb zB};yF;B}c|j^A3N?Wm<43%Sf_<{ZXp1g<~7*E0JS%xOs;rTdPO5+3AE$|jmenfs>x3MBZ^G)_trv24|uz^6X#K$EfRkp8(K&sjKJLE<0D8u5>s#6>n58W}F z>V~9&t8)@TEH~w$)oK(ATK!!okpul zD~H%VRYGk+j0jhZMzVh-9A6L(D}oDoz%ERLmy#vk5cyTBVq~!Giavn+NGJF;GNMXd z12S8QPZx8@Q#QnUOUZ+HRiRF7k4c|LbLe(6u0^}aQ0DLhxsf?}=4-RAdmtEzq}_%y z?Wef$G3(f1i(|7J+UIRMQP_t#07!}o2y39^t|DBMA$3O|9PEE~tLY#?<8XHmqw}d) z^gjDN;Wk{Y`FR}#T*0zXdGU*}K8c(0!?K321K$`e$J%tw+H?on6s94pSA1I>$X0q$ zNoT9%KfRJCE)OL$@?1~ywENYww(F7{?mB=`{aA2lUouT|rOo!I1h!&A{DB&1hu6aG z69YAV$q*6YEV_S!5*}H|fpBrHGJsM~65oF732%Q&qT3%_GpRQ^YS1^rr2jRZb&OQH z(&dZFj=EAKu2g6%C26hM=!;B*B-MYFx^r=RpEnnWw}vMtlXfxOiq9R6_5+xVp9U-L za<(pIFhZu59}PlTA9+rUr+;MgEm z;;cj3Bp;tVp(A4#yQW##kA-i;>ok?%uUbjp7srVY_(&0sOYdd&M@mx=gj-kE#u zO(pZ~TkSQvqt}u2hoSGp=kCvAm7_y1}E%-$?{X z5j9hn-aqyK+H!8^c5df(Zs&Gx=XP%Ac5df(Zs&Gx=XP%Ac5df(Zs+!kZT|<5CXloM GPyhhg&-Ot8 From 439b43ae0dc07a8120541b5fea2c89b4d2efcd9c Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Tue, 18 Jan 2022 14:25:27 +0200 Subject: [PATCH 54/97] fixed cleanup of annotations after exclude/include --- .../file-preview-screen/file-preview-screen.component.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index c387b3130..ed84d72ab 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -466,7 +466,16 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } private async _reloadFile(file: File): Promise { + const previousFile = this.fileData?.file; await this._loadFileData(file); + + const fileHasBeenExcludedOrIncluded = previousFile?.excluded !== this.fileData?.file?.excluded; + const excludedPagesHaveChanged = JSON.stringify(previousFile?.excludedPages) !== JSON.stringify(this.fileData?.file?.excludedPages); + if (fileHasBeenExcludedOrIncluded || excludedPagesHaveChanged) { + await this._deleteAnnotations(); + await this._cleanupAndRedrawAnnotations(); + } + await this._stampPDF(); } From 22a2093c353cfb3309b00841186e2d72dff8b691 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Tue, 18 Jan 2022 13:29:35 +0100 Subject: [PATCH 55/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3213 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5f1fde561..030172740 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.165.0", + "version": "3.166.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index a3dc206eee9768339c301df9367bc915d9e26674..a09d9ff5170df71e69762d1442e178d6ae9cbd0a 100644 GIT binary patch delta 3030 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 Z+|KRX&h6aJ?c9E`?f; Date: Tue, 18 Jan 2022 14:37:50 +0200 Subject: [PATCH 56/97] owner add to dictionary for dossier dict --- .../dictionary/edit-dossier-dictionary.component.html | 2 +- .../dictionary/edit-dossier-dictionary.component.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html index d30210b13..6aec3866c 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html @@ -11,7 +11,7 @@
-
+
{{ 'add-edit-dictionary.form.add-to-dictionary-action' | translate }} diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts index c56b67c9b..c575f4b5c 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.ts @@ -7,7 +7,7 @@ import { DictionaryService } from '@shared/services/dictionary.service'; import { CircleButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; @Component({ selector: 'redaction-edit-dossier-dictionary', @@ -116,7 +116,12 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa private _getForm(): FormGroup { return this._formBuilder.group({ - addToDictionaryAction: [this.dossierDictionary.addToDictionaryAction], + addToDictionaryAction: [ + { + value: this.dossierDictionary.addToDictionaryAction, + disabled: !this._permissionsService.isOwner(this.dossier), + }, + ], }); } From e9ff4a9483ee8e2edd093ee7eb7ce0aa5240382c Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Tue, 18 Jan 2022 13:41:36 +0100 Subject: [PATCH 57/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3213 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 030172740..9e6da0da5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.166.0", + "version": "3.167.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index a09d9ff5170df71e69762d1442e178d6ae9cbd0a..43e5175a2a95dd62ae3c40c74840bc972dfdcbed 100644 GIT binary patch delta 3197 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 Date: Tue, 18 Jan 2022 15:31:14 +0200 Subject: [PATCH 58/97] replace - with _ --- .../add-edit-dictionary-dialog.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts index 737d96915..a4972d383 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts @@ -130,7 +130,7 @@ export class AddEditDictionaryDialogComponent extends BaseDialogComponent { let technicalName = baseTechnicalName; let suffix = 1; while (existingTechnicalNames.includes(technicalName)) { - technicalName = [baseTechnicalName, suffix++].join('-'); + technicalName = [baseTechnicalName, suffix++].join('_'); } return technicalName; } From 7993092732b9f99bd3759518390112b5141d9a1c Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Tue, 18 Jan 2022 14:34:55 +0100 Subject: [PATCH 59/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3214 -> 3213 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9e6da0da5..6de7eaeef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.167.0", + "version": "3.168.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 43e5175a2a95dd62ae3c40c74840bc972dfdcbed..1aebff6eb3a01f297ebe3d2820c63edc12eabacc 100644 GIT binary patch delta 3098 zcmV+#4CV8V8I2i`cz^A{UcRy&_y}I1;0K{*(3+az3ZWlksh?w;>-v{JYW9?o`unnm z)AjFpwsY41kJ0w(zalY?m>io&b^T#$a0M^?DgAp6sJqwya^Zsh7l9A@x4&Oj&FvSi z|2I*JtC}!$`PZ+%uvV9M7jNjcEGmYYD!aN&87u4c%}r9|tbd+wiei%yT+(_T726vy z2={jh-qP&plRuXv|Ls>euh*2}Z1%88*&BQ2+4h}1^Tppl{9TB@OYwIFe;qN$5px_d z#}RWJF~{L^eiPHW%<$7E^#d+1ukSAAoIadcDZw$R(7!GadS}r*CXZ|6+`+GuP*{JB z{J<_B?=GGP5P$1+NRpx=0y4zW{iZ6KJhq}DE2=g6$X$7^?~LJ4>Ie`n46CN^$Qmtt zzJTm{kjrw8pf962u{u&#%XZ=xR~wpJtSA9^rS*jcW5pJzHWH1xpEbc%lnO$&_|bZx zF-rlLZL7%E2sfHMT?RQPNpd1B>opicMA9Pb6kn7$qU>pn?D_IUWV4s8 zJhT?gE*xnWnhiLsV-!0Ueu?9l<{LoZg1nvOQCLEjx4^yraR{nv7~ynPEk(jkcj&n~ zok@MM3V*hDi7S$`J0t&5Q`NkyENIS1Wv~UCTZ8z|K8}TTTD+C=HW*MG`*9#JUA)OOOh>ec^gtc1tb;^p0!y7wTMjn|Jlc=b0>(W8@q~fxfrmD%tyQ4S6 zJ(A0)2Iud5wt4o*kkn1>+Ivip183L-JAclICMeYv)wvrzA}`=kcH}A#)06&0-ecW?sJN5FcS!laT)`+(dC{z9Nv74KBsv`C~NW!`uOHz z4#+H!0Ld)J=t(dCk+{p{rQjBz|6Wx0Nme`zVBINLJ92v1zkz0&8p@k@usBFcM}Of> zp>XWm9>r%QZ`eChZAt$AJFZ}4l~s|@Y=F$4q{m*W$Z(WaG)fuWm`DmHu_RuP<*O!2 zlP13xL0E@hOjF_Z@Sleyhm~oLc=FRRScIfXviILcDS`ePeJP6nKj9p2NL3HkSx#!s zU-j#JS!5Zk!)5jvsmLVLt4X3)et(bb_eEV(AQxz1q{j<;^8sgUgz|P0YqWD~B{`nR(oW07^w8+JEuo`TJ4RCoRT&RgO1{L8=Xgx0wm1_sXHL3qB@A9 zNI1(O>bAed?6{slIzx`*sFNUH#9>Bau)bUGc7<(qFfUj?!D9Tw;+vIwtJ?%8p*lBY zkbZA0k^Qb!JJcs|SbsZl5{>(J8an6E> z1h?91PmpI74+1br!j%^q23@0~r&*|-AU%bt-Pl`PUG1@$Yi&Yn57#;(={s0Tb3Oq1 z($^J`z;h$<>wk|>s6jY`pU(qo=UK5S3}-|Tw%gp~SM8+?mWO#N@OlkFFubSWXgf-@ zBYQ`>*aI*Y6SV4bTbr3a23rc@a4$BKjK_*puRC_`eit}QbAROPi-RN_acgl9$LxdF zdBGjUaf0ntvgB6>UY9B6_^mbCj#}EWkjso_&S9KJ;D7q_do8nX!JL-lQM&IaDd9ox zlnhO3{Qx2RZy`L#i+wVI1WIW7mO#cb1SQC&d_pUet&92@|quMbr?DsW+YKF zu_>S?+XvoNF-L&!N96Z)8!I9--(*i^+FvaQ8wlh|d|V<@W&3&vq?(<-LtgZbGAtgg zI>mAE(0?7XscxA22v@J$I;#s5TKW3j4bFU55DdyxjTXCSWCD0t`0O=lqXkT(o;=## z1M-ry&}p=)v~q~;Qzg_E#E5XkXe3L*@deSaBDjzT?7~ENDOutTkzchcMh4ri=mW@) zbb?2|C<65+v3}p^KkQ-_9fFaSK4fUN?NK*Y*sXG_9_jz-1cx!laGHDmXt@zyG zXg`3-_-U}>E@$gf1|!58WN;<#nTo_>PbIk?XOaEUq_`9-!hZsj)0dCxq|V3gJD}~{ zk&+)kLB{tQ7YZ0wd-~wpGe`wyXc6$E2gko2Ee4t^HQ^f^soA*I<6i!-jz$CWM1P3M zxeW|O0FDh}CC)meOb+2Qc?R@DTo&yg^WLAMx}+oj&>EK%aEnLxTa#k?#uzTWANf9%MW-xc+7OM_3>G7-$Grb_ znTU_(ow?`UR5IVb)n21Z{#qOH*V>meRKtf=lZpzz`x76F3ieWGhQyaSe1DT&Zr|m0 zU0&bibzOen<#$~{-xYLSi@s|iyUOmfB4d|zoakEGk35W>n0ne7>?D#8K6)KVe;E2s zeD3}{R^AX}_ssSn#z4cU=zfUNI~JqwsTdX0d11hR9$Vfh={v1xkQm3gd>>gU+zy8h*lnmuKt{=Tf? zbp3no(mCt@$7p-?Uy&F`OpeW?y8f^=xPlk{l>R-(@w{IDK@foc7lH4-LiYE|s=58b z_5UVHaa9wBF8})V7uM?X?&1yImPN%-Q)O3|DPv{5zPU+?oPX8xO;Kzzf=gP@qhfml z2I2lL!CRU=ee&m$p?4O|WAeC0&K>+p35E67 z$PeuD@$TYz0DrMwha@Q~A|OK?-EXR*$zv-jvZ7j}kKC2#`py^*rH%mM!mw)kj;ztb z=L^WL2e~Zg2>LRb6RRU-wQMJDakZhj#flPuS6W|KFjj1VY9rC8`&koQMX4ZUiyy5A z8nYB|*|v&ojc~&X{<|z{%4h*S70EE8Z^>cY^Y+t9D1XUfv65WHvF%@Tq+wBUIU=Wg zM0JtT7=09baS-F(pjF|RHZ^eG(q)iyk|Zb6vR;EBL?kV;PVq&FBg&rE$eu4xL^gZb z%0p|>?81?Dq1k}5I!3W$;g>j$X}$pjF38(i9)%@jc?;a@ABUi-h7nFz)lwwvbcdd+ z)0xy4tAAj7m$)K1yEF11HC4^K%7W&MR0dnHxiyIY?BiHir^Q<-Z-W8Fu^$Hl)5V)D zi77@!o;{&DstCyu&SP|?Y>_43Z`T5sd0%T9^xakt=Dj`8Y#?{{GiNFxm^BbOflLqs zz-BlknOH%3vNg(!TXo6B*QJuTdBl5x!k==b;Lm)QjV~74j z^pX0A@2M%909mN+WgG}TEYO)8=02y`1~Y-+7^g9C8(r?n!{N=x=yRH9gt8{zppS1Z z=77us36RWkjGpxJABnqMUJ7mj`tL<`pJc_u0M?y?wIip8{TpbesiC}i2aAKGbbl1y z6bi?_?NNM2@`k-5)t2P%zvBujC5rlR4#WWRe5C3^ca#)$>h$lZCgGETHBzymDloIH#(U+q5{}ayfhE(-no#mwF z{8hismqnJrI$UO-k%~+*y_zI?<$w3ceqYoz1#*EFMtZ!kHy?1uMksG5Q7$6|<$VKc zWdwzgafV=`Tq;}ic}!VR4QUcdhiG*xpO8seGW6CUpI{2>Dx@rb?2&0xFnj)qVF^1pxor$$%l`+skngl-7> zq5|{CuZP&CcS9gK(vy9wB6X9osRS|!;NP-^lK>nkrkyX75v`9HGK<{1P9FtVHVLb4E32u;i^C z_T@S~MZKU*{PdFHKxoxTa(}o2bYzghK)PdG`(On*EDp!3d_Q^OIDykwsdHMEglPif z=|Y<igF@n@rpm1$ zMwurJ2%W07b~{OIq=nzf?)d!6us9T^ADan)0euG>WYW!@M@9K0j(|E8hQy#*;76OONSIc;M)8TEV494DQLq+%=6!h$l}BcbbLT3DQ%T+Ks)%)zu!0xz;AM_HeBulD>nbH0J}5 zFMVAB2|PCvzkmJ+g&Kr2`1w4bcAgcR!f-|eVY|&ue$`&eV0oCQ0kKUy=J%&YB(M3AR)?XJVMY=) z6Pp5RvVGuP6>|jmenfs>x3MBZ^G)_trv24|uz^6X#K$EfRkp8(K&sjKJLE<0D8u5> zs#6>n4}aY;o9c$Sk8t(6t+Tp7p_Q-S-Qdi31;L<9)o8JMMkauVh0k7-Hd??m>dB++ zJs>YR3!O%*N-KxhK2<_(L5v7jj7G8~9A6L(D}oDoz%ERLmy#vk5cyTBVq~!Giavn+ zNGJF;GNMXd12S8QPZx8@Q#QnUOUZ+HRiRF7kAF#@M|0?QGpJ5kt&H~>hB3J7bU5*}H|fpBrHGJsM~65oF732%Q&qT3%_GpRQ^YS1^r zr2jRZb&OQH(&dZFj=EAKu2g6%C26hM=zoh$ge28}mAZ3rd!IKKhqs0&CzEzD+=|Z~ zj`jnXjGqQ8?sB#+WiUdlK?Yayo~cMI_EeJVaTeJhO^QpgBK#*XIeq!4PU?K@z609M z9Vz(%6l8p_aiM@=wWklhJ%dzWh86)odT{*f(PE&vQWL(xk(!NLJ?`ZX>u59}Pk)4% zoZG-q1mM^pR^qHf+T=B1yGUAOv-ZpIf>?`Q$_@3;;t7L7&j~LVR4z;p7S!<{{GGyH zVni@LK+a_9b^vo91P|eV$r}U}_YqGI)ajEi4)jUKJv11=9QnRrK+cPw6%6scB!kwq z+dU!}@VWQxz$t?43-pr&+56+NDt{spgY}6LZC*1{9(Z*-k>WX~6lE+sUHtty#5WD8 z`!{mN3aOv*8nJj39L4>YE#eF^%pXaxt7YZ$%HEA8^pWpFS#-)GrVY_(&0sOYdd&M@ zmx=gj-kE#uO(pZ~TkSQv8Oj$BC|`{m8@EiK(ZZ!A>Ii;G@@(^oODE z#OLnMW91DocF$}NVhl8litdLPy<;)@o{CX1ofiiD=dtCDlD^Z528nT;JMIfU0>m7_ py1}E%-$?{X5j9hn-aqyK+5&QJlVA)V4fcy|{|8^)1bYBb006qW2+;rl From 5a020c6d9bd50bedf87dd018a3229e333170c577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Tue, 18 Jan 2022 20:53:17 +0200 Subject: [PATCH 60/97] State service --- .../file-workload.component.html | 1 - .../file-workload/file-workload.component.ts | 9 ++--- .../page-indicator.component.ts | 37 ++++++++++-------- .../pdf-viewer/pdf-viewer.component.ts | 39 +++++++++++-------- .../view-switch/view-switch.component.ts | 3 +- .../file-preview-screen.component.html | 4 +- .../file-preview-screen.component.ts | 39 +++++++++++-------- .../services/file-preview-state.service.ts | 21 ++++++++++ .../modules/dossier/utils/pdf-viewer.utils.ts | 4 +- 9 files changed, 95 insertions(+), 62 deletions(-) create mode 100644 apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/services/file-preview-state.service.ts diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html index 720716f51..71c41366d 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.html @@ -96,7 +96,6 @@ [file]="file" [number]="pageNumber" [showDottedIcon]="hasOnlyManualRedactionsAndIsExcluded(pageNumber)" - [viewedPages]="viewedPages" >
diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.ts index e6afc8d32..584a25e84 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/file-workload/file-workload.component.ts @@ -28,7 +28,7 @@ import { PermissionsService } from '@services/permissions.service'; import { WebViewerInstance } from '@pdftron/webviewer'; import { BehaviorSubject, combineLatest, Observable } from 'rxjs'; import { map, tap } from 'rxjs/operators'; -import { File, IViewedPage } from '@red/domain'; +import { File } from '@red/domain'; import { ExcludedPagesService } from '../../services/excluded-pages.service'; import { MultiSelectService } from '../../services/multi-select.service'; import { DocumentInfoService } from '../../services/document-info.service'; @@ -52,7 +52,6 @@ export class FileWorkloadComponent { @Input() activeViewerPage: number; @Input() shouldDeselectAnnotationsOnPageChange: boolean; @Input() dialogRef: MatDialogRef; - @Input() viewedPages: IViewedPage[]; @Input() file!: File; @Input() annotationActionsTemplate: TemplateRef; @Input() viewer: WebViewerInstance; @@ -225,7 +224,7 @@ export class FileWorkloadComponent { scrollAnnotationsToPage(page: number, mode: 'always' | 'if-needed' = 'if-needed'): void { if (this._annotationsElement) { - const elements = this._annotationsElement.nativeElement.querySelectorAll(`div[anotation-page-header="${page}"]`); + const elements: HTMLElement[] = this._annotationsElement.nativeElement.querySelectorAll(`div[anotation-page-header="${page}"]`); FileWorkloadComponent._scrollToFirstElement(elements, mode); } } @@ -235,7 +234,7 @@ export class FileWorkloadComponent { if (!this.selectedAnnotations || this.selectedAnnotations.length === 0 || !this._annotationsElement) { return; } - const elements = this._annotationsElement.nativeElement.querySelectorAll( + const elements: HTMLElement[] = this._annotationsElement.nativeElement.querySelectorAll( `div[annotation-id="${this._firstSelectedAnnotation?.id}"].active`, ); FileWorkloadComponent._scrollToFirstElement(elements); @@ -412,7 +411,7 @@ export class FileWorkloadComponent { private _scrollQuickNavigationToPage(page: number) { if (this._quickNavigationElement) { - const elements = this._quickNavigationElement.nativeElement.querySelectorAll(`#quick-nav-page-${page}`); + const elements: HTMLElement[] = this._quickNavigationElement.nativeElement.querySelectorAll(`#quick-nav-page-${page}`); FileWorkloadComponent._scrollToFirstElement(elements); } } diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/page-indicator/page-indicator.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/page-indicator/page-indicator.component.ts index 922dd5516..785a6153f 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/page-indicator/page-indicator.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/page-indicator/page-indicator.component.ts @@ -6,6 +6,7 @@ import { ViewedPagesService } from '@services/entity-services/viewed-pages.servi import { File, IViewedPage } from '@red/domain'; import { AutoUnsubscribe } from '@iqser/common-ui'; import { FilesMapService } from '@services/entity-services/files-map.service'; +import { FilePreviewStateService } from '../../services/file-preview-state.service'; @Component({ selector: 'redaction-page-indicator', @@ -18,7 +19,6 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy @Input() active = false; @Input() showDottedIcon = false; @Input() number: number; - @Input() viewedPages: IViewedPage[]; @Input() activeSelection = false; @Output() readonly pageSelected = new EventEmitter(); @@ -33,25 +33,17 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy private readonly _configService: ConfigService, private readonly _changeDetectorRef: ChangeDetectorRef, private readonly _permissionService: PermissionsService, + private readonly _stateService: FilePreviewStateService, ) { super(); } get activePage() { - return this.viewedPages?.find(p => p.page === this.number); + return this._viewedPages.find(p => p.page === this.number); } - private _setReadState() { - const readBefore = this.read; - const activePage = this.activePage; - if (!activePage) { - this.read = false; - } else { - // console.log('setting read to',activePage.showAsUnseen, !activePage.showAsUnseen); - this.read = !activePage.showAsUnseen; - } - // console.log(this.number, readBefore, activePage, this.read); - this._changeDetectorRef.detectChanges(); + private get _viewedPages(): IViewedPage[] { + return this._stateService.fileData?.viewedPages || []; } ngOnChanges() { @@ -87,20 +79,33 @@ export class PageIndicatorComponent extends AutoUnsubscribe implements OnDestroy } } + private _setReadState() { + const readBefore = this.read; + const activePage = this.activePage; + if (!activePage) { + this.read = false; + } else { + // console.log('setting read to',activePage.showAsUnseen, !activePage.showAsUnseen); + this.read = !activePage.showAsUnseen; + } + // console.log(this.number, readBefore, activePage, this.read); + this._changeDetectorRef.detectChanges(); + } + private async _markPageRead() { await this._viewedPagesService.addPage({ page: this.number }, this.file.dossierId, this.file.fileId).toPromise(); if (this.activePage) { this.activePage.showAsUnseen = false; } else { - this.viewedPages?.push({ page: this.number, fileId: this.file.fileId }); + this._viewedPages.push({ page: this.number, fileId: this.file.fileId }); } this._setReadState(); } private async _markPageUnread() { await this._viewedPagesService.removePage(this.file.dossierId, this.file.fileId, this.number).toPromise(); - this.viewedPages?.splice( - this.viewedPages?.findIndex(p => p.page === this.number), + this._viewedPages.splice( + this._viewedPages.findIndex(p => p.page === this.number), 1, ); this._setReadState(); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts index a60280479..b8639aee8 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts @@ -36,11 +36,12 @@ import { ActivatedRoute } from '@angular/router'; import { toPosition } from '../../../../utils/pdf-calculation.utils'; import { ViewModeService } from '../../services/view-mode.service'; import { MultiSelectService } from '../../services/multi-select.service'; +import { FilePreviewStateService } from '../../services/file-preview-state.service'; import Tools = Core.Tools; import TextTool = Tools.TextTool; import Annotation = Core.Annotations.Annotation; -const ALLOWED_KEYBOARD_SHORTCUTS = ['+', '-', 'p', 'r', 'Escape'] as const; +const ALLOWED_KEYBOARD_SHORTCUTS: readonly string[] = ['+', '-', 'p', 'r', 'Escape'] as const; const dataElements = { ADD_REDACTION: 'add-redaction', ADD_DICTIONARY: 'add-dictionary', @@ -62,7 +63,6 @@ const dataElements = { styleUrls: ['./pdf-viewer.component.scss'], }) export class PdfViewerComponent implements OnInit, OnChanges { - @Input() fileData: Blob; @Input() file: File; @Input() dossier: Dossier; @Input() canPerformActions = false; @@ -95,6 +95,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { private readonly _annotationActionsService: AnnotationActionsService, private readonly _configService: ConfigService, private readonly _loadingService: LoadingService, + private readonly _stateService: FilePreviewStateService, readonly viewModeService: ViewModeService, readonly multiSelectService: MultiSelectService, ) {} @@ -113,6 +114,10 @@ export class PdfViewerComponent implements OnInit, OnChanges { ); } + private get _fileData(): Blob { + return this._stateService.fileData.fileData; + } + async ngOnInit() { this._setReadyAndInitialState = this._setReadyAndInitialState.bind(this); await this.loadViewer(); @@ -132,7 +137,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { } } - uploadFile(files: any) { + uploadFile(files: FileList) { const fileToCompare = files[0]; this.compareFileInput.nativeElement.value = null; @@ -148,7 +153,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { await pdfNet.initialize(environment.licenseKey ? atob(environment.licenseKey) : null); const compareDocument = await pdfNet.PDFDoc.createFromBuffer(fileReader.result as ArrayBuffer); - const currentDocument = await pdfNet.PDFDoc.createFromBuffer(await this.fileData.arrayBuffer()); + const currentDocument = await pdfNet.PDFDoc.createFromBuffer(await this._fileData.arrayBuffer()); const loadCompareDocument = async () => { this._loadingService.start(); @@ -201,7 +206,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { this.viewModeService.compareMode = false; const pdfNet = this.instance.Core.PDFNet; await pdfNet.initialize(environment.licenseKey ? atob(environment.licenseKey) : null); - const currentDocument = await pdfNet.PDFDoc.createFromBuffer(await this.fileData.arrayBuffer()); + const currentDocument = await pdfNet.PDFDoc.createFromBuffer(await this._fileData.arrayBuffer()); this.instance.UI.loadDocument(currentDocument, { filename: this.file ? this.file.filename : 'document.pdf', }); @@ -219,7 +224,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { css: this._convertPath('/assets/pdftron/stylesheet.css'), backendType: 'ems', }, - this.viewer.nativeElement, + this.viewer.nativeElement as HTMLElement, ); this.documentViewer = this.instance.Core.documentViewer; @@ -231,7 +236,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { this.utils.disableHotkeys(); this._configureTextPopup(); - this.annotationManager.addEventListener('annotationSelected', (annotations, action) => { + this.annotationManager.addEventListener('annotationSelected', (annotations: Annotation[], action) => { this.annotationSelected.emit(this.annotationManager.getSelectedAnnotations().map(ann => ann.Id)); if (action === 'deselected') { this._toggleRectangleAnnotationAction(true); @@ -241,7 +246,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { } }); - this.annotationManager.addEventListener('annotationChanged', annotations => { + this.annotationManager.addEventListener('annotationChanged', (annotations: Annotation[]) => { // when a rectangle is drawn, // it returns one annotation with tool name 'AnnotationCreateRectangle; // this will auto select rectangle after drawing @@ -251,7 +256,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { } }); - this.documentViewer.addEventListener('pageNumberUpdated', pageNumber => { + this.documentViewer.addEventListener('pageNumberUpdated', (pageNumber: number) => { if (this.shouldDeselectAnnotationsOnPageChange) { this.utils.deselectAllAnnotations(); } @@ -261,9 +266,9 @@ export class PdfViewerComponent implements OnInit, OnChanges { this.documentViewer.addEventListener('documentLoaded', this._setReadyAndInitialState); - this.documentViewer.addEventListener('keyUp', $event => { + this.documentViewer.addEventListener('keyUp', ($event: KeyboardEvent) => { // arrows and full-screen - if ($event.target?.tagName?.toLowerCase() !== 'input') { + if (($event.target as HTMLElement)?.tagName?.toLowerCase() !== 'input') { if ($event.key.startsWith('Arrow') || $event.key === 'f') { this._ngZone.run(() => { this.keyUp.emit($event); @@ -273,7 +278,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { } } - if (ALLOWED_KEYBOARD_SHORTCUTS.indexOf($event.key) < 0) { + if (!ALLOWED_KEYBOARD_SHORTCUTS.includes($event.key)) { $event.preventDefault(); $event.stopPropagation(); } @@ -568,7 +573,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { } private _addManualRedactionOfType(type: ManualRedactionEntryType) { - const selectedQuads = this.documentViewer.getSelectedTextQuads(); + const selectedQuads: Readonly> = this.documentViewer.getSelectedTextQuads(); const text = this.documentViewer.getSelectedText(); const manualRedaction = this._getManualRedaction(selectedQuads, text, true); this.manualAnnotationRequested.emit(new ManualRedactionEntryWrapper(selectedQuads, manualRedaction, type)); @@ -624,7 +629,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { for (const quad of quads[key]) { const page = parseInt(key, 10); const pageHeight = this.documentViewer.getPageHeight(page); - entry.positions.push(toPosition(page, pageHeight, convertQuads ? this.utils.translateQuads(page, quad) : quad)); + entry.positions.push(toPosition(page, pageHeight, convertQuads ? this.utils.translateQuad(page, quad) : quad)); } } @@ -634,11 +639,11 @@ export class PdfViewerComponent implements OnInit, OnChanges { } private _loadDocument() { - if (!this.fileData) { + if (!this._fileData) { return; } - this.instance.UI.loadDocument(this.fileData, { + this.instance.UI.loadDocument(this._fileData, { filename: this.file ? this.file.filename : 'document.pdf', }); } @@ -647,7 +652,7 @@ export class PdfViewerComponent implements OnInit, OnChanges { this._ngZone.run(() => { this.utils.ready = true; this.viewerReady.emit(this.instance); - const routePageNumber = this._activatedRoute.snapshot.queryParams.page; + const routePageNumber: number = this._activatedRoute.snapshot.queryParams.page; this.pageChanged.emit(routePageNumber || 1); this._setInitialDisplayMode(); this._updateTooltipsVisibility(); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/view-switch/view-switch.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/view-switch/view-switch.component.ts index 283aa7f62..5b45956f6 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/view-switch/view-switch.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/view-switch/view-switch.component.ts @@ -4,7 +4,7 @@ import { ViewModeService } from '../../services/view-mode.service'; import { FileDataModel } from '@models/file/file-data.model'; @Component({ - selector: 'redaction-view-switch [file] [fileData]', + selector: 'redaction-view-switch [file]', templateUrl: './view-switch.component.html', styleUrls: ['./view-switch.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, @@ -12,7 +12,6 @@ import { FileDataModel } from '@models/file/file-data.model'; export class ViewSwitchComponent implements OnChanges { @Output() readonly switchView = new EventEmitter(); @Input() file: File; - @Input() fileData: FileDataModel; canSwitchToDeltaView = false; canSwitchToRedactedView = false; diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html index ccc7b9f21..a7271bf42 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html @@ -3,7 +3,7 @@
- + diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts index e319283ab..85b9da834 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts @@ -1,10 +1,10 @@ -import { ChangeDetectorRef, Component, Inject, ViewChild } from '@angular/core'; +import { ChangeDetectorRef, Component, Inject, Injector, ViewChild } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Dossier } from '@red/domain'; import { EditDossierGeneralInfoComponent } from './general-info/edit-dossier-general-info.component'; import { EditDossierDownloadPackageComponent } from './download-package/edit-dossier-download-package.component'; import { EditDossierSectionInterface } from './edit-dossier-section.interface'; -import { BaseDialogComponent, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; +import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { EditDossierDictionaryComponent } from './dictionary/edit-dossier-dictionary.component'; import { EditDossierAttributesComponent } from './attributes/edit-dossier-attributes.component'; @@ -15,6 +15,7 @@ import { Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; import { EditDossierTeamComponent } from './edit-dossier-team/edit-dossier-team.component'; import { PermissionsService } from '@services/permissions.service'; +import { BaseDialogComponent } from '@shared/dialog/base-dialog.component'; type Section = 'dossierInfo' | 'downloadPackage' | 'dossierDictionary' | 'members' | 'dossierAttributes' | 'deletedDocuments'; @@ -40,16 +41,17 @@ export class EditDossierDialogComponent extends BaseDialogComponent { private readonly _toaster: Toaster, private readonly _dossiersService: DossiersService, private readonly _changeRef: ChangeDetectorRef, - private readonly _dialogRef: MatDialogRef, private readonly _loadingService: LoadingService, private readonly _permissionsService: PermissionsService, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private readonly _data: { dossierId: string; section?: Section; }, ) { - super(); + super(_injector, _dialogRef); this.navItems = [ { key: 'dossierInfo', diff --git a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts new file mode 100644 index 000000000..efdd9ba5a --- /dev/null +++ b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts @@ -0,0 +1,65 @@ +import { Directive, HostListener, Injector, OnInit } from '@angular/core'; +import { AutoUnsubscribe, IqserEventTarget } from '../../../../../../../libs/common-ui/src'; +import { MatDialogRef } from '@angular/material/dialog'; +import { ConfirmationDialogService } from '@shared/dialog/confirmation-dialog.service'; + +@Directive() +/** + * Extend this component when you want to submit the form after pressing enter. + * + * This could be done by adding properties (submit)="save()" on the form and type="submit" on the save button. + * However, some components (e.g. redaction-select, color picker) don't set focus on the input after choosing a value. + * Also, other components (e.g. dropdown select) trigger a different action on enter, instead of submit. + * + * Make sure to remove property type="submit" from the save button and the (submit)="save()" property from the form + * (otherwise the save request will be triggered twice). + * */ +export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnInit { + abstract changed: boolean; + abstract valid: boolean; + abstract disabled: boolean; + + private readonly _dialogService: ConfirmationDialogService = this._injector.get(ConfirmationDialogService); + + private _waitingForConfirmation = false; + + constructor(protected readonly _injector: Injector, protected readonly _dialogRef: MatDialogRef) { + super(); + } + + abstract save(): void; + + ngOnInit(): void { + this.addSubscription = this._dialogRef.backdropClick().subscribe(() => { + this.close(); + }); + } + + close(): void { + if (this.changed) { + this._waitingForConfirmation = true; + const dialogRef = this._dialogService.openDialog(() => this._dialogRef.close()); + dialogRef + .afterClosed() + .toPromise() + .then(() => (this._waitingForConfirmation = false)); + return; + } + this._dialogRef.close(); + } + + @HostListener('window:keydown.Enter', ['$event']) + onEnter(event: KeyboardEvent): void { + const node = (event.target as IqserEventTarget).localName; + if (this.valid && !this.disabled && this.changed && node !== 'textarea') { + this.save(); + } + } + + @HostListener('window:keydown.Escape', ['$event']) + onEscape(): void { + if (!this._waitingForConfirmation) { + this.close(); + } + } +} diff --git a/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts b/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts new file mode 100644 index 000000000..508bb40a4 --- /dev/null +++ b/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import { ConfirmationDialogComponent, ConfirmationDialogInput, DialogConfig, DialogService, TitleColors } from '@iqser/common-ui'; +import { MatDialog, MatDialogRef } from '@angular/material/dialog'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; + +type DialogType = 'confirm'; + +@Injectable() +export class ConfirmationDialogService extends DialogService { + protected readonly _config: DialogConfig = { + confirm: { + component: ConfirmationDialogComponent, + dialogConfig: { disableClose: false }, + }, + }; + + constructor(protected readonly _dialog: MatDialog) { + super(_dialog); + } + + openDialog(cb: any): MatDialogRef { + return super.openDialog( + 'confirm', + null, + new ConfirmationDialogInput({ + title: _('confirmation-dialog.unsaved-changes.title'), + question: _('confirmation-dialog.unsaved-changes.question'), + details: _('confirmation-dialog.unsaved-changes.details'), + confirmationText: _('confirmation-dialog.unsaved-changes.confirmation-text'), + denyText: _('confirmation-dialog.unsaved-changes.deny-text'), + titleColor: TitleColors.WARN, + }), + cb, + ); + } +} diff --git a/apps/red-ui/src/app/modules/shared/dialog/form-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialog/form-dialog.component.ts new file mode 100644 index 000000000..63072f58b --- /dev/null +++ b/apps/red-ui/src/app/modules/shared/dialog/form-dialog.component.ts @@ -0,0 +1,33 @@ +// import { BaseDialogComponent } from './base-dialog.component'; +// import { Injector, OnInit } from '@angular/core'; +// import { MatDialogRef } from '@angular/material/dialog'; +// import { FormGroup } from '@angular/forms'; +// +// export abstract class FormDialogComponent extends BaseDialogComponent implements OnInit { +// +// abstract readonly form: FormGroup; +// private _hasChange = false; +// +// constructor( +// protected readonly _injector: Injector, +// protected readonly _dialogRef: MatDialogRef, +// ) { +// super(_injector, _dialogRef); +// } +// +// get changed(): boolean { +// return this._hasChange; +// } +// +// onFormGroupValueChange() { +// const initialValue = this.form.value; +// this.createGroupForm.valueChanges.subscribe(value => { +// this.hasChange = Object.keys(initialValue).some(key => this.form.value[key] != +// initialValue[key]); +// }); +// } +// +// get valid(): boolean { +// return this.form.valid; +// } +// } 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 4f606ceb9..81e3e3122 100644 --- a/apps/red-ui/src/app/modules/shared/shared.module.ts +++ b/apps/red-ui/src/app/modules/shared/shared.module.ts @@ -26,6 +26,7 @@ import { TypeFilterComponent } from './components/type-filter/type-filter.compon 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 { ConfirmationDialogService } from '@shared/dialog/confirmation-dialog.service'; const buttons = [FileDownloadBtnComponent, UserButtonComponent]; @@ -69,6 +70,7 @@ const modules = [MatConfigModule, ScrollingModule, IconsModule, FormsModule, Rea }, }, }, + ConfirmationDialogService, ], }) export class SharedModule {} diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index ba5a448b6..24e960b39 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -448,6 +448,13 @@ "question": "Are you sure you want to delete {filesCount, plural, one{this document} other{these documents}}?", "title": "Delete {filesCount, plural, one{{fileName}} other{Selected Documents}}" }, + "unsaved-changes": { + "confirmation-text": "Save and Leave", + "deny-text": "DISCARD CHANGES", + "details": "If you leave the tab without saving, all the unsaved changes will be lost.", + "question": "Are you sure you want to leave the tab? You have unsaved changes.", + "title": "You have unsaved changes" + }, "upload-report-template": { "alternate-confirmation-text": "Upload as multi-file report", "confirmation-text": "Upload as single-file report", From 5b7236ff88cf394c423aaea6cfa8cad3f677cc49 Mon Sep 17 00:00:00 2001 From: Valentin Date: Mon, 20 Dec 2021 10:28:37 +0200 Subject: [PATCH 72/97] updated base dialog component to display the confirmation dialog whenever the user wants to leave the modal or change its tab with unsaved changes --- .../edit-dossier-dialog.component.ts | 19 +++++++++++++++++-- .../shared/dialog/base-dialog.component.ts | 19 ++++++++++++++----- .../dialog/confirmation-dialog.service.ts | 5 ++--- apps/red-ui/src/assets/i18n/en.json | 5 ++--- libs/common-ui | 2 +- 5 files changed, 36 insertions(+), 14 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts index 85b9da834..d9e0ca50d 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts @@ -4,7 +4,7 @@ import { Dossier } from '@red/domain'; import { EditDossierGeneralInfoComponent } from './general-info/edit-dossier-general-info.component'; import { EditDossierDownloadPackageComponent } from './download-package/edit-dossier-download-package.component'; import { EditDossierSectionInterface } from './edit-dossier-section.interface'; -import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; +import { ConfirmOptions, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { EditDossierDictionaryComponent } from './dictionary/edit-dossier-dictionary.component'; import { EditDossierAttributesComponent } from './attributes/edit-dossier-attributes.component'; @@ -148,7 +148,22 @@ export class EditDossierDialogComponent extends BaseDialogComponent { changeTab(key: Section) { if (this.changed) { - this._toaster.error(_('edit-dossier-dialog.unsaved-changes')); + this._waitingForConfirmation = true; + const dialogRef = this._dialogService.openDialog(); + dialogRef + .afterClosed() + .toPromise() + .then(async result => { + if (result in ConfirmOptions) { + if (result === ConfirmOptions.CONFIRM) { + await this.save(); + } else { + this.revert(); + } + this.activeNav = key; + } + this._waitingForConfirmation = false; + }); return; } this.activeNav = key; diff --git a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts index efdd9ba5a..a192a3832 100644 --- a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts +++ b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts @@ -1,5 +1,5 @@ import { Directive, HostListener, Injector, OnInit } from '@angular/core'; -import { AutoUnsubscribe, IqserEventTarget } from '../../../../../../../libs/common-ui/src'; +import { AutoUnsubscribe, ConfirmOptions, IqserEventTarget } from '../../../../../../../libs/common-ui/src'; import { MatDialogRef } from '@angular/material/dialog'; import { ConfirmationDialogService } from '@shared/dialog/confirmation-dialog.service'; @@ -19,9 +19,9 @@ export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnI abstract valid: boolean; abstract disabled: boolean; - private readonly _dialogService: ConfirmationDialogService = this._injector.get(ConfirmationDialogService); + protected readonly _dialogService: ConfirmationDialogService = this._injector.get(ConfirmationDialogService); - private _waitingForConfirmation = false; + protected _waitingForConfirmation = false; constructor(protected readonly _injector: Injector, protected readonly _dialogRef: MatDialogRef) { super(); @@ -38,11 +38,20 @@ export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnI close(): void { if (this.changed) { this._waitingForConfirmation = true; - const dialogRef = this._dialogService.openDialog(() => this._dialogRef.close()); + const dialogRef = this._dialogService.openDialog(); dialogRef .afterClosed() .toPromise() - .then(() => (this._waitingForConfirmation = false)); + .then(result => { + if (result in ConfirmOptions) { + if (result === ConfirmOptions.CONFIRM) { + this.save(); + } else { + this._dialogRef.close(); + } + } + this._waitingForConfirmation = false; + }); return; } this._dialogRef.close(); diff --git a/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts b/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts index 508bb40a4..9a4c68c8f 100644 --- a/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts +++ b/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts @@ -18,7 +18,7 @@ export class ConfirmationDialogService extends DialogService { super(_dialog); } - openDialog(cb: any): MatDialogRef { + openDialog(): MatDialogRef { return super.openDialog( 'confirm', null, @@ -27,10 +27,9 @@ export class ConfirmationDialogService extends DialogService { question: _('confirmation-dialog.unsaved-changes.question'), details: _('confirmation-dialog.unsaved-changes.details'), confirmationText: _('confirmation-dialog.unsaved-changes.confirmation-text'), - denyText: _('confirmation-dialog.unsaved-changes.deny-text'), + discardChangesText: _('confirmation-dialog.unsaved-changes.discard-changes-text'), titleColor: TitleColors.WARN, }), - cb, ); } } diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index 24e960b39..a53182033 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -450,8 +450,8 @@ }, "unsaved-changes": { "confirmation-text": "Save and Leave", - "deny-text": "DISCARD CHANGES", "details": "If you leave the tab without saving, all the unsaved changes will be lost.", + "discard-changes-text": "DISCARD CHANGES", "question": "Are you sure you want to leave the tab? You have unsaved changes.", "title": "You have unsaved changes" }, @@ -947,8 +947,7 @@ "members": "Members", "team-members": "Team Members" }, - "side-nav-title": "Configurations", - "unsaved-changes": "You have unsaved changes. Save or revert before changing the tab." + "side-nav-title": "Configurations" }, "error": { "deleted-entity": { diff --git a/libs/common-ui b/libs/common-ui index 1b8ce8ef1..95644f59e 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 1b8ce8ef1d295efc5b02b39b631b5e654938de29 +Subproject commit 95644f59e4e32517d76e0bd9267805a88ebdd8d1 From 08902fe3e060773b7e208cb7867f6215f9dab3c0 Mon Sep 17 00:00:00 2001 From: Valentin Date: Tue, 4 Jan 2022 20:32:33 +0200 Subject: [PATCH 73/97] updated general logic for 'valid' and 'changed' methods to be used by more classes that inherit BaseDialog --- .../add-edit-dictionary-dialog.component.html | 2 +- .../add-edit-dictionary-dialog.component.ts | 25 +------- ...dit-dossier-template-dialog.component.html | 11 +--- ...-edit-dossier-template-dialog.component.ts | 63 ++++++++----------- ...-edit-file-attribute-dialog.component.html | 4 +- ...dd-edit-file-attribute-dialog.component.ts | 24 +------ .../edit-color-dialog.component.html | 2 +- .../edit-color-dialog.component.ts | 12 +--- .../edit-dossier-dialog.component.ts | 2 +- .../shared/dialog/base-dialog.component.ts | 53 ++++++++++++++-- .../dialog/confirmation-dialog.service.ts | 3 +- .../shared/dialog/form-dialog.component.ts | 33 ---------- 12 files changed, 86 insertions(+), 148 deletions(-) delete mode 100644 apps/red-ui/src/app/modules/shared/dialog/form-dialog.component.ts diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html index 2e69716c7..abcf375f0 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html @@ -101,5 +101,5 @@
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts index 53041dcbf..49208b203 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts @@ -22,7 +22,6 @@ import { BaseDialogComponent } from '../../../shared/dialog/base-dialog.componen }) export class AddEditDictionaryDialogComponent extends BaseDialogComponent { readonly dictionary = this._data.dictionary; - readonly form: FormGroup = this._getForm(this.dictionary); readonly canEditLabel$ = this._canEditLabel$; readonly technicalName$: Observable; readonly dialogHeader = this._translateService.instant('add-edit-dictionary.title', { @@ -46,32 +45,12 @@ export class AddEditDictionaryDialogComponent extends BaseDialogComponent { private readonly _data: { readonly dictionary: Dictionary; readonly dossierTemplateId: string }, ) { super(_injector, _dialogRef); + this.form = this._getForm(this.dictionary); + this.initialForm = this._getForm(this.dictionary); this.hasColor$ = this._colorEmpty$; this.technicalName$ = this.form.get('label').valueChanges.pipe(map(value => this._toTechnicalName(value))); } - get valid(): boolean { - return this.form.valid; - } - - get changed(): boolean { - if (!this.dictionary) { - return true; - } - - for (const key of Object.keys(this.form.getRawValue())) { - if (key === 'caseSensitive') { - if (this.getDictCaseSensitive(this.dictionary) !== this.form.get(key).value) { - return true; - } - } else if (this.dictionary[key] !== this.form.get(key).value) { - return true; - } - } - - return false; - } - private get _canEditLabel$() { return this.userService.currentUser$.pipe( map(user => user.isAdmin || !this._data.dictionary), diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html index a8ee5cdf2..fe2e2f28c 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html @@ -33,16 +33,11 @@
- + {{ 'add-edit-dossier-template.form.valid-from' | translate }} - + {{ 'add-edit-dossier-template.form.valid-to' | translate }}
@@ -93,5 +88,5 @@
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts index 9755a2839..2c40876fc 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts @@ -18,7 +18,6 @@ import { BaseDialogComponent } from '../../../shared/dialog/base-dialog.componen styleUrls: ['./add-edit-dossier-template-dialog.component.scss'], }) export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent { - readonly form: FormGroup = this._getForm(); hasValidFrom: boolean; hasValidTo: boolean; downloadTypesEnum: DownloadFileType[] = ['ORIGINAL', 'PREVIEW', 'REDACTED']; @@ -29,6 +28,8 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent { readonly disabled = false; private _previousValidFrom: Moment; private _previousValidTo: Moment; + private _lastValidFrom: Moment; + private _lastValidTo: Moment; constructor( private readonly _appStateService: AppStateService, @@ -40,52 +41,38 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent { @Inject(MAT_DIALOG_DATA) readonly dossierTemplate: IDossierTemplate, ) { super(_injector, _dialogRef); + this.form = this._getForm(); + this.initialForm = this._getForm(); this.hasValidFrom = !!this.dossierTemplate?.validFrom; this.hasValidTo = !!this.dossierTemplate?.validTo; - this._previousValidFrom = this.form.get('validFrom').value; - this._previousValidTo = this.form.get('validTo').value; + this._previousValidFrom = this._lastValidFrom = this.form.get('validFrom').value; + this._previousValidTo = this._lastValidTo = this.form.get('validTo').value; - this.form.valueChanges.subscribe(value => { + this.addSubscription = this.form.valueChanges.subscribe(value => { this._applyValidityIntervalConstraints(value); }); + + this.addSubscription = this.form.controls['validFrom'].valueChanges.subscribe(value => { + if (value) { + this._lastValidFrom = value; + } + }); + this.addSubscription = this.form.controls['validTo'].valueChanges.subscribe(value => { + if (value) { + this._lastValidTo = value; + } + }); } - get valid(): boolean { - return this.form.valid; - } - - get changed(): boolean { - if (!this.dossierTemplate) { - return true; + toggleHasValid(extremity: string) { + if (extremity === 'from') { + this.hasValidFrom = !this.hasValidFrom; + this.form.controls['validFrom'].setValue(this.hasValidFrom ? this._lastValidFrom : null); + } else { + this.hasValidTo = !this.hasValidTo; + this.form.controls['validTo'].setValue(this.hasValidTo ? this._lastValidTo : null); } - - for (const key of Object.keys(this.form.getRawValue())) { - const formValue = this.form.get(key).value; - const objectValue = this.dossierTemplate[key]; - if (key === 'validFrom') { - if (this.hasValidFrom !== !!objectValue || (this.hasValidFrom && !moment(objectValue).isSame(moment(formValue)))) { - return true; - } - } else if (key === 'validTo') { - if (this.hasValidTo !== !!objectValue || (this.hasValidTo && !moment(objectValue).isSame(moment(formValue)))) { - return true; - } - } else if (formValue instanceof Array) { - if (objectValue.length !== formValue.length) { - return true; - } - for (const item of objectValue) { - if (!formValue.includes(item)) { - return true; - } - } - } else if (objectValue !== formValue) { - return true; - } - } - - return false; } async save() { diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html index 4715598f6..169d826ac 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html @@ -84,11 +84,11 @@
-
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts index 2ad60ad14..1e17d2d58 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts @@ -18,7 +18,6 @@ export class AddEditFileAttributeDialogComponent extends BaseDialogComponent { translations = fileAttributeTypesTranslations; fileAttribute: IFileAttributeConfig = this.data.fileAttribute; dossierTemplateId: string = this.data.dossierTemplateId; - readonly form!: FormGroup; readonly typeOptions = Object.keys(FileAttributeConfigTypes); readonly canSetDisplayed!: boolean; readonly canSetFilterable!: boolean; @@ -40,28 +39,7 @@ export class AddEditFileAttributeDialogComponent extends BaseDialogComponent { this.canSetDisplayed = data.numberOfDisplayedAttrs < this.DISPLAYED_FILTERABLE_LIMIT || data.fileAttribute?.displayedInFileList; this.canSetFilterable = data.numberOfFilterableAttrs < this.DISPLAYED_FILTERABLE_LIMIT || data.fileAttribute?.filterable; this.form = this._getForm(this.fileAttribute); - } - - get valid(): boolean { - return this.form.valid; - } - - get changed(): boolean { - if (!this.fileAttribute) { - return true; - } - - for (const key of Object.keys(this.form.getRawValue())) { - if (key === 'readonly') { - if (this.fileAttribute.editable === this.form.get(key).value) { - return true; - } - } else if (this.fileAttribute[key] !== this.form.get(key).value) { - return true; - } - } - - return false; + this.initialForm = this._getForm(this.fileAttribute); } save() { diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html index 1d42f37a4..873c58145 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html @@ -34,5 +34,5 @@
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts index 2af506f39..bbef7e13d 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts @@ -20,10 +20,8 @@ interface IEditColorData { styleUrls: ['./edit-color-dialog.component.scss'], }) export class EditColorDialogComponent extends BaseDialogComponent { - readonly form: FormGroup; translations = defaultColorsTranslations; readonly disabled = false; - private readonly _initialColor: string; private readonly _dossierTemplateId: string; constructor( @@ -38,17 +36,9 @@ export class EditColorDialogComponent extends BaseDialogComponent { ) { super(_injector, _dialogRef); this._dossierTemplateId = data.dossierTemplateId; - this._initialColor = data.colors[data.colorKey]; this.form = this._getForm(); - } - - get changed(): boolean { - return this.form.get('color').value !== this._initialColor; - } - - get valid(): boolean { - return this.form.valid; + this.initialForm = this._getForm(); } async save() { diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts index d9e0ca50d..827962c04 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts @@ -149,7 +149,7 @@ export class EditDossierDialogComponent extends BaseDialogComponent { changeTab(key: Section) { if (this.changed) { this._waitingForConfirmation = true; - const dialogRef = this._dialogService.openDialog(); + const dialogRef = this._dialogService.openDialog({ disableConfirm: !this.valid }); dialogRef .afterClosed() .toPromise() diff --git a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts index a192a3832..3cb2db26c 100644 --- a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts +++ b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts @@ -2,6 +2,8 @@ import { Directive, HostListener, Injector, OnInit } from '@angular/core'; import { AutoUnsubscribe, ConfirmOptions, IqserEventTarget } from '../../../../../../../libs/common-ui/src'; import { MatDialogRef } from '@angular/material/dialog'; import { ConfirmationDialogService } from '@shared/dialog/confirmation-dialog.service'; +import { FormGroup } from '@angular/forms'; +import * as moment from 'moment'; @Directive() /** @@ -15,19 +17,19 @@ import { ConfirmationDialogService } from '@shared/dialog/confirmation-dialog.se * (otherwise the save request will be triggered twice). * */ export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnInit { - abstract changed: boolean; - abstract valid: boolean; abstract disabled: boolean; protected readonly _dialogService: ConfirmationDialogService = this._injector.get(ConfirmationDialogService); - protected _waitingForConfirmation = false; + form!: FormGroup; + initialForm!: FormGroup; + constructor(protected readonly _injector: Injector, protected readonly _dialogRef: MatDialogRef) { super(); } - abstract save(): void; + abstract save(closeAfterSave?: boolean): void; ngOnInit(): void { this.addSubscription = this._dialogRef.backdropClick().subscribe(() => { @@ -35,17 +37,56 @@ export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnI }); } + get valid(): boolean { + return this.form.valid; + } + + get changed(): boolean { + // console.log('-------------------------------------------------------'); + // console.log('initialForm: ', this.initialForm.value); + // console.log('form: ', this.form.value); + + for (const key of Object.keys(this.form.getRawValue())) { + const initialValue = this.initialForm.get(key).value; + const updatedValue = this.form.get(key).value; + + if (initialValue == null && updatedValue != null) { + const updatedValueType = typeof updatedValue; + if (updatedValueType !== 'string' && updatedValueType !== 'boolean') { + return true; + } else if (updatedValueType === 'string' && updatedValue.length > 0) { + return true; + } else if (updatedValueType === 'boolean' && updatedValue === true) { + return true; + } + } else if (initialValue !== updatedValue) { + if (Array.isArray(updatedValue)) { + if (JSON.stringify(initialValue) !== JSON.stringify(updatedValue)) { + return true; + } + } else if (updatedValue instanceof moment) { + if (!moment(updatedValue).isSame(moment(initialValue))) { + return true; + } + } else { + return true; + } + } + } + return false; + } + close(): void { if (this.changed) { this._waitingForConfirmation = true; - const dialogRef = this._dialogService.openDialog(); + const dialogRef = this._dialogService.openDialog({ disableConfirm: !this.valid }); dialogRef .afterClosed() .toPromise() .then(result => { if (result in ConfirmOptions) { if (result === ConfirmOptions.CONFIRM) { - this.save(); + this.save(true); } else { this._dialogRef.close(); } diff --git a/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts b/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts index 9a4c68c8f..efab94dbd 100644 --- a/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts +++ b/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts @@ -18,7 +18,7 @@ export class ConfirmationDialogService extends DialogService { super(_dialog); } - openDialog(): MatDialogRef { + openDialog(data?): MatDialogRef { return super.openDialog( 'confirm', null, @@ -28,6 +28,7 @@ export class ConfirmationDialogService extends DialogService { details: _('confirmation-dialog.unsaved-changes.details'), confirmationText: _('confirmation-dialog.unsaved-changes.confirmation-text'), discardChangesText: _('confirmation-dialog.unsaved-changes.discard-changes-text'), + disableConfirm: data.disableConfirm, titleColor: TitleColors.WARN, }), ); diff --git a/apps/red-ui/src/app/modules/shared/dialog/form-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialog/form-dialog.component.ts deleted file mode 100644 index 63072f58b..000000000 --- a/apps/red-ui/src/app/modules/shared/dialog/form-dialog.component.ts +++ /dev/null @@ -1,33 +0,0 @@ -// import { BaseDialogComponent } from './base-dialog.component'; -// import { Injector, OnInit } from '@angular/core'; -// import { MatDialogRef } from '@angular/material/dialog'; -// import { FormGroup } from '@angular/forms'; -// -// export abstract class FormDialogComponent extends BaseDialogComponent implements OnInit { -// -// abstract readonly form: FormGroup; -// private _hasChange = false; -// -// constructor( -// protected readonly _injector: Injector, -// protected readonly _dialogRef: MatDialogRef, -// ) { -// super(_injector, _dialogRef); -// } -// -// get changed(): boolean { -// return this._hasChange; -// } -// -// onFormGroupValueChange() { -// const initialValue = this.form.value; -// this.createGroupForm.valueChanges.subscribe(value => { -// this.hasChange = Object.keys(initialValue).some(key => this.form.value[key] != -// initialValue[key]); -// }); -// } -// -// get valid(): boolean { -// return this.form.valid; -// } -// } From 6ec57b9953db8c9d0510948da4557fb276cc7538 Mon Sep 17 00:00:00 2001 From: Valentin Date: Wed, 5 Jan 2022 12:27:01 +0200 Subject: [PATCH 74/97] removed commented code, updated 'close' and 'changeTab' methods --- ...-edit-dossier-template-dialog.component.ts | 8 +--- ...-edit-file-attribute-dialog.component.html | 2 +- .../edit-dossier-dialog.component.ts | 29 ++++++--------- .../shared/dialog/base-dialog.component.ts | 37 +++++++++---------- 4 files changed, 32 insertions(+), 44 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts index 2c40876fc..f263a5904 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts @@ -54,14 +54,10 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent { }); this.addSubscription = this.form.controls['validFrom'].valueChanges.subscribe(value => { - if (value) { - this._lastValidFrom = value; - } + this._lastValidFrom = value ? value : this._lastValidFrom; }); this.addSubscription = this.form.controls['validTo'].valueChanges.subscribe(value => { - if (value) { - this._lastValidTo = value; - } + this._lastValidFrom = value ? value : this._lastValidFrom; }); } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html index 169d826ac..7a8b7aa38 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html @@ -84,7 +84,7 @@
-
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts index 827962c04..5a2c6f83b 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts @@ -148,24 +148,19 @@ export class EditDossierDialogComponent extends BaseDialogComponent { changeTab(key: Section) { if (this.changed) { - this._waitingForConfirmation = true; - const dialogRef = this._dialogService.openDialog({ disableConfirm: !this.valid }); - dialogRef - .afterClosed() - .toPromise() - .then(async result => { - if (result in ConfirmOptions) { - if (result === ConfirmOptions.CONFIRM) { - await this.save(); - } else { - this.revert(); - } - this.activeNav = key; + this._openConfirmDialog().then(async result => { + if (result in ConfirmOptions) { + if (result === ConfirmOptions.CONFIRM) { + await this.save(); + } else { + this.revert(); } - this._waitingForConfirmation = false; - }); - return; + this.activeNav = key; + } + this._waitingForConfirmation = false; + }); + } else { + this.activeNav = key; } - this.activeNav = key; } } diff --git a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts index 3cb2db26c..486aded3f 100644 --- a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts +++ b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts @@ -42,10 +42,6 @@ export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnI } get changed(): boolean { - // console.log('-------------------------------------------------------'); - // console.log('initialForm: ', this.initialForm.value); - // console.log('form: ', this.form.value); - for (const key of Object.keys(this.form.getRawValue())) { const initialValue = this.initialForm.get(key).value; const updatedValue = this.form.get(key).value; @@ -78,24 +74,25 @@ export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnI close(): void { if (this.changed) { - this._waitingForConfirmation = true; - const dialogRef = this._dialogService.openDialog({ disableConfirm: !this.valid }); - dialogRef - .afterClosed() - .toPromise() - .then(result => { - if (result in ConfirmOptions) { - if (result === ConfirmOptions.CONFIRM) { - this.save(true); - } else { - this._dialogRef.close(); - } + this._openConfirmDialog().then(result => { + if (result in ConfirmOptions) { + if (result === ConfirmOptions.CONFIRM) { + this.save(true); + } else { + this._dialogRef.close(); } - this._waitingForConfirmation = false; - }); - return; + } + this._waitingForConfirmation = false; + }); + } else { + this._dialogRef.close(); } - this._dialogRef.close(); + } + + protected _openConfirmDialog() { + this._waitingForConfirmation = true; + const dialogRef = this._dialogService.openDialog({ disableConfirm: !this.valid }); + return dialogRef.afterClosed().toPromise(); } @HostListener('window:keydown.Enter', ['$event']) From 4d9555ada9a5c32e8d7230cce65f29869734c2e8 Mon Sep 17 00:00:00 2001 From: Valentin Date: Wed, 12 Jan 2022 10:16:28 +0200 Subject: [PATCH 75/97] changed 'click' to 'action' --- .../add-edit-dictionary-dialog.component.html | 2 +- .../add-edit-dossier-template-dialog.component.html | 2 +- .../add-edit-file-attribute-dialog.component.html | 2 +- .../dialogs/edit-color-dialog/edit-color-dialog.component.html | 2 +- .../edit-dossier-dialog/edit-dossier-dialog.component.html | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html index abcf375f0..fdef99666 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html @@ -101,5 +101,5 @@
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html index fe2e2f28c..9fa14f36b 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html @@ -88,5 +88,5 @@
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html index 7a8b7aa38..1113f5e46 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html @@ -90,5 +90,5 @@
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html index 873c58145..0cf76231a 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html @@ -34,5 +34,5 @@
- + diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html index 2500c6cd4..ef9f87ce3 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html @@ -65,5 +65,5 @@
- + From b842ab9d02d698fe7e11a98745b523f3268a19c4 Mon Sep 17 00:00:00 2001 From: Valentin Date: Wed, 12 Jan 2022 10:38:07 +0200 Subject: [PATCH 76/97] stored initial form as a simple object instead of a form --- .../add-edit-dictionary-dialog.component.ts | 2 +- .../add-edit-dossier-template-dialog.component.ts | 2 +- .../add-edit-file-attribute-dialog.component.ts | 2 +- .../dialogs/edit-color-dialog/edit-color-dialog.component.ts | 2 +- .../src/app/modules/shared/dialog/base-dialog.component.ts | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts index 49208b203..2cbeb2ab9 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts @@ -46,7 +46,7 @@ export class AddEditDictionaryDialogComponent extends BaseDialogComponent { ) { super(_injector, _dialogRef); this.form = this._getForm(this.dictionary); - this.initialForm = this._getForm(this.dictionary); + this.initialFormValue = this.form.getRawValue(); this.hasColor$ = this._colorEmpty$; this.technicalName$ = this.form.get('label').valueChanges.pipe(map(value => this._toTechnicalName(value))); } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts index f263a5904..fb541d419 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts @@ -42,7 +42,7 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent { ) { super(_injector, _dialogRef); this.form = this._getForm(); - this.initialForm = this._getForm(); + this.initialFormValue = this.form.getRawValue(); this.hasValidFrom = !!this.dossierTemplate?.validFrom; this.hasValidTo = !!this.dossierTemplate?.validTo; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts index 1e17d2d58..387c78462 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts @@ -39,7 +39,7 @@ export class AddEditFileAttributeDialogComponent extends BaseDialogComponent { this.canSetDisplayed = data.numberOfDisplayedAttrs < this.DISPLAYED_FILTERABLE_LIMIT || data.fileAttribute?.displayedInFileList; this.canSetFilterable = data.numberOfFilterableAttrs < this.DISPLAYED_FILTERABLE_LIMIT || data.fileAttribute?.filterable; this.form = this._getForm(this.fileAttribute); - this.initialForm = this._getForm(this.fileAttribute); + this.initialFormValue = this.form.getRawValue(); } save() { diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts index bbef7e13d..ebc4e483d 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts @@ -38,7 +38,7 @@ export class EditColorDialogComponent extends BaseDialogComponent { this._dossierTemplateId = data.dossierTemplateId; this.form = this._getForm(); - this.initialForm = this._getForm(); + this.initialFormValue = this.form.getRawValue(); } async save() { diff --git a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts index 486aded3f..f1452b5bb 100644 --- a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts +++ b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts @@ -23,7 +23,7 @@ export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnI protected _waitingForConfirmation = false; form!: FormGroup; - initialForm!: FormGroup; + initialFormValue; constructor(protected readonly _injector: Injector, protected readonly _dialogRef: MatDialogRef) { super(); @@ -43,7 +43,7 @@ export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnI get changed(): boolean { for (const key of Object.keys(this.form.getRawValue())) { - const initialValue = this.initialForm.get(key).value; + const initialValue = this.initialFormValue[key]; const updatedValue = this.form.get(key).value; if (initialValue == null && updatedValue != null) { From 5e0af3e614356767d228d43b0877f77b2892d1db Mon Sep 17 00:00:00 2001 From: Valentin Date: Wed, 12 Jan 2022 13:13:41 +0200 Subject: [PATCH 77/97] moved 'base-dialog component' and 'confirmation-dialog service' in common --- .../add-edit-dictionary-dialog.component.ts | 3 +- ...-edit-dossier-template-dialog.component.ts | 3 +- ...dd-edit-file-attribute-dialog.component.ts | 2 +- .../edit-color-dialog.component.ts | 3 +- .../edit-dossier-dialog.component.ts | 2 +- .../shared/dialog/base-dialog.component.ts | 112 ------------------ .../dialog/confirmation-dialog.service.ts | 36 ------ .../src/app/modules/shared/shared.module.ts | 2 - 8 files changed, 5 insertions(+), 158 deletions(-) delete mode 100644 apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts delete mode 100644 apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts index 2cbeb2ab9..caec3565a 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, Inject, Injector } from '@angular/c import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Observable } from 'rxjs'; -import { shareDistinctLast, Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, shareDistinctLast, Toaster } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { AppStateService } from '@state/app-state.service'; @@ -12,7 +12,6 @@ import { Dictionary, IDictionary } from '@red/domain'; import { UserService } from '@services/user.service'; import { map } from 'rxjs/operators'; import { HttpStatusCode } from '@angular/common/http'; -import { BaseDialogComponent } from '../../../shared/dialog/base-dialog.component'; @Component({ selector: 'redaction-add-edit-dictionary-dialog', diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts index fb541d419..c7e6e6905 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts @@ -7,11 +7,10 @@ import { Moment } from 'moment'; import { applyIntervalConstraints } from '@utils/date-inputs-utils'; import { downloadTypesTranslations } from '../../../../translations/download-types-translations'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; -import { Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DownloadFileType, IDossierTemplate } from '@red/domain'; import { HttpStatusCode } from '@angular/common/http'; -import { BaseDialogComponent } from '../../../shared/dialog/base-dialog.component'; @Component({ templateUrl: './add-edit-dossier-template-dialog.component.html', diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts index 387c78462..cea36c802 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts @@ -4,7 +4,7 @@ import { FileAttributeConfigTypes, IFileAttributeConfig } from '@red/domain'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; -import { BaseDialogComponent } from '../../../shared/dialog/base-dialog.component'; +import { BaseDialogComponent } from '../../../../../../../../libs/common-ui/src'; @Component({ selector: 'redaction-add-edit-file-attribute-dialog', diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts index ebc4e483d..c98d2b51a 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts @@ -1,13 +1,12 @@ import { Component, Inject, Injector } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { DefaultColorType, IColors } from '@red/domain'; -import { Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, Toaster } from '@iqser/common-ui'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { TranslateService } from '@ngx-translate/core'; import { defaultColorsTranslations } from '../../translations/default-colors-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DictionaryService } from '@shared/services/dictionary.service'; -import { BaseDialogComponent } from '../../../shared/dialog/base-dialog.component'; interface IEditColorData { colors: IColors; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts index 5a2c6f83b..0239126aa 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts @@ -4,7 +4,7 @@ import { Dossier } from '@red/domain'; import { EditDossierGeneralInfoComponent } from './general-info/edit-dossier-general-info.component'; import { EditDossierDownloadPackageComponent } from './download-package/edit-dossier-download-package.component'; import { EditDossierSectionInterface } from './edit-dossier-section.interface'; -import { ConfirmOptions, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, ConfirmOptions, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { EditDossierDictionaryComponent } from './dictionary/edit-dossier-dictionary.component'; import { EditDossierAttributesComponent } from './attributes/edit-dossier-attributes.component'; diff --git a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts deleted file mode 100644 index f1452b5bb..000000000 --- a/apps/red-ui/src/app/modules/shared/dialog/base-dialog.component.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { Directive, HostListener, Injector, OnInit } from '@angular/core'; -import { AutoUnsubscribe, ConfirmOptions, IqserEventTarget } from '../../../../../../../libs/common-ui/src'; -import { MatDialogRef } from '@angular/material/dialog'; -import { ConfirmationDialogService } from '@shared/dialog/confirmation-dialog.service'; -import { FormGroup } from '@angular/forms'; -import * as moment from 'moment'; - -@Directive() -/** - * Extend this component when you want to submit the form after pressing enter. - * - * This could be done by adding properties (submit)="save()" on the form and type="submit" on the save button. - * However, some components (e.g. redaction-select, color picker) don't set focus on the input after choosing a value. - * Also, other components (e.g. dropdown select) trigger a different action on enter, instead of submit. - * - * Make sure to remove property type="submit" from the save button and the (submit)="save()" property from the form - * (otherwise the save request will be triggered twice). - * */ -export abstract class BaseDialogComponent extends AutoUnsubscribe implements OnInit { - abstract disabled: boolean; - - protected readonly _dialogService: ConfirmationDialogService = this._injector.get(ConfirmationDialogService); - protected _waitingForConfirmation = false; - - form!: FormGroup; - initialFormValue; - - constructor(protected readonly _injector: Injector, protected readonly _dialogRef: MatDialogRef) { - super(); - } - - abstract save(closeAfterSave?: boolean): void; - - ngOnInit(): void { - this.addSubscription = this._dialogRef.backdropClick().subscribe(() => { - this.close(); - }); - } - - get valid(): boolean { - return this.form.valid; - } - - get changed(): boolean { - for (const key of Object.keys(this.form.getRawValue())) { - const initialValue = this.initialFormValue[key]; - const updatedValue = this.form.get(key).value; - - if (initialValue == null && updatedValue != null) { - const updatedValueType = typeof updatedValue; - if (updatedValueType !== 'string' && updatedValueType !== 'boolean') { - return true; - } else if (updatedValueType === 'string' && updatedValue.length > 0) { - return true; - } else if (updatedValueType === 'boolean' && updatedValue === true) { - return true; - } - } else if (initialValue !== updatedValue) { - if (Array.isArray(updatedValue)) { - if (JSON.stringify(initialValue) !== JSON.stringify(updatedValue)) { - return true; - } - } else if (updatedValue instanceof moment) { - if (!moment(updatedValue).isSame(moment(initialValue))) { - return true; - } - } else { - return true; - } - } - } - return false; - } - - close(): void { - if (this.changed) { - this._openConfirmDialog().then(result => { - if (result in ConfirmOptions) { - if (result === ConfirmOptions.CONFIRM) { - this.save(true); - } else { - this._dialogRef.close(); - } - } - this._waitingForConfirmation = false; - }); - } else { - this._dialogRef.close(); - } - } - - protected _openConfirmDialog() { - this._waitingForConfirmation = true; - const dialogRef = this._dialogService.openDialog({ disableConfirm: !this.valid }); - return dialogRef.afterClosed().toPromise(); - } - - @HostListener('window:keydown.Enter', ['$event']) - onEnter(event: KeyboardEvent): void { - const node = (event.target as IqserEventTarget).localName; - if (this.valid && !this.disabled && this.changed && node !== 'textarea') { - this.save(); - } - } - - @HostListener('window:keydown.Escape', ['$event']) - onEscape(): void { - if (!this._waitingForConfirmation) { - this.close(); - } - } -} diff --git a/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts b/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts deleted file mode 100644 index efab94dbd..000000000 --- a/apps/red-ui/src/app/modules/shared/dialog/confirmation-dialog.service.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Injectable } from '@angular/core'; -import { ConfirmationDialogComponent, ConfirmationDialogInput, DialogConfig, DialogService, TitleColors } from '@iqser/common-ui'; -import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; - -type DialogType = 'confirm'; - -@Injectable() -export class ConfirmationDialogService extends DialogService { - protected readonly _config: DialogConfig = { - confirm: { - component: ConfirmationDialogComponent, - dialogConfig: { disableClose: false }, - }, - }; - - constructor(protected readonly _dialog: MatDialog) { - super(_dialog); - } - - openDialog(data?): MatDialogRef { - return super.openDialog( - 'confirm', - null, - new ConfirmationDialogInput({ - title: _('confirmation-dialog.unsaved-changes.title'), - question: _('confirmation-dialog.unsaved-changes.question'), - details: _('confirmation-dialog.unsaved-changes.details'), - confirmationText: _('confirmation-dialog.unsaved-changes.confirmation-text'), - discardChangesText: _('confirmation-dialog.unsaved-changes.discard-changes-text'), - disableConfirm: data.disableConfirm, - titleColor: TitleColors.WARN, - }), - ); - } -} 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 81e3e3122..4f606ceb9 100644 --- a/apps/red-ui/src/app/modules/shared/shared.module.ts +++ b/apps/red-ui/src/app/modules/shared/shared.module.ts @@ -26,7 +26,6 @@ import { TypeFilterComponent } from './components/type-filter/type-filter.compon 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 { ConfirmationDialogService } from '@shared/dialog/confirmation-dialog.service'; const buttons = [FileDownloadBtnComponent, UserButtonComponent]; @@ -70,7 +69,6 @@ const modules = [MatConfigModule, ScrollingModule, IconsModule, FormsModule, Rea }, }, }, - ConfirmationDialogService, ], }) export class SharedModule {} From 8bae52c895e247ea0ab42f6d50424c6122a0bea3 Mon Sep 17 00:00:00 2001 From: Valentin Date: Thu, 13 Jan 2022 12:05:35 +0200 Subject: [PATCH 78/97] extended base dialog for 'add dossier' component --- .../add-dossier-dialog.component.html | 4 ++-- .../add-dossier-dialog.component.ts | 16 +++++++++------- .../edit-dossier-dialog.component.html | 2 +- .../edit-dossier-dialog.component.ts | 6 +++--- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.html index e4b6d7c77..726110f51 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.html @@ -1,5 +1,5 @@
-
+
@@ -91,7 +91,7 @@ ({ key: type, @@ -30,10 +29,13 @@ export class AddDossierDialogComponent { private readonly _dossierTemplatesService: DossierTemplatesService, private readonly _formBuilder: FormBuilder, private readonly _reportTemplateController: ReportTemplateService, - readonly dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, ) { + super(_injector, _dialogRef); this._getDossierTemplates(); this.form = this._getForm(); + this.initialFormValue = this.form.getRawValue(); } private _getForm(): FormGroup { @@ -75,10 +77,10 @@ export class AddDossierDialogComponent { reportTemplateValueMapper = (reportTemplate: IReportTemplate) => reportTemplate.templateId; - async saveDossier(addMembers = false) { + async save(options?: SaveOptions) { const savedDossier = await this._dossiersService.createOrUpdate(this._formToObject()).toPromise(); if (savedDossier) { - this.dialogRef.close({ dossier: savedDossier, addMembers }); + this._dialogRef.close({ dossier: savedDossier, addMembers: options?.addMembers }); } } diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html index ef9f87ce3..a996e9418 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.html @@ -53,7 +53,7 @@ {{ 'edit-dossier-dialog.actions.save' | translate }} Date: Fri, 14 Jan 2022 16:38:27 +0200 Subject: [PATCH 79/97] extended base dialog for 'manual annotation dialog' component --- .../manual-annotation-dialog.component.html | 8 ++-- .../manual-annotation-dialog.component.ts | 40 +++++++++++-------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.html index 46db18d59..00e585c58 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.html @@ -1,5 +1,5 @@
- +
@@ -54,7 +54,7 @@
- +
@@ -74,11 +74,11 @@
-
- +
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts index bb1727d50..ccb2c63ae 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts @@ -1,4 +1,4 @@ -import { Component, Inject, OnInit } from '@angular/core'; +import { Component, Inject, Injector, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AppStateService } from '@state/app-state.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; @@ -9,6 +9,7 @@ import { PermissionsService } from '@services/permissions.service'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { Dictionary, Dossier, File, IAddRedactionRequest } from '@red/domain'; import { DossiersService } from '@services/entity-services/dossiers.service'; +import { BaseDialogComponent } from '@iqser/common-ui'; import { DictionaryService } from '@shared/services/dictionary.service'; export interface LegalBasisOption { @@ -22,9 +23,7 @@ export interface LegalBasisOption { templateUrl: './manual-annotation-dialog.component.html', styleUrls: ['./manual-annotation-dialog.component.scss'], }) -export class ManualAnnotationDialogComponent implements OnInit { - redactionForm: FormGroup; - +export class ManualAnnotationDialogComponent extends BaseDialogComponent implements OnInit { isDocumentAdmin: boolean; isDictionaryRequest: boolean; isFalsePositiveRequest: boolean; @@ -43,15 +42,21 @@ export class ManualAnnotationDialogComponent implements OnInit { private readonly _dossiersService: DossiersService, private readonly _dictionaryService: DictionaryService, public dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: { manualRedactionEntryWrapper: ManualRedactionEntryWrapper; file: File }, ) { + super(_injector, _dialogRef); this._dossier = this._dossiersService.find(this.data.file.dossierId); this.isDocumentAdmin = this._permissionsService.isApprover(this._dossier); this.isFalsePositiveRequest = this.data.manualRedactionEntryWrapper.type === 'FALSE_POSITIVE'; this.isDictionaryRequest = this.data.manualRedactionEntryWrapper.type === 'DICTIONARY' || this.isFalsePositiveRequest; - this.redactionForm = this._getForm(); + this.form = this._getForm(); + this.initialFormValue = this.form.getRawValue(); + + this.possibleDictionaries = this._possibleDictionaries; } get title() { @@ -59,7 +64,7 @@ export class ManualAnnotationDialogComponent implements OnInit { } get displayedDictionaryLabel() { - const dictType = this.redactionForm.get('dictionary').value; + const dictType = this.form.get('dictionary').value; if (dictType) { return this.possibleDictionaries.find(d => d.type === dictType).label; } @@ -92,6 +97,7 @@ export class ManualAnnotationDialogComponent implements OnInit { } async ngOnInit() { + super.ngOnInit(); this.possibleDictionaries = await this._getPossibleDictionaries(); const data = await this._justificationsService.getForDossierTemplate(this._dossier.dossierTemplateId).toPromise(); @@ -104,11 +110,11 @@ export class ManualAnnotationDialogComponent implements OnInit { this.legalOptions.sort((a, b) => a.label.localeCompare(b.label)); } - handleAddRedaction() { + save() { this._enhanceManualRedaction(this.data.manualRedactionEntryWrapper.manualRedactionEntry); this._manualAnnotationService.addAnnotation(this.data.manualRedactionEntryWrapper.manualRedactionEntry, this.data.file).subscribe( - response => this.dialogRef.close(new ManualAnnotationResponse(this.data.manualRedactionEntryWrapper, response)), - () => this.dialogRef.close(), + response => this._dialogRef.close(new ManualAnnotationResponse(this.data.manualRedactionEntryWrapper, response)), + () => this._dialogRef.close(), ); } @@ -133,8 +139,8 @@ export class ManualAnnotationDialogComponent implements OnInit { } private _enhanceManualRedaction(addRedactionRequest: IAddRedactionRequest) { - const legalOption: LegalBasisOption = this.redactionForm.get('reason').value; - addRedactionRequest.type = this.redactionForm.get('dictionary').value; + const legalOption: LegalBasisOption = this.form.get('reason').value; + addRedactionRequest.type = this.form.get('dictionary').value; if (legalOption) { addRedactionRequest.reason = legalOption.description; addRedactionRequest.legalBasis = legalOption.legalBasis; @@ -146,11 +152,13 @@ export class ManualAnnotationDialogComponent implements OnInit { if (!addRedactionRequest.reason) { addRedactionRequest.reason = 'Dictionary Request'; } - const commentValue = this.redactionForm.get('comment').value; + const commentValue = this.form.get('comment').value; addRedactionRequest.comment = commentValue ? { text: commentValue } : null; - addRedactionRequest.section = this.redactionForm.get('section').value; - addRedactionRequest.value = addRedactionRequest.rectangle - ? this.redactionForm.get('classification').value - : addRedactionRequest.value; + addRedactionRequest.section = this.form.get('section').value; + addRedactionRequest.value = addRedactionRequest.rectangle ? this.form.get('classification').value : addRedactionRequest.value; + } + + get disabled() { + return this.form.invalid; } } From a590bfc76439babdfc68612c3958d904a2705930 Mon Sep 17 00:00:00 2001 From: Valentin Date: Fri, 14 Jan 2022 18:03:15 +0200 Subject: [PATCH 80/97] extended base dialog for 'change legal basis dialog' component --- .../add-edit-dictionary-dialog.component.html | 2 +- .../add-edit-dictionary-dialog.component.ts | 1 - ...dit-dossier-template-dialog.component.html | 2 +- ...-edit-dossier-template-dialog.component.ts | 1 - ...-edit-file-attribute-dialog.component.html | 2 +- ...dd-edit-file-attribute-dialog.component.ts | 1 - .../edit-color-dialog.component.html | 2 +- .../edit-color-dialog.component.ts | 1 - .../change-legal-basis-dialog.component.html | 4 ++-- .../change-legal-basis-dialog.component.ts | 24 +++++++++---------- 10 files changed, 17 insertions(+), 23 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html index fdef99666..f626a8619 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html @@ -95,7 +95,7 @@
-
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts index caec3565a..0c80cb245 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts @@ -28,7 +28,6 @@ export class AddEditDictionaryDialogComponent extends BaseDialogComponent { name: this._data.dictionary?.label, }); readonly hasColor$: Observable; - readonly disabled = false; private readonly _dossierTemplateId = this._data.dossierTemplateId; constructor( diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html index 9fa14f36b..7c0fba861 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.html @@ -82,7 +82,7 @@
-
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts index c7e6e6905..f3a046220 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts @@ -24,7 +24,6 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent { key: type, label: downloadTypesTranslations[type], })); - readonly disabled = false; private _previousValidFrom: Moment; private _previousValidTo: Moment; private _lastValidFrom: Moment; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html index 1113f5e46..c2b1152ca 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.html @@ -84,7 +84,7 @@
-
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts index cea36c802..413cdc418 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-file-attribute-dialog/add-edit-file-attribute-dialog.component.ts @@ -13,7 +13,6 @@ import { BaseDialogComponent } from '../../../../../../../../libs/common-ui/src' changeDetection: ChangeDetectionStrategy.OnPush, }) export class AddEditFileAttributeDialogComponent extends BaseDialogComponent { - readonly disabled = false; DISPLAYED_FILTERABLE_LIMIT = 3; translations = fileAttributeTypesTranslations; fileAttribute: IFileAttributeConfig = this.data.fileAttribute; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html index 0cf76231a..2255ff409 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.html @@ -28,7 +28,7 @@
-
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts index c98d2b51a..87fd53d62 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts @@ -20,7 +20,6 @@ interface IEditColorData { }) export class EditColorDialogComponent extends BaseDialogComponent { translations = defaultColorsTranslations; - readonly disabled = false; private readonly _dossierTemplateId: string; constructor( diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.html index 97a07755e..5395eb4df 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.html @@ -38,12 +38,12 @@
-
- +
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.ts index 16f9f5e8f..fcfe2d5d7 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/change-legal-basis-dialog/change-legal-basis-dialog.component.ts @@ -1,4 +1,4 @@ -import { Component, Inject, OnInit } from '@angular/core'; +import { Component, Inject, Injector, OnInit } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; @@ -6,6 +6,7 @@ import { PermissionsService } from '@services/permissions.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { JustificationsService } from '@services/entity-services/justifications.service'; import { Dossier } from '@red/domain'; +import { BaseDialogComponent } from '@iqser/common-ui'; export interface LegalBasisOption { label?: string; @@ -16,8 +17,7 @@ export interface LegalBasisOption { @Component({ templateUrl: './change-legal-basis-dialog.component.html', }) -export class ChangeLegalBasisDialogComponent implements OnInit { - form: FormGroup = this._getForm(); +export class ChangeLegalBasisDialogComponent extends BaseDialogComponent implements OnInit { isDocumentAdmin: boolean; legalOptions: LegalBasisOption[] = []; @@ -26,16 +26,12 @@ export class ChangeLegalBasisDialogComponent implements OnInit { private readonly _dossiersService: DossiersService, private readonly _permissionsService: PermissionsService, private readonly _formBuilder: FormBuilder, - readonly dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private readonly _data: { annotations: AnnotationWrapper[]; dossier: Dossier }, - ) {} - - get changed(): boolean { - return ( - this.form.get('reason').value.legalBasis !== this._data.annotations[0].legalBasis || - this.form.get('section').value !== this._data.annotations[0].section || - this.form.get('classification').value !== this._data.annotations[0].value - ); + ) { + super(_injector, _dialogRef); + this.form = this._getForm(); } get allRectangles(): boolean { @@ -43,6 +39,7 @@ export class ChangeLegalBasisDialogComponent implements OnInit { } async ngOnInit() { + super.ngOnInit(); const data = await this._justificationsService.getForDossierTemplate(this._data.dossier.dossierTemplateId).toPromise(); this.legalOptions = data @@ -56,6 +53,7 @@ export class ChangeLegalBasisDialogComponent implements OnInit { this.form.patchValue({ reason: this.legalOptions.find(option => option.legalBasis === this._data.annotations[0].legalBasis), }); + this.initialFormValue = this.form.getRawValue(); } private _getForm(): FormGroup { @@ -69,7 +67,7 @@ export class ChangeLegalBasisDialogComponent implements OnInit { } save() { - this.dialogRef.close({ + this._dialogRef.close({ legalBasis: this.form.get('reason').value.legalBasis, section: this.form.get('section').value, comment: this.form.get('comment').value, From 85f3088f3af10cc14e3d7921c648ed944e1e7b08 Mon Sep 17 00:00:00 2001 From: Valentin Date: Mon, 17 Jan 2022 10:39:05 +0200 Subject: [PATCH 81/97] extended base dialog for 'document info dialog' component and 'force annotation dialog' compoenent --- .../document-info-dialog.component.html | 6 ++--- .../document-info-dialog.component.ts | 15 ++++++++---- .../force-annotation-dialog.component.html | 8 +++---- .../force-annotation-dialog.component.ts | 23 +++++++++++-------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.html index 2d8ddfe7c..49fadde08 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.html @@ -1,7 +1,7 @@
-
+
@@ -9,11 +9,11 @@
-
- +
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.ts index b18ead053..8d4a77500 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/document-info-dialog/document-info-dialog.component.ts @@ -1,16 +1,17 @@ -import { Component, Inject, OnInit } from '@angular/core'; +import { Component, Inject, Injector, OnInit } from '@angular/core'; import { FormBuilder, FormGroup } 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 { DossiersService } from '@services/entity-services/dossiers.service'; import { FilesService } from '@services/entity-services/files.service'; +import { BaseDialogComponent } from '@iqser/common-ui'; @Component({ templateUrl: './document-info-dialog.component.html', styleUrls: ['./document-info-dialog.component.scss'], }) -export class DocumentInfoDialogComponent implements OnInit { +export class DocumentInfoDialogComponent extends BaseDialogComponent implements OnInit { form: FormGroup; attributes: IFileAttributeConfig[]; @@ -21,27 +22,31 @@ export class DocumentInfoDialogComponent implements OnInit { private readonly _formBuilder: FormBuilder, private readonly _fileAttributesService: FileAttributesService, private readonly _filesService: FilesService, - public dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) readonly data: File, ) { + super(_injector, _dialogRef); this._dossier = this._dossiersService.find(this.data.dossierId); } async ngOnInit() { + super.ngOnInit(); this.attributes = ( await this._fileAttributesService.getFileAttributesConfig(this._dossier.dossierTemplateId).toPromise() ).fileAttributeConfigs.filter(attr => attr.editable); this.form = this._getForm(); + this.initialFormValue = this.form.getRawValue(); } - async saveDocumentInfo() { + async save() { const attributeIdToValue = { ...this.data.fileAttributes?.attributeIdToValue, ...this.form.getRawValue(), }; await this._fileAttributesService.setFileAttributes({ attributeIdToValue }, this.data.dossierId, this.data.fileId).toPromise(); this._filesService.reload(this.data.dossierId, this.data.fileId); - this.dialogRef.close(true); + this._dialogRef.close(true); } private _getForm(): FormGroup { diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.html index fb2d27da6..be573e7aa 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.html @@ -1,5 +1,5 @@
-
+
@@ -19,7 +19,7 @@
- +
@@ -29,11 +29,11 @@
-
- +
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts index 66fa3e626..3a69b28a3 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/force-redaction-dialog/force-annotation-dialog.component.ts @@ -1,7 +1,7 @@ -import { Component, Inject, OnInit } from '@angular/core'; +import { Component, Inject, Injector, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, Toaster } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; import { UserService } from '@services/user.service'; import { ManualAnnotationService } from '../../services/manual-annotation.service'; @@ -21,8 +21,7 @@ export interface LegalBasisOption { templateUrl: './force-annotation-dialog.component.html', styleUrls: ['./force-annotation-dialog.component.scss'], }) -export class ForceAnnotationDialogComponent implements OnInit { - redactionForm: FormGroup; +export class ForceAnnotationDialogComponent extends BaseDialogComponent implements OnInit { isDocumentAdmin: boolean; legalOptions: LegalBasisOption[] = []; @@ -35,10 +34,13 @@ export class ForceAnnotationDialogComponent implements OnInit { private readonly _justificationsService: JustificationsService, private readonly _manualAnnotationService: ManualAnnotationService, private readonly _permissionsService: PermissionsService, - public dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private readonly _data: { readonly dossier: Dossier; readonly hint: boolean }, ) { - this.redactionForm = this._getForm(); + super(_injector, _dialogRef); + this.form = this._getForm(); + this.initialFormValue = this.form.getRawValue(); } get isHintDialog() { @@ -55,6 +57,7 @@ export class ForceAnnotationDialogComponent implements OnInit { } async ngOnInit() { + super.ngOnInit(); const data = await this._justificationsService.getForDossierTemplate(this._data.dossier.dossierTemplateId).toPromise(); this.legalOptions = data.map(lbm => ({ @@ -66,17 +69,17 @@ export class ForceAnnotationDialogComponent implements OnInit { this.legalOptions.sort((a, b) => a.label.localeCompare(b.label)); } - handleForceAnnotation() { - this.dialogRef.close(this._createForceRedactionRequest()); + save() { + this._dialogRef.close(this._createForceRedactionRequest()); } private _createForceRedactionRequest(): ILegalBasisChangeRequest { const request: ILegalBasisChangeRequest = {}; - const legalOption: LegalBasisOption = this.redactionForm.get('reason').value; + const legalOption: LegalBasisOption = this.form.get('reason').value; request.legalBasis = legalOption.legalBasis; - request.comment = this.redactionForm.get('comment').value; + request.comment = this.form.get('comment').value; return request; } From 10f2f4c48ab373fb944eb6ff511fdbd5dd52fb46 Mon Sep 17 00:00:00 2001 From: Valentin Date: Tue, 18 Jan 2022 00:06:59 +0200 Subject: [PATCH 82/97] extended base dialog for 'recategorize image dialog' component and 'resize annotation dialog' compoenent --- .../recategorize-image-dialog.component.html | 6 ++--- .../recategorize-image-dialog.component.ts | 27 +++++++++++-------- .../resize-annotation-dialog.component.html | 6 ++--- .../resize-annotation-dialog.component.ts | 24 ++++++++++------- 4 files changed, 37 insertions(+), 26 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.html index aeafba369..a1073bcd3 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.html @@ -1,5 +1,5 @@
-
+
@@ -23,12 +23,12 @@
-
- +
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.ts index 3e6771b28..488438e46 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/recategorize-image-dialog/recategorize-image-dialog.component.ts @@ -1,17 +1,17 @@ -import { Component, Inject, OnInit } from '@angular/core'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { Component, Inject, Injector, OnInit } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; import { PermissionsService } from '@services/permissions.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { imageCategoriesTranslations } from '../../translations/image-categories-translations'; import { ImageCategory } from '../../models/image-category.model'; import { Dossier } from '@red/domain'; +import { BaseDialogComponent } from '@iqser/common-ui'; @Component({ templateUrl: './recategorize-image-dialog.component.html', }) -export class RecategorizeImageDialogComponent implements OnInit { - recategorizeImageForm: FormGroup; +export class RecategorizeImageDialogComponent extends BaseDialogComponent implements OnInit { isDocumentAdmin: boolean; typeOptions: ImageCategory[] = ['signature', 'logo', 'formula', 'image']; translations = imageCategoriesTranslations; @@ -19,27 +19,32 @@ export class RecategorizeImageDialogComponent implements OnInit { constructor( private readonly _permissionsService: PermissionsService, private readonly _formBuilder: FormBuilder, - public dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: { annotations: AnnotationWrapper[]; dossier: Dossier }, - ) {} + ) { + super(_injector, _dialogRef); + } get changed(): boolean { - return this.recategorizeImageForm.get('type').value !== this.data.annotations[0].type; + return this.form.get('type').value !== this.data.annotations[0].type; } ngOnInit() { + super.ngOnInit(); this.isDocumentAdmin = this._permissionsService.isApprover(this.data.dossier); - this.recategorizeImageForm = this._formBuilder.group({ + this.form = this._formBuilder.group({ type: [this.data.annotations[0].type, Validators.required], comment: this.isDocumentAdmin ? [null] : [null, Validators.required], }); + this.initialFormValue = this.form.getRawValue(); } save() { - this.dialogRef.close({ - type: this.recategorizeImageForm.get('type').value, - comment: this.recategorizeImageForm.get('comment').value, + this._dialogRef.close({ + type: this.form.get('type').value, + comment: this.form.get('comment').value, }); } } diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/resize-annotation-dialog/resize-annotation-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/resize-annotation-dialog/resize-annotation-dialog.component.html index 72a505f70..a83614b35 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/resize-annotation-dialog/resize-annotation-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/resize-annotation-dialog/resize-annotation-dialog.component.html @@ -1,5 +1,5 @@
-
+
@@ -10,12 +10,12 @@
-
- +
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/resize-annotation-dialog/resize-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/resize-annotation-dialog/resize-annotation-dialog.component.ts index 51e55a1ef..14b6e1b64 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/resize-annotation-dialog/resize-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/resize-annotation-dialog/resize-annotation-dialog.component.ts @@ -1,34 +1,40 @@ -import { Component, Inject, OnInit } from '@angular/core'; +import { Component, Inject, Injector, OnInit } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { FormBuilder, Validators } from '@angular/forms'; import { PermissionsService } from '@services/permissions.service'; import { Dossier } from '@red/domain'; +import { BaseDialogComponent } from '@iqser/common-ui'; @Component({ templateUrl: './resize-annotation-dialog.component.html', }) -export class ResizeAnnotationDialogComponent implements OnInit { - resizeForm: FormGroup; +export class ResizeAnnotationDialogComponent extends BaseDialogComponent implements OnInit { isDocumentAdmin: boolean; constructor( private readonly _permissionsService: PermissionsService, private readonly _formBuilder: FormBuilder, - public dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private readonly _data: { dossier: Dossier }, - ) {} + ) { + super(_injector, _dialogRef); + } ngOnInit() { + super.ngOnInit(); + this.isDocumentAdmin = this._permissionsService.isApprover(this._data.dossier); - this.resizeForm = this._formBuilder.group({ + this.form = this._formBuilder.group({ comment: this.isDocumentAdmin ? [null] : [null, Validators.required], }); + this.initialFormValue = this.form.getRawValue(); } save() { - this.dialogRef.close({ - comment: this.resizeForm.get('comment').value, + this._dialogRef.close({ + comment: this.form.get('comment').value, }); } } From 920be9e4bf537276b1f6ceb25883ec75b82c5395 Mon Sep 17 00:00:00 2001 From: Valentin Date: Tue, 18 Jan 2022 16:53:58 +0200 Subject: [PATCH 83/97] added warn box for all needed dialogs --- ...it-dossier-attribute-dialog.component.html | 4 ++-- ...edit-dossier-attribute-dialog.component.ts | 16 +++++++------- .../admin/services/admin-dialog.service.ts | 8 ++++--- .../remove-annotations-dialog.component.html | 6 +++--- .../remove-annotations-dialog.component.ts | 21 ++++++++++--------- .../services/dossiers-dialog.service.ts | 2 ++ 6 files changed, 32 insertions(+), 25 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html index ab55a854a..8ba993478 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html @@ -35,11 +35,11 @@
-
- + diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts index 96642be2e..f20fa7042 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts @@ -1,8 +1,8 @@ -import { Component, HostListener, Inject, OnDestroy } from '@angular/core'; +import { Component, HostListener, Inject, Injector, OnDestroy } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { DossierAttributeConfigTypes, FileAttributeConfigTypes, IDossierAttributeConfig } from '@red/domain'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { AutoUnsubscribe, IqserEventTarget, LoadingService, Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, IqserEventTarget, LoadingService, Toaster } from '@iqser/common-ui'; import { HttpErrorResponse } from '@angular/common/http'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations'; @@ -12,9 +12,8 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; templateUrl: './add-edit-dossier-attribute-dialog.component.html', styleUrls: ['./add-edit-dossier-attribute-dialog.component.scss'], }) -export class AddEditDossierAttributeDialogComponent extends AutoUnsubscribe implements OnDestroy { +export class AddEditDossierAttributeDialogComponent extends BaseDialogComponent implements OnDestroy { dossierAttribute: IDossierAttributeConfig = this.data.dossierAttribute; - readonly form: FormGroup = this._getForm(this.dossierAttribute); readonly translations = dossierAttributeTypesTranslations; readonly typeOptions = Object.keys(DossierAttributeConfigTypes); @@ -23,11 +22,14 @@ export class AddEditDossierAttributeDialogComponent extends AutoUnsubscribe impl private readonly _loadingService: LoadingService, private readonly _dossierAttributesService: DossierAttributesService, private readonly _toaster: Toaster, - readonly dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) readonly data: { readonly dossierAttribute: IDossierAttributeConfig }, ) { - super(); + super(_injector, _dialogRef); + this.form = this._getForm(this.dossierAttribute); + this.initialFormValue = this.form.getRawValue(); } get changed(): boolean { @@ -55,7 +57,7 @@ export class AddEditDossierAttributeDialogComponent extends AutoUnsubscribe impl this._dossierAttributesService.createOrUpdate(attribute).subscribe( () => { - this.dialogRef.close(true); + this._dialogRef.close(true); }, (error: HttpErrorResponse) => { this._loadingService.stop(); diff --git a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts index 8eaf8a2b5..66efb8fec 100644 --- a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts @@ -34,6 +34,7 @@ export class AdminDialogService extends DialogService { protected readonly _config: DialogConfig = { confirm: { component: ConfirmationDialogComponent, + dialogConfig: { disableClose: false }, }, addEditDictionary: { component: AddEditDictionaryDialogComponent, @@ -49,18 +50,19 @@ export class AdminDialogService extends DialogService { }, deleteFileAttribute: { component: ConfirmDeleteFileAttributeDialogComponent, + dialogConfig: { disableClose: false }, }, importFileAttributes: { component: FileAttributesCsvImportDialogComponent, - dialogConfig: largeDialogConfig, + dialogConfig: { ...largeDialogConfig, ...{ disableClose: false } }, }, deleteUsers: { component: ConfirmDeleteUsersDialogComponent, - dialogConfig: { autoFocus: true }, + dialogConfig: { autoFocus: true, disableClose: false }, }, addEditUser: { component: AddEditUserDialogComponent, - dialogConfig: { autoFocus: true }, + dialogConfig: { autoFocus: true, disableClose: false }, }, smtpAuthConfig: { component: SmtpAuthDialogComponent, diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/remove-annotations-dialog/remove-annotations-dialog.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/remove-annotations-dialog/remove-annotations-dialog.component.html index 9f40bf629..287629e70 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/remove-annotations-dialog/remove-annotations-dialog.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/remove-annotations-dialog/remove-annotations-dialog.component.html @@ -7,7 +7,7 @@ ) | translate: { hint: data.hint } }} -
+
{{ (data.removeFromDictionary @@ -46,12 +46,12 @@
-
- + diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/remove-annotations-dialog/remove-annotations-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/remove-annotations-dialog/remove-annotations-dialog.component.ts index f6ecb7ab3..16591d344 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/remove-annotations-dialog/remove-annotations-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/remove-annotations-dialog/remove-annotations-dialog.component.ts @@ -1,10 +1,10 @@ -import { Component, Inject } from '@angular/core'; +import { Component, Inject, Injector } from '@angular/core'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { TranslateService } from '@ngx-translate/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { PermissionsService } from '@services/permissions.service'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { humanize } from '@iqser/common-ui'; +import { FormBuilder, Validators } from '@angular/forms'; +import { BaseDialogComponent, humanize } from '@iqser/common-ui'; import { Dossier } from '@red/domain'; export interface RemoveAnnotationsDialogInput { @@ -18,23 +18,24 @@ export interface RemoveAnnotationsDialogInput { templateUrl: './remove-annotations-dialog.component.html', styleUrls: ['./remove-annotations-dialog.component.scss'], }) -export class RemoveAnnotationsDialogComponent { - redactionForm: FormGroup; - +export class RemoveAnnotationsDialogComponent extends BaseDialogComponent { constructor( private readonly _translateService: TranslateService, private readonly _formBuilder: FormBuilder, readonly permissionsService: PermissionsService, - public dialogRef: MatDialogRef, + protected readonly _injector: Injector, + protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: RemoveAnnotationsDialogInput, ) { - this.redactionForm = this._formBuilder.group({ + super(_injector, _dialogRef); + this.form = this._formBuilder.group({ comment: this.permissionsService.isApprover(this.data.dossier) ? [null] : [null, Validators.required], }); + this.initialFormValue = this.form.getRawValue(); } - confirm() { - this.dialogRef.close({ comment: this.redactionForm.getRawValue().comment }); + save() { + this._dialogRef.close({ comment: this.form.getRawValue().comment }); } printable(annotation: AnnotationWrapper) { diff --git a/apps/red-ui/src/app/modules/dossier/services/dossiers-dialog.service.ts b/apps/red-ui/src/app/modules/dossier/services/dossiers-dialog.service.ts index 5a6feb045..ca5aef32e 100644 --- a/apps/red-ui/src/app/modules/dossier/services/dossiers-dialog.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/dossiers-dialog.service.ts @@ -30,6 +30,7 @@ export class DossiersDialogService extends DialogService { protected readonly _config: DialogConfig = { confirm: { component: ConfirmationDialogComponent, + dialogConfig: { disableClose: false }, }, documentInfo: { component: DocumentInfoDialogComponent, @@ -45,6 +46,7 @@ export class DossiersDialogService extends DialogService { }, assignFile: { component: AssignReviewerApproverDialogComponent, + dialogConfig: { disableClose: false }, }, recategorizeImage: { component: RecategorizeImageDialogComponent, From 68edfbd44ec8ee56a58aa817384cd554aaafd282 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Wed, 19 Jan 2022 09:11:31 +0200 Subject: [PATCH 84/97] compile fix --- .../manual-annotation-dialog.component.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts index ccb2c63ae..f761f6cf0 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/manual-redaction-dialog/manual-annotation-dialog.component.ts @@ -55,8 +55,6 @@ export class ManualAnnotationDialogComponent extends BaseDialogComponent impleme this.form = this._getForm(); this.initialFormValue = this.form.getRawValue(); - - this.possibleDictionaries = this._possibleDictionaries; } get title() { From 9232a1049dc6545aaec10bde134de5d81ed443e0 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Wed, 19 Jan 2022 09:12:40 +0200 Subject: [PATCH 85/97] compile fix --- .../dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts index df752617a..486375e34 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts @@ -15,7 +15,6 @@ import { Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; import { EditDossierTeamComponent } from './edit-dossier-team/edit-dossier-team.component'; import { PermissionsService } from '@services/permissions.service'; -import { BaseDialogComponent } from '@shared/dialog/base-dialog.component'; type Section = 'dossierInfo' | 'downloadPackage' | 'dossierDictionary' | 'members' | 'dossierAttributes' | 'deletedDocuments'; From cf3577b3b558c9106313d52d19a87acfb3c9a943 Mon Sep 17 00:00:00 2001 From: Atlassian Bamboo Date: Wed, 19 Jan 2022 08:16:26 +0100 Subject: [PATCH 86/97] chore(release) --- package.json | 2 +- paligo-theme.tar.gz | Bin 3213 -> 3214 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca24c913f..234dc6c49 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redaction", - "version": "3.172.0", + "version": "3.173.0", "private": true, "license": "MIT", "scripts": { diff --git a/paligo-theme.tar.gz b/paligo-theme.tar.gz index 1ad857191258b4e1e9395d1cb2d2177e4df64c30..9bbeb156b355efe3e1dc79f699e7ceaefd9505c9 100644 GIT binary patch delta 3125 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 Pi*5f0gaPK?08jt`{w^9A delta 3124 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 Date: Thu, 20 Jan 2022 17:25:02 +0200 Subject: [PATCH 87/97] WIP --- .../app/modules/dossier/dossiers.module.ts | 3 +-- .../file-preview-screen.component.ts | 22 ++++++++++++------- .../services/pdf-viewer-data.service.ts | 8 +++++-- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dossiers.module.ts b/apps/red-ui/src/app/modules/dossier/dossiers.module.ts index 140fe64c1..9fd58b8cb 100644 --- a/apps/red-ui/src/app/modules/dossier/dossiers.module.ts +++ b/apps/red-ui/src/app/modules/dossier/dossiers.module.ts @@ -10,7 +10,6 @@ import { SharedModule } from '@shared/shared.module'; import { DossiersRoutingModule } from './dossiers-routing.module'; import { FileUploadDownloadModule } from '@upload-download/file-upload-download.module'; import { DossiersDialogService } from './services/dossiers-dialog.service'; -import { PdfViewerDataService } from './services/pdf-viewer-data.service'; import { ManualAnnotationService } from './services/manual-annotation.service'; import { AnnotationProcessingService } from './services/annotation-processing.service'; import { EditDossierDialogComponent } from './dialogs/edit-dossier-dialog/edit-dossier-dialog.component'; @@ -54,7 +53,7 @@ const components = [ ...dialogs, ]; -const services = [DossiersDialogService, ManualAnnotationService, PdfViewerDataService, AnnotationProcessingService]; +const services = [DossiersDialogService, ManualAnnotationService, AnnotationProcessingService]; @NgModule({ declarations: [...components], diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 1d6d6d4d0..3eb1b4393 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -24,7 +24,7 @@ import { AnnotationDrawService } from './services/annotation-draw.service'; import { AnnotationProcessingService } from '../../services/annotation-processing.service'; import { Dossier, File, ViewMode } from '@red/domain'; import { PermissionsService } from '@services/permissions.service'; -import { combineLatest, Observable, timer } from 'rxjs'; +import { combineLatest, from, Observable, timer } from 'rxjs'; import { UserPreferenceService } from '@services/user-preference.service'; import { PdfViewerDataService } from '../../services/pdf-viewer-data.service'; import { download } from '@utils/file-download-utils'; @@ -69,6 +69,7 @@ const ALL_HOTKEY_ARRAY = ['Escape', 'F', 'f', 'ArrowUp', 'ArrowDown']; AnnotationDrawService, AnnotationActionsService, FilePreviewStateService, + PdfViewerDataService, ], }) export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnInit, OnDestroy, OnAttach, OnDetach { @@ -107,7 +108,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni private readonly _router: Router, private readonly _annotationProcessingService: AnnotationProcessingService, private readonly _annotationDrawService: AnnotationDrawService, - private readonly _fileDownloadService: PdfViewerDataService, + private readonly _pdfViewerDataService: PdfViewerDataService, private readonly _filesService: FilesService, private readonly _ngZone: NgZone, private readonly _fileManagementService: FileManagementService, @@ -129,9 +130,9 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni this.dossier$ = _dossiersService.getEntityChanged$(this.dossierId); this.fileId = _activatedRoute.snapshot.paramMap.get('fileId'); this.file$ = _filesMapService.watch$(this.dossierId, this.fileId).pipe( - tap(async file => { - await this._reloadFile(file); - }), + // Filter reanalysed$ events to prevent multiple reloads + filter(file => !this._fileData || file.lastProcessed === this._fileData.file.lastProcessed), + switchMap(file => from(this._reloadFile(file)).pipe(map(() => file))), shareLast(), ); this.canPerformAnnotationActions$ = this._canPerformAnnotationActions$; @@ -486,7 +487,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni const excludedPagesHaveChanged = JSON.stringify(previousFile.excludedPages) !== JSON.stringify(this._fileData.file.excludedPages); if (fileHasBeenExcludedOrIncluded || excludedPagesHaveChanged) { - await this._deleteAnnotations(); + this._deleteAnnotations(); await this._cleanupAndRedrawAnnotations(); } } @@ -556,7 +557,9 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni this.addActiveScreenSubscription = this._filesMapService.fileReanalysed$ .pipe(filter(file => file.fileId === this.fileId)) .subscribe(async file => { + console.log(file); if (file.lastProcessed !== this._fileData?.file.lastProcessed) { + console.log(1); const previousAnnotations = this.visibleAnnotations; await this._loadFileData(file); await this._reloadAnnotations(previousAnnotations); @@ -596,7 +599,10 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni return this._router.navigate([this._dossiersService.find(this.dossierId).routerLink]); } - const fileData = await this._fileDownloadService.loadDataFor(file, this._fileData).toPromise(); + console.log(2); + const fileData = await this._pdfViewerDataService.loadDataFor(file).toPromise(); + + console.log(3); if (file.isPending) { return; @@ -626,7 +632,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } const currentPageAnnotations = this.visibleAnnotations.filter(a => a.pageNumber === page); - this._fileData.redactionLog = await this._fileDownloadService.loadRedactionLogFor(this.dossierId, this.fileId).toPromise(); + this._fileData.redactionLog = await this._pdfViewerDataService.loadRedactionLogFor(this.dossierId, this.fileId).toPromise(); this._deleteAnnotations(currentPageAnnotations); await this._cleanupAndRedrawAnnotations(currentPageAnnotations, annotation => annotation.pageNumber === page); diff --git a/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts b/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts index 591962afb..203125831 100644 --- a/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts @@ -10,6 +10,7 @@ import { ViewedPagesService } from '@services/entity-services/viewed-pages.servi import { AppStateService } from '../../../state/app-state.service'; import { DossiersService } from '../../../services/entity-services/dossiers.service'; import { UserPreferenceService } from '../../../services/user-preference.service'; +import { FilePreviewStateService } from '../screens/file-preview-screen/services/file-preview-state.service'; @Injectable() export class PdfViewerDataService { @@ -21,6 +22,7 @@ export class PdfViewerDataService { private readonly _viewedPagesService: ViewedPagesService, private readonly _appStateService: AppStateService, private readonly _userPreferenceService: UserPreferenceService, + private readonly _stateService: FilePreviewStateService, ) {} loadRedactionLogFor(dossierId: string, fileId: string) { @@ -30,14 +32,16 @@ export class PdfViewerDataService { ); } - loadDataFor(file: File, fileData?: FileDataModel): Observable { - const blob$ = fileData?.file.cacheIdentifier === file.cacheIdentifier ? fileData.blob$ : this.downloadOriginalFile(file); + loadDataFor(file: File): Observable { + const fileData = this._stateService.fileData; + const blob$ = fileData?.file.cacheIdentifier === file.cacheIdentifier ? of(fileData.blob$.value) : this.downloadOriginalFile(file); const redactionLog$ = this.loadRedactionLogFor(file.dossierId, file.fileId); const viewedPages$ = this.getViewedPagesFor(file); const dossier = this._dossiersService.find(file.dossierId); return forkJoin([blob$, redactionLog$, viewedPages$]).pipe( + tap(data => console.log('data', data)), map( (data: [blob: Blob, redactionLog: IRedactionLog, viewedPages: IViewedPage[]]) => new FileDataModel( From df20f7ba854cc1002e6a66bffe64aaa84a8ca9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Fri, 21 Jan 2022 23:04:18 +0200 Subject: [PATCH 88/97] Fixed errors on document reload --- .../file-preview-screen/file-preview-screen.component.ts | 7 ------- .../modules/dossier/services/pdf-viewer-data.service.ts | 1 - 2 files changed, 8 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index 3eb1b4393..02e199319 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -491,8 +491,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni await this._cleanupAndRedrawAnnotations(); } } - - await this._stampPDF(); } private async _stampPDF() { @@ -557,9 +555,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni this.addActiveScreenSubscription = this._filesMapService.fileReanalysed$ .pipe(filter(file => file.fileId === this.fileId)) .subscribe(async file => { - console.log(file); if (file.lastProcessed !== this._fileData?.file.lastProcessed) { - console.log(1); const previousAnnotations = this.visibleAnnotations; await this._loadFileData(file); await this._reloadAnnotations(previousAnnotations); @@ -599,11 +595,8 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni return this._router.navigate([this._dossiersService.find(this.dossierId).routerLink]); } - console.log(2); const fileData = await this._pdfViewerDataService.loadDataFor(file).toPromise(); - console.log(3); - if (file.isPending) { return; } diff --git a/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts b/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts index 203125831..bdf4a81d6 100644 --- a/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/pdf-viewer-data.service.ts @@ -41,7 +41,6 @@ export class PdfViewerDataService { const dossier = this._dossiersService.find(file.dossierId); return forkJoin([blob$, redactionLog$, viewedPages$]).pipe( - tap(data => console.log('data', data)), map( (data: [blob: Blob, redactionLog: IRedactionLog, viewedPages: IViewedPage[]]) => new FileDataModel( From 527d4933a07ba99565e5a6c4e7d6223f2aa3b6e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Sat, 22 Jan 2022 13:31:09 +0200 Subject: [PATCH 89/97] Fixes --- .../src/app/models/file/file-data.model.ts | 18 +++- .../pdf-viewer/pdf-viewer.component.ts | 4 +- .../file-preview-screen.component.html | 2 +- .../file-preview-screen.component.ts | 82 +++++++++---------- .../entity-services/files-map.service.ts | 10 --- 5 files changed, 56 insertions(+), 60 deletions(-) diff --git a/apps/red-ui/src/app/models/file/file-data.model.ts b/apps/red-ui/src/app/models/file/file-data.model.ts index 7a073a94e..16727d14b 100644 --- a/apps/red-ui/src/app/models/file/file-data.model.ts +++ b/apps/red-ui/src/app/models/file/file-data.model.ts @@ -9,20 +9,30 @@ export class FileDataModel { allAnnotations: AnnotationWrapper[]; readonly hasChangeLog$ = new BehaviorSubject(false); readonly blob$ = new BehaviorSubject(undefined); + readonly file$ = new BehaviorSubject(undefined); constructor( - public file: File, + private readonly _file: File, private readonly _blob: Blob, private _redactionLog: IRedactionLog, public viewedPages?: IViewedPage[], private _dictionaryData?: { [p: string]: Dictionary }, private _areDevFeaturesEnabled?: boolean, ) { + this.file$.next(_file); this.blob$.next(_blob); this._buildAllAnnotations(); } - get redactionLog() { + get file(): File { + return this.file$.value; + } + + set file(file: File) { + this.file$.next(file); + } + + get redactionLog(): IRedactionLog { return this._redactionLog; } @@ -49,7 +59,7 @@ export class FileDataModel { const previousAnnotations = this.allAnnotations || []; this.allAnnotations = entries .map(entry => AnnotationWrapper.fromData(entry)) - .filter(ann => ann.manual || !this.file.excludedPages.includes(ann.pageNumber)); + .filter(ann => ann.manual || !this._file.excludedPages.includes(ann.pageNumber)); if (!this._areDevFeaturesEnabled) { this.allAnnotations = this.allAnnotations.filter(annotation => !annotation.isFalsePositive); @@ -123,7 +133,7 @@ export class FileDataModel { } private _isChangeLogEntry(redactionLogEntry: IRedactionLogEntry, wrapper: RedactionLogEntryWrapper) { - if (this.file.numberOfAnalyses > 1) { + if (this._file.numberOfAnalyses > 1) { const viableChanges = redactionLogEntry.changes.filter(c => c.analysisNumber > 1); viableChanges.sort((a, b) => moment(a.dateTime).valueOf() - moment(b.dateTime).valueOf()); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts index 2688a3d5b..f0c0968a4 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/components/pdf-viewer/pdf-viewer.component.ts @@ -27,7 +27,7 @@ import { AnnotationActionsService } from '../../services/annotation-actions.serv import { UserPreferenceService } from '@services/user-preference.service'; import { BASE_HREF } from '../../../../../../tokens'; import { ConfigService } from '@services/config.service'; -import { AutoUnsubscribe, ConfirmationDialogInput, LoadingService } from '@iqser/common-ui'; +import { AutoUnsubscribe, ConfirmationDialogInput, LoadingService, shareDistinctLast } from '@iqser/common-ui'; import { DossiersDialogService } from '../../../../services/dossiers-dialog.service'; import { loadCompareDocumentWrapper } from '../../../../utils/compare-mode.utils'; import { PdfViewerUtils } from '../../../../utils/pdf-viewer.utils'; @@ -125,6 +125,8 @@ export class PdfViewerComponent extends AutoUnsubscribe implements OnInit, OnCha .pipe( filter(fileData => !!fileData), switchMap(fileData => fileData.blob$), + // Skip document reload if file content hasn't changed + shareDistinctLast(), tap(() => this._loadDocument()), ) .subscribe(); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html index a7271bf42..b90dd8d93 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.html @@ -1,5 +1,5 @@ - +