Pull request #329: RED-2846
Merge in RED/ui from RED-2846 to master * commit '61d40c67bec00e4c597e815de4183c28432caae6': (22 commits) fixed overflow yarn lock update class.active instead of style.background reference grey background when selected fix pr comments fix rebase & reference dialog back in list component wip reference service instance for every annotation card wip has references ng-container in list component fixed some pr comments references service back in providers removed useless stuff & show button if annotation has references apply filters when reference is clicked page indicator and click event on reference reference cards in dialog show/hide dialog functionality in separate service separate annotation card component in list annotation references in template references dialog close button dialog open on button click and annotation input ...
This commit is contained in:
commit
93a5b55cde
@ -46,6 +46,7 @@ export class AnnotationWrapper {
|
||||
rectangle?: boolean;
|
||||
hintDictionary?: boolean;
|
||||
section?: string;
|
||||
reference: Array<string>;
|
||||
|
||||
manual?: boolean;
|
||||
|
||||
@ -259,6 +260,7 @@ export class AnnotationWrapper {
|
||||
annotationWrapper.manual = redactionLogEntry.manual;
|
||||
annotationWrapper.engines = redactionLogEntry.engines;
|
||||
annotationWrapper.section = redactionLogEntry.section;
|
||||
annotationWrapper.reference = redactionLogEntry.reference || [];
|
||||
annotationWrapper.rectangle = redactionLogEntry.rectangle;
|
||||
annotationWrapper.hasBeenResized = redactionLogEntry.hasBeenResized;
|
||||
annotationWrapper.hasBeenRecategorized = redactionLogEntry.hasBeenRecategorized;
|
||||
|
||||
@ -88,7 +88,16 @@
|
||||
></iqser-circle-button>
|
||||
|
||||
<iqser-circle-button
|
||||
(action)="annotationActionsService.forceAnnotation($event, annotations, file, annotationsChanged, false)"
|
||||
(action)="annotationReferencesService.show(annotations[0])"
|
||||
*ngIf="annotations[0].reference.length && !multiSelectService.isActive"
|
||||
[tooltipPosition]="tooltipPosition"
|
||||
[tooltip]="'annotation-actions.see-references.label' | translate"
|
||||
[type]="buttonType"
|
||||
icon="red:reference"
|
||||
></iqser-circle-button>
|
||||
|
||||
<iqser-circle-button
|
||||
(action)="annotationActionsService.forceAnnotation($event, annotations, file, annotationsChanged)"
|
||||
*ngIf="annotationPermissions.canForceRedaction"
|
||||
[tooltipPosition]="tooltipPosition"
|
||||
[tooltip]="'annotation-actions.force-redaction.label' | translate"
|
||||
|
||||
@ -16,6 +16,8 @@ import {
|
||||
} from '../../dialogs/accept-recommendation-dialog/accept-recommendation-dialog.component';
|
||||
import { filter } from 'rxjs/operators';
|
||||
import { ManualAnnotationService } from '../../../../services/manual-annotation.service';
|
||||
import { AnnotationReferencesService } from '../../services/annotation-references.service';
|
||||
import { MultiSelectService } from '../../services/multi-select.service';
|
||||
|
||||
export const AnnotationButtonTypes = {
|
||||
dark: 'dark',
|
||||
@ -42,6 +44,8 @@ export class AnnotationActionsComponent implements OnChanges {
|
||||
constructor(
|
||||
private readonly _manualAnnotationService: ManualAnnotationService,
|
||||
readonly annotationActionsService: AnnotationActionsService,
|
||||
readonly annotationReferencesService: AnnotationReferencesService,
|
||||
readonly multiSelectService: MultiSelectService,
|
||||
private readonly _permissionsService: PermissionsService,
|
||||
private readonly _dossiersService: DossiersService,
|
||||
private readonly _userService: UserService,
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
<div class="details">
|
||||
<redaction-type-annotation-icon [annotation]="annotation" [file]="file"></redaction-type-annotation-icon>
|
||||
|
||||
<div class="flex-1">
|
||||
<div>
|
||||
<strong>{{ annotation.typeLabel | translate }}</strong>
|
||||
</div>
|
||||
<div *ngIf="annotation?.type !== 'manual'">
|
||||
<strong>
|
||||
<span>{{ annotation.descriptor | translate }}</span
|
||||
>: </strong
|
||||
>{{ annotation.type | humanize: false }}
|
||||
</div>
|
||||
<div *ngIf="annotation.shortContent && !annotation.isHint">
|
||||
<strong><span translate="content"></span>: </strong>{{ annotation.shortContent }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="active-icon-marker-container">
|
||||
<iqser-round-checkbox *ngIf="(multiSelectService.active$ | async) && isSelected" [active]="true"></iqser-round-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,15 @@
|
||||
.details {
|
||||
display: flex;
|
||||
position: relative;
|
||||
font-size: 11px;
|
||||
line-height: 14px;
|
||||
}
|
||||
|
||||
.active-icon-marker-container {
|
||||
min-width: 20px;
|
||||
}
|
||||
|
||||
redaction-type-annotation-icon {
|
||||
margin-top: 6px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||
import { AnnotationWrapper } from '../../../../../../models/file/annotation.wrapper';
|
||||
import { File } from '@red/domain';
|
||||
import { MultiSelectService } from '../../services/multi-select.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-annotation-card',
|
||||
templateUrl: './annotation-card.component.html',
|
||||
styleUrls: ['./annotation-card.component.scss'],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class AnnotationCardComponent {
|
||||
@Input() annotation: AnnotationWrapper;
|
||||
@Input() file: File;
|
||||
@Input() isSelected = false;
|
||||
|
||||
constructor(readonly multiSelectService: MultiSelectService) {}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
<div class="content-container">
|
||||
<div class="dialog references-dialog">
|
||||
<div class="references-header flex">
|
||||
<div class="small-label">
|
||||
{{ annotationReferences.length }}
|
||||
{{ (annotationReferences.length === 1 ? 'references.singular' : 'references.plural') | translate }}
|
||||
</div>
|
||||
<iqser-circle-button (action)="annotationReferencesService.hide()" icon="iqser:close"></iqser-circle-button>
|
||||
</div>
|
||||
<div class="annotations-container flex">
|
||||
<div [class.active]="isSelected(annotation.id)" class="annotation-container">
|
||||
<div class="annotation-card-container flex">
|
||||
<redaction-annotation-card [annotation]="annotation" [file]="file"></redaction-annotation-card>
|
||||
<redaction-annotation-references-page-indicator
|
||||
[number]="annotation.pageNumber"
|
||||
></redaction-annotation-references-page-indicator>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
(click)="referenceClicked.emit(reference)"
|
||||
*ngFor="let reference of annotationReferences"
|
||||
[class.active]="isSelected(reference.id)"
|
||||
class="annotation-container"
|
||||
>
|
||||
<div class="annotation-card-container flex">
|
||||
<redaction-annotation-card [annotation]="reference" [file]="file"></redaction-annotation-card>
|
||||
<redaction-annotation-references-page-indicator
|
||||
[number]="reference.pageNumber"
|
||||
></redaction-annotation-references-page-indicator>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,41 @@
|
||||
@use 'variables';
|
||||
|
||||
.references-dialog {
|
||||
position: fixed;
|
||||
margin: 0;
|
||||
width: 280px;
|
||||
max-height: 380px;
|
||||
right: 370px;
|
||||
top: 165px;
|
||||
|
||||
.references-header {
|
||||
padding: 8px 8px 8px 13px;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.annotations-container {
|
||||
flex-direction: column;
|
||||
overflow: auto;
|
||||
max-height: 330px;
|
||||
|
||||
.annotation-container {
|
||||
width: 100%;
|
||||
border-top: 1px solid rgba(226, 228, 233, 0.9);
|
||||
|
||||
&.active {
|
||||
background-color: variables.$grey-8;
|
||||
}
|
||||
|
||||
&:not(:first-child) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.annotation-card-container {
|
||||
padding: 11px 16px 16px 10px;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { AnnotationReferencesService } from '../../services/annotation-references.service';
|
||||
import { File } from '@red/domain';
|
||||
import { FileDataModel } from '@models/file/file-data.model';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-annotation-references-list',
|
||||
templateUrl: './annotation-references-list.component.html',
|
||||
styleUrls: ['./annotation-references-list.component.scss'],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class AnnotationReferencesListComponent implements OnChanges {
|
||||
@Input() annotation: AnnotationWrapper;
|
||||
@Input() file: File;
|
||||
@Input() fileData: FileDataModel;
|
||||
@Input() selectedAnnotations: AnnotationWrapper[];
|
||||
@Output() readonly referenceClicked = new EventEmitter<AnnotationWrapper>();
|
||||
annotationReferences: AnnotationWrapper[];
|
||||
|
||||
constructor(readonly annotationReferencesService: AnnotationReferencesService) {}
|
||||
|
||||
ngOnChanges(): void {
|
||||
this.annotationReferences = this.fileData.allAnnotations.filter(a => this.annotation.reference.includes(a.annotationId));
|
||||
}
|
||||
|
||||
isSelected(annotationId: string): boolean {
|
||||
return this.selectedAnnotations.some(a => a.annotationId === annotationId);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
<div class="page-number-wrapper">
|
||||
<mat-icon [svgIcon]="'red:page'"></mat-icon>
|
||||
<div class="text">
|
||||
{{ number }}
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,23 @@
|
||||
.page-number-wrapper {
|
||||
position: relative;
|
||||
height: 30px;
|
||||
|
||||
mat-icon {
|
||||
width: 27px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.text {
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 11px;
|
||||
line-height: 11px;
|
||||
position: absolute;
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-annotation-references-page-indicator',
|
||||
templateUrl: './annotation-references-page-indicator.component.html',
|
||||
styleUrls: ['./annotation-references-page-indicator.component.scss'],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class AnnotationReferencesPageIndicatorComponent {
|
||||
@Input() number: number;
|
||||
}
|
||||
@ -11,31 +11,13 @@
|
||||
<div class="active-bar-marker"></div>
|
||||
|
||||
<div [class.removed]="annotation.isChangeLogRemoved" class="annotation">
|
||||
<div [matTooltip]="annotation.content" class="details" matTooltipPosition="above">
|
||||
<redaction-type-annotation-icon [annotation]="annotation" [file]="file"></redaction-type-annotation-icon>
|
||||
|
||||
<div class="flex-1">
|
||||
<div>
|
||||
<strong>{{ annotation.typeLabel | translate }}</strong>
|
||||
</div>
|
||||
<div *ngIf="annotation?.type !== 'manual'">
|
||||
<strong>
|
||||
<span>{{ annotation.descriptor | translate }}</span
|
||||
>: </strong
|
||||
>{{ annotation.type | humanize: false }}
|
||||
</div>
|
||||
<div *ngIf="annotation.shortContent && !annotation.isHint">
|
||||
<strong><span translate="content"></span>: </strong>{{ annotation.shortContent }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="active-icon-marker-container">
|
||||
<iqser-round-checkbox
|
||||
*ngIf="(multiSelectService.active$ | async) && isSelected(annotation.annotationId)"
|
||||
[active]="true"
|
||||
></iqser-round-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
<redaction-annotation-card
|
||||
[annotation]="annotation"
|
||||
[file]="file"
|
||||
[isSelected]="isSelected(annotation.annotationId)"
|
||||
[matTooltip]="annotation.content"
|
||||
matTooltipPosition="above"
|
||||
></redaction-annotation-card>
|
||||
|
||||
<div class="actions-wrapper">
|
||||
<div
|
||||
@ -61,3 +43,13 @@
|
||||
|
||||
<redaction-annotation-details [annotation]="annotation"></redaction-annotation-details>
|
||||
</div>
|
||||
|
||||
<ng-container *ngIf="annotationReferencesService.annotation$ | async as annotation">
|
||||
<redaction-annotation-references-list
|
||||
(referenceClicked)="referenceClicked($event)"
|
||||
[annotation]="annotation"
|
||||
[fileData]="fileData"
|
||||
[file]="file"
|
||||
[selectedAnnotations]="selectedAnnotations"
|
||||
></redaction-annotation-references-list>
|
||||
</ng-container>
|
||||
|
||||
@ -16,10 +16,6 @@
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
.active-icon-marker-container {
|
||||
min-width: 20px;
|
||||
}
|
||||
|
||||
&.active {
|
||||
&:not(.lower-height) .active-bar-marker {
|
||||
background-color: variables.$primary;
|
||||
@ -40,11 +36,6 @@
|
||||
color: variables.$grey-7;
|
||||
}
|
||||
|
||||
.details {
|
||||
display: flex;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.actions-wrapper {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@ -74,11 +65,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
redaction-type-annotation-icon {
|
||||
margin-top: 6px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover,
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, TemplateRef } from '@angular/core';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { HelpModeService, IqserEventTarget } from '@iqser/common-ui';
|
||||
import { FilterService, HelpModeService, IqserEventTarget } from '@iqser/common-ui';
|
||||
import { File } from '@red/domain';
|
||||
import { MultiSelectService } from '../../services/multi-select.service';
|
||||
import { AnnotationReferencesService } from '../../services/annotation-references.service';
|
||||
import { FileDataModel } from '../../../../../../models/file/file-data.model';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-annotations-list',
|
||||
@ -12,6 +14,7 @@ import { MultiSelectService } from '../../services/multi-select.service';
|
||||
})
|
||||
export class AnnotationsListComponent implements OnChanges {
|
||||
@Input() file: File;
|
||||
@Input() fileData: FileDataModel;
|
||||
@Input() annotations: AnnotationWrapper[];
|
||||
@Input() selectedAnnotations: AnnotationWrapper[];
|
||||
@Input() annotationActionsTemplate: TemplateRef<unknown>;
|
||||
@ -22,7 +25,12 @@ export class AnnotationsListComponent implements OnChanges {
|
||||
@Output() readonly selectAnnotations = new EventEmitter<AnnotationWrapper[]>();
|
||||
@Output() readonly deselectAnnotations = new EventEmitter<AnnotationWrapper[]>();
|
||||
|
||||
constructor(readonly multiSelectService: MultiSelectService, readonly helpModeService: HelpModeService) {}
|
||||
constructor(
|
||||
readonly multiSelectService: MultiSelectService,
|
||||
readonly helpModeService: HelpModeService,
|
||||
readonly annotationReferencesService: AnnotationReferencesService,
|
||||
private readonly _filterService: FilterService,
|
||||
) {}
|
||||
|
||||
ngOnChanges(changes: SimpleChanges): void {
|
||||
if (changes.annotations && this.annotations) {
|
||||
@ -31,20 +39,27 @@ export class AnnotationsListComponent implements OnChanges {
|
||||
}
|
||||
|
||||
annotationClicked(annotation: AnnotationWrapper, $event: MouseEvent): void {
|
||||
if (($event.target as IqserEventTarget).localName === 'input') {
|
||||
if (($event?.target as IqserEventTarget)?.localName === 'input') {
|
||||
return;
|
||||
}
|
||||
this.pagesPanelActive.emit(false);
|
||||
if (this.isSelected(annotation.annotationId)) {
|
||||
this.deselectAnnotations.emit([annotation]);
|
||||
} else {
|
||||
if (this.canMultiSelect && ($event.ctrlKey || $event.metaKey) && this.selectedAnnotations.length > 0) {
|
||||
if (this.canMultiSelect && ($event?.ctrlKey || $event?.metaKey) && this.selectedAnnotations.length > 0) {
|
||||
this.multiSelectService.activate();
|
||||
}
|
||||
this.selectAnnotations.emit([annotation]);
|
||||
}
|
||||
}
|
||||
|
||||
referenceClicked(annotation: AnnotationWrapper): void {
|
||||
this.annotationClicked(annotation, null);
|
||||
if (this._filterService.filtersEnabled('primaryFilters')) {
|
||||
this._filterService.toggleFilter('primaryFilters', annotation.superType, true);
|
||||
}
|
||||
}
|
||||
|
||||
isSelected(annotationId: string): boolean {
|
||||
return !!this.selectedAnnotations?.find(a => a?.annotationId === annotationId);
|
||||
}
|
||||
|
||||
@ -203,6 +203,7 @@
|
||||
[annotationActionsTemplate]="annotationActionsTemplate"
|
||||
[annotations]="(displayedAnnotations$ | async)?.get(activeViewerPage)"
|
||||
[canMultiSelect]="!isReadOnly"
|
||||
[fileData]="fileData"
|
||||
[file]="file"
|
||||
[selectedAnnotations]="selectedAnnotations"
|
||||
iqserHelpMode="workload-annotations-list"
|
||||
|
||||
@ -33,6 +33,7 @@ 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';
|
||||
import { FileDataModel } from '../../../../../../models/file/file-data.model';
|
||||
|
||||
const COMMAND_KEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Escape'];
|
||||
const ALL_HOTKEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
|
||||
@ -55,6 +56,7 @@ export class FileWorkloadComponent {
|
||||
@Input() file!: File;
|
||||
@Input() annotationActionsTemplate: TemplateRef<unknown>;
|
||||
@Input() viewer: WebViewerInstance;
|
||||
@Input() fileData: FileDataModel;
|
||||
@Output() readonly shouldDeselectAnnotationsOnPageChangeChange = new EventEmitter<boolean>();
|
||||
@Output() readonly selectAnnotations = new EventEmitter<AnnotationWrapper[]>();
|
||||
@Output() readonly deselectAnnotations = new EventEmitter<AnnotationWrapper[]>();
|
||||
|
||||
@ -107,6 +107,7 @@
|
||||
[annotationActionsTemplate]="annotationActionsTemplate"
|
||||
[annotations]="visibleAnnotations"
|
||||
[dialogRef]="dialogRef"
|
||||
[fileData]="fileData"
|
||||
[file]="file"
|
||||
[selectedAnnotations]="selectedAnnotations"
|
||||
[viewer]="activeViewer"
|
||||
|
||||
@ -49,6 +49,7 @@ import { SkippedService } from './services/skipped.service';
|
||||
import { AnnotationActionsService } from './services/annotation-actions.service';
|
||||
import { FilePreviewStateService } from './services/file-preview-state.service';
|
||||
import { FileDataModel } from '../../../../models/file/file-data.model';
|
||||
import { AnnotationReferencesService } from './services/annotation-references.service';
|
||||
import Annotation = Core.Annotations.Annotation;
|
||||
import PDFNet = Core.PDFNet;
|
||||
|
||||
@ -69,6 +70,7 @@ const ALL_HOTKEY_ARRAY = ['Escape', 'F', 'f', 'ArrowUp', 'ArrowDown'];
|
||||
AnnotationActionsService,
|
||||
FilePreviewStateService,
|
||||
PdfViewerDataService,
|
||||
AnnotationReferencesService,
|
||||
],
|
||||
})
|
||||
export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnInit, OnDestroy, OnAttach, OnDetach {
|
||||
@ -88,6 +90,7 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
|
||||
ready = false;
|
||||
private _instance: WebViewerInstance;
|
||||
private _lastPage: string;
|
||||
|
||||
@ViewChild('fileWorkloadComponent') private readonly _workloadComponent: FileWorkloadComponent;
|
||||
@ViewChild('annotationFilterTemplate', {
|
||||
read: TemplateRef,
|
||||
|
||||
@ -19,7 +19,10 @@ import { TypeAnnotationIconComponent } from './components/type-annotation-icon/t
|
||||
import { OverlayModule } from '@angular/cdk/overlay';
|
||||
import { ViewSwitchComponent } from './components/view-switch/view-switch.component';
|
||||
import { UserManagementComponent } from './components/user-management/user-management.component';
|
||||
import { AnnotationReferencesListComponent } from './components/annotation-references-list/annotation-references-list.component';
|
||||
import { AcceptRecommendationDialogComponent } from './dialogs/accept-recommendation-dialog/accept-recommendation-dialog.component';
|
||||
import { AnnotationCardComponent } from './components/annotation-card/annotation-card.component';
|
||||
import { AnnotationReferencesPageIndicatorComponent } from './components/annotation-references-page-indicator/annotation-references-page-indicator.component';
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
@ -46,6 +49,9 @@ const routes: Routes = [
|
||||
ViewSwitchComponent,
|
||||
UserManagementComponent,
|
||||
AcceptRecommendationDialogComponent,
|
||||
AnnotationReferencesListComponent,
|
||||
AnnotationCardComponent,
|
||||
AnnotationReferencesPageIndicatorComponent,
|
||||
],
|
||||
imports: [
|
||||
RouterModule.forChild(routes),
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { shareDistinctLast } from '@iqser/common-ui';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
|
||||
@Injectable()
|
||||
export class AnnotationReferencesService {
|
||||
readonly annotation$: Observable<AnnotationWrapper>;
|
||||
private readonly _annotation$ = new BehaviorSubject<AnnotationWrapper | undefined>(undefined);
|
||||
|
||||
constructor() {
|
||||
this.annotation$ = this._annotation$.asObservable().pipe(shareDistinctLast());
|
||||
}
|
||||
|
||||
show(annotation: AnnotationWrapper) {
|
||||
this._annotation$.next(annotation);
|
||||
}
|
||||
|
||||
hide() {
|
||||
this._annotation$.next(undefined);
|
||||
}
|
||||
}
|
||||
@ -51,6 +51,7 @@ export class IconsModule {
|
||||
'reanalyse',
|
||||
'reason',
|
||||
'redaction-changes',
|
||||
'reference',
|
||||
'remove-from-dict',
|
||||
'report',
|
||||
'resize',
|
||||
|
||||
@ -141,7 +141,20 @@
|
||||
"settings": "Einstellungen"
|
||||
},
|
||||
"annotation": "Anmerkung",
|
||||
"references": {
|
||||
"singular": "",
|
||||
"plural": ""
|
||||
},
|
||||
"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"
|
||||
},
|
||||
@ -151,12 +164,15 @@
|
||||
"edit-reason": {
|
||||
"label": "Begründung bearbeiten"
|
||||
},
|
||||
"force-hint": {
|
||||
"label": "Hinweis erzwingen"
|
||||
},
|
||||
"force-redaction": {
|
||||
"label": "Schwärzung erzwingen"
|
||||
},
|
||||
"see-references": {
|
||||
"label": ""
|
||||
},
|
||||
"force-hint": {
|
||||
"label": "Hinweis erzwingen"
|
||||
},
|
||||
"hide": "Ausblenden",
|
||||
"message": {
|
||||
"dictionary": {
|
||||
|
||||
@ -141,6 +141,10 @@
|
||||
"settings": "Settings"
|
||||
},
|
||||
"annotation": "Annotation",
|
||||
"references": {
|
||||
"singular": "REFERENCE",
|
||||
"plural": "REFERENCES"
|
||||
},
|
||||
"annotation-actions": {
|
||||
"accept-recommendation": {
|
||||
"label": "Accept Recommendation"
|
||||
@ -157,6 +161,9 @@
|
||||
"force-redaction": {
|
||||
"label": "Force Redaction"
|
||||
},
|
||||
"see-references": {
|
||||
"label": "See References"
|
||||
},
|
||||
"hide": "Hide",
|
||||
"message": {
|
||||
"dictionary": {
|
||||
|
||||
12
apps/red-ui/src/assets/icons/general/reference.svg
Normal file
12
apps/red-ui/src/assets/icons/general/reference.svg
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="Styleguide" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Styleguide-Actions" transform="translate(-979.000000, -588.000000)" fill="#283241" fill-rule="nonzero">
|
||||
<g id="reference" transform="translate(969.000000, 578.000000)">
|
||||
<g id="status" transform="translate(10.000000, 10.000000)">
|
||||
<polygon id="Path" points="14 6.3 8.68 6.3 12.46 2.52 11.48 1.54 7.7 5.32 7.7 0 6.3 0 6.3 5.32 2.52 1.54 1.54 2.52 5.32 6.3 0 6.3 0 7.7 5.32 7.7 1.54 11.48 2.52 12.46 6.3 8.68 6.3 14 7.7 14 7.7 8.68 11.48 12.46 12.46 11.48 8.68 7.7 14 7.7"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 881 B |
@ -1 +1 @@
|
||||
Subproject commit b65ad23aaa3ed5ece6242c2b3b569322d275e93e
|
||||
Subproject commit 6c79b02a50f268a6b663e8e46d88f3c0d333a608
|
||||
14
package.json
14
package.json
@ -39,7 +39,7 @@
|
||||
"@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",
|
||||
"@nrwl/angular": "13.5.3",
|
||||
"@pdftron/webviewer": "8.2.0",
|
||||
"@swimlane/ngx-charts": "^20.0.1",
|
||||
"file-saver": "^2.0.5",
|
||||
@ -70,12 +70,12 @@
|
||||
"@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/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",
|
||||
"@nrwl/cli": "13.5.3",
|
||||
"@nrwl/eslint-plugin-nx": "13.5.3",
|
||||
"@nrwl/jest": "13.5.3",
|
||||
"@nrwl/linter": "13.5.3",
|
||||
"@nrwl/tao": "13.5.3",
|
||||
"@nrwl/workspace": "13.5.3",
|
||||
"@types/jest": "27.4.0",
|
||||
"@types/lodash": "^4.14.178",
|
||||
"@types/node": "17.0.9",
|
||||
|
||||
266
yarn.lock
266
yarn.lock
@ -1570,7 +1570,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.5":
|
||||
"@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==
|
||||
@ -1590,15 +1590,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
|
||||
integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
|
||||
|
||||
"@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"
|
||||
minimatch "^3.0.4"
|
||||
|
||||
"@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"
|
||||
@ -1608,7 +1599,7 @@
|
||||
debug "^4.1.1"
|
||||
minimatch "^3.0.4"
|
||||
|
||||
"@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1":
|
||||
"@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==
|
||||
@ -2054,20 +2045,19 @@
|
||||
node-gyp "^8.2.0"
|
||||
read-package-json-fast "^2.0.1"
|
||||
|
||||
"@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==
|
||||
"@nrwl/angular@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-13.5.3.tgz#ea21b45734b317b8fff84fd04ff9950175e22d6c"
|
||||
integrity sha512-Fh0x9Cz0OMWYx8By1cFLjzKmT2GZY8Se9rqd/31fftVwdftOpt0lrTIrVtb+b16195JAKpCsLvNJlZmp6AOeiQ==
|
||||
dependencies:
|
||||
"@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"
|
||||
"@nrwl/cypress" "13.5.3"
|
||||
"@nrwl/devkit" "13.5.3"
|
||||
"@nrwl/jest" "13.5.3"
|
||||
"@nrwl/linter" "13.5.3"
|
||||
"@nrwl/storybook" "13.5.3"
|
||||
"@phenomnomnominal/tsquery" "4.1.1"
|
||||
"@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"
|
||||
@ -2077,27 +2067,26 @@
|
||||
tslib "^2.3.0"
|
||||
webpack-merge "5.7.3"
|
||||
|
||||
"@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==
|
||||
"@nrwl/cli@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-13.5.3.tgz#3b32247e9f9703f95f6e066f6000da2f32ad4e9a"
|
||||
integrity sha512-TMh8FfF6PPnjuxoSIU0wFVtE6xcf5UfxmX0pSy+ztEDU66RBSPwUxbHUFZGMKrT7jNZLutqmziwi89leTngvfw==
|
||||
dependencies:
|
||||
"@nrwl/tao" "13.4.5"
|
||||
"@nrwl/tao" "13.5.3"
|
||||
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.4.5":
|
||||
version "13.4.5"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-13.4.5.tgz#88bd7eb4818f27ebc13328b0ad904168231af864"
|
||||
integrity sha512-hQ3lUHuiTqynvOnvTtJTWzeb7N6RrGntjwjH3CpPgTOKWz1Zj7YXGGULrl4dC/xFeKBlm1ptDX3bbxrZjdePVQ==
|
||||
"@nrwl/cypress@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-13.5.3.tgz#09fb88e8ea273533e1312058c7d0eb711fe7fca0"
|
||||
integrity sha512-iM6k9nQrRKX+5pTaKibGPw78+apZtGFvZFV0fu5LaRqBA/0XS4QrKzC2k2MSyDCVmW+X25X17P3J6sbBqACESA==
|
||||
dependencies:
|
||||
"@cypress/webpack-preprocessor" "^5.9.1"
|
||||
"@nrwl/devkit" "13.4.5"
|
||||
"@nrwl/linter" "13.4.5"
|
||||
"@nrwl/workspace" "13.4.5"
|
||||
"@nrwl/devkit" "13.5.3"
|
||||
"@nrwl/linter" "13.5.3"
|
||||
"@nrwl/workspace" "13.5.3"
|
||||
chalk "4.1.0"
|
||||
enhanced-resolve "^5.8.3"
|
||||
fork-ts-checker-webpack-plugin "6.2.10"
|
||||
@ -2107,40 +2096,40 @@
|
||||
tsconfig-paths-webpack-plugin "3.4.1"
|
||||
tslib "^2.3.0"
|
||||
webpack-node-externals "^3.0.0"
|
||||
yargs-parser "20.0.0"
|
||||
|
||||
"@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==
|
||||
"@nrwl/devkit@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-13.5.3.tgz#efa41af408384a39b00c23f4340c55b37f9f0193"
|
||||
integrity sha512-Fg2n5KjCbKn2c5lRGpYzuyB2x385RJmsyJ+7EE230MCTJaw5OXk7U02hrK+nL5dZltEmI06VH409FAEwVyOUqw==
|
||||
dependencies:
|
||||
"@nrwl/tao" "13.4.5"
|
||||
"@nrwl/tao" "13.5.3"
|
||||
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.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==
|
||||
"@nrwl/eslint-plugin-nx@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-13.5.3.tgz#487f6cd34982c84429b54a505b1270ddf49d95e1"
|
||||
integrity sha512-UUsD15npa5srrPEFnuWAzzfNejvxg8H2iKBmxQXbtXSnXfCYDoi7ahk90CH2/lV7T7fFldyltlItpjXd/t44Mg==
|
||||
dependencies:
|
||||
"@nrwl/devkit" "13.4.5"
|
||||
"@nrwl/workspace" "13.4.5"
|
||||
"@nrwl/devkit" "13.5.3"
|
||||
"@nrwl/workspace" "13.5.3"
|
||||
"@typescript-eslint/experimental-utils" "~5.3.0"
|
||||
chalk "4.1.0"
|
||||
confusing-browser-globals "^1.0.9"
|
||||
ts-node "^9.1.1"
|
||||
tsconfig-paths "^3.9.0"
|
||||
|
||||
"@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==
|
||||
"@nrwl/jest@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-13.5.3.tgz#487d9d010ff9511a04ef45f9305a44443cc145c8"
|
||||
integrity sha512-PCBX/4LxKKWxrsgqj0ejAWwT64Iv6fejntZsyQNr2yzDSZY/sQL4XJ8EbVH4yivzxqn3F1+blmpDrDLlAhDy6g==
|
||||
dependencies:
|
||||
"@jest/reporters" "27.2.2"
|
||||
"@jest/test-result" "27.2.2"
|
||||
"@nrwl/devkit" "13.4.5"
|
||||
"@nrwl/devkit" "13.5.3"
|
||||
chalk "4.1.0"
|
||||
identity-obj-proxy "3.0.0"
|
||||
jest-config "27.2.2"
|
||||
@ -2150,38 +2139,35 @@
|
||||
rxjs "^6.5.4"
|
||||
tslib "^2.3.0"
|
||||
|
||||
"@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==
|
||||
"@nrwl/linter@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/linter/-/linter-13.5.3.tgz#d5547bd6a6b40a2d1bb08e9d50dfd219ea6d8390"
|
||||
integrity sha512-xiQVPlhLjesFdt9uHXV4GtuFgiUbx9cATc3At1R6xHkdd7Lbqv/deq+FWJKnGb5MgTpvzyQc/gNUvfSyKoSBsA==
|
||||
dependencies:
|
||||
"@nrwl/devkit" "13.4.5"
|
||||
"@nrwl/jest" "13.4.5"
|
||||
"@nrwl/devkit" "13.5.3"
|
||||
"@nrwl/jest" "13.5.3"
|
||||
"@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.4.5":
|
||||
version "13.4.5"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-13.4.5.tgz#b86310ae9465633285d80fc4a546a60f3e21479a"
|
||||
integrity sha512-5wg3xwkclrNybeTMv3lui48roPZgd6LNa8hKeb5/g8GAic5W0OGglGNiLXOlIY0kAs5KIVhvz+7ZXSBVpDuSlw==
|
||||
"@nrwl/storybook@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-13.5.3.tgz#1f684cc1e068e44c6a5c35ec7b856a0c4d4204ae"
|
||||
integrity sha512-sZMQCu/FCMdYgJ/JtqWYEnwG9fgoQUXzAAMtkIpYP3fDlKAh8hCASBO1oQmz2CNjp+iAaIgN4ZRzA9uEMeMJDA==
|
||||
dependencies:
|
||||
"@nrwl/cypress" "13.4.5"
|
||||
"@nrwl/devkit" "13.4.5"
|
||||
"@nrwl/linter" "13.4.5"
|
||||
"@nrwl/workspace" "13.4.5"
|
||||
"@nrwl/cypress" "13.5.3"
|
||||
"@nrwl/devkit" "13.5.3"
|
||||
"@nrwl/linter" "13.5.3"
|
||||
"@nrwl/workspace" "13.5.3"
|
||||
core-js "^3.6.5"
|
||||
semver "7.3.4"
|
||||
ts-loader "^9.2.6"
|
||||
tsconfig-paths-webpack-plugin "3.4.1"
|
||||
|
||||
"@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==
|
||||
"@nrwl/tao@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-13.5.3.tgz#5112120395968916080216d530d62b0928513820"
|
||||
integrity sha512-YAHW4yGROt+a8yDrgG9UxrmSyi62S0Pi6EhLluk5e9s/sNJM1k2NfoVCzZMZYsCbv4tKYv4RSlqf3EQMe28uJw==
|
||||
dependencies:
|
||||
chalk "4.1.0"
|
||||
enquirer "~2.3.6"
|
||||
@ -2189,7 +2175,7 @@
|
||||
fs-extra "^9.1.0"
|
||||
ignore "^5.0.4"
|
||||
jsonc-parser "3.0.0"
|
||||
nx "13.4.5"
|
||||
nx "13.5.3"
|
||||
rxjs "^6.5.4"
|
||||
rxjs-for-await "0.0.2"
|
||||
semver "7.3.4"
|
||||
@ -2197,20 +2183,20 @@
|
||||
tslib "^2.3.0"
|
||||
yargs-parser "20.0.0"
|
||||
|
||||
"@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==
|
||||
"@nrwl/workspace@13.5.3":
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-13.5.3.tgz#2dc369a0c6bc9b483edcc48375a6c9547719bb98"
|
||||
integrity sha512-ZY7HGPhs0w0neXLXJgbIYd36+FZuc8LHgaxhExsK9vdusuaXhNVyMkR+TmbtN9sXAB0ZN0+hzcty+V7ncn4sHQ==
|
||||
dependencies:
|
||||
"@nrwl/cli" "13.4.5"
|
||||
"@nrwl/devkit" "13.4.5"
|
||||
"@nrwl/jest" "13.4.5"
|
||||
"@nrwl/linter" "13.4.5"
|
||||
"@nrwl/cli" "13.5.3"
|
||||
"@nrwl/devkit" "13.5.3"
|
||||
"@nrwl/jest" "13.5.3"
|
||||
"@nrwl/linter" "13.5.3"
|
||||
"@parcel/watcher" "2.0.4"
|
||||
chalk "4.1.0"
|
||||
chokidar "^3.5.1"
|
||||
cli-cursor "3.1.0"
|
||||
cli-spinners "2.6.1"
|
||||
cosmiconfig "^4.0.0"
|
||||
dotenv "~10.0.0"
|
||||
enquirer "~2.3.6"
|
||||
figures "3.2.0"
|
||||
@ -2223,7 +2209,6 @@
|
||||
open "^7.4.2"
|
||||
rxjs "^6.5.4"
|
||||
semver "7.3.4"
|
||||
strip-ansi "6.0.0"
|
||||
tmp "~0.2.1"
|
||||
tslib "^2.3.0"
|
||||
yargs "15.4.1"
|
||||
@ -3165,7 +3150,7 @@ 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@^5.0.0, ansi-regex@^5.0.1:
|
||||
ansi-regex@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
|
||||
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
||||
@ -4177,7 +4162,7 @@ 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@^3.1.0:
|
||||
cli-cursor@3.1.0, cli-cursor@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
|
||||
integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
|
||||
@ -4481,16 +4466,6 @@ core-util-is@~1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
|
||||
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
|
||||
|
||||
cosmiconfig@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
|
||||
integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==
|
||||
dependencies:
|
||||
is-directory "^0.3.1"
|
||||
js-yaml "^3.9.0"
|
||||
parse-json "^4.0.0"
|
||||
require-from-string "^2.0.1"
|
||||
|
||||
cosmiconfig@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
|
||||
@ -5331,7 +5306,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:
|
||||
version "2.3.6"
|
||||
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
|
||||
integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
|
||||
@ -5751,14 +5726,6 @@ eslint-scope@^4.0.3:
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
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:
|
||||
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"
|
||||
@ -5789,50 +5756,6 @@ eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^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:
|
||||
"@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.3.2"
|
||||
doctrine "^3.0.0"
|
||||
enquirer "^2.3.5"
|
||||
escape-string-regexp "^4.0.0"
|
||||
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 "^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 "^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"
|
||||
progress "^2.0.0"
|
||||
regexpp "^3.2.0"
|
||||
semver "^7.2.1"
|
||||
strip-ansi "^6.0.1"
|
||||
strip-json-comments "^3.1.0"
|
||||
text-table "^0.2.0"
|
||||
v8-compile-cache "^2.0.3"
|
||||
|
||||
eslint@8.7.0:
|
||||
version "8.7.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.7.0.tgz#22e036842ee5b7cf87b03fe237731675b4d3633c"
|
||||
@ -5874,7 +5797,7 @@ eslint@8.7.0:
|
||||
text-table "^0.2.0"
|
||||
v8-compile-cache "^2.0.3"
|
||||
|
||||
espree@^9.0.0, espree@^9.2.0, espree@^9.3.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==
|
||||
@ -6301,11 +6224,6 @@ find-cache-dir@^3.3.1:
|
||||
make-dir "^3.0.2"
|
||||
pkg-dir "^4.1.0"
|
||||
|
||||
find-parent-dir@^0.3.1:
|
||||
version "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.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
|
||||
@ -7369,11 +7287,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
|
||||
is-data-descriptor "^1.0.0"
|
||||
kind-of "^6.0.2"
|
||||
|
||||
is-directory@^0.3.1:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
|
||||
integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
|
||||
|
||||
is-docker@^2.0.0, is-docker@^2.1.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
|
||||
@ -8494,7 +8407,7 @@ js-tokens@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
||||
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
|
||||
|
||||
js-yaml@^3.13.1, js-yaml@^3.9.0:
|
||||
js-yaml@^3.13.1:
|
||||
version "3.14.1"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
|
||||
integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
|
||||
@ -8552,7 +8465,7 @@ jsesc@~0.5.0:
|
||||
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
|
||||
integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
|
||||
|
||||
json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
|
||||
json-parse-better-errors@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
|
||||
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
|
||||
@ -9619,12 +9532,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.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==
|
||||
nx@13.5.3:
|
||||
version "13.5.3"
|
||||
resolved "https://registry.yarnpkg.com/nx/-/nx-13.5.3.tgz#5bdc72fd51eadcaf1dc4d5af800b863e4d103a4e"
|
||||
integrity sha512-OqYNq+RL+nk8IAbxOl9CnfHnURA68tYlQojUdtdAiKnmcOouSzWnt1zRZb2nUWiMUiWEVojExMvCqXLwgRwQ6Q==
|
||||
dependencies:
|
||||
"@nrwl/cli" "13.4.5"
|
||||
"@nrwl/cli" "13.5.3"
|
||||
|
||||
object-assign@^4.0.1, object-assign@^4.1.1:
|
||||
version "4.1.1"
|
||||
@ -9969,14 +9882,6 @@ parse-json@^2.2.0:
|
||||
dependencies:
|
||||
error-ex "^1.2.0"
|
||||
|
||||
parse-json@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
|
||||
integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
|
||||
dependencies:
|
||||
error-ex "^1.3.1"
|
||||
json-parse-better-errors "^1.0.1"
|
||||
|
||||
parse-json@^5.0.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
|
||||
@ -10885,7 +10790,7 @@ process@^0.11.1, process@^0.11.10:
|
||||
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
||||
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
|
||||
|
||||
progress@^2.0.0, progress@^2.0.3:
|
||||
progress@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
||||
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
||||
@ -11219,7 +11124,7 @@ require-directory@^2.1.1:
|
||||
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
||||
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
|
||||
|
||||
require-from-string@^2.0.1, require-from-string@^2.0.2:
|
||||
require-from-string@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
|
||||
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
|
||||
@ -11555,7 +11460,7 @@ semver@7.3.4:
|
||||
dependencies:
|
||||
lru-cache "^6.0.0"
|
||||
|
||||
semver@7.3.5, semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
|
||||
semver@7.3.5, semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
|
||||
version "7.3.5"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
|
||||
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
|
||||
@ -12068,13 +11973,6 @@ string_decoder@~1.1.1:
|
||||
dependencies:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
strip-ansi@6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
|
||||
integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
|
||||
dependencies:
|
||||
ansi-regex "^5.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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user