Merge branch 'RED-2045'
This commit is contained in:
commit
8d2011d1f9
@ -1,2 +1,3 @@
|
||||
<router-outlet></router-outlet>
|
||||
<redaction-full-page-loading-indicator></redaction-full-page-loading-indicator>
|
||||
<iqser-full-page-loading-indicator></iqser-full-page-loading-indicator>
|
||||
<iqser-full-page-error></iqser-full-page-error>
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-root',
|
||||
@ -7,5 +6,5 @@ import { LoadingService } from '@services/loading.service';
|
||||
styleUrls: ['./app.component.scss']
|
||||
})
|
||||
export class AppComponent {
|
||||
constructor(readonly loadingService: LoadingService) {}
|
||||
constructor() {}
|
||||
}
|
||||
|
||||
@ -37,6 +37,7 @@ import { PruningTranslationLoader } from '@utils/pruning-translation-loader';
|
||||
import { DatePipe } from '@shared/pipes/date.pipe';
|
||||
import * as links from '../assets/help-mode/links.json';
|
||||
import { HELP_DOCS, IqserHelpModeModule } from '@iqser/common-ui';
|
||||
import { ServerErrorInterceptor } from '@utils/server-error-interceptor';
|
||||
|
||||
export function httpLoaderFactory(httpClient: HttpClient) {
|
||||
return new PruningTranslationLoader(httpClient, '/assets/i18n/', '.json');
|
||||
@ -96,6 +97,11 @@ const components = [
|
||||
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })
|
||||
],
|
||||
providers: [
|
||||
{
|
||||
provide: HTTP_INTERCEPTORS,
|
||||
multi: true,
|
||||
useClass: ServerErrorInterceptor
|
||||
},
|
||||
{
|
||||
provide: ErrorHandler,
|
||||
useClass: GlobalErrorHandler
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
@import '../../../assets/styles/variables';
|
||||
@import '../../../assets/styles/red-mixins';
|
||||
|
||||
.dev-mode {
|
||||
background-color: #dd4d50;
|
||||
color: #fff;
|
||||
background-color: $primary;
|
||||
color: $white;
|
||||
font-size: 22px;
|
||||
line-height: 16px;
|
||||
text-align: center;
|
||||
|
||||
@ -2,9 +2,8 @@ import { Component, Injector, OnInit } from '@angular/core';
|
||||
import { FileDownloadService } from '@upload-download/services/file-download.service';
|
||||
import { DownloadStatusWrapper } from '@upload-download/model/download-status.wrapper';
|
||||
import { DownloadControllerService } from '@redaction/red-ui-http';
|
||||
import { CircleButtonTypes, DefaultListingServices, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { CircleButtonTypes, DefaultListingServices, ListingComponent, LoadingService, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { timer } from 'rxjs';
|
||||
import { RouterHistoryService } from '@services/router-history.service';
|
||||
|
||||
@ -16,7 +15,6 @@ import { RouterHistoryService } from '@services/router-history.service';
|
||||
})
|
||||
export class DownloadsListScreenComponent extends ListingComponent<DownloadStatusWrapper> implements OnInit {
|
||||
readonly itemSize = 80;
|
||||
protected readonly _primaryKey = 'storageId';
|
||||
readonly circleButtonTypes = CircleButtonTypes;
|
||||
readonly tableHeaderLabel = _('downloads-list.table-header.title');
|
||||
readonly tableColumnConfigs: readonly TableColumnConfig<DownloadStatusWrapper>[] = [
|
||||
@ -25,6 +23,7 @@ export class DownloadsListScreenComponent extends ListingComponent<DownloadStatu
|
||||
{ label: _('downloads-list.table-col-names.date') },
|
||||
{ label: _('downloads-list.table-col-names.status') }
|
||||
];
|
||||
protected readonly _primaryKey = 'storageId';
|
||||
|
||||
constructor(
|
||||
protected readonly _injector: Injector,
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
@import '../../../assets/styles/red-mixins';
|
||||
@import '../../../assets/styles/variables';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.content-container {
|
||||
background-color: $grey-2;
|
||||
|
||||
@ -8,7 +8,7 @@ import { UserControllerService } from '@redaction/red-ui-http';
|
||||
import { AppConfigKey, AppConfigService } from '@app-config/app-config.service';
|
||||
import { DomSanitizer } from '@angular/platform-browser';
|
||||
import { languagesTranslations } from '../../translations/languages-translations';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { LoadingService } from '@iqser/common-ui';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-user-profile-screen',
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';
|
||||
import { Injectable, Injector } from '@angular/core';
|
||||
import { from, of } from 'rxjs';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { LoadingService } from '@iqser/common-ui';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
|
||||
@ -3,8 +3,7 @@ import { AppStateService } from '@state/app-state.service';
|
||||
import { Router } from '@angular/router';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { DossierTemplateControllerService } from '@redaction/red-ui-http';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { CircleButtonTypes } from '@iqser/common-ui';
|
||||
import { CircleButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||
import { UserService } from '@services/user.service';
|
||||
|
||||
@Component({
|
||||
@ -28,14 +27,14 @@ export class DossierTemplateActionsComponent implements OnInit {
|
||||
private readonly _dossierTemplateControllerService: DossierTemplateControllerService
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.dossierTemplateId ??= this._appStateService.activeDossierTemplateId;
|
||||
}
|
||||
|
||||
get dossierTemplate() {
|
||||
return this._appStateService.getDossierTemplateById(this.dossierTemplateId);
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.dossierTemplateId ??= this._appStateService.activeDossierTemplateId;
|
||||
}
|
||||
|
||||
openEditDossierTemplateDialog($event: any) {
|
||||
this._dialogService.openDialog('addEditDossierTemplate', $event, this.dossierTemplate, () => {
|
||||
this.loadDossierTemplatesData?.emit();
|
||||
|
||||
@ -2,13 +2,12 @@ import { Component, Inject, OnDestroy } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { DossierAttributeConfig, FileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { AutoUnsubscribe, LoadingService } from '@iqser/common-ui';
|
||||
import { HttpErrorResponse } from '@angular/common/http';
|
||||
import { Toaster } from '@iqser/common-ui';
|
||||
import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service';
|
||||
import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { AutoUnsubscribe } from '@iqser/common-ui';
|
||||
|
||||
@Component({
|
||||
templateUrl: './add-edit-dossier-attribute-dialog.component.html',
|
||||
|
||||
@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||
import { FormBuilder, Validators } from '@angular/forms';
|
||||
import { UserControllerService } from '@redaction/red-ui-http';
|
||||
import { UserService, UserWrapper } from '@services/user.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { LoadingService } from '@iqser/common-ui';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-reset-password',
|
||||
|
||||
@ -2,9 +2,8 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { UserControllerService } from '@redaction/red-ui-http';
|
||||
import { AdminDialogService } from '../../../services/admin-dialog.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||
import { rolesTranslations } from '../../../../../translations/roles-translations';
|
||||
import { IconButtonTypes } from '@iqser/common-ui';
|
||||
import { UserWrapper } from '@services/user.service';
|
||||
|
||||
@Component({
|
||||
|
||||
@ -2,7 +2,7 @@ import { Component, Inject } from '@angular/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { UserControllerService } from '@redaction/red-ui-http';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { LoadingService } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { UserWrapper } from '@services/user.service';
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.sub-header {
|
||||
display: flex;
|
||||
|
||||
@ -3,8 +3,7 @@ import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import { AuditControllerService, AuditResponse, AuditSearchRequest } from '@redaction/red-ui-http';
|
||||
import { Moment } from 'moment';
|
||||
import { applyIntervalConstraints } from '@utils/date-inputs-utils';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { AutoUnsubscribe } from '@iqser/common-ui';
|
||||
import { AutoUnsubscribe, LoadingService } from '@iqser/common-ui';
|
||||
import { auditCategoriesTranslations } from '../../translations/audit-categories-translations';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { UserService } from '@services/user.service';
|
||||
|
||||
@ -3,8 +3,7 @@ import { AppStateService } from '@state/app-state.service';
|
||||
import { Colors, DictionaryControllerService } from '@redaction/red-ui-http';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { CircleButtonTypes, DefaultListingServices, Listable, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { CircleButtonTypes, DefaultListingServices, Listable, ListingComponent, LoadingService, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { DefaultColorType } from '@models/default-color-key.model';
|
||||
import { defaultColorsTranslations } from '../../translations/default-colors-translations';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
@ -22,7 +21,6 @@ interface ListItem extends Listable {
|
||||
providers: [...DefaultListingServices]
|
||||
})
|
||||
export class DefaultColorsScreenComponent extends ListingComponent<ListItem> implements OnInit {
|
||||
protected readonly _primaryKey = 'key';
|
||||
readonly circleButtonTypes = CircleButtonTypes;
|
||||
readonly currentUser = this._userService.currentUser;
|
||||
readonly translations = defaultColorsTranslations;
|
||||
@ -34,7 +32,7 @@ export class DefaultColorsScreenComponent extends ListingComponent<ListItem> imp
|
||||
},
|
||||
{ label: _('default-colors-screen.table-col-names.color'), class: 'flex-center' }
|
||||
];
|
||||
|
||||
protected readonly _primaryKey = 'key';
|
||||
private _colorsObj: Colors;
|
||||
|
||||
constructor(
|
||||
|
||||
@ -1,6 +1,3 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
iqser-table-header::ng-deep .header-item {
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
@ -7,8 +7,14 @@ import { forkJoin, of } from 'rxjs';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { TypeValueWrapper } from '@models/file/type-value.wrapper';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { CircleButtonTypes, DefaultListingServices, IconButtonTypes, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import {
|
||||
CircleButtonTypes,
|
||||
DefaultListingServices,
|
||||
IconButtonTypes,
|
||||
ListingComponent,
|
||||
LoadingService,
|
||||
TableColumnConfig
|
||||
} from '@iqser/common-ui';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { UserService } from '@services/user.service';
|
||||
|
||||
@ -1,6 +1,3 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
.right-container {
|
||||
width: 353px;
|
||||
min-width: 353px;
|
||||
|
||||
@ -9,8 +9,7 @@ import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { DictionaryManagerComponent } from '@shared/components/dictionary-manager/dictionary-manager.component';
|
||||
import { DictionarySaveService } from '@shared/services/dictionary-save.service';
|
||||
import { TypeValueWrapper } from '@models/file/type-value.wrapper';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { CircleButtonTypes } from '@iqser/common-ui';
|
||||
import { CircleButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||
import { UserService } from '@services/user.service';
|
||||
|
||||
@Component({
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
import { Component, OnDestroy } from '@angular/core';
|
||||
import { DigitalSignature, DigitalSignatureControllerService } from '@redaction/red-ui-http';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { AutoUnsubscribe, IconButtonTypes, Toaster } from '@iqser/common-ui';
|
||||
import { lastIndexOfEnd } from '@utils/functions';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { AutoUnsubscribe, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { RouterHistoryService } from '@services/router-history.service';
|
||||
|
||||
@ -1,38 +1,34 @@
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
.page-header .actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.header-item {
|
||||
padding: 0 24px 0 10px;
|
||||
}
|
||||
iqser-table-header::ng-deep .attributes-actions-container {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
justify-content: flex-end;
|
||||
|
||||
iqser-table-column-name::ng-deep {
|
||||
> div {
|
||||
padding-left: 10px !important;
|
||||
> *:not(:last-child) {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.content-container {
|
||||
cdk-virtual-scroll-viewport {
|
||||
cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 2fr 1fr 1fr 11px;
|
||||
|
||||
.table-item > div {
|
||||
height: 50px;
|
||||
|
||||
&:not(.scrollbar-placeholder) {
|
||||
padding-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.has-scrollbar:hover {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 2fr 1fr 1fr 11px;
|
||||
|
||||
.table-item > div {
|
||||
height: 50px;
|
||||
|
||||
&:not(.scrollbar-placeholder) {
|
||||
padding-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.has-scrollbar:hover {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 2fr 1fr 1fr;
|
||||
}
|
||||
grid-template-columns: auto 2fr 2fr 1fr 1fr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,16 @@
|
||||
import { Component, Injector, OnInit } from '@angular/core';
|
||||
import { CircleButtonTypes, DefaultListingServices, IconButtonTypes, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import {
|
||||
CircleButtonTypes,
|
||||
DefaultListingServices,
|
||||
IconButtonTypes,
|
||||
ListingComponent,
|
||||
LoadingService,
|
||||
TableColumnConfig
|
||||
} from '@iqser/common-ui';
|
||||
import { DossierAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service';
|
||||
import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
@ -16,7 +22,6 @@ import { UserService } from '@services/user.service';
|
||||
providers: [...DefaultListingServices]
|
||||
})
|
||||
export class DossierAttributesListingScreenComponent extends ListingComponent<DossierAttributeConfig> implements OnInit {
|
||||
protected readonly _primaryKey = 'label';
|
||||
readonly iconButtonTypes = IconButtonTypes;
|
||||
readonly circleButtonTypes = CircleButtonTypes;
|
||||
readonly currentUser = this._userService.currentUser;
|
||||
@ -33,6 +38,7 @@ export class DossierAttributesListingScreenComponent extends ListingComponent<Do
|
||||
sortByKey: 'type'
|
||||
}
|
||||
];
|
||||
protected readonly _primaryKey = 'label';
|
||||
|
||||
constructor(
|
||||
protected readonly _injector: Injector,
|
||||
|
||||
@ -1,40 +1,25 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 1fr 1fr 1fr 1fr 11px;
|
||||
|
||||
.header-item {
|
||||
padding: 0 24px 0 10px;
|
||||
}
|
||||
.table-item {
|
||||
> div:not(.scrollbar-placeholder) {
|
||||
padding-left: 10px;
|
||||
|
||||
iqser-table-column-name::ng-deep {
|
||||
> div {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
}
|
||||
.stats-subtitle {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.content-container {
|
||||
cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 1fr 1fr 1fr 1fr 11px;
|
||||
|
||||
.table-item {
|
||||
> div:not(.scrollbar-placeholder) {
|
||||
padding-left: 10px;
|
||||
|
||||
.stats-subtitle {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.table-item-title {
|
||||
max-width: 100%;
|
||||
}
|
||||
.table-item-title {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.has-scrollbar:hover {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 1fr 1fr 1fr 1fr;
|
||||
}
|
||||
&.has-scrollbar:hover {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 1fr 1fr 1fr 1fr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,9 +3,15 @@ import { AppStateService } from '@state/app-state.service';
|
||||
import { UserPreferenceService } from '@services/user-preference.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { DossierTemplateModelWrapper } from '@models/file/dossier-template-model.wrapper';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import {
|
||||
CircleButtonTypes,
|
||||
DefaultListingServices,
|
||||
IconButtonTypes,
|
||||
ListingComponent,
|
||||
LoadingService,
|
||||
TableColumnConfig
|
||||
} from '@iqser/common-ui';
|
||||
import { DossierTemplateControllerService } from '@redaction/red-ui-http';
|
||||
import { CircleButtonTypes, DefaultListingServices, IconButtonTypes, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { RouterHistoryService } from '@services/router-history.service';
|
||||
@ -17,7 +23,6 @@ import { RouterHistoryService } from '@services/router-history.service';
|
||||
providers: [...DefaultListingServices]
|
||||
})
|
||||
export class DossierTemplatesListingScreenComponent extends ListingComponent<DossierTemplateModelWrapper> implements OnInit {
|
||||
protected readonly _primaryKey = 'name';
|
||||
readonly iconButtonTypes = IconButtonTypes;
|
||||
readonly circleButtonTypes = CircleButtonTypes;
|
||||
readonly currentUser = this._userService.currentUser;
|
||||
@ -37,6 +42,7 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent<Dos
|
||||
sortByKey: 'dateModified'
|
||||
}
|
||||
];
|
||||
protected readonly _primaryKey = 'name';
|
||||
|
||||
constructor(
|
||||
protected readonly _injector: Injector,
|
||||
|
||||
@ -1,14 +1,10 @@
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.page-header .actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
iqser-table-header::ng-deep .header-item {
|
||||
padding: 0 24px 0 10px;
|
||||
}
|
||||
|
||||
.content-container cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 11px;
|
||||
|
||||
@ -3,8 +3,14 @@ import { FileAttributeConfig, FileAttributesConfig, FileAttributesControllerServ
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { CircleButtonTypes, DefaultListingServices, IconButtonTypes, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import {
|
||||
CircleButtonTypes,
|
||||
DefaultListingServices,
|
||||
IconButtonTypes,
|
||||
ListingComponent,
|
||||
LoadingService,
|
||||
TableColumnConfig
|
||||
} from '@iqser/common-ui';
|
||||
import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
@ -16,7 +22,6 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
providers: [...DefaultListingServices]
|
||||
})
|
||||
export class FileAttributesListingScreenComponent extends ListingComponent<FileAttributeConfig> implements OnInit, OnDestroy {
|
||||
protected readonly _primaryKey = 'label';
|
||||
readonly iconButtonTypes = IconButtonTypes;
|
||||
readonly circleButtonTypes = CircleButtonTypes;
|
||||
readonly currentUser = this._userService.currentUser;
|
||||
@ -52,7 +57,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent<FileA
|
||||
rightIconTooltip: _('file-attributes-listing.table-col-names.primary-info-tooltip')
|
||||
}
|
||||
];
|
||||
|
||||
protected readonly _primaryKey = 'label';
|
||||
private _existingConfiguration: FileAttributesConfig;
|
||||
@ViewChild('fileInput') private _fileInput: ElementRef;
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.content-container {
|
||||
background-color: $grey-2;
|
||||
|
||||
@ -8,9 +8,7 @@ import {
|
||||
SMTPConfigurationModel
|
||||
} from '@redaction/red-ui-http';
|
||||
import { AppConfigService } from '@app-config/app-config.service';
|
||||
import { AutoUnsubscribe, IconButtonTypes } from '@iqser/common-ui';
|
||||
import { Toaster } from '@iqser/common-ui';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { AutoUnsubscribe, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { UserService } from '@services/user.service';
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
@import '../../../../../assets/styles/variables';
|
||||
|
||||
.content-container {
|
||||
|
||||
@ -3,9 +3,8 @@ import { LicenseReport, LicenseReportControllerService } from '@redaction/red-ui
|
||||
import { AppConfigService } from '@app-config/app-config.service';
|
||||
import * as moment from 'moment';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||
import { ButtonConfig } from '@shared/components/page-header/models/button-config.model';
|
||||
import { IconButtonTypes } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { RouterHistoryService } from '@services/router-history.service';
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.page-header .actions {
|
||||
display: flex;
|
||||
|
||||
@ -3,7 +3,7 @@ import { ActivatedRoute } from '@angular/router';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { PlaceholdersResponse, ReportTemplate, ReportTemplateControllerService } from '@redaction/red-ui-http';
|
||||
import { download } from '@utils/file-download-utils';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { LoadingService } from '@iqser/common-ui';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import {
|
||||
generalPlaceholdersDescriptionsTranslations,
|
||||
|
||||
@ -1,5 +1,3 @@
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
.editor-container {
|
||||
width: 100%;
|
||||
padding: 15px;
|
||||
|
||||
@ -7,9 +7,8 @@ import { saveAs } from 'file-saver';
|
||||
import { ComponentHasChanges } from '@guards/can-deactivate.guard';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { Debounce, IconButtonTypes } from '@iqser/common-ui';
|
||||
import { Debounce, IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import ICodeEditor = monaco.editor.ICodeEditor;
|
||||
import IModelDeltaDecoration = monaco.editor.IModelDeltaDecoration;
|
||||
import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorConstructionOptions;
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
.bulk-actions {
|
||||
display: flex;
|
||||
@ -10,12 +9,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
iqser-table-column-name::ng-deep {
|
||||
> div {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.content-container {
|
||||
cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
import { ChangeDetectionStrategy, Component, Injector, OnInit } from '@angular/core';
|
||||
import { Dossier } from '@redaction/red-ui-http';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { CircleButtonTypes, DefaultListingServices, ListingComponent, LoadingService, Listable, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { AppConfigKey, AppConfigService } from '@app-config/app-config.service';
|
||||
import * as moment from 'moment';
|
||||
import { CircleButtonTypes, DefaultListingServices, Listable, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { DossiersService } from '../../../dossier/services/dossiers.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { ConfirmationDialogInput, TitleColors } from '@shared/dialogs/confirmation-dialog/confirmation-dialog.component';
|
||||
|
||||
@ -1,33 +1,21 @@
|
||||
.content-container {
|
||||
.header-item {
|
||||
padding: 0 24px 0 10px;
|
||||
}
|
||||
cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 1fr 1fr 1fr auto 11px;
|
||||
|
||||
iqser-table-column-name::ng-deep {
|
||||
> div {
|
||||
padding: 0 13px 0 10px !important;
|
||||
}
|
||||
}
|
||||
.table-item {
|
||||
> div:not(.scrollbar-placeholder) {
|
||||
padding-left: 10px;
|
||||
|
||||
cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 1fr 1fr 1fr auto 11px;
|
||||
|
||||
.table-item {
|
||||
> div:not(.scrollbar-placeholder) {
|
||||
padding-left: 10px;
|
||||
|
||||
&.center {
|
||||
align-items: center;
|
||||
}
|
||||
&.center {
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.has-scrollbar:hover {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 1fr 1fr 1fr auto;
|
||||
}
|
||||
&.has-scrollbar:hover {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 1fr 1fr 1fr auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,9 +5,15 @@ import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component';
|
||||
import { TranslateChartService } from '@services/translate-chart.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import {
|
||||
CircleButtonTypes,
|
||||
DefaultListingServices,
|
||||
IconButtonTypes,
|
||||
ListingComponent,
|
||||
LoadingService,
|
||||
TableColumnConfig
|
||||
} from '@iqser/common-ui';
|
||||
import { InitialsAvatarComponent } from '@shared/components/initials-avatar/initials-avatar.component';
|
||||
import { CircleButtonTypes, DefaultListingServices, IconButtonTypes, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { rolesTranslations } from '../../../../translations/roles-translations';
|
||||
|
||||
@ -5,14 +5,13 @@ import { AppStateService } from '@state/app-state.service';
|
||||
import { environment } from '@environments/environment';
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { Debounce, IconButtonTypes } from '@iqser/common-ui';
|
||||
import { Debounce, IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||
import { WatermarkControllerService, WatermarkModelRes } from '@redaction/red-ui-http';
|
||||
import { Toaster } from '@iqser/common-ui';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { BASE_HREF } from '../../../../tokens';
|
||||
import { stampPDFPage } from '@utils/page-stamper';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
|
||||
export const DEFAULT_WATERMARK: WatermarkModelRes = {
|
||||
text: null,
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { LoadingService } from '@iqser/common-ui';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
@Injectable({
|
||||
|
||||
@ -6,9 +6,8 @@ import { FileStatusWrapper } from '@models/file/file-status.wrapper';
|
||||
import { FileActionService } from '../../services/file-action.service';
|
||||
import { Observable } from 'rxjs';
|
||||
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { CircleButtonTypes, EntitiesService, LoadingService } from '@iqser/common-ui';
|
||||
import { ConfirmationDialogInput } from '@shared/dialogs/confirmation-dialog/confirmation-dialog.component';
|
||||
import { CircleButtonTypes, EntitiesService } from '@iqser/common-ui';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
:host {
|
||||
display: block;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-components';
|
||||
@import '../../../../../assets/styles/red-text-styles';
|
||||
@import 'libs/common-ui/src/assets/styles/texts';
|
||||
|
||||
:host {
|
||||
@extend .stats-subtitle;
|
||||
|
||||
@ -5,10 +5,9 @@ import { AppStateService } from '@state/app-state.service';
|
||||
import { FileActionService } from '../../services/file-action.service';
|
||||
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
||||
import { ConfirmationDialogInput } from '@shared/dialogs/confirmation-dialog/confirmation-dialog.component';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { AutoUnsubscribe, CircleButtonType, CircleButtonTypes, LoadingService, StatusBarConfig } from '@iqser/common-ui';
|
||||
import { FileManagementControllerService, FileStatus } from '@redaction/red-ui-http';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { AutoUnsubscribe, CircleButtonType, CircleButtonTypes, StatusBarConfig } from '@iqser/common-ui';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { filter } from 'rxjs/operators';
|
||||
|
||||
@ -64,27 +63,6 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnInit, OnD
|
||||
return this.fileStatus?.excluded ? _('file-preview.toggle-analysis.enable') : _('file-preview.toggle-analysis.disable');
|
||||
}
|
||||
|
||||
private _setup() {
|
||||
this.statusBarConfig = [{ color: this.fileStatus.status, length: 1 }];
|
||||
this.tooltipPosition = this.screen === 'file-preview' ? 'below' : 'above';
|
||||
this.assignTooltip = this.fileStatus.isUnderApproval
|
||||
? _('dossier-overview.assign-approver')
|
||||
: _('dossier-overview.assign-reviewer');
|
||||
this.buttonType = this.screen === 'file-preview' ? CircleButtonTypes.default : CircleButtonTypes.dark;
|
||||
this.isWorkable = this.fileStatus.isWorkable;
|
||||
this.toggleTooltip = this._toggleTooltip;
|
||||
|
||||
this.canUndoApproval = this.permissionsService.canUndoApproval(this.fileStatus);
|
||||
this.canAssignToSelf = this.permissionsService.canAssignToSelf(this.fileStatus);
|
||||
this.canAssign = this.permissionsService.canAssignUser(this.fileStatus);
|
||||
this.canDelete = this.permissionsService.canDeleteFile(this.fileStatus);
|
||||
this.canReanalyse = this.permissionsService.canReanalyseFile(this.fileStatus);
|
||||
this.canSetToUnderReview = this.permissionsService.canSetUnderReview(this.fileStatus);
|
||||
this.canSetToUnderApproval = this.permissionsService.canSetUnderApproval(this.fileStatus);
|
||||
this.readyForApproval = this.permissionsService.isReadyForApproval(this.fileStatus);
|
||||
this.canToggleAnalysis = this.permissionsService.canToggleAnalysis(this.fileStatus);
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
if (this.fileStatus) {
|
||||
this.screen = 'dossier-overview';
|
||||
@ -201,4 +179,25 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnInit, OnD
|
||||
await this.appStateService.getFiles();
|
||||
this.actionPerformed.emit(this.fileStatus?.excluded ? 'enable-analysis' : 'disable-analysis');
|
||||
}
|
||||
|
||||
private _setup() {
|
||||
this.statusBarConfig = [{ color: this.fileStatus.status, length: 1 }];
|
||||
this.tooltipPosition = this.screen === 'file-preview' ? 'below' : 'above';
|
||||
this.assignTooltip = this.fileStatus.isUnderApproval
|
||||
? _('dossier-overview.assign-approver')
|
||||
: _('dossier-overview.assign-reviewer');
|
||||
this.buttonType = this.screen === 'file-preview' ? CircleButtonTypes.default : CircleButtonTypes.dark;
|
||||
this.isWorkable = this.fileStatus.isWorkable;
|
||||
this.toggleTooltip = this._toggleTooltip;
|
||||
|
||||
this.canUndoApproval = this.permissionsService.canUndoApproval(this.fileStatus);
|
||||
this.canAssignToSelf = this.permissionsService.canAssignToSelf(this.fileStatus);
|
||||
this.canAssign = this.permissionsService.canAssignUser(this.fileStatus);
|
||||
this.canDelete = this.permissionsService.canDeleteFile(this.fileStatus);
|
||||
this.canReanalyse = this.permissionsService.canReanalyseFile(this.fileStatus);
|
||||
this.canSetToUnderReview = this.permissionsService.canSetUnderReview(this.fileStatus);
|
||||
this.canSetToUnderApproval = this.permissionsService.canSetUnderApproval(this.fileStatus);
|
||||
this.readyForApproval = this.permissionsService.isReadyForApproval(this.fileStatus);
|
||||
this.canToggleAnalysis = this.permissionsService.canToggleAnalysis(this.fileStatus);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.read-only {
|
||||
padding: 13px 16px;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
:host {
|
||||
height: 100%;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
import { Component, EventEmitter, Input, OnChanges, Output, ViewChild } from '@angular/core';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { PageRange, ReanalysisControllerService } from '@redaction/red-ui-http';
|
||||
import { InputWithActionComponent, Toaster } from '@iqser/common-ui';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { InputWithActionComponent, Toaster, LoadingService } from '@iqser/common-ui';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { FileStatusWrapper } from '@models/file/file-status.wrapper';
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ import { AnnotationActionsService } from '../../services/annotation-actions.serv
|
||||
import { UserPreferenceService } from '@services/user-preference.service';
|
||||
import { BASE_HREF } from '../../../../tokens';
|
||||
import { AppConfigKey, AppConfigService } from '../../../app-config/app-config.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { LoadingService } from '@iqser/common-ui';
|
||||
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
||||
import { ConfirmationDialogInput } from '@shared/dialogs/confirmation-dialog/confirmation-dialog.component';
|
||||
import { loadCompareDocumentWrapper } from '../../utils/compare-mode.utils';
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.search-container {
|
||||
margin-top: 16px;
|
||||
|
||||
@ -3,12 +3,11 @@ import { EditDossierSectionInterface } from '../edit-dossier-section.interface';
|
||||
import { DossierWrapper } from '@state/model/dossier.wrapper';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { CircleButtonTypes, IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import * as moment from 'moment';
|
||||
import { DossierAttributeWithValue } from '@models/dossier-attributes.model';
|
||||
import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service';
|
||||
import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-edit-dossier-attributes',
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../../assets/styles/variables';
|
||||
@import '../../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.instructions {
|
||||
color: $grey-7;
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
import { Component, EventEmitter, Injector, Input, OnInit, Output } from '@angular/core';
|
||||
import { EditDossierSectionInterface } from '../edit-dossier-section.interface';
|
||||
import { DossierWrapper } from '@state/model/dossier.wrapper';
|
||||
import { CircleButtonTypes, DefaultListingServices, Listable, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { CircleButtonTypes, DefaultListingServices, ListingComponent, Listable, LoadingService, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { FileManagementControllerService, FileStatus, StatusControllerService } from '@redaction/red-ui-http';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import * as moment from 'moment';
|
||||
import { AppConfigKey, AppConfigService } from '@app-config/app-config.service';
|
||||
import { getLeftDateTime } from '@utils/functions';
|
||||
|
||||
@ -6,9 +6,8 @@ import { PermissionsService } from '@services/permissions.service';
|
||||
import { DictionaryManagerComponent } from '@shared/components/dictionary-manager/dictionary-manager.component';
|
||||
import { DictionarySaveService } from '@shared/services/dictionary-save.service';
|
||||
import { FormBuilder } from '@angular/forms';
|
||||
import { CircleButtonTypes } from '@iqser/common-ui';
|
||||
import { CircleButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||
import { Dictionary, DictionaryControllerService } from '@redaction/red-ui-http';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-edit-dossier-dictionary',
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.dialog-content {
|
||||
padding: 0;
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import '../../../../../assets/styles/variables';
|
||||
|
||||
.content-container {
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
:root {
|
||||
--dynamic-columns: '1fr';
|
||||
@ -9,16 +8,6 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
.header-item {
|
||||
padding: 0 24px 0 10px;
|
||||
}
|
||||
|
||||
iqser-table-column-name::ng-deep {
|
||||
> div {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
}
|
||||
|
||||
cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 3fr 2fr repeat(var(--dynamic-columns, 1), 1fr) 2fr 1fr auto 11px;
|
||||
|
||||
@ -10,15 +10,6 @@ import {
|
||||
TemplateRef,
|
||||
ViewChild
|
||||
} from '@angular/core';
|
||||
import {
|
||||
CircleButtonTypes,
|
||||
DefaultListingServices,
|
||||
keyChecker,
|
||||
ListingComponent,
|
||||
NestedFilter,
|
||||
TableColumnConfig,
|
||||
Toaster
|
||||
} from '@iqser/common-ui';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { FileDropOverlayService } from '@upload-download/services/file-drop-overlay.service';
|
||||
import { FileUploadModel } from '@upload-download/model/file-upload.model';
|
||||
@ -38,7 +29,16 @@ import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
||||
import { OnAttach, OnDetach } from '@utils/custom-route-reuse.strategy';
|
||||
import { AppConfigKey, AppConfigService } from '@app-config/app-config.service';
|
||||
import { ActionConfig } from '@shared/components/page-header/models/action-config.model';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import {
|
||||
CircleButtonTypes,
|
||||
DefaultListingServices,
|
||||
keyChecker,
|
||||
ListingComponent,
|
||||
LoadingService,
|
||||
NestedFilter,
|
||||
TableColumnConfig,
|
||||
Toaster
|
||||
} from '@iqser/common-ui';
|
||||
import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service';
|
||||
import { DossierAttributeWithValue } from '@models/dossier-attributes.model';
|
||||
import { UserPreferenceService } from '@services/user-preference.service';
|
||||
@ -70,6 +70,12 @@ export class DossierOverviewScreenComponent extends ListingComponent<FileStatusW
|
||||
hide: !this.currentUser.isManager
|
||||
}
|
||||
];
|
||||
tableColumnConfigs: readonly TableColumnConfig<FileStatusWrapper>[] = [];
|
||||
collapsedDetails = false;
|
||||
dossierAttributes: DossierAttributeWithValue[] = [];
|
||||
fileAttributeConfigs: FileAttributeConfig[];
|
||||
dynamicColumnsCount = 0;
|
||||
protected readonly _primaryKey = 'filename';
|
||||
private readonly _defaultTableConfigs: readonly TableColumnConfig<FileStatusWrapper>[] = [
|
||||
{
|
||||
label: _('dossier-overview.table-col-names.name'),
|
||||
@ -97,14 +103,6 @@ export class DossierOverviewScreenComponent extends ListingComponent<FileStatusW
|
||||
sortByKey: 'statusSort'
|
||||
}
|
||||
];
|
||||
|
||||
tableColumnConfigs: readonly TableColumnConfig<FileStatusWrapper>[] = [];
|
||||
collapsedDetails = false;
|
||||
dossierAttributes: DossierAttributeWithValue[] = [];
|
||||
fileAttributeConfigs: FileAttributeConfig[];
|
||||
protected readonly _primaryKey = 'filename';
|
||||
dynamicColumnsCount = 0;
|
||||
|
||||
@ViewChild(DossierDetailsComponent, { static: false })
|
||||
private readonly _dossierDetailsComponent: DossierDetailsComponent;
|
||||
private _lastScrolledIndex: number;
|
||||
@ -149,6 +147,10 @@ export class DossierOverviewScreenComponent extends ListingComponent<FileStatusW
|
||||
return this.filterService.getGroup('quickFilters')?.filters.filter(f => !f.required && f.checked);
|
||||
}
|
||||
|
||||
get displayedInFileListAttributes() {
|
||||
return this.fileAttributeConfigs.filter(config => config.displayedInFileList);
|
||||
}
|
||||
|
||||
async ngOnInit(): Promise<void> {
|
||||
this._loadingService.start();
|
||||
try {
|
||||
@ -273,10 +275,6 @@ export class DossierOverviewScreenComponent extends ListingComponent<FileStatusW
|
||||
this.collapsedDetails = !this.collapsedDetails;
|
||||
}
|
||||
|
||||
get displayedInFileListAttributes() {
|
||||
return this.fileAttributeConfigs.filter(config => config.displayedInFileList);
|
||||
}
|
||||
|
||||
recentlyModifiedChecker = (file: FileStatusWrapper) =>
|
||||
moment(file.lastUpdated).add(this._appConfigService.getConfig(AppConfigKey.RECENT_PERIOD_IN_HOURS), 'hours').isAfter(moment());
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
.vertical-line {
|
||||
width: 1px;
|
||||
|
||||
@ -3,7 +3,15 @@ import { ActivatedRoute, ActivatedRouteSnapshot, NavigationExtras, Router } from
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { Annotations, WebViewerInstance } from '@pdftron/webviewer';
|
||||
import { PdfViewerComponent } from '../../components/pdf-viewer/pdf-viewer.component';
|
||||
import { AutoUnsubscribe, CircleButtonTypes, Debounce, FilterService, NestedFilter, processFilters } from '@iqser/common-ui';
|
||||
import {
|
||||
AutoUnsubscribe,
|
||||
CircleButtonTypes,
|
||||
Debounce,
|
||||
FilterService,
|
||||
LoadingService,
|
||||
NestedFilter,
|
||||
processFilters
|
||||
} from '@iqser/common-ui';
|
||||
import { MatDialogRef, MatDialogState } from '@angular/material/dialog';
|
||||
import { ManualRedactionEntryWrapper } from '@models/file/manual-redaction-entry.wrapper';
|
||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||
@ -30,7 +38,6 @@ import { ViewMode } from '@models/file/view-mode';
|
||||
import { FileWorkloadComponent } from '../../components/file-workload/file-workload.component';
|
||||
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
||||
import { OnAttach, OnDetach } from '@utils/custom-route-reuse.strategy';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { clearStamps, stampPDFPage } from '@utils/page-stamper';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
||||
@ -61,10 +68,10 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
|
||||
displayPDFViewer = false;
|
||||
viewDocumentInfo = false;
|
||||
excludePages = false;
|
||||
@ViewChild(PdfViewerComponent) readonly viewerComponent: PdfViewerComponent;
|
||||
private _instance: WebViewerInstance;
|
||||
private _lastPage: string;
|
||||
private _reloadFileOnReanalysis = false;
|
||||
@ViewChild(PdfViewerComponent) readonly viewerComponent: PdfViewerComponent;
|
||||
@ViewChild('fileWorkloadComponent') private readonly _workloadComponent: FileWorkloadComponent;
|
||||
@ViewChild('annotationFilterTemplate', {
|
||||
read: TemplateRef,
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
@import 'apps/red-ui/src/assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
@import '../../../../../assets/styles/variables';
|
||||
|
||||
.content-container {
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
import { Component, Injector, OnDestroy } from '@angular/core';
|
||||
import { DefaultListingServices, keyChecker, Listable, ListingComponent, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { DefaultListingServices, keyChecker, Listable, ListingComponent, LoadingService, TableColumnConfig } from '@iqser/common-ui';
|
||||
import { MatchedDocument, SearchControllerService, SearchResult } from '@redaction/red-ui-http';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { debounceTime, map, skip, switchMap, tap } from 'rxjs/operators';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { FileStatusWrapper } from '@models/file/file-status.wrapper';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
||||
import { SearchPositions } from '@shared/components/page-header/models/search-positions.type';
|
||||
@ -40,7 +39,6 @@ export class SearchScreenComponent extends ListingComponent<ListItem> implements
|
||||
readonly searchPositions = SearchPositions;
|
||||
|
||||
readonly itemSize = 85;
|
||||
protected readonly _primaryKey = 'filename';
|
||||
readonly tableHeaderLabel = _('search-screen.table-header');
|
||||
readonly tableColumnConfigs: TableColumnConfig<ListItem>[] = [
|
||||
{ label: _('search-screen.cols.document') },
|
||||
@ -56,6 +54,7 @@ export class SearchScreenComponent extends ListingComponent<ListItem> implements
|
||||
tap(result => this.entitiesService.setEntities(result)),
|
||||
tap(() => this._loadingService.stop())
|
||||
);
|
||||
protected readonly _primaryKey = 'filename';
|
||||
|
||||
constructor(
|
||||
private readonly _router: Router,
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
:host {
|
||||
width: 100%;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import '../../../../../assets/styles/variables';
|
||||
|
||||
.empty-state {
|
||||
display: flex;
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
<ng-container *ngIf="loadingService.isLoading$ | async">
|
||||
<section class="full-page-load-section"></section>
|
||||
<section class="full-page-load-spinner">
|
||||
<mat-spinner diameter="40"></mat-spinner>
|
||||
<ng-content></ng-content>
|
||||
</section>
|
||||
</ng-container>
|
||||
@ -1,24 +0,0 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
|
||||
.full-page-load-section,
|
||||
.full-page-load-spinner {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.full-page-load-section {
|
||||
opacity: 0.7;
|
||||
background: $white;
|
||||
z-index: 900;
|
||||
}
|
||||
|
||||
.full-page-load-spinner {
|
||||
z-index: 1000;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
display: flex;
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { LoadingService } from '@services/loading.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-full-page-loading-indicator',
|
||||
templateUrl: './full-page-loading-indicator.component.html',
|
||||
styleUrls: ['./full-page-loading-indicator.component.scss'],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush
|
||||
})
|
||||
export class FullPageLoadingIndicatorComponent {
|
||||
constructor(readonly loadingService: LoadingService) {}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../../assets/styles/variables';
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
:host {
|
||||
display: block;
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { FullPageLoadingIndicatorComponent } from './components/full-page-loading-indicator/full-page-loading-indicator.component';
|
||||
import { InitialsAvatarComponent } from './components/initials-avatar/initials-avatar.component';
|
||||
import { ScrollingModule } from '@angular/cdk/scrolling';
|
||||
import { PaginationComponent } from './components/pagination/pagination.component';
|
||||
@ -31,7 +30,6 @@ import { DatePipe } from '@shared/pipes/date.pipe';
|
||||
const buttons = [FileDownloadBtnComponent, UserButtonComponent];
|
||||
|
||||
const components = [
|
||||
FullPageLoadingIndicatorComponent,
|
||||
InitialsAvatarComponent,
|
||||
PaginationComponent,
|
||||
AnnotationIconComponent,
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../../../../assets/styles/variables';
|
||||
@import '../../../../assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.red-upload-download-overlay {
|
||||
background: $white;
|
||||
|
||||
@ -1,44 +0,0 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
|
||||
const MIN_LOADING_TIME = 300;
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class LoadingService {
|
||||
private readonly _loadingEvent$ = new BehaviorSubject(false);
|
||||
readonly isLoading$ = this._loadingEvent$.asObservable();
|
||||
private _loadingStarted: number;
|
||||
|
||||
start(): void {
|
||||
setTimeout(() => {
|
||||
this._loadingEvent$.next(true);
|
||||
this._loadingStarted = new Date().getTime();
|
||||
});
|
||||
}
|
||||
|
||||
stop(): void {
|
||||
const timeSinceStarted = new Date().getTime() - this._loadingStarted;
|
||||
const remainingLoadingTime = MIN_LOADING_TIME - timeSinceStarted;
|
||||
|
||||
return remainingLoadingTime > 0 ? this._stopAfter(remainingLoadingTime) : this._stop();
|
||||
}
|
||||
|
||||
loadWhile(func: Promise<void>) {
|
||||
this.start();
|
||||
|
||||
func.then(
|
||||
() => this.stop(),
|
||||
() => this.stop()
|
||||
);
|
||||
}
|
||||
|
||||
private _stop() {
|
||||
setTimeout(() => this._loadingEvent$.next(false));
|
||||
}
|
||||
|
||||
private _stopAfter(timeout: number) {
|
||||
setTimeout(() => this._stop(), timeout);
|
||||
}
|
||||
}
|
||||
20
apps/red-ui/src/app/utils/server-error-interceptor.ts
Normal file
20
apps/red-ui/src/app/utils/server-error-interceptor.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { ErrorService } from '@iqser/common-ui';
|
||||
import { Observable, throwError } from 'rxjs';
|
||||
import { catchError, map } from 'rxjs/operators';
|
||||
|
||||
@Injectable()
|
||||
export class ServerErrorInterceptor implements HttpInterceptor {
|
||||
constructor(private readonly _errorService: ErrorService) {}
|
||||
|
||||
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
|
||||
return next.handle(req).pipe(
|
||||
map((event: HttpEvent<any>) => event),
|
||||
catchError((error: HttpErrorResponse) => {
|
||||
if ([0, 500].includes(error.status)) this._errorService.set(error);
|
||||
return throwError(error);
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -846,6 +846,10 @@
|
||||
"side-nav-title": "Configurations",
|
||||
"unsaved-changes": "You have unsaved changes. Save or revert before changing the tab."
|
||||
},
|
||||
"error": {
|
||||
"generic": "Oops! Something went wrong...",
|
||||
"reload": "Reload"
|
||||
},
|
||||
"exact-date": "{day} {month} {year} at {hour}:{minute}",
|
||||
"file": "File",
|
||||
"file-attribute-types": {
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="20px" version="1.1" viewBox="0 0 20 20" width="20px"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Generator: Sketch 49.1 (51147) - http://www.bohemiancoding.com/sketch -->
|
||||
<defs></defs>
|
||||
<g fill="none" fill-rule="evenodd" id="Upload" stroke="none" stroke-width="1">
|
||||
<g fill="currentColor" id="Upload-Errors-01"
|
||||
transform="translate(-1388.000000, -622.000000)">
|
||||
<path
|
||||
d="M1405.075,639.075 C1406.88516,637.26484 1408,634.761 1408,632 C1408,629.2398 1406.88516,626.7352 1405.075,624.925 C1403.26484,623.1148 1400.761,622 1398,622 C1395.2398,622 1392.7352,623.11484 1390.925,624.925 C1389.1148,626.73516 1388,629.239 1388,632 C1388,634.7602 1389.11484,637.2648 1390.925,639.075 C1392.73516,640.8852 1395.239,642 1398,642 C1400.7602,642 1403.2648,640.88516 1405.075,639.075 Z M1399.3532,635.8578 C1399.3532,635.10858 1398.75008,634.50468 1398.00008,634.50468 C1397.25086,634.50468 1396.62898,635.1078 1396.62898,635.8578 C1396.62898,636.60702 1397.25086,637.2289 1398.00008,637.2289 C1398.7493,637.2289 1399.3532,636.60702 1399.3532,635.8578 Z M1398.00008,633.1336 C1397.50632,633.1336 1397.1407,632.73126 1397.08602,632.21954 L1396.62898,628.14294 C1396.55554,627.42966 1397.30554,626.77184 1398.00008,626.77184 C1398.69462,626.77184 1399.44462,627.42966 1399.3532,628.14294 L1398.91414,632.21954 C1398.85945,632.73126 1398.49382,633.1336 1398.00008,633.1336 Z"
|
||||
id="error_icon"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1,5 +1,5 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.mat-autocomplete-panel {
|
||||
@include scroll-bar;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.breadcrumbs-container {
|
||||
display: flex;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.oval,
|
||||
.square {
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
|
||||
.changed-row-marker {
|
||||
background: rgba($primary, 0.1);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.mat-menu-panel {
|
||||
border-radius: 8px !important;
|
||||
|
||||
@ -1,23 +0,0 @@
|
||||
@import '../../../../../libs/common-ui/src/assets/styles/mixins';
|
||||
@import 'variables';
|
||||
|
||||
@mixin line-clamp($lines) {
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: $lines;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
|
||||
@if $lines == 1 {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin inset-shadow {
|
||||
box-shadow: inset 0 4px 3px -2px $grey-4;
|
||||
}
|
||||
|
||||
@mixin drop-shadow {
|
||||
box-shadow: 0 4px 3px 2px $grey-4;
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
html,
|
||||
body {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.mat-select-panel {
|
||||
@include scroll-bar;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
|
||||
.default-table {
|
||||
border-collapse: collapse;
|
||||
|
||||
@ -1,87 +0,0 @@
|
||||
@import 'variables';
|
||||
@import 'red-mixins';
|
||||
|
||||
a {
|
||||
color: $primary;
|
||||
transition: color 0.1s;
|
||||
|
||||
&:hover {
|
||||
color: lighten($primary, 10%);
|
||||
}
|
||||
|
||||
&.with-underline {
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: Inter, sans-serif;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
.heading-xl {
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
line-height: 29px;
|
||||
}
|
||||
|
||||
.info {
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.page-title {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
line-height: 18px;
|
||||
text-align: center;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.small-label {
|
||||
opacity: 0.7;
|
||||
font-size: 11px;
|
||||
line-height: 14px;
|
||||
font-weight: initial;
|
||||
}
|
||||
|
||||
.link-action {
|
||||
font-size: 11px;
|
||||
line-height: 14px;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.large-label {
|
||||
color: $accent;
|
||||
font-size: 13px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.clamp-1 {
|
||||
@include line-clamp(1);
|
||||
}
|
||||
|
||||
.clamp-2 {
|
||||
@include line-clamp(2);
|
||||
}
|
||||
|
||||
.text-overflow {
|
||||
display: block !important;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.no-wrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
@ -2,7 +2,6 @@
|
||||
@import '~ngx-toastr/toastr';
|
||||
@import 'red-material-theme';
|
||||
@import 'red-page-layout';
|
||||
@import 'red-text-styles';
|
||||
@import 'red-select';
|
||||
@import 'red-autocomplete';
|
||||
@import 'red-list';
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 007aedbe09c80fce4ca44a1b00d669685a9e1d36
|
||||
Subproject commit 82f27f1ed9ff98c98877c4cf128b4b41832a1724
|
||||
@ -21,7 +21,7 @@
|
||||
"format:check": "nx format:check",
|
||||
"format:write": "nx format:write",
|
||||
"help": "nx help",
|
||||
"i18n:extract": "ngx-translate-extract --input ./apps/red-ui/src --output apps/red-ui/src/assets/i18n/en.json --clean --sort --format namespaced-json && prettier apps/red-ui/src/assets/i18n/*.json --write",
|
||||
"i18n:extract": "ngx-translate-extract --input ./apps/red-ui/src ./libs/common-ui/src --output apps/red-ui/src/assets/i18n/en.json --clean --sort --format namespaced-json && prettier apps/red-ui/src/assets/i18n/*.json --write",
|
||||
"postinstall": "ngcc --properties es2015 browser module main",
|
||||
"lint": "nx workspace-lint && nx lint",
|
||||
"lint-fix": "nx workspace-lint --fix && nx lint --fix",
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../apps/red-ui/src/assets/styles/variables';
|
||||
@import '../apps/red-ui/src/assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
@import 'mixin';
|
||||
|
||||
.site-sidebar {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
@import '../apps/red-ui/src/assets/styles/variables';
|
||||
@import '../apps/red-ui/src/assets/styles/red-mixins';
|
||||
@import 'libs/common-ui/src/assets/styles/mixins';
|
||||
@import 'fonts';
|
||||
@import 'header';
|
||||
@import 'homepage';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user