migrate inputs to signal inputs
This commit is contained in:
parent
ab550a2831
commit
f0b4070ae2
@ -10,6 +10,8 @@ import { BrowserModule } from '@angular/platform-browser';
|
||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { ServiceWorkerModule } from '@angular/service-worker';
|
||||
import { HelpModeKey } from '@common-ui/help-mode/types';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
|
||||
import { GET_TENANT_FROM_PATH_FN, UI_ROOT } from '@common-ui/utils';
|
||||
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
|
||||
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
||||
@ -33,7 +35,6 @@ import {
|
||||
HelpModeComponent,
|
||||
HiddenActionDirective,
|
||||
IconButtonComponent,
|
||||
InputWithActionComponent,
|
||||
IqserAllowDirective,
|
||||
IqserDenyDirective,
|
||||
IqserListingModule,
|
||||
@ -41,7 +42,6 @@ import {
|
||||
IqserTranslateModule,
|
||||
LanguageService,
|
||||
MAX_RETRIES_ON_SERVER_ERROR,
|
||||
RoundCheckboxComponent,
|
||||
SERVER_ERROR_SKIP_PATHS,
|
||||
ServerErrorInterceptor,
|
||||
StopPropagationDirective,
|
||||
|
||||
@ -1,22 +1,18 @@
|
||||
import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';
|
||||
import { digitalSignatureDialogTranslations } from '../../translations/digital-signature-dialog-translations';
|
||||
import {
|
||||
BaseDialogComponent,
|
||||
CircleButtonComponent,
|
||||
DetailsRadioComponent,
|
||||
DetailsRadioOption,
|
||||
IconButtonComponent,
|
||||
} from '@iqser/common-ui';
|
||||
import { MatDialogClose, MatDialogRef } from '@angular/material/dialog';
|
||||
import { PkcsSignatureConfigurationComponent } from './form/pkcs-signature-configuration/pkcs-signature-configuration.component';
|
||||
import { KmsSignatureConfigurationComponent } from './form/kms-signature-configuration/kms-signature-configuration.component';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { HttpStatusCode } from '@angular/common/http';
|
||||
import { DigitalSignatureOption, DigitalSignatureOptions } from '@red/domain';
|
||||
import { NgIf } from '@angular/common';
|
||||
import { HttpStatusCode } from '@angular/common/http';
|
||||
import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';
|
||||
import { ReactiveFormsModule } from '@angular/forms';
|
||||
import { MatDialogClose, MatDialogRef } from '@angular/material/dialog';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DigitalSignatureOption, DigitalSignatureOptions } from '@red/domain';
|
||||
import { DigitalSignatureService } from '../../services/digital-signature.service';
|
||||
import { digitalSignatureDialogTranslations } from '../../translations/digital-signature-dialog-translations';
|
||||
import { KmsSignatureConfigurationComponent } from './form/kms-signature-configuration/kms-signature-configuration.component';
|
||||
import { PkcsSignatureConfigurationComponent } from './form/pkcs-signature-configuration/pkcs-signature-configuration.component';
|
||||
|
||||
const DEFAULT_DIALOG_WIDTH = '662px';
|
||||
const KMS_SIGNATURE_DIALOG_WIDTH = '810px';
|
||||
|
||||
@ -1,35 +1,34 @@
|
||||
import { AsyncPipe, NgIf } from '@angular/common';
|
||||
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
|
||||
import { RouterLink } from '@angular/router';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import { getCurrentUser } from '@common-ui/users';
|
||||
import { getParam } from '@common-ui/utils';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
IqserAllowDirective,
|
||||
IqserDialog,
|
||||
IqserListingModule,
|
||||
ListingComponent,
|
||||
TableColumnConfig,
|
||||
listingProvidersFactory,
|
||||
LoadingService,
|
||||
IconButtonTypes,
|
||||
IqserDialog,
|
||||
CircleButtonComponent,
|
||||
IqserListingModule,
|
||||
InputWithActionComponent,
|
||||
IconButtonComponent,
|
||||
IqserAllowDirective,
|
||||
TableColumnConfig,
|
||||
} from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { ComponentMapping, DOSSIER_TEMPLATE_ID, User } from '@red/domain';
|
||||
import { ComponentMappingsService } from '@services/entity-services/component-mappings.service';
|
||||
import { defaultColorsTranslations } from '@translations/default-colors-translations';
|
||||
import { Roles } from '@users/roles';
|
||||
import { getCurrentUser } from '@common-ui/users';
|
||||
import { DOSSIER_TEMPLATE_ID, User } from '@red/domain';
|
||||
import { ComponentMapping } from '@red/domain';
|
||||
import { combineLatest, firstValueFrom } from 'rxjs';
|
||||
import { ComponentMappingsService } from '@services/entity-services/component-mappings.service';
|
||||
import { map, tap } from 'rxjs/operators';
|
||||
import { AddEditComponentMappingDialogComponent } from './add-edit-component-mapping-dialog/add-edit-component-mapping-dialog.component';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { getParam } from '@common-ui/utils';
|
||||
import { DossierTemplateBreadcrumbsComponent } from '../../shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component';
|
||||
import { AsyncPipe, NgIf } from '@angular/common';
|
||||
import { DossierTemplateActionsComponent } from '../../shared/components/dossier-template-actions/dossier-template-actions.component';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { RouterLink } from '@angular/router';
|
||||
import { AdminSideNavComponent } from '../../shared/components/admin-side-nav/admin-side-nav.component';
|
||||
import { DossierTemplateActionsComponent } from '../../shared/components/dossier-template-actions/dossier-template-actions.component';
|
||||
import { DossierTemplateBreadcrumbsComponent } from '../../shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component';
|
||||
import { AddEditComponentMappingDialogComponent } from './add-edit-component-mapping-dialog/add-edit-component-mapping-dialog.component';
|
||||
|
||||
@Component({
|
||||
templateUrl: './component-mappings-screen.component.html',
|
||||
@ -52,18 +51,18 @@ import { AdminSideNavComponent } from '../../shared/components/admin-side-nav/ad
|
||||
],
|
||||
})
|
||||
export class ComponentMappingsScreenComponent extends ListingComponent<ComponentMapping> implements OnInit {
|
||||
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
|
||||
protected readonly context$;
|
||||
protected readonly currentUser = getCurrentUser<User>();
|
||||
protected readonly translations = defaultColorsTranslations;
|
||||
protected readonly roles = Roles;
|
||||
protected readonly iconButtonTypes = IconButtonTypes;
|
||||
tableColumnConfigs: readonly TableColumnConfig<ComponentMapping>[] = [
|
||||
{ label: _('component-mappings-screen.table-col-names.name'), sortByKey: 'searchKey' },
|
||||
{ label: _('component-mappings-screen.table-col-names.version') },
|
||||
{ label: _('component-mappings-screen.table-col-names.number-of-lines') },
|
||||
];
|
||||
readonly tableHeaderLabel = _('component-mappings-screen.table-header.title');
|
||||
protected readonly context$;
|
||||
protected readonly currentUser = getCurrentUser<User>();
|
||||
protected readonly translations = defaultColorsTranslations;
|
||||
protected readonly roles = Roles;
|
||||
protected readonly iconButtonTypes = IconButtonTypes;
|
||||
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
|
||||
|
||||
constructor(
|
||||
private readonly _loadingService: LoadingService,
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
defaultDialogConfig,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
InputWithActionComponent,
|
||||
IqserListingModule,
|
||||
ListingComponent,
|
||||
listingProvidersFactory,
|
||||
@ -15,6 +16,7 @@ import {
|
||||
} from '@iqser/common-ui';
|
||||
import { getCurrentUser } from '@iqser/common-ui/lib/users';
|
||||
import { getParam } from '@iqser/common-ui/lib/utils';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DOSSIER_TEMPLATE_ID, DossierAttributeConfig, IDossierAttributeConfig, User } from '@red/domain';
|
||||
import { DossierAttributesService } from '@services/entity-services/dossier-attributes.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
@ -24,8 +26,6 @@ import {
|
||||
AddEditDossierAttributeDialogComponent,
|
||||
AddEditDossierAttributeDialogData,
|
||||
} from './add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { TableItemComponent } from './table-item/table-item.component';
|
||||
|
||||
@Component({
|
||||
|
||||
@ -1,32 +1,32 @@
|
||||
import { AsyncPipe, NgIf } from '@angular/common';
|
||||
import { Component, OnDestroy, OnInit } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import {
|
||||
defaultDialogConfig,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
InputWithActionComponent,
|
||||
IqserListingModule,
|
||||
ListingComponent,
|
||||
listingProvidersFactory,
|
||||
LoadingService,
|
||||
TableColumnConfig,
|
||||
} from '@iqser/common-ui';
|
||||
import { SortingOrders } from '@iqser/common-ui/lib/sorting';
|
||||
import { getParam } from '@iqser/common-ui/lib/utils';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { type DonutChartConfig, DOSSIER_TEMPLATE_ID, type DossierState } from '@red/domain';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { firstValueFrom, Observable } from 'rxjs';
|
||||
import { DossierStatesMapService } from '@services/entity-services/dossier-states-map.service';
|
||||
import { map, tap } from 'rxjs/operators';
|
||||
import { DossierStatesService } from '@services/entity-services/dossier-states.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
|
||||
import { firstValueFrom, Observable } from 'rxjs';
|
||||
import { map, tap } from 'rxjs/operators';
|
||||
import {
|
||||
AddEditDossierStateDialogComponent,
|
||||
AddEditDossierStateDialogData,
|
||||
} from '../add-edit-dossier-state-dialog/add-edit-dossier-state-dialog.component';
|
||||
import { SortingOrders } from '@iqser/common-ui/lib/sorting';
|
||||
import { getParam } from '@iqser/common-ui/lib/utils';
|
||||
import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
|
||||
import { AsyncPipe, NgIf } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DossierStatesTableItemComponent } from '../dossier-states-table-item/dossier-states-table-item.component';
|
||||
|
||||
@Component({
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
import { AsyncPipe } from '@angular/common';
|
||||
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
InputWithActionComponent,
|
||||
IqserAllowDirective,
|
||||
IqserListingModule,
|
||||
IqserPermissionsService,
|
||||
@ -14,6 +15,7 @@ import {
|
||||
TableColumnConfig,
|
||||
} from '@iqser/common-ui';
|
||||
import { getCurrentUser } from '@iqser/common-ui/lib/users';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DossierTemplate, User } from '@red/domain';
|
||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||
import { RouterHistoryService } from '@services/router-history.service';
|
||||
@ -21,8 +23,6 @@ import { Roles } from '@users/roles';
|
||||
import { UserPreferenceService } from '@users/user-preference.service';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import { AdminDialogService } from '../../../services/admin-dialog.service';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AsyncPipe } from '@angular/common';
|
||||
import { TableItemComponent } from '../table-item/table-item.component';
|
||||
|
||||
@Component({
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
import { AsyncPipe, NgIf, NgStyle } from '@angular/common';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { RouterLink } from '@angular/router';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
InputWithActionComponent,
|
||||
IqserListingModule,
|
||||
ListingComponent,
|
||||
listingProvidersFactory,
|
||||
@ -12,18 +14,16 @@ import {
|
||||
TableColumnConfig,
|
||||
} from '@iqser/common-ui';
|
||||
import { getParam } from '@iqser/common-ui/lib/utils';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Dictionary, DOSSIER_TEMPLATE_ID, DossierTemplateStats } from '@red/domain';
|
||||
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
||||
import { DictionaryService } from '@services/entity-services/dictionary.service';
|
||||
import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component';
|
||||
import { firstValueFrom, Observable } from 'rxjs';
|
||||
import { tap } from 'rxjs/operators';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AsyncPipe, NgIf, NgStyle } from '@angular/common';
|
||||
import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component';
|
||||
import { RouterLink } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
templateUrl: './entities-listing-screen.component.html',
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatMenu, MatMenuTrigger } from '@angular/material/menu';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { EditableInputComponent } from '@common-ui/inputs/editable-input/editable-input.component';
|
||||
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
|
||||
import {
|
||||
ChevronButtonComponent,
|
||||
CircleButtonComponent,
|
||||
EditableInputComponent,
|
||||
IqserListingModule,
|
||||
ListingComponent,
|
||||
listingProvidersFactory,
|
||||
RoundCheckboxComponent,
|
||||
TableColumnConfig,
|
||||
} from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { FileAttributeConfigTypes, IField } from '@red/domain';
|
||||
import { fileAttributeTypesTranslations } from '@translations/file-attribute-types-translations';
|
||||
import { MatMenu, MatMenuTrigger } from '@angular/material/menu';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-active-fields-listing',
|
||||
|
||||
@ -1,29 +1,29 @@
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
||||
import { AbstractControl, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, ValidatorFn, Validators } from '@angular/forms';
|
||||
import { MatAutocomplete, MatAutocompleteTrigger, MatOption } from '@angular/material/autocomplete';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import * as Papa from 'papaparse';
|
||||
import { firstValueFrom, Observable } from 'rxjs';
|
||||
import { map, startWith } from 'rxjs/operators';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
InputWithActionComponent,
|
||||
IqserTranslateModule,
|
||||
ListingComponent,
|
||||
listingProvidersFactory,
|
||||
TableColumnConfig,
|
||||
Toaster,
|
||||
} from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { trackByFactory } from '@iqser/common-ui/lib/utils';
|
||||
import { FileAttributeConfig, FileAttributeConfigTypes, FileAttributeEncodingTypes, IField, IFileAttributesConfig } from '@red/domain';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { fileAttributeEncodingTypesTranslations } from '@translations/file-attribute-encoding-types-translations';
|
||||
import { trackByFactory } from '@iqser/common-ui/lib/utils';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatAutocomplete, MatAutocompleteTrigger, MatOption } from '@angular/material/autocomplete';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import * as Papa from 'papaparse';
|
||||
import { firstValueFrom, Observable } from 'rxjs';
|
||||
import { map, startWith } from 'rxjs/operators';
|
||||
import { ActiveFieldsListingComponent } from './active-fields-listing/active-fields-listing.component';
|
||||
|
||||
export interface IFileAttributesCSVImportData {
|
||||
|
||||
@ -93,15 +93,15 @@
|
||||
</div>
|
||||
|
||||
<div class="center cell">
|
||||
<iqser-round-checkbox *ngIf="attribute.filterable" [active]="true" [size]="18"></iqser-round-checkbox>
|
||||
<iqser-round-checkbox *ngIf="attribute.filterable" [size]="18" active></iqser-round-checkbox>
|
||||
</div>
|
||||
|
||||
<div class="center cell">
|
||||
<iqser-round-checkbox *ngIf="attribute.displayedInFileList" [active]="true" [size]="18"></iqser-round-checkbox>
|
||||
<iqser-round-checkbox *ngIf="attribute.displayedInFileList" [size]="18" active></iqser-round-checkbox>
|
||||
</div>
|
||||
|
||||
<div class="center cell">
|
||||
<iqser-round-checkbox *ngIf="attribute.primaryAttribute" [active]="true" [size]="18"></iqser-round-checkbox>
|
||||
<iqser-round-checkbox *ngIf="attribute.primaryAttribute" [size]="18" active></iqser-round-checkbox>
|
||||
</div>
|
||||
|
||||
<div class="cell">
|
||||
|
||||
@ -1,25 +1,29 @@
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { HttpStatusCode } from '@angular/common/http';
|
||||
import { Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
defaultDialogConfig,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
InputWithActionComponent,
|
||||
IqserAllowDirective,
|
||||
IqserListingModule,
|
||||
largeDialogConfig,
|
||||
ListingComponent,
|
||||
listingProvidersFactory,
|
||||
LoadingService,
|
||||
RoundCheckboxComponent,
|
||||
TableColumnConfig,
|
||||
Toaster,
|
||||
} from '@iqser/common-ui';
|
||||
import { getCurrentUser } from '@iqser/common-ui/lib/users';
|
||||
import { getParam } from '@iqser/common-ui/lib/utils';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DOSSIER_TEMPLATE_ID, FileAttributeConfig, IFileAttributeConfig, IFileAttributesConfig, User } from '@red/domain';
|
||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
@ -37,10 +41,6 @@ import {
|
||||
FileAttributesCsvImportDialogComponent,
|
||||
IFileAttributesCSVImportData,
|
||||
} from './file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
@Component({
|
||||
templateUrl: './file-attributes-listing-screen.component.html',
|
||||
|
||||
@ -1,29 +1,23 @@
|
||||
import { AsyncPipe, NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
|
||||
import { Component, computed, effect, HostListener, Input, OnDestroy } from '@angular/core';
|
||||
import { Dossier, File, FileAttributeConfigTypes, IFileAttributeConfig } from '@red/domain';
|
||||
import {
|
||||
BaseFormComponent,
|
||||
CircleButtonComponent,
|
||||
DynamicInputComponent,
|
||||
HelpModeService,
|
||||
ListingService,
|
||||
Toaster,
|
||||
} from '@iqser/common-ui';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { AbstractControl, FormBuilder, FormsModule, ReactiveFormsModule, UntypedFormGroup, ValidatorFn } from '@angular/forms';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { firstValueFrom, Subscription } from 'rxjs';
|
||||
import { FilesService } from '@services/files/files.service';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import dayjs from 'dayjs';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||
import { NavigationEnd, Router } from '@angular/router';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { DynamicInputComponent } from '@common-ui/inputs/dynamic-input/dynamic-input.component';
|
||||
import { BaseFormComponent, CircleButtonComponent, HelpModeService, ListingService, Toaster } from '@iqser/common-ui';
|
||||
import { Debounce } from '@iqser/common-ui/lib/utils';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Dossier, File, FileAttributeConfigTypes, IFileAttributeConfig } from '@red/domain';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { FilesService } from '@services/files/files.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { DatePipe } from '@shared/pipes/date.pipe';
|
||||
import dayjs from 'dayjs';
|
||||
import { firstValueFrom, Subscription } from 'rxjs';
|
||||
import { filter, map, tap } from 'rxjs/operators';
|
||||
import { ConfigService } from '../../config.service';
|
||||
import { Debounce } from '@iqser/common-ui/lib/utils';
|
||||
import { AsyncPipe, NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
|
||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DatePipe } from '@shared/pipes/date.pipe';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-file-attribute',
|
||||
@ -46,14 +40,12 @@ import { DatePipe } from '@shared/pipes/date.pipe';
|
||||
],
|
||||
})
|
||||
export class FileAttributeComponent extends BaseFormComponent implements OnDestroy {
|
||||
readonly #subscriptions = new Subscription();
|
||||
#widthFactor = window.innerWidth >= 1800 ? 0.85 : 0.7;
|
||||
isInEditMode = false;
|
||||
closedDatepicker = true;
|
||||
@Input({ required: true }) fileAttribute!: IFileAttributeConfig;
|
||||
@Input({ required: true }) file!: File;
|
||||
@Input({ required: true }) dossier!: Dossier;
|
||||
@Input() fileNameColumn = false;
|
||||
readonlyAttrs: string[] = [];
|
||||
readonly #subscriptions = new Subscription();
|
||||
readonly #shouldClose = computed(
|
||||
() =>
|
||||
(this.fileAttributesService.isEditingFileAttribute() &&
|
||||
@ -63,32 +55,10 @@ export class FileAttributeComponent extends BaseFormComponent implements OnDestr
|
||||
this.file.fileId !== this.fileAttributesService.fileEdit())) ||
|
||||
!this.fileAttributesService.openAttributeEdits().length,
|
||||
);
|
||||
@Input({ required: true }) dossier!: Dossier;
|
||||
@Input() fileNameColumn = false;
|
||||
readonlyAttrs: string[] = [];
|
||||
@Input() width?: number;
|
||||
#widthFactor = window.innerWidth >= 1800 ? 0.85 : 0.7;
|
||||
|
||||
get editFieldWidth(): string {
|
||||
return this.width ? `${this.width * this.#widthFactor}px` : 'unset';
|
||||
}
|
||||
|
||||
get attributeValueWidth(): string {
|
||||
return this.width ? `${this.width * 0.9}px` : 'unset';
|
||||
}
|
||||
|
||||
get isDate(): boolean {
|
||||
return this.fileAttribute.type === FileAttributeConfigTypes.DATE;
|
||||
}
|
||||
|
||||
get isNumber(): boolean {
|
||||
return this.fileAttribute.type === FileAttributeConfigTypes.NUMBER;
|
||||
}
|
||||
|
||||
get isText(): boolean {
|
||||
return this.fileAttribute.type === FileAttributeConfigTypes.TEXT;
|
||||
}
|
||||
|
||||
get fileAttributeValue(): string {
|
||||
return this.file.fileAttributes.attributeIdToValue[this.fileAttribute.id];
|
||||
}
|
||||
|
||||
constructor(
|
||||
router: Router,
|
||||
@ -121,6 +91,30 @@ export class FileAttributeComponent extends BaseFormComponent implements OnDestr
|
||||
);
|
||||
}
|
||||
|
||||
get editFieldWidth(): string {
|
||||
return this.width ? `${this.width * this.#widthFactor}px` : 'unset';
|
||||
}
|
||||
|
||||
get attributeValueWidth(): string {
|
||||
return this.width ? `${this.width * 0.9}px` : 'unset';
|
||||
}
|
||||
|
||||
get isDate(): boolean {
|
||||
return this.fileAttribute.type === FileAttributeConfigTypes.DATE;
|
||||
}
|
||||
|
||||
get isNumber(): boolean {
|
||||
return this.fileAttribute.type === FileAttributeConfigTypes.NUMBER;
|
||||
}
|
||||
|
||||
get isText(): boolean {
|
||||
return this.fileAttribute.type === FileAttributeConfigTypes.TEXT;
|
||||
}
|
||||
|
||||
get fileAttributeValue(): string {
|
||||
return this.file.fileAttributes.attributeIdToValue[this.fileAttribute.id];
|
||||
}
|
||||
|
||||
@HostListener('window:resize')
|
||||
onResize() {
|
||||
if (window.innerWidth >= 1800) {
|
||||
|
||||
@ -39,6 +39,6 @@
|
||||
</div>
|
||||
|
||||
<div class="active-icon-marker-container">
|
||||
<iqser-round-checkbox *ngIf="multiSelectService.active() && isSelected" [active]="true"></iqser-round-checkbox>
|
||||
<iqser-round-checkbox *ngIf="multiSelectService.active() && isSelected" active></iqser-round-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
import { NgIf, UpperCasePipe } from '@angular/common';
|
||||
import { Component, Input } from '@angular/core';
|
||||
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
|
||||
import { getConfig, IqserDenyDirective } from '@iqser/common-ui';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { MultiSelectService } from '../../services/multi-select.service';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component';
|
||||
import { annotationTypesTranslations } from '@translations/annotation-types-translations';
|
||||
import { Roles } from '@users/roles';
|
||||
import { getConfig } from '@iqser/common-ui';
|
||||
import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { IqserDenyDirective, RoundCheckboxComponent } from '@iqser/common-ui';
|
||||
import { NgIf, UpperCasePipe } from '@angular/common';
|
||||
import { MultiSelectService } from '../../services/multi-select.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-annotation-card',
|
||||
|
||||
@ -1,18 +1,19 @@
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { Component, inject, Input, OnChanges, signal, SimpleChanges, ViewChild } from '@angular/core';
|
||||
import { CircleButtonComponent, InputWithActionComponent, LoadingService } from '@iqser/common-ui';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import { NamePipe } from '@common-ui/users/name.pipe';
|
||||
import { CircleButtonComponent, LoadingService } from '@iqser/common-ui';
|
||||
import { getCurrentUser } from '@iqser/common-ui/lib/users';
|
||||
import { trackByFactory } from '@iqser/common-ui/lib/utils';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import type { IComment, User } from '@red/domain';
|
||||
import { CommentsApiService } from '@services/comments-api.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { DatePipe } from '@shared/pipes/date.pipe';
|
||||
import { NGXLogger } from 'ngx-logger';
|
||||
import { FilePreviewStateService } from '../../services/file-preview-state.service';
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { NamePipe } from '@common-ui/users/name.pipe';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DatePipe } from '@shared/pipes/date.pipe';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-comments',
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
|
||||
import { ChangeDetectorRef, Component, computed, effect, ElementRef, HostListener, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
|
||||
import {
|
||||
CapitalizePipe,
|
||||
CircleButtonComponent,
|
||||
@ -10,12 +14,14 @@ import {
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
PreventDefaultDirective,
|
||||
RoundCheckboxComponent,
|
||||
} from '@iqser/common-ui';
|
||||
import { FilterService, INestedFilter, PopupFilterComponent } from '@iqser/common-ui/lib/filtering';
|
||||
import { AutoUnsubscribe, Debounce, IqserEventTarget } from '@iqser/common-ui/lib/utils';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { ListItem } from '@models/file/list-item';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { WorkflowFileStatuses } from '@red/domain';
|
||||
import { workloadTranslations } from '@translations/workload-translations';
|
||||
import { UserPreferenceService } from '@users/user-preference.service';
|
||||
import { getLocalStorageDataByFileId } from '@utils/local-storage';
|
||||
import { combineLatest, delay, Observable } from 'rxjs';
|
||||
@ -34,17 +40,11 @@ import { FilePreviewStateService } from '../../services/file-preview-state.servi
|
||||
import { MultiSelectService } from '../../services/multi-select.service';
|
||||
import { SkippedService } from '../../services/skipped.service';
|
||||
import { ViewModeService } from '../../services/view-mode.service';
|
||||
import { workloadTranslations } from '@translations/workload-translations';
|
||||
import { WorkflowFileStatuses } from '@red/domain';
|
||||
import { AnnotationActionsComponent } from '../annotation-actions/annotation-actions.component';
|
||||
import { AnnotationsListComponent } from '../annotations-list/annotations-list.component';
|
||||
import { PageExclusionComponent } from '../page-exclusion/page-exclusion.component';
|
||||
import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { ReadonlyBannerComponent } from '../readonly-banner/readonly-banner.component';
|
||||
import { AnnotationActionsComponent } from '../annotation-actions/annotation-actions.component';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { PagesComponent } from '../pages/pages.component';
|
||||
import { ReadonlyBannerComponent } from '../readonly-banner/readonly-banner.component';
|
||||
|
||||
const COMMAND_KEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Escape'];
|
||||
const ALL_HOTKEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
|
||||
@ -79,9 +79,6 @@ export class FileWorkloadComponent extends AutoUnsubscribe implements OnInit, On
|
||||
@ViewChild('annotationsElement') private readonly _annotationsElement: ElementRef;
|
||||
@ViewChild('quickNavigation') private readonly _quickNavigationElement: ElementRef;
|
||||
readonly #isIqserDevMode = this._userPreferenceService.isIqserDevMode;
|
||||
displayedAnnotations = new Map<number, AnnotationWrapper[]>();
|
||||
displayedPages: number[] = [];
|
||||
pagesPanelActive = true;
|
||||
protected readonly iconButtonTypes = IconButtonTypes;
|
||||
protected readonly circleButtonTypes = CircleButtonTypes;
|
||||
protected readonly displayedAnnotations$: Observable<Map<number, ListItem<AnnotationWrapper>[]>>;
|
||||
@ -91,6 +88,9 @@ export class FileWorkloadComponent extends AutoUnsubscribe implements OnInit, On
|
||||
protected readonly currentPageIsExcluded = computed(() => this.state.file().excludedPages.includes(this.pdf.currentPage()));
|
||||
protected readonly translations = workloadTranslations;
|
||||
protected readonly isDocumine = getConfig().IS_DOCUMINE;
|
||||
displayedAnnotations = new Map<number, AnnotationWrapper[]>();
|
||||
displayedPages: number[] = [];
|
||||
pagesPanelActive = true;
|
||||
|
||||
constructor(
|
||||
readonly filterService: FilterService,
|
||||
@ -157,6 +157,11 @@ export class FileWorkloadComponent extends AutoUnsubscribe implements OnInit, On
|
||||
return this.displayedAnnotations.get(this.pdf.currentPage()) || [];
|
||||
}
|
||||
|
||||
get showAnalysisDisabledBanner() {
|
||||
const file = this.state.file();
|
||||
return this.isDocumine && file.excludedFromAutomaticAnalysis && file.workflowStatus !== WorkflowFileStatuses.APPROVED;
|
||||
}
|
||||
|
||||
private get _firstSelectedAnnotation() {
|
||||
return this.listingService.selected.length ? this.listingService.selected[0] : null;
|
||||
}
|
||||
@ -513,9 +518,4 @@ export class FileWorkloadComponent extends AutoUnsubscribe implements OnInit, On
|
||||
});
|
||||
return listItemsMap;
|
||||
}
|
||||
|
||||
get showAnalysisDisabledBanner() {
|
||||
const file = this.state.file();
|
||||
return this.isDocumine && file.excludedFromAutomaticAnalysis && file.workflowStatus !== WorkflowFileStatuses.APPROVED;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
import { Component, computed, ViewChild } from '@angular/core';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { CircleButtonComponent, HasScrollbarDirective, InputWithActionComponent, LoadingService, Toaster } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { IPageRange } from '@red/domain';
|
||||
import { ReanalysisService } from '@services/reanalysis.service';
|
||||
import { FilePreviewStateService } from '../../services/file-preview-state.service';
|
||||
import { extractPageRanges } from '@utils/page-ranges-mapper';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { Component, computed, ViewChild } from '@angular/core';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import { CircleButtonComponent, HasScrollbarDirective, LoadingService, Toaster } from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { IPageRange } from '@red/domain';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { ReanalysisService } from '@services/reanalysis.service';
|
||||
import { extractPageRanges } from '@utils/page-ranges-mapper';
|
||||
import { FilePreviewStateService } from '../../services/file-preview-state.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-page-exclusion',
|
||||
@ -17,6 +18,7 @@ import { NgForOf, NgIf } from '@angular/common';
|
||||
imports: [InputWithActionComponent, TranslateModule, NgIf, HasScrollbarDirective, NgForOf, CircleButtonComponent],
|
||||
})
|
||||
export class PageExclusionComponent {
|
||||
@ViewChild(InputWithActionComponent) private readonly _inputComponent: InputWithActionComponent;
|
||||
readonly excludedRanges = computed(() => {
|
||||
const file = this._state.file();
|
||||
const sorted = [...file.excludedPages].sort((p1, p2) => p1 - p2);
|
||||
@ -24,7 +26,6 @@ export class PageExclusionComponent {
|
||||
});
|
||||
readonly canExcludePages = computed(() => this.permissionsService.canExcludePages(this._state.file(), this._state.dossier()));
|
||||
readonly noExcludedAndCantExclude = computed(() => !this.canExcludePages() && !this.excludedRanges().length);
|
||||
@ViewChild(InputWithActionComponent) private readonly _inputComponent: InputWithActionComponent;
|
||||
|
||||
constructor(
|
||||
readonly permissionsService: PermissionsService,
|
||||
@ -56,6 +57,17 @@ export class PageExclusionComponent {
|
||||
this._loadingService.stop();
|
||||
}
|
||||
|
||||
flattenPageRanges(ranges: IPageRange[]) {
|
||||
const flattenedPages = [];
|
||||
ranges.forEach(range => {
|
||||
for (let page = range.startPage; page <= range.endPage; page++) {
|
||||
flattenedPages.push(page);
|
||||
}
|
||||
});
|
||||
|
||||
return flattenedPages;
|
||||
}
|
||||
|
||||
private _toPageRange(pages: number[]) {
|
||||
return pages.reduce((ranges: IPageRange[], page) => {
|
||||
if (!ranges.length) {
|
||||
@ -70,15 +82,4 @@ export class PageExclusionComponent {
|
||||
return ranges;
|
||||
}, []);
|
||||
}
|
||||
|
||||
flattenPageRanges(ranges: IPageRange[]) {
|
||||
const flattenedPages = [];
|
||||
ranges.forEach(range => {
|
||||
for (let page = range.startPage; page <= range.endPage; page++) {
|
||||
flattenedPages.push(page);
|
||||
}
|
||||
});
|
||||
|
||||
return flattenedPages;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,10 +6,10 @@ import { MatDialogClose } from '@angular/material/dialog';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
DetailsRadioComponent,
|
||||
DetailsRadioOption,
|
||||
HasScrollbarDirective,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
|
||||
@ -3,16 +3,10 @@ import { NgIf, NgStyle } from '@angular/common';
|
||||
import { Component } from '@angular/core';
|
||||
import { FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
|
||||
import { MatDialogClose } from '@angular/material/dialog';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import { ReplaceNbspPipe } from '@common-ui/pipes/replace-nbsp.pipe';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
DetailsRadioComponent,
|
||||
DetailsRadioOption,
|
||||
HasScrollbarDirective,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
IqserDialogComponent,
|
||||
} from '@iqser/common-ui';
|
||||
import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { getRemoveRedactionOptions } from '../../../utils/dialog-options';
|
||||
import { RemoveAnnotationData, RemoveAnnotationOption, RemoveAnnotationOptions, RemoveAnnotationResult } from '../../../utils/dialog-types';
|
||||
|
||||
@ -1,15 +1,16 @@
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { Component, Inject, OnInit } from '@angular/core';
|
||||
import { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
|
||||
import { Dossier, File, IFileAttributeConfig } from '@red/domain';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||
import { FilesService } from '@services/files/files.service';
|
||||
import { BaseDialogComponent, CircleButtonComponent, DynamicInputComponent, IconButtonComponent } from '@iqser/common-ui';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import dayjs from 'dayjs';
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { DynamicInputComponent } from '@common-ui/inputs/dynamic-input/dynamic-input.component';
|
||||
import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Dossier, File, IFileAttributeConfig } from '@red/domain';
|
||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { FilesService } from '@services/files/files.service';
|
||||
import dayjs from 'dayjs';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
|
||||
@Component({
|
||||
templateUrl: './document-info-dialog.component.html',
|
||||
@ -17,11 +18,10 @@ import { TranslateModule } from '@ngx-translate/core';
|
||||
imports: [ReactiveFormsModule, NgIf, NgForOf, DynamicInputComponent, IconButtonComponent, TranslateModule, CircleButtonComponent],
|
||||
})
|
||||
export class DocumentInfoDialogComponent extends BaseDialogComponent implements OnInit {
|
||||
private readonly _dossier: Dossier;
|
||||
form: UntypedFormGroup;
|
||||
attributes: IFileAttributeConfig[];
|
||||
|
||||
private readonly _dossier: Dossier;
|
||||
|
||||
constructor(
|
||||
activeDossiersService: ActiveDossiersService,
|
||||
private readonly _fileAttributesService: FileAttributesService,
|
||||
|
||||
@ -5,9 +5,9 @@ import { MatDialogClose } from '@angular/material/dialog';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
DetailsRadioOption,
|
||||
HasScrollbarDirective,
|
||||
HelpButtonComponent,
|
||||
IconButtonComponent,
|
||||
|
||||
@ -1,25 +1,19 @@
|
||||
import { NgIf } from '@angular/common';
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { MatCheckbox } from '@angular/material/checkbox';
|
||||
import { MAT_DIALOG_DATA, MatDialogClose, MatDialogRef } from '@angular/material/dialog';
|
||||
import { EarmarkOperation, EarmarkOperationPages } from '@red/domain';
|
||||
import {
|
||||
BaseDialogComponent,
|
||||
CircleButtonComponent,
|
||||
DetailsRadioComponent,
|
||||
DetailsRadioOption,
|
||||
HelpButtonComponent,
|
||||
IconButtonComponent,
|
||||
IqserDenyDirective,
|
||||
} from '@iqser/common-ui';
|
||||
import { EarmarksService } from '@services/files/earmarks.service';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import { BaseDialogComponent, CircleButtonComponent, HelpButtonComponent, IconButtonComponent, IqserDenyDirective } from '@iqser/common-ui';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { EarmarkOperation, EarmarkOperationPages } from '@red/domain';
|
||||
import { EarmarksService } from '@services/files/earmarks.service';
|
||||
import { highlightsTranslations } from '@translations/highlights-translations';
|
||||
import { Roles } from '@users/roles';
|
||||
import { NgIf } from '@angular/common';
|
||||
import { ColorPickerModule } from 'ngx-color-picker';
|
||||
import { MatCheckbox } from '@angular/material/checkbox';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
|
||||
export interface HighlightActionData {
|
||||
readonly operation: EarmarkOperation;
|
||||
@ -49,9 +43,9 @@ export interface HighlightActionData {
|
||||
],
|
||||
})
|
||||
export class HighlightActionDialogComponent extends BaseDialogComponent {
|
||||
readonly #operation = this.data.operation;
|
||||
readonly translations = highlightsTranslations;
|
||||
readonly roles = Roles;
|
||||
readonly #operation = this.data.operation;
|
||||
readonly options: DetailsRadioOption<EarmarkOperationPages>[] = [
|
||||
{
|
||||
label: highlightsTranslations[this.#operation].options[EarmarkOperationPages.THIS_PAGE].label,
|
||||
|
||||
@ -6,15 +6,9 @@ import { MatDialogClose } from '@angular/material/dialog';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
DetailsRadioComponent,
|
||||
DetailsRadioOption,
|
||||
HasScrollbarDirective,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
IqserDialogComponent,
|
||||
} from '@iqser/common-ui';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Dictionary, IAddRedactionRequest, SuperTypes } from '@red/domain';
|
||||
|
||||
@ -6,15 +6,9 @@ import { MatDialogClose } from '@angular/material/dialog';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
DetailsRadioComponent,
|
||||
DetailsRadioOption,
|
||||
HasScrollbarDirective,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
IqserDialogComponent,
|
||||
} from '@iqser/common-ui';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Dictionary, IAddRedactionRequest, SuperTypes } from '@red/domain';
|
||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||
|
||||
@ -3,10 +3,10 @@ import { Component, computed } from '@angular/core';
|
||||
import { toSignal } from '@angular/core/rxjs-interop';
|
||||
import { FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
|
||||
import { MatDialogClose } from '@angular/material/dialog';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
DetailsRadioComponent,
|
||||
DetailsRadioOption,
|
||||
HasScrollbarDirective,
|
||||
HelpButtonComponent,
|
||||
IconButtonComponent,
|
||||
|
||||
@ -4,15 +4,9 @@ import { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from '@angul
|
||||
import { MatDialogClose } from '@angular/material/dialog';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
DetailsRadioComponent,
|
||||
DetailsRadioOption,
|
||||
HasScrollbarDirective,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
IqserDialogComponent,
|
||||
} from '@iqser/common-ui';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { DetailsRadioOption } from '@iqser/common-ui';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { Dossier } from '@red/domain';
|
||||
import { addHintTranslations } from '@translations/add-hint-translations';
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { DetailsRadioOption } from '@iqser/common-ui';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
import { ManualRedactionEntryWrapper } from '@models/file/manual-redaction-entry.wrapper';
|
||||
import { Dictionary, Dossier, File, IAddRedactionRequest, IManualRedactionEntry } from '@red/domain';
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { Component, ElementRef, Input, OnInit, QueryList, ViewChildren } from '@angular/core';
|
||||
import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { DynamicInputComponent } from '@common-ui/inputs/dynamic-input/dynamic-input.component';
|
||||
import { SnakeCasePipe } from '@common-ui/pipes/snake-case.pipe';
|
||||
import {
|
||||
CircleButtonComponent,
|
||||
DynamicInputComponent,
|
||||
EmptyStateComponent,
|
||||
IconButtonComponent,
|
||||
IconButtonTypes,
|
||||
LoadingService,
|
||||
Toaster,
|
||||
} from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Dossier, DossierAttributeConfigType, DossierAttributeConfigTypes, DossierAttributeWithValue } from '@red/domain';
|
||||
import { DossierAttributesService } from '@services/entity-services/dossier-attributes.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import dayjs from 'dayjs';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-dossier-section.interface';
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { SnakeCasePipe } from '@common-ui/pipes/snake-case.pipe';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-edit-dossier-attributes',
|
||||
|
||||
@ -4,9 +4,11 @@ import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angula
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatOption, MatSelect } from '@angular/material/select';
|
||||
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
|
||||
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
|
||||
import { InitialsAvatarComponent } from '@common-ui/users';
|
||||
import { NamePipe } from '@common-ui/users/name.pipe';
|
||||
import { getConfig, InputWithActionComponent, RoundCheckboxComponent, StopPropagationDirective } from '@iqser/common-ui';
|
||||
import { getConfig, StopPropagationDirective } from '@iqser/common-ui';
|
||||
import { Debounce } from '@iqser/common-ui/lib/utils';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Dossier, IDossierRequest } from '@red/domain';
|
||||
|
||||
@ -1,22 +1,23 @@
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { booleanAttribute, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';
|
||||
import { FormGroup, ReactiveFormsModule, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { MatButtonToggle, MatButtonToggleGroup } from '@angular/material/button-toggle';
|
||||
import { MatCheckbox } from '@angular/material/checkbox';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatSelect } from '@angular/material/select';
|
||||
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { BaseFormComponent, getConfig, HasScrollbarDirective, LoadingService, RoundCheckboxComponent, Toaster } from '@iqser/common-ui';
|
||||
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
|
||||
import { BaseFormComponent, getConfig, HasScrollbarDirective, LoadingService, Toaster } from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Dictionary, IDictionary } from '@red/domain';
|
||||
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
||||
import { DictionaryService } from '@services/entity-services/dictionary.service';
|
||||
import { toSnakeCase } from '@utils/functions';
|
||||
import { ColorPickerModule } from 'ngx-color-picker';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, startWith } from 'rxjs/operators';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { ColorPickerModule } from 'ngx-color-picker';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatButtonToggle, MatButtonToggleGroup } from '@angular/material/button-toggle';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatSelect } from '@angular/material/select';
|
||||
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
||||
import { MatCheckbox } from '@angular/material/checkbox';
|
||||
|
||||
const REDACTION_FIELDS = ['defaultReason'];
|
||||
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { FormFieldComponent } from '@iqser/common-ui';
|
||||
import { filter, map, tap } from 'rxjs/operators';
|
||||
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
||||
import { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { FormFieldComponent } from '@common-ui/inputs/form-field/form-field-component.directive';
|
||||
import { shareLast } from '@iqser/common-ui/lib/utils';
|
||||
import { Watermark } from '@red/domain';
|
||||
import { WatermarksMapService } from '@services/entity-services/watermarks-map.service';
|
||||
import { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';
|
||||
import { shareLast } from '@iqser/common-ui/lib/utils';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { MatFormField } from '@angular/material/form-field';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { filter, map, tap } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-watermark-selector [dossierTemplateId] [label]',
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { DetailsRadioComponent, DetailsRadioOption, IconButtonComponent, IconButtonTypes } from '@iqser/common-ui';
|
||||
import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { OverwriteFileOption, OverwriteFileOptions } from '@red/domain';
|
||||
import { NgIf } from '@angular/common';
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { MatCheckbox } from '@angular/material/checkbox';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||
import { IconButtonComponent, IconButtonTypes } from '@iqser/common-ui';
|
||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||
import { OverwriteFileOption, OverwriteFileOptions } from '@red/domain';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-overwrite-files-dialog',
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
FROM node:20.11-buster AS builder
|
||||
FROM node:20.14-buster AS builder
|
||||
|
||||
WORKDIR /ng-app
|
||||
|
||||
@ -23,7 +23,7 @@ CMD ["/bin/cp", "-r", "/ng-app/dist/paligo-styles", "/tmp/styles-export"]
|
||||
### STAGE 2: Setup ###
|
||||
|
||||
|
||||
FROM nginx:1.25.4-alpine
|
||||
FROM nginx:1.27.0-alpine
|
||||
ENV NGINX_ENVSUBST_OUTPUT_DIR=/tmp
|
||||
ENV PDFTRON_ALLOWED_HOSTS=''
|
||||
## Copy our default nginx config
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit d595a22db164ec8669da572fdd49a28b464eb61a
|
||||
Subproject commit f3faa6a6cc6b36840de6952f15938858130a4ef2
|
||||
Loading…
x
Reference in New Issue
Block a user