Merge remote-tracking branch 'origin/master' into new-state-concept
@ -1,6 +1,6 @@
|
|||||||
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
|
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
|
||||||
import { AuthGuard } from './modules/auth/auth.guard';
|
import { AuthGuard } from './modules/auth/auth.guard';
|
||||||
import { CompositeRouteGuard } from '@guards/composite-route.guard';
|
import { CompositeRouteGuard, CustomRouteReuseStrategy } from '@iqser/common-ui';
|
||||||
import { RedRoleGuard } from './modules/auth/red-role.guard';
|
import { RedRoleGuard } from './modules/auth/red-role.guard';
|
||||||
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
||||||
import { RouteReuseStrategy, RouterModule } from '@angular/router';
|
import { RouteReuseStrategy, RouterModule } from '@angular/router';
|
||||||
@ -8,7 +8,6 @@ import { NgModule } from '@angular/core';
|
|||||||
import { DownloadsListScreenComponent } from '@components/downloads-list-screen/downloads-list-screen.component';
|
import { DownloadsListScreenComponent } from '@components/downloads-list-screen/downloads-list-screen.component';
|
||||||
import { AppStateGuard } from '@state/app-state.guard';
|
import { AppStateGuard } from '@state/app-state.guard';
|
||||||
import { UserProfileScreenComponent } from '@components/user-profile/user-profile-screen.component';
|
import { UserProfileScreenComponent } from '@components/user-profile/user-profile-screen.component';
|
||||||
import { CustomRouteReuseStrategy } from '@utils/custom-route-reuse.strategy';
|
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -14,7 +14,6 @@ import { ToastrModule } from 'ngx-toastr';
|
|||||||
import { ServiceWorkerModule } from '@angular/service-worker';
|
import { ServiceWorkerModule } from '@angular/service-worker';
|
||||||
import { environment } from '@environments/environment';
|
import { environment } from '@environments/environment';
|
||||||
import { AuthModule } from './modules/auth/auth.module';
|
import { AuthModule } from './modules/auth/auth.module';
|
||||||
import { LogoComponent } from '@components/logo/logo.component';
|
|
||||||
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
|
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
|
||||||
import { ToastComponent } from '@components/toast/toast.component';
|
import { ToastComponent } from '@components/toast/toast.component';
|
||||||
import { HttpCacheInterceptor } from '@redaction/red-cache';
|
import { HttpCacheInterceptor } from '@redaction/red-cache';
|
||||||
@ -55,15 +54,7 @@ function cleanupBaseUrl(baseUrl: string) {
|
|||||||
|
|
||||||
const screens = [BaseScreenComponent, DownloadsListScreenComponent, UserProfileScreenComponent];
|
const screens = [BaseScreenComponent, DownloadsListScreenComponent, UserProfileScreenComponent];
|
||||||
|
|
||||||
const components = [
|
const components = [AppComponent, AuthErrorComponent, ToastComponent, NotificationsComponent, SpotlightSearchComponent, ...screens];
|
||||||
AppComponent,
|
|
||||||
LogoComponent,
|
|
||||||
AuthErrorComponent,
|
|
||||||
ToastComponent,
|
|
||||||
NotificationsComponent,
|
|
||||||
SpotlightSearchComponent,
|
|
||||||
...screens
|
|
||||||
];
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [...components],
|
declarations: [...components],
|
||||||
|
|||||||
@ -1,87 +1,105 @@
|
|||||||
<iqser-help-mode *ngIf="userPreferenceService.areDevFeaturesEnabled"></iqser-help-mode>
|
<iqser-help-mode *ngIf="userPreferenceService.areDevFeaturesEnabled"></iqser-help-mode>
|
||||||
|
|
||||||
<div class="red-top-bar">
|
<div class="top-bar">
|
||||||
<div class="top-bar-row">
|
<div *ngIf="!currentUser.isUser" class="menu-placeholder"></div>
|
||||||
<div *ngIf="!currentUser.isUser" class="menu-placeholder"></div>
|
|
||||||
|
|
||||||
<div *ngIf="currentUser.isUser" class="menu flex-2 breadcrumbs-container">
|
<div *ngIf="currentUser.isUser" class="menu visible-lt-lg">
|
||||||
<a *ngIf="(isDossiersView$ | async) === false" class="breadcrumb back" redactionNavigateLastDossiersScreen>
|
<button [matMenuTriggerFor]="menuNav" mat-flat-button>
|
||||||
<mat-icon svgIcon="red:expand"></mat-icon>
|
<mat-icon svgIcon="red:menu"></mat-icon>
|
||||||
{{ 'top-bar.navigation-items.back' | translate }}
|
</button>
|
||||||
|
<mat-menu #menuNav="matMenu">
|
||||||
|
<button mat-menu-item routerLink="/main/dossiers" translate="top-bar.navigation-items.dossiers"></button>
|
||||||
|
<button *ngIf="appStateService.activeDossier" [routerLink]="'/main/dossiers/' + appStateService.activeDossierId" mat-menu-item>
|
||||||
|
{{ appStateService.activeDossier.dossierName }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
*ngIf="appStateService.activeFile"
|
||||||
|
[routerLink]="'/main/dossiers/' + appStateService.activeDossierId + '/file/' + appStateService.activeFile.fileId"
|
||||||
|
mat-menu-item
|
||||||
|
>
|
||||||
|
{{ appStateService.activeFile.filename }}
|
||||||
|
</button>
|
||||||
|
</mat-menu>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="currentUser.isUser" class="menu flex-2 visible-lg breadcrumbs-container">
|
||||||
|
<a *ngIf="(isDossiersView$ | async) === false" class="breadcrumb back" redactionNavigateLastDossiersScreen>
|
||||||
|
<mat-icon svgIcon="iqser:expand"></mat-icon>
|
||||||
|
{{ 'top-bar.navigation-items.back' | translate }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<ng-container *ngIf="isDossiersView$ | async">
|
||||||
|
<a
|
||||||
|
[routerLinkActiveOptions]="{ exact: true }"
|
||||||
|
class="breadcrumb"
|
||||||
|
routerLink="/main/dossiers"
|
||||||
|
routerLinkActive="active"
|
||||||
|
translate="top-bar.navigation-items.dossiers"
|
||||||
|
></a>
|
||||||
|
|
||||||
|
<mat-icon *ngIf="appStateService.activeDossier" svgIcon="iqser:arrow-right"></mat-icon>
|
||||||
|
|
||||||
|
<a
|
||||||
|
*ngIf="appStateService.activeDossier"
|
||||||
|
[routerLinkActiveOptions]="{ exact: true }"
|
||||||
|
[routerLink]="'/main/dossiers/' + appStateService.activeDossierId"
|
||||||
|
class="breadcrumb"
|
||||||
|
routerLinkActive="active"
|
||||||
|
>
|
||||||
|
{{ appStateService.activeDossier.dossierName }}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<ng-container *ngIf="isDossiersView$ | async">
|
<mat-icon *ngIf="appStateService.activeFile" svgIcon="iqser:arrow-right"></mat-icon>
|
||||||
<a
|
|
||||||
[routerLinkActiveOptions]="{ exact: true }"
|
|
||||||
class="breadcrumb"
|
|
||||||
routerLink="/main/dossiers"
|
|
||||||
routerLinkActive="active"
|
|
||||||
translate="top-bar.navigation-items.dossiers"
|
|
||||||
></a>
|
|
||||||
|
|
||||||
<ng-container *ngIf="dossiersService.activeDossier$ | async as activeDossier">
|
<a
|
||||||
<mat-icon svgIcon="red:arrow-right"></mat-icon>
|
*ngIf="appStateService.activeFile"
|
||||||
|
[routerLink]="'/main/dossiers/' + appStateService.activeDossierId + '/file/' + appStateService.activeFile.fileId"
|
||||||
<a
|
class="breadcrumb"
|
||||||
[routerLinkActiveOptions]="{ exact: true }"
|
routerLinkActive="active"
|
||||||
[routerLink]="activeDossier.routerLink"
|
>
|
||||||
class="breadcrumb"
|
{{ appStateService.activeFile.filename }}
|
||||||
routerLinkActive="active"
|
</a>
|
||||||
>
|
</ng-container>
|
||||||
{{ activeDossier.dossierName }}
|
</div>
|
||||||
</a>
|
|
||||||
</ng-container>
|
<div class="center">
|
||||||
|
<iqser-hidden-action (action)="userPreferenceService.toggleDevFeatures()">
|
||||||
<ng-container *ngIf="appStateService.activeFile as activeFile">
|
<iqser-logo icon="red:logo"></iqser-logo>
|
||||||
<mat-icon svgIcon="red:arrow-right"></mat-icon>
|
</iqser-hidden-action>
|
||||||
|
<div class="app-name">{{ titleService.getTitle() }}</div>
|
||||||
<a [routerLink]="activeFile.routerLink" class="breadcrumb" routerLinkActive="active">
|
</div>
|
||||||
{{ activeFile.filename }}
|
|
||||||
</a>
|
<div class="menu right flex-2">
|
||||||
</ng-container>
|
<div class="buttons">
|
||||||
</ng-container>
|
<redaction-spotlight-search
|
||||||
</div>
|
*ngIf="(isSearchScreen$ | async) === false"
|
||||||
|
[actions]="searchActions"
|
||||||
<div class="center logo-wrapper">
|
[placeholder]="'search.placeholder' | translate"
|
||||||
<redaction-hidden-action (action)="userPreferenceService.toggleDevFeatures()">
|
iqserHelpMode="search"
|
||||||
<redaction-logo></redaction-logo>
|
></redaction-spotlight-search>
|
||||||
</redaction-hidden-action>
|
|
||||||
<div class="app-name">{{ titleService.getTitle() }}</div>
|
<redaction-notifications iqserHelpMode="notifications"></redaction-notifications>
|
||||||
</div>
|
</div>
|
||||||
|
<redaction-user-button
|
||||||
<div class="menu right flex-2">
|
[matMenuTriggerFor]="userMenu"
|
||||||
<div class="buttons">
|
[showDot]="fileDownloadService.hasPendingDownloads"
|
||||||
<redaction-spotlight-search
|
[userId]="currentUser.id"
|
||||||
*ngIf="(isSearchScreen$ | async) === false"
|
iqserHelpMode="user-menu"
|
||||||
[actions]="searchActions"
|
></redaction-user-button>
|
||||||
[placeholder]="'search.placeholder' | translate"
|
|
||||||
iqserHelpMode="search"
|
<mat-menu #userMenu="matMenu" xPosition="before">
|
||||||
></redaction-spotlight-search>
|
<ng-container *ngFor="let item of userMenuItems; trackBy: trackByName">
|
||||||
|
<button (click)="(item.action)" *ngIf="item.show" [routerLink]="item.routerLink" mat-menu-item translate>
|
||||||
<redaction-notifications iqserHelpMode="notifications"></redaction-notifications>
|
{{ item.name }}
|
||||||
</div>
|
</button>
|
||||||
<redaction-user-button
|
</ng-container>
|
||||||
[matMenuTriggerFor]="userMenu"
|
|
||||||
[showDot]="fileDownloadService.hasPendingDownloads"
|
<button (click)="userService.logout()" mat-menu-item>
|
||||||
[userId]="currentUser.id"
|
<mat-icon svgIcon="red:logout"></mat-icon>
|
||||||
iqserHelpMode="user-menu"
|
<span translate="top-bar.navigation-items.my-account.children.logout"> </span>
|
||||||
></redaction-user-button>
|
</button>
|
||||||
|
</mat-menu>
|
||||||
<mat-menu #userMenu="matMenu" xPosition="before">
|
|
||||||
<ng-container *ngFor="let item of userMenuItems; trackBy: trackByName">
|
|
||||||
<button (click)="(item.action)" *ngIf="item.show" [routerLink]="item.routerLink" mat-menu-item translate>
|
|
||||||
{{ item.name }}
|
|
||||||
</button>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<button (click)="userService.logout()" mat-menu-item>
|
|
||||||
<mat-icon svgIcon="red:logout"></mat-icon>
|
|
||||||
<span translate="top-bar.navigation-items.my-account.children.logout"> </span>
|
|
||||||
</button>
|
|
||||||
</mat-menu>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="divider"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="userPreferenceService.areDevFeaturesEnabled" class="dev-mode" translate="dev-mode"></div>
|
<div *ngIf="userPreferenceService.areDevFeaturesEnabled" class="dev-mode" translate="dev-mode"></div>
|
||||||
|
|||||||
@ -1,39 +1,3 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.dev-mode {
|
|
||||||
background-color: variables.$primary;
|
|
||||||
color: variables.$white;
|
|
||||||
font-size: 22px;
|
|
||||||
line-height: 16px;
|
|
||||||
text-align: center;
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
z-index: 100;
|
|
||||||
right: 0;
|
|
||||||
height: 61px;
|
|
||||||
word-break: break-all;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
font-family: monospace;
|
|
||||||
width: 24px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-placeholder {
|
|
||||||
display: flex;
|
|
||||||
flex: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttons {
|
|
||||||
display: flex;
|
|
||||||
margin-right: 8px;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 2px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
redaction-spotlight-search {
|
redaction-spotlight-search {
|
||||||
margin-right: 16px !important;
|
margin-right: 16px !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,7 @@
|
|||||||
<section>
|
<section>
|
||||||
<redaction-page-header
|
<iqser-page-header (closeAction)="routerHistoryService.navigateToLastDossiersScreen()" [showCloseButton]="true"></iqser-page-header>
|
||||||
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
|
||||||
[showCloseButton]="true"
|
|
||||||
></redaction-page-header>
|
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<iqser-table
|
<iqser-table
|
||||||
[bulkActions]="bulkActions"
|
[bulkActions]="bulkActions"
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
<mat-icon svgIcon="red:logo"></mat-icon>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
:host {
|
|
||||||
color: variables.$primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
mat-icon {
|
|
||||||
width: 28px;
|
|
||||||
height: 28px;
|
|
||||||
}
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
import { Component } from '@angular/core';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'redaction-logo',
|
|
||||||
templateUrl: './logo.component.html',
|
|
||||||
styleUrls: ['./logo.component.scss']
|
|
||||||
})
|
|
||||||
export class LogoComponent {}
|
|
||||||
@ -4,7 +4,7 @@
|
|||||||
[placeholder]="placeholder"
|
[placeholder]="placeholder"
|
||||||
></iqser-input-with-action>
|
></iqser-input-with-action>
|
||||||
|
|
||||||
<mat-menu #menu="matMenu" xPosition="after">
|
<mat-menu #menu="matMenu" class="search-menu" xPosition="after">
|
||||||
<ng-template matMenuContent>
|
<ng-template matMenuContent>
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
width: 300px;
|
width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::ng-deep .mat-menu-content {
|
::ng-deep.search-menu .mat-menu-content {
|
||||||
padding: 8px !important;
|
padding: 8px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<section class="red-content-inner">
|
<section class="content-inner">
|
||||||
<div class="content-container full-height">
|
<div class="content-container full-height">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
<div class="dialog">
|
<div class="dialog">
|
||||||
|
|||||||
@ -1,40 +0,0 @@
|
|||||||
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';
|
|
||||||
import { Injectable, Injector } from '@angular/core';
|
|
||||||
import { from, of } from 'rxjs';
|
|
||||||
import { LoadingService } from '@iqser/common-ui';
|
|
||||||
|
|
||||||
@Injectable({
|
|
||||||
providedIn: 'root'
|
|
||||||
})
|
|
||||||
export class CompositeRouteGuard implements CanActivate {
|
|
||||||
constructor(protected readonly _injector: Injector, private readonly _loadingService: LoadingService) {}
|
|
||||||
|
|
||||||
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {
|
|
||||||
this._loadingService.start();
|
|
||||||
|
|
||||||
const routeGuards = route.data.routeGuards;
|
|
||||||
|
|
||||||
if (routeGuards) {
|
|
||||||
for (let i = 0; i < routeGuards.length; i++) {
|
|
||||||
const routeGuard = this._injector.get<CanActivate>(routeGuards[i]);
|
|
||||||
let canActivateResult = routeGuard.canActivate(route, state);
|
|
||||||
if (canActivateResult instanceof Promise) {
|
|
||||||
canActivateResult = from(canActivateResult);
|
|
||||||
}
|
|
||||||
if (typeof canActivateResult === 'boolean' || canActivateResult instanceof UrlTree) {
|
|
||||||
canActivateResult = of(canActivateResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = await canActivateResult.toPromise();
|
|
||||||
if (!result) {
|
|
||||||
this._loadingService.stop();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this._loadingService.stop();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { AuthGuard } from '../auth/auth.guard';
|
import { AuthGuard } from '../auth/auth.guard';
|
||||||
import { CompositeRouteGuard } from '@guards/composite-route.guard';
|
import { CompositeRouteGuard } from '@iqser/common-ui';
|
||||||
import { RedRoleGuard } from '../auth/red-role.guard';
|
import { RedRoleGuard } from '../auth/red-role.guard';
|
||||||
import { AppStateGuard } from '@state/app-state.guard';
|
import { AppStateGuard } from '@state/app-state.guard';
|
||||||
import { DossierTemplatesListingScreenComponent } from './screens/dossier-template-listing/dossier-templates-listing-screen.component';
|
import { DossierTemplatesListingScreenComponent } from './screens/dossier-template-listing/dossier-templates-listing-screen.component';
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
></a>
|
></a>
|
||||||
|
|
||||||
<ng-container *ngIf="appStateService.activeDossierTemplate">
|
<ng-container *ngIf="appStateService.activeDossierTemplate">
|
||||||
<mat-icon svgIcon="red:arrow-right"></mat-icon>
|
<mat-icon svgIcon="iqser:arrow-right"></mat-icon>
|
||||||
<a
|
<a
|
||||||
[class.active]="!appStateService.activeDictionaryType"
|
[class.active]="!appStateService.activeDictionaryType"
|
||||||
[routerLink]="'/main/admin/dossier-templates/' + appStateService.activeDossierTemplateId"
|
[routerLink]="'/main/admin/dossier-templates/' + appStateService.activeDossierTemplateId"
|
||||||
@ -18,7 +18,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container *ngIf="appStateService.activeDictionary">
|
<ng-container *ngIf="appStateService.activeDictionary">
|
||||||
<mat-icon svgIcon="red:arrow-right"></mat-icon>
|
<mat-icon svgIcon="iqser:arrow-right"></mat-icon>
|
||||||
<a
|
<a
|
||||||
[routerLink]="
|
[routerLink]="
|
||||||
'/main/admin/dossier-templates/' +
|
'/main/admin/dossier-templates/' +
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="toggleCollapse.emit()"
|
(action)="toggleCollapse.emit()"
|
||||||
[tooltip]="'user-stats.expand' | translate"
|
[tooltip]="'user-stats.expand' | translate"
|
||||||
icon="red:expand"
|
icon="iqser:expand"
|
||||||
tooltipPosition="before"
|
tooltipPosition="before"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
<div class="all-caps-label" translate="user-stats.title"></div>
|
<div class="all-caps-label" translate="user-stats.title"></div>
|
||||||
@ -13,7 +13,7 @@
|
|||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="toggleCollapse.emit()"
|
(action)="toggleCollapse.emit()"
|
||||||
[tooltip]="'user-stats.collapse' | translate"
|
[tooltip]="'user-stats.collapse' | translate"
|
||||||
icon="red:collapse"
|
icon="iqser:collapse"
|
||||||
tooltipPosition="before"
|
tooltipPosition="before"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -128,7 +128,7 @@
|
|||||||
<div [translate]="'file-attributes-csv-import.csv-column'" class="all-caps-label"></div>
|
<div [translate]="'file-attributes-csv-import.csv-column'" class="all-caps-label"></div>
|
||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(click)="previewExpanded = !previewExpanded"
|
(click)="previewExpanded = !previewExpanded"
|
||||||
[icon]="previewExpanded ? 'red:expand' : 'red:collapse'"
|
[icon]="previewExpanded ? 'iqser:expand' : 'iqser:collapse'"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
</div>
|
</div>
|
||||||
<div [class.hidden]="!previewExpanded" class="csv-part-content">
|
<div [class.hidden]="!previewExpanded" class="csv-part-content">
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<iqser-table
|
<iqser-table
|
||||||
[headerTemplate]="headerTemplate"
|
[headerTemplate]="headerTemplate"
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
||||||
@ -71,7 +71,7 @@
|
|||||||
*ngIf="currentUser.isAdmin"
|
*ngIf="currentUser.isAdmin"
|
||||||
[label]="'dictionary-listing.add-new' | translate"
|
[label]="'dictionary-listing.add-new' | translate"
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
icon="red:plus"
|
icon="iqser:plus"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex red-content-inner">
|
<div class="flex content-inner">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
<redaction-admin-side-nav type="settings"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="settings"></redaction-admin-side-nav>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<redaction-page-header
|
<iqser-page-header
|
||||||
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
||||||
[pageLabel]="'digital-signature' | translate"
|
[pageLabel]="'digital-signature' | translate"
|
||||||
[showCloseButton]="currentUser.isUser"
|
[showCloseButton]="currentUser.isUser"
|
||||||
></redaction-page-header>
|
></iqser-page-header>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<div class="content-container-content">
|
<div class="content-container-content">
|
||||||
<form *ngIf="digitalSignatureForm" [formGroup]="digitalSignatureForm" autocomplete="off">
|
<form *ngIf="digitalSignatureForm" [formGroup]="digitalSignatureForm" autocomplete="off">
|
||||||
@ -78,16 +78,16 @@
|
|||||||
(action)="saveDigitalSignature()"
|
(action)="saveDigitalSignature()"
|
||||||
[disabled]="digitalSignatureForm.invalid"
|
[disabled]="digitalSignatureForm.invalid"
|
||||||
[label]="'digital-signature-screen.action.save' | translate"
|
[label]="'digital-signature-screen.action.save' | translate"
|
||||||
icon="iqser:check"
|
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
|
icon="iqser:check"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
|
|
||||||
<iqser-icon-button
|
<iqser-icon-button
|
||||||
(action)="removeDigitalSignature()"
|
(action)="removeDigitalSignature()"
|
||||||
*ngIf="digitalSignatureExists"
|
*ngIf="digitalSignatureExists"
|
||||||
[label]="'digital-signature-screen.action.delete' | translate"
|
[label]="'digital-signature-screen.action.delete' | translate"
|
||||||
icon="red:trash"
|
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
|
icon="red:trash"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
||||||
@ -59,7 +59,7 @@
|
|||||||
*ngIf="currentUser.isAdmin"
|
*ngIf="currentUser.isAdmin"
|
||||||
[label]="'dossier-attributes-listing.add-new' | translate"
|
[label]="'dossier-attributes-listing.add-new' | translate"
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
icon="red:plus"
|
icon="iqser:plus"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
<redaction-admin-side-nav type="settings"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="settings"></redaction-admin-side-nav>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<redaction-page-header
|
<iqser-page-header
|
||||||
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
||||||
[pageLabel]="'dossier-templates' | translate"
|
[pageLabel]="'dossier-templates' | translate"
|
||||||
[showCloseButton]="currentUser.isUser"
|
[showCloseButton]="currentUser.isUser"
|
||||||
></redaction-page-header>
|
></iqser-page-header>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<iqser-table
|
<iqser-table
|
||||||
[bulkActions]="bulkActions"
|
[bulkActions]="bulkActions"
|
||||||
@ -56,7 +56,7 @@
|
|||||||
*ngIf="currentUser.isAdmin && userPreferenceService.areDevFeaturesEnabled"
|
*ngIf="currentUser.isAdmin && userPreferenceService.areDevFeaturesEnabled"
|
||||||
[label]="'dossier-templates-listing.add-new' | translate"
|
[label]="'dossier-templates-listing.add-new' | translate"
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
icon="red:plus"
|
icon="iqser:plus"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
||||||
@ -69,7 +69,7 @@
|
|||||||
*ngIf="currentUser.isAdmin"
|
*ngIf="currentUser.isAdmin"
|
||||||
[label]="'file-attributes-listing.add-new' | translate"
|
[label]="'file-attributes-listing.add-new' | translate"
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
icon="red:plus"
|
icon="iqser:plus"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<div class="dialog mb-8">
|
<div class="dialog mb-8">
|
||||||
<div class="dialog-header">
|
<div class="dialog-header">
|
||||||
@ -40,17 +40,17 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="inline-input-group flex-align-items-center">
|
<div class="inline-input-group flex-align-items-center">
|
||||||
<mat-slide-toggle formControlName="forgotPasswordFunctionEnabled" color="primary"></mat-slide-toggle>
|
<mat-slide-toggle color="primary" formControlName="forgotPasswordFunctionEnabled"></mat-slide-toggle>
|
||||||
<span class="ml-8" translate="general-config-screen.general.form.forgot-password"></span>
|
<span class="ml-8" translate="general-config-screen.general.form.forgot-password"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="dialog-actions">
|
<div class="dialog-actions">
|
||||||
<button
|
<button
|
||||||
type="submit"
|
|
||||||
[disabled]="configForm.invalid || !generalConfigurationChanged"
|
[disabled]="configForm.invalid || !generalConfigurationChanged"
|
||||||
color="primary"
|
color="primary"
|
||||||
mat-flat-button
|
mat-flat-button
|
||||||
|
type="submit"
|
||||||
>
|
>
|
||||||
{{ 'general-config-screen.actions.save' | translate }}
|
{{ 'general-config-screen.actions.save' | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -4,14 +4,14 @@
|
|||||||
<redaction-admin-side-nav type="settings"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="settings"></redaction-admin-side-nav>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<redaction-page-header
|
<iqser-page-header
|
||||||
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
||||||
[buttonConfigs]="buttonConfigs"
|
[buttonConfigs]="buttonConfigs"
|
||||||
[pageLabel]="'license-information' | translate"
|
[pageLabel]="'license-information' | translate"
|
||||||
[showCloseButton]="currentUser.isUser"
|
[showCloseButton]="currentUser.isUser"
|
||||||
></redaction-page-header>
|
></iqser-page-header>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<div class="grid-container">
|
<div class="grid-container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@ -3,8 +3,7 @@ import { LicenseReport, LicenseReportControllerService } from '@redaction/red-ui
|
|||||||
import { ConfigService } from '@services/config.service';
|
import { ConfigService } from '@services/config.service';
|
||||||
import * as moment from 'moment';
|
import * as moment from 'moment';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
import { ButtonConfig, IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||||
import { ButtonConfig } from '@shared/components/page-header/models/button-config.model';
|
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@services/user.service';
|
||||||
import { RouterHistoryService } from '@services/router-history.service';
|
import { RouterHistoryService } from '@services/router-history.service';
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
||||||
@ -26,8 +26,8 @@
|
|||||||
<iqser-icon-button
|
<iqser-icon-button
|
||||||
(action)="save()"
|
(action)="save()"
|
||||||
[label]="'rules-screen.save-changes' | translate"
|
[label]="'rules-screen.save-changes' | translate"
|
||||||
icon="iqser:check"
|
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
|
icon="iqser:check"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
<div (click)="revert()" class="all-caps-label cancel" translate="rules-screen.revert-changes"></div>
|
<div (click)="revert()" class="all-caps-label cancel" translate="rules-screen.revert-changes"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
<section>
|
<section>
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-page-header
|
<iqser-page-header
|
||||||
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
||||||
[pageLabel]="'trash.label' | translate"
|
[pageLabel]="'trash.label' | translate"
|
||||||
[showCloseButton]="true"
|
[showCloseButton]="true"
|
||||||
></redaction-page-header>
|
></iqser-page-header>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<iqser-table
|
<iqser-table
|
||||||
[bulkActions]="bulkActions"
|
[bulkActions]="bulkActions"
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
*ngIf="currentUser.isUserAdmin"
|
*ngIf="currentUser.isUserAdmin"
|
||||||
[label]="'user-listing.add-new' | translate"
|
[label]="'user-listing.add-new' | translate"
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
icon="red:plus"
|
icon="iqser:plus"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
*ngIf="currentUser.isUser"
|
*ngIf="currentUser.isUser"
|
||||||
@ -30,7 +30,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div [class.extended]="collapsedDetails" class="content-container">
|
<div [class.extended]="collapsedDetails" class="content-container">
|
||||||
<iqser-table
|
<iqser-table
|
||||||
[bulkActions]="bulkActions"
|
[bulkActions]="bulkActions"
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
<redaction-admin-side-nav type="dossierTemplates"></redaction-admin-side-nav>
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
*ngIf="permissionsService.canAddComment()"
|
*ngIf="permissionsService.canAddComment()"
|
||||||
[placeholder]="'comments.add-comment' | translate"
|
[placeholder]="'comments.add-comment' | translate"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
icon="red:collapse"
|
icon="iqser:collapse"
|
||||||
width="full"
|
width="full"
|
||||||
></iqser-input-with-action>
|
></iqser-input-with-action>
|
||||||
|
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
<mat-progress-bar [mode]="'indeterminate'" class="w-100"></mat-progress-bar>
|
<mat-progress-bar [mode]="'indeterminate'" class="w-100"></mat-progress-bar>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-center">
|
<div class="flex-center">
|
||||||
<mat-icon class="red-white" svgIcon="red:read-only"></mat-icon>
|
<mat-icon class="primary-white" svgIcon="red:read-only"></mat-icon>
|
||||||
<span class="read-only-text" translate="readonly"></span>
|
<span class="read-only-text" translate="readonly"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
height: 14px;
|
height: 14px;
|
||||||
width: 14px;
|
width: 14px;
|
||||||
|
|
||||||
&.red-white {
|
&.primary-white {
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import { FileDataModel } from '@models/file/file-data.model';
|
|||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { WebViewerInstance } from '@pdftron/webviewer';
|
import { WebViewerInstance } from '@pdftron/webviewer';
|
||||||
import { BehaviorSubject, combineLatest, Observable } from 'rxjs';
|
import { BehaviorSubject, combineLatest, Observable } from 'rxjs';
|
||||||
import { map, tap } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
|
|
||||||
const COMMAND_KEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Escape'];
|
const COMMAND_KEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Escape'];
|
||||||
const ALL_HOTKEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
|
const ALL_HOTKEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
|
||||||
@ -43,10 +43,10 @@ export class FileWorkloadComponent {
|
|||||||
@Output() readonly actionPerformed = new EventEmitter<string>();
|
@Output() readonly actionPerformed = new EventEmitter<string>();
|
||||||
displayedPages: number[] = [];
|
displayedPages: number[] = [];
|
||||||
pagesPanelActive = true;
|
pagesPanelActive = true;
|
||||||
|
readonly displayedAnnotations$: Observable<Map<number, AnnotationWrapper[]>>;
|
||||||
private _annotations$ = new BehaviorSubject<AnnotationWrapper[]>([]);
|
private _annotations$ = new BehaviorSubject<AnnotationWrapper[]>([]);
|
||||||
@ViewChild('annotationsElement') private readonly _annotationsElement: ElementRef;
|
@ViewChild('annotationsElement') private readonly _annotationsElement: ElementRef;
|
||||||
@ViewChild('quickNavigation') private readonly _quickNavigationElement: ElementRef;
|
@ViewChild('quickNavigation') private readonly _quickNavigationElement: ElementRef;
|
||||||
readonly displayedAnnotations$: Observable<Map<number, AnnotationWrapper[]>>;
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private readonly _permissionsService: PermissionsService,
|
private readonly _permissionsService: PermissionsService,
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
@use 'variables';
|
||||||
|
|
||||||
.content-wrapper {
|
.content-wrapper {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
padding-bottom: 8px;
|
padding-bottom: 8px;
|
||||||
@ -8,3 +10,14 @@ ul {
|
|||||||
padding-top: 4px;
|
padding-top: 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.default-table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
|
||||||
|
th,
|
||||||
|
td {
|
||||||
|
padding: 8px;
|
||||||
|
text-align: left;
|
||||||
|
border: 1px solid variables.$separator;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
import { CompositeRouteGuard } from '@guards/composite-route.guard';
|
import { CompositeRouteGuard } from '@iqser/common-ui';
|
||||||
import { AuthGuard } from '../auth/auth.guard';
|
import { AuthGuard } from '../auth/auth.guard';
|
||||||
import { RedRoleGuard } from '../auth/red-role.guard';
|
import { RedRoleGuard } from '../auth/red-role.guard';
|
||||||
import { AppStateGuard } from '@state/app-state.guard';
|
import { AppStateGuard } from '@state/app-state.guard';
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
@use 'variables';
|
@use 'variables';
|
||||||
@use 'red-components';
|
@use 'common-components';
|
||||||
@use 'common-texts';
|
@use 'common-texts';
|
||||||
|
|
||||||
:host {
|
:host {
|
||||||
|
|||||||
@ -83,7 +83,7 @@
|
|||||||
<ng-template #collapsible let-action="action" let-tooltip="tooltip">
|
<ng-template #collapsible let-action="action" let-tooltip="tooltip">
|
||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="toggleCollapse.emit()"
|
(action)="toggleCollapse.emit()"
|
||||||
[icon]="'red:' + action"
|
[icon]="'iqser:' + action"
|
||||||
[tooltip]="tooltip"
|
[tooltip]="tooltip"
|
||||||
tooltipPosition="before"
|
tooltipPosition="before"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
<section *ngIf="!!currentDossier">
|
<section *ngIf="!!currentDossier">
|
||||||
<redaction-page-header
|
<iqser-page-header
|
||||||
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
||||||
[actionConfigs]="actionConfigs"
|
[actionConfigs]="actionConfigs"
|
||||||
[fileAttributeConfigs]="fileAttributeConfigs"
|
|
||||||
[showCloseButton]="true"
|
[showCloseButton]="true"
|
||||||
[viewModeSelection]="viewModeSelection"
|
[viewModeSelection]="viewModeSelection"
|
||||||
>
|
>
|
||||||
@ -30,11 +29,11 @@
|
|||||||
icon="red:upload"
|
icon="red:upload"
|
||||||
tooltipPosition="below"
|
tooltipPosition="below"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
</redaction-page-header>
|
</iqser-page-header>
|
||||||
|
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div [class.extended]="collapsedDetails" class="content-container">
|
<div [class.extended]="collapsedDetails" class="content-container">
|
||||||
<iqser-table
|
<iqser-table
|
||||||
(noDataAction)="fileInput.click()"
|
(noDataAction)="fileInput.click()"
|
||||||
|
|||||||
@ -23,16 +23,18 @@ import { File } from '@models/file/file';
|
|||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@services/user.service';
|
||||||
import { timer } from 'rxjs';
|
import { timer } from 'rxjs';
|
||||||
import { tap } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
import { convertFiles, Files, handleFileDrop, OnAttach, OnDetach } from '@utils/index';
|
import { convertFiles, Files, handleFileDrop } from '@utils/index';
|
||||||
import { DossiersDialogService } from '../../../services/dossiers-dialog.service';
|
import { DossiersDialogService } from '../../../services/dossiers-dialog.service';
|
||||||
import { ActionConfig } from '@shared/components/page-header/models/action-config.model';
|
|
||||||
import {
|
import {
|
||||||
|
ActionConfig,
|
||||||
CircleButtonTypes,
|
CircleButtonTypes,
|
||||||
DefaultListingServices,
|
DefaultListingServices,
|
||||||
ListingComponent,
|
ListingComponent,
|
||||||
ListingModes,
|
ListingModes,
|
||||||
LoadingService,
|
LoadingService,
|
||||||
NestedFilter,
|
NestedFilter,
|
||||||
|
OnAttach,
|
||||||
|
OnDetach,
|
||||||
TableColumnConfig,
|
TableColumnConfig,
|
||||||
TableComponent,
|
TableComponent,
|
||||||
Toaster,
|
Toaster,
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
import { Injectable, TemplateRef } from '@angular/core';
|
import { Injectable, TemplateRef } from '@angular/core';
|
||||||
import { IFilterGroup, keyChecker, NestedFilter, TableColumnConfig } from '@iqser/common-ui';
|
import { ButtonConfig, IFilterGroup, keyChecker, NestedFilter, TableColumnConfig } from '@iqser/common-ui';
|
||||||
import { Dossier } from '@state/model/dossier';
|
import { Dossier } from '@state/model/dossier';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@services/user-preference.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@services/user.service';
|
||||||
import { ButtonConfig } from '@shared/components/page-header/models/button-config.model';
|
|
||||||
import { User } from '@models/user';
|
import { User } from '@models/user';
|
||||||
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
||||||
import {
|
import {
|
||||||
@ -78,7 +77,7 @@ export class ConfigService {
|
|||||||
label: _('dossier-listing.add-new'),
|
label: _('dossier-listing.add-new'),
|
||||||
action: addDossier,
|
action: addDossier,
|
||||||
hide: !this._currentUser.isManager,
|
hide: !this._currentUser.isManager,
|
||||||
icon: 'red:plus',
|
icon: 'iqser:plus',
|
||||||
type: 'primary'
|
type: 'primary'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
<section>
|
<section>
|
||||||
<redaction-page-header [buttonConfigs]="buttonConfigs"></redaction-page-header>
|
<iqser-page-header [buttonConfigs]="buttonConfigs"></iqser-page-header>
|
||||||
|
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<iqser-table
|
<iqser-table
|
||||||
(noDataAction)="openAddDossierDialog()"
|
(noDataAction)="openAddDossierDialog()"
|
||||||
|
|||||||
@ -10,8 +10,8 @@ import { timer } from 'rxjs';
|
|||||||
import { tap } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { DossiersDialogService } from '../../../services/dossiers-dialog.service';
|
import { DossiersDialogService } from '../../../services/dossiers-dialog.service';
|
||||||
import { groupBy, OnAttach, OnDetach, StatusSorter } from '@utils/index';
|
import { groupBy, StatusSorter } from '@utils/index';
|
||||||
import { EntitiesService, FilterService, ListingComponent, SearchService, SortingService, TableComponent } from '@iqser/common-ui';
|
import { DefaultListingServices, ListingComponent, OnAttach, OnDetach, TableComponent } from '@iqser/common-ui';
|
||||||
import { fileStatusTranslations } from '../../../translations/file-status-translations';
|
import { fileStatusTranslations } from '../../../translations/file-status-translations';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { ConfigService } from '../config.service';
|
import { ConfigService } from '../config.service';
|
||||||
|
|||||||
@ -129,7 +129,7 @@
|
|||||||
|
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<redaction-pdf-viewer
|
<redaction-pdf-viewer
|
||||||
(annotationSelected)="handleAnnotationSelected($event)"
|
(annotationSelected)="handleAnnotationSelected($event)"
|
||||||
|
|||||||
@ -10,6 +10,8 @@ import {
|
|||||||
FilterService,
|
FilterService,
|
||||||
INestedFilter,
|
INestedFilter,
|
||||||
LoadingService,
|
LoadingService,
|
||||||
|
OnAttach,
|
||||||
|
OnDetach,
|
||||||
processFilters,
|
processFilters,
|
||||||
Toaster
|
Toaster
|
||||||
} from '@iqser/common-ui';
|
} from '@iqser/common-ui';
|
||||||
@ -32,7 +34,6 @@ import { download } from '@utils/file-download-utils';
|
|||||||
import { ViewMode } from '@models/file/view-mode';
|
import { ViewMode } from '@models/file/view-mode';
|
||||||
import { FileWorkloadComponent } from '../../components/file-workload/file-workload.component';
|
import { FileWorkloadComponent } from '../../components/file-workload/file-workload.component';
|
||||||
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
||||||
import { OnAttach, OnDetach } from '@utils/custom-route-reuse.strategy';
|
|
||||||
import { clearStamps, stampPDFPage } from '@utils/page-stamper';
|
import { clearStamps, stampPDFPage } from '@utils/page-stamper';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
||||||
|
|||||||
@ -1,15 +1,15 @@
|
|||||||
<section *ngIf="searchResults$ | async">
|
<section *ngIf="searchResults$ | async">
|
||||||
<redaction-page-header
|
<iqser-page-header
|
||||||
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
|
||||||
[searchPlaceholder]="'search.placeholder' | translate"
|
[searchPlaceholder]="'search.placeholder' | translate"
|
||||||
[searchPosition]="searchPositions.beforeFilters"
|
[searchPosition]="searchPositions.beforeFilters"
|
||||||
[searchWidth]="600"
|
[searchWidth]="600"
|
||||||
[showCloseButton]="true"
|
[showCloseButton]="true"
|
||||||
></redaction-page-header>
|
></iqser-page-header>
|
||||||
|
|
||||||
<div class="overlay-shadow"></div>
|
<div class="overlay-shadow"></div>
|
||||||
|
|
||||||
<div class="red-content-inner">
|
<div class="content-inner">
|
||||||
<div class="content-container">
|
<div class="content-container">
|
||||||
<iqser-table
|
<iqser-table
|
||||||
[hasScrollButton]="true"
|
[hasScrollButton]="true"
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import {
|
|||||||
ListingComponent,
|
ListingComponent,
|
||||||
LoadingService,
|
LoadingService,
|
||||||
NestedFilter,
|
NestedFilter,
|
||||||
|
SearchPositions,
|
||||||
TableColumnConfig
|
TableColumnConfig
|
||||||
} from '@iqser/common-ui';
|
} from '@iqser/common-ui';
|
||||||
import { List, MatchedDocument, SearchControllerService, SearchResult } from '@redaction/red-ui-http';
|
import { List, MatchedDocument, SearchControllerService, SearchResult } from '@redaction/red-ui-http';
|
||||||
@ -14,7 +15,6 @@ import { debounceTime, map, skip, switchMap, tap } from 'rxjs/operators';
|
|||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
import { fileStatusTranslations } from '../../translations/file-status-translations';
|
||||||
import { SearchPositions } from '@shared/components/page-header/models/search-positions.type';
|
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { RouterHistoryService } from '@services/router-history.service';
|
import { RouterHistoryService } from '@services/router-history.service';
|
||||||
import { DossiersService } from '../../services/dossiers.service';
|
import { DossiersService } from '../../services/dossiers.service';
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
[tooltipPosition]="tooltipPosition"
|
[tooltipPosition]="tooltipPosition"
|
||||||
[tooltip]="'dossier-overview.open-document' | translate"
|
[tooltip]="'dossier-overview.open-document' | translate"
|
||||||
[type]="buttonType"
|
[type]="buttonType"
|
||||||
icon="red:collapse"
|
icon="iqser:collapse"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
|
|
||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
|
|||||||
@ -15,14 +15,12 @@ export class IconsModule {
|
|||||||
'ai',
|
'ai',
|
||||||
'analyse',
|
'analyse',
|
||||||
'approved',
|
'approved',
|
||||||
'arrow-right',
|
|
||||||
'arrow-up',
|
'arrow-up',
|
||||||
'assign',
|
'assign',
|
||||||
'assign-me',
|
'assign-me',
|
||||||
'attribute',
|
'attribute',
|
||||||
'calendar',
|
'calendar',
|
||||||
'case-sensitive',
|
'case-sensitive',
|
||||||
'collapse',
|
|
||||||
'color-picker',
|
'color-picker',
|
||||||
'comment',
|
'comment',
|
||||||
'comment-fill',
|
'comment-fill',
|
||||||
@ -34,7 +32,6 @@ export class IconsModule {
|
|||||||
'enter',
|
'enter',
|
||||||
'exclude-pages',
|
'exclude-pages',
|
||||||
'exit-fullscreen',
|
'exit-fullscreen',
|
||||||
'expand',
|
|
||||||
'folder',
|
'folder',
|
||||||
'fullscreen',
|
'fullscreen',
|
||||||
'html-file',
|
'html-file',
|
||||||
@ -53,11 +50,8 @@ export class IconsModule {
|
|||||||
'ocr',
|
'ocr',
|
||||||
'page',
|
'page',
|
||||||
'pages',
|
'pages',
|
||||||
'plus',
|
|
||||||
'preview',
|
'preview',
|
||||||
'put-back',
|
'put-back',
|
||||||
'radio-indeterminate',
|
|
||||||
'radio-selected',
|
|
||||||
'read-only',
|
'read-only',
|
||||||
'ready-for-approval',
|
'ready-for-approval',
|
||||||
'reason',
|
'reason',
|
||||||
@ -66,8 +60,6 @@ export class IconsModule {
|
|||||||
'rule',
|
'rule',
|
||||||
'secret',
|
'secret',
|
||||||
'status',
|
'status',
|
||||||
'status-collapse',
|
|
||||||
'status-expand',
|
|
||||||
'status-info',
|
'status-info',
|
||||||
'template',
|
'template',
|
||||||
'thumb-down',
|
'thumb-down',
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
@use 'variables';
|
@use 'variables';
|
||||||
|
@use 'common-buttons';
|
||||||
|
|
||||||
:host {
|
:host {
|
||||||
|
@extend .user-button;
|
||||||
|
|
||||||
button {
|
button {
|
||||||
padding: 0 10px 0 5px;
|
padding: 0 10px 0 5px;
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
<div (click)="countActions()">
|
|
||||||
<ng-content></ng-content>
|
|
||||||
</div>
|
|
||||||
@ -1,25 +0,0 @@
|
|||||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'redaction-hidden-action',
|
|
||||||
templateUrl: './hidden-action.component.html',
|
|
||||||
styleUrls: ['./hidden-action.component.scss']
|
|
||||||
})
|
|
||||||
export class HiddenActionComponent {
|
|
||||||
@Input() requiredClicks = 4;
|
|
||||||
@Output() action = new EventEmitter();
|
|
||||||
private _clickCount = 0;
|
|
||||||
private _clickCountTimeout: any;
|
|
||||||
|
|
||||||
countActions() {
|
|
||||||
this._clickCount += 1;
|
|
||||||
if (this._clickCount === this.requiredClicks) {
|
|
||||||
this._clickCount = 0;
|
|
||||||
this.action.emit();
|
|
||||||
}
|
|
||||||
clearTimeout(this._clickCountTimeout);
|
|
||||||
this._clickCountTimeout = setTimeout(() => {
|
|
||||||
this._clickCount = 0;
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -44,7 +44,7 @@ export class InitialsAvatarComponent extends AutoUnsubscribe implements OnChange
|
|||||||
|
|
||||||
private get _colorClass() {
|
private get _colorClass() {
|
||||||
if (this._isCurrentUser) {
|
if (this._isCurrentUser) {
|
||||||
return 'red-white';
|
return 'primary-white';
|
||||||
}
|
}
|
||||||
if (this.disabled) {
|
if (this.disabled) {
|
||||||
return 'inactive';
|
return 'inactive';
|
||||||
@ -65,7 +65,7 @@ export class InitialsAvatarComponent extends AutoUnsubscribe implements OnChange
|
|||||||
if (isSystemUser) {
|
if (isSystemUser) {
|
||||||
this.displayName = 'System';
|
this.displayName = 'System';
|
||||||
this.initials = 'SY';
|
this.initials = 'SY';
|
||||||
this.colorClass = 'red-white red';
|
this.colorClass = 'primary-white primary';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
import { BaseHeaderConfig } from './base-config.model';
|
|
||||||
|
|
||||||
export interface ActionConfig extends BaseHeaderConfig {
|
|
||||||
readonly action: ($event: MouseEvent) => void;
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
export interface BaseHeaderConfig {
|
|
||||||
readonly label: string;
|
|
||||||
readonly icon?: string;
|
|
||||||
readonly hide?: boolean;
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
import { IconButtonType } from '@iqser/common-ui';
|
|
||||||
import { ActionConfig } from '@shared/components/page-header/models/action-config.model';
|
|
||||||
|
|
||||||
export interface ButtonConfig extends ActionConfig {
|
|
||||||
readonly type?: IconButtonType;
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
export const SearchPositions = {
|
|
||||||
beforeFilters: 'beforeFilters',
|
|
||||||
afterFilters: 'afterFilters'
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
export type SearchPosition = keyof typeof SearchPositions;
|
|
||||||
@ -1,64 +0,0 @@
|
|||||||
<div class="page-header">
|
|
||||||
<div *ngIf="pageLabel" class="breadcrumb">{{ pageLabel }}</div>
|
|
||||||
|
|
||||||
<div *ngIf="filters$ | async as filters" class="filters" iqserHelpMode="filters">
|
|
||||||
<div *ngIf="filters.length && searchPosition !== searchPositions.beforeFilters" translate="filters.filter-by"></div>
|
|
||||||
|
|
||||||
<ng-container *ngIf="searchPosition === searchPositions.beforeFilters" [ngTemplateOutlet]="searchBar"></ng-container>
|
|
||||||
|
|
||||||
<ng-container *ngFor="let config of filters; trackBy: trackByLabel">
|
|
||||||
<iqser-popup-filter *ngIf="!config.hide" [primaryFiltersSlug]="config.slug"></iqser-popup-filter>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container *ngIf="searchPosition === searchPositions.afterFilters" [ngTemplateOutlet]="searchBar"></ng-container>
|
|
||||||
|
|
||||||
<div (click)="resetFilters()" *ngIf="showResetFilters$ | async" class="reset-filters" translate="reset-filters"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="showCloseButton || actionConfigs || buttonConfigs || viewModeSelection" class="actions">
|
|
||||||
<ng-container [ngTemplateOutlet]="viewModeSelection"></ng-container>
|
|
||||||
|
|
||||||
<ng-container *ngFor="let config of buttonConfigs; trackBy: trackByLabel">
|
|
||||||
<iqser-icon-button
|
|
||||||
(action)="config.action($event)"
|
|
||||||
*ngIf="!config.hide"
|
|
||||||
[icon]="config.icon"
|
|
||||||
[label]="config.label | translate"
|
|
||||||
[type]="config.type"
|
|
||||||
iqserHelpMode="new-dossier"
|
|
||||||
></iqser-icon-button>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container *ngFor="let config of actionConfigs; trackBy: trackByLabel">
|
|
||||||
<iqser-circle-button
|
|
||||||
(action)="config.action($event)"
|
|
||||||
*ngIf="!config.hide"
|
|
||||||
[icon]="config.icon"
|
|
||||||
[tooltip]="config.label"
|
|
||||||
tooltipPosition="below"
|
|
||||||
></iqser-circle-button>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<!-- Extra custom actions here -->
|
|
||||||
<ng-content></ng-content>
|
|
||||||
|
|
||||||
<iqser-circle-button
|
|
||||||
(action)="closeAction.emit()"
|
|
||||||
*ngIf="showCloseButton"
|
|
||||||
[class.ml-6]="actionConfigs"
|
|
||||||
[tooltip]="'common.close' | translate"
|
|
||||||
icon="iqser:close"
|
|
||||||
tooltipPosition="below"
|
|
||||||
></iqser-circle-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<ng-template #searchBar>
|
|
||||||
<iqser-input-with-action
|
|
||||||
*ngIf="searchPlaceholder && searchService"
|
|
||||||
[(value)]="searchService.searchValue"
|
|
||||||
[class.mr-8]="searchPosition === searchPositions.beforeFilters"
|
|
||||||
[placeholder]="searchPlaceholder"
|
|
||||||
[width]="searchWidth"
|
|
||||||
></iqser-input-with-action>
|
|
||||||
</ng-template>
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
@import '../../../../../assets/styles/variables';
|
|
||||||
|
|
||||||
.ml-6 {
|
|
||||||
margin-left: 6px;
|
|
||||||
}
|
|
||||||
@ -1,54 +0,0 @@
|
|||||||
import { Component, EventEmitter, Input, Optional, Output, TemplateRef } from '@angular/core';
|
|
||||||
import { ActionConfig } from '@shared/components/page-header/models/action-config.model';
|
|
||||||
import { ButtonConfig } from '@shared/components/page-header/models/button-config.model';
|
|
||||||
import { FilterService, IconButtonTypes, IListable, SearchService } from '@iqser/common-ui';
|
|
||||||
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
||||||
import { combineLatest, Observable, of } from 'rxjs';
|
|
||||||
import { SearchPosition, SearchPositions } from '@shared/components/page-header/models/search-positions.type';
|
|
||||||
import { IFileAttributeConfig } from '@redaction/red-ui-http';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'redaction-page-header',
|
|
||||||
templateUrl: './page-header.component.html',
|
|
||||||
styleUrls: ['./page-header.component.scss']
|
|
||||||
})
|
|
||||||
export class PageHeaderComponent<T extends IListable> {
|
|
||||||
readonly searchPositions = SearchPositions;
|
|
||||||
readonly iconButtonTypes = IconButtonTypes;
|
|
||||||
|
|
||||||
@Input() pageLabel: string;
|
|
||||||
@Input() showCloseButton: boolean;
|
|
||||||
@Input() actionConfigs: readonly ActionConfig[];
|
|
||||||
@Input() buttonConfigs: readonly ButtonConfig[];
|
|
||||||
@Input() fileAttributeConfigs: readonly IFileAttributeConfig[];
|
|
||||||
@Input() viewModeSelection: TemplateRef<unknown>;
|
|
||||||
@Input() searchPlaceholder: string;
|
|
||||||
@Input() searchWidth: number | 'full';
|
|
||||||
@Input() searchPosition: SearchPosition = SearchPositions.afterFilters;
|
|
||||||
@Output() readonly closeAction = new EventEmitter();
|
|
||||||
|
|
||||||
readonly filters$ = this.filterService?.filterGroups$.pipe(map(all => all.filter(f => f.icon)));
|
|
||||||
readonly showResetFilters$ = this._showResetFilters$;
|
|
||||||
|
|
||||||
constructor(@Optional() readonly filterService: FilterService, @Optional() readonly searchService: SearchService<T>) {}
|
|
||||||
|
|
||||||
get _showResetFilters$(): Observable<boolean> {
|
|
||||||
if (!this.filterService) {
|
|
||||||
return of(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
return combineLatest([this.filterService.showResetFilters$, this.searchService.valueChanges$]).pipe(
|
|
||||||
map(([showResetFilters, searchValue]) => showResetFilters || !!searchValue),
|
|
||||||
distinctUntilChanged()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
resetFilters(): void {
|
|
||||||
this.filterService.reset();
|
|
||||||
this.searchService.reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
trackByLabel<K extends { label?: string }>(index: number, item: K): string {
|
|
||||||
return item.label;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -20,9 +20,9 @@
|
|||||||
[class.large-spacing]="largeSpacing"
|
[class.large-spacing]="largeSpacing"
|
||||||
[size]="32"
|
[size]="32"
|
||||||
[tooltip]="'dossier-details.assign-members' | translate"
|
[tooltip]="'dossier-details.assign-members' | translate"
|
||||||
class="member"
|
|
||||||
icon="red:plus"
|
|
||||||
[type]="circleButtonTypes.primary"
|
[type]="circleButtonTypes.primary"
|
||||||
|
class="member"
|
||||||
|
icon="iqser:plus"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
</div>
|
</div>
|
||||||
<div (click)="toggleExpandedTeam()" *ngIf="expandedTeam" class="all-caps-label see-less pointer" translate="dossier-details.see-less"></div>
|
<div (click)="toggleExpandedTeam()" *ngIf="expandedTeam" class="all-caps-label see-less pointer" translate="dossier-details.see-less"></div>
|
||||||
|
|||||||
@ -11,7 +11,6 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|||||||
import { AnnotationIconComponent } from './components/annotation-icon/annotation-icon.component';
|
import { AnnotationIconComponent } from './components/annotation-icon/annotation-icon.component';
|
||||||
import { SimpleDoughnutChartComponent } from './components/simple-doughnut-chart/simple-doughnut-chart.component';
|
import { SimpleDoughnutChartComponent } from './components/simple-doughnut-chart/simple-doughnut-chart.component';
|
||||||
import { DictionaryAnnotationIconComponent } from './components/dictionary-annotation-icon/dictionary-annotation-icon.component';
|
import { DictionaryAnnotationIconComponent } from './components/dictionary-annotation-icon/dictionary-annotation-icon.component';
|
||||||
import { HiddenActionComponent } from './components/hidden-action/hidden-action.component';
|
|
||||||
import { ConfirmationDialogComponent } from './dialogs/confirmation-dialog/confirmation-dialog.component';
|
import { ConfirmationDialogComponent } from './dialogs/confirmation-dialog/confirmation-dialog.component';
|
||||||
import { CommonUiModule } from '@iqser/common-ui';
|
import { CommonUiModule } from '@iqser/common-ui';
|
||||||
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
||||||
@ -22,7 +21,6 @@ import { DictionaryManagerComponent } from './components/dictionary-manager/dict
|
|||||||
import { SideNavComponent } from './components/side-nav/side-nav.component';
|
import { SideNavComponent } from './components/side-nav/side-nav.component';
|
||||||
import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
|
import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
|
||||||
import { AssignUserDropdownComponent } from './components/assign-user-dropdown/assign-user-dropdown.component';
|
import { AssignUserDropdownComponent } from './components/assign-user-dropdown/assign-user-dropdown.component';
|
||||||
import { PageHeaderComponent } from './components/page-header/page-header.component';
|
|
||||||
import { DatePipe } from './pipes/date.pipe';
|
import { DatePipe } from './pipes/date.pipe';
|
||||||
import { LongPressDirective } from './directives/long-press.directive';
|
import { LongPressDirective } from './directives/long-press.directive';
|
||||||
import { NamePipe } from './pipes/name.pipe';
|
import { NamePipe } from './pipes/name.pipe';
|
||||||
@ -37,13 +35,11 @@ const components = [
|
|||||||
AnnotationIconComponent,
|
AnnotationIconComponent,
|
||||||
SimpleDoughnutChartComponent,
|
SimpleDoughnutChartComponent,
|
||||||
DictionaryAnnotationIconComponent,
|
DictionaryAnnotationIconComponent,
|
||||||
HiddenActionComponent,
|
|
||||||
ConfirmationDialogComponent,
|
ConfirmationDialogComponent,
|
||||||
SelectComponent,
|
SelectComponent,
|
||||||
SideNavComponent,
|
SideNavComponent,
|
||||||
DictionaryManagerComponent,
|
DictionaryManagerComponent,
|
||||||
AssignUserDropdownComponent,
|
AssignUserDropdownComponent,
|
||||||
PageHeaderComponent,
|
|
||||||
TypeFilterComponent,
|
TypeFilterComponent,
|
||||||
TeamMembersComponent,
|
TeamMembersComponent,
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<div class="title flex-1">
|
<div class="title flex-1">
|
||||||
{{ 'upload-status.dialog.title' | translate: { len: uploadService.files.length } }}
|
{{ 'upload-status.dialog.title' | translate: { len: uploadService.files.length } }}
|
||||||
</div>
|
</div>
|
||||||
<iqser-circle-button [icon]="'red:status-' + (collapsed ? 'expand' : 'collapse')"></iqser-circle-button>
|
<iqser-circle-button [icon]="'iqser:status-' + (collapsed ? 'expand' : 'collapse')"></iqser-circle-button>
|
||||||
<iqser-circle-button (action)="closeDialog()" icon="iqser:close"></iqser-circle-button>
|
<iqser-circle-button (action)="closeDialog()" icon="iqser:close"></iqser-circle-button>
|
||||||
</div>
|
</div>
|
||||||
<div [hidden]="collapsed" class="upload-download-list">
|
<div [hidden]="collapsed" class="upload-download-list">
|
||||||
@ -43,16 +43,16 @@
|
|||||||
(action)="uploadItem(model)"
|
(action)="uploadItem(model)"
|
||||||
*ngIf="model.error && !model.sizeError"
|
*ngIf="model.error && !model.sizeError"
|
||||||
[tooltip]="'upload-status.dialog.actions.re-upload' | translate"
|
[tooltip]="'upload-status.dialog.actions.re-upload' | translate"
|
||||||
|
[type]="circleButtonTypes.dark"
|
||||||
icon="iqser:refresh"
|
icon="iqser:refresh"
|
||||||
tooltipPosition="before"
|
tooltipPosition="before"
|
||||||
[type]="circleButtonTypes.dark"
|
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="cancelItem(model)"
|
(action)="cancelItem(model)"
|
||||||
[tooltip]="'upload-status.dialog.actions.cancel' | translate"
|
[tooltip]="'upload-status.dialog.actions.cancel' | translate"
|
||||||
|
[type]="circleButtonTypes.dark"
|
||||||
icon="iqser:close"
|
icon="iqser:close"
|
||||||
tooltipPosition="before"
|
tooltipPosition="before"
|
||||||
[type]="circleButtonTypes.dark"
|
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,83 +0,0 @@
|
|||||||
import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router';
|
|
||||||
import { Debounce } from '@iqser/common-ui';
|
|
||||||
|
|
||||||
export interface OnAttach {
|
|
||||||
ngOnAttach(previousRoute: ActivatedRouteSnapshot);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface OnDetach {
|
|
||||||
ngOnDetach();
|
|
||||||
}
|
|
||||||
|
|
||||||
interface RouteStorageObject {
|
|
||||||
handle: DetachedRouteHandle;
|
|
||||||
previousRoute: ActivatedRouteSnapshot;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class CustomRouteReuseStrategy implements RouteReuseStrategy {
|
|
||||||
private _storedRoutes: { [key: string]: RouteStorageObject } = {};
|
|
||||||
|
|
||||||
private static _removeTooltips(): void {
|
|
||||||
while (document.getElementsByTagName('mat-tooltip-component').length > 0) {
|
|
||||||
document.getElementsByTagName('mat-tooltip-component')[0].remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
shouldDetach(route: ActivatedRouteSnapshot): boolean {
|
|
||||||
return !!route.routeConfig.data?.reuse && !!this._getKey(route);
|
|
||||||
}
|
|
||||||
|
|
||||||
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {
|
|
||||||
if (handle === null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
CustomRouteReuseStrategy._removeTooltips();
|
|
||||||
|
|
||||||
const element: any = handle;
|
|
||||||
|
|
||||||
if (element?.componentRef?.instance?.ngOnDetach) {
|
|
||||||
this._onDetach(element.componentRef?.instance);
|
|
||||||
}
|
|
||||||
|
|
||||||
this._storedRoutes[this._getKey(route)] = {
|
|
||||||
handle: element as DetachedRouteHandle,
|
|
||||||
previousRoute: route
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
shouldAttach(route: ActivatedRouteSnapshot): boolean {
|
|
||||||
return !!this._storedRoutes[this._getKey(route)];
|
|
||||||
}
|
|
||||||
|
|
||||||
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {
|
|
||||||
const key = this._getKey(route);
|
|
||||||
const element: any = this._storedRoutes[key]?.handle;
|
|
||||||
|
|
||||||
if (element?.componentRef?.instance?.ngOnAttach) {
|
|
||||||
this._onAttach(element.componentRef?.instance, this._storedRoutes[key].previousRoute);
|
|
||||||
}
|
|
||||||
|
|
||||||
return element as DetachedRouteHandle;
|
|
||||||
}
|
|
||||||
|
|
||||||
shouldReuseRoute(future: ActivatedRouteSnapshot, current: ActivatedRouteSnapshot): boolean {
|
|
||||||
return future.routeConfig === current.routeConfig || this._getKey(future) === this._getKey(current);
|
|
||||||
}
|
|
||||||
|
|
||||||
private _getKey(route: ActivatedRouteSnapshot): string {
|
|
||||||
return route.pathFromRoot
|
|
||||||
.map((el: ActivatedRouteSnapshot) => (el.routeConfig ? el.routeConfig.path + JSON.stringify(el.params) : ''))
|
|
||||||
.filter(str => str.length > 0)
|
|
||||||
.join('');
|
|
||||||
}
|
|
||||||
|
|
||||||
@Debounce()
|
|
||||||
private _onAttach(instance: OnAttach, previousRoute?: ActivatedRouteSnapshot) {
|
|
||||||
instance.ngOnAttach(previousRoute);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Debounce()
|
|
||||||
private _onDetach(instance: OnDetach) {
|
|
||||||
instance.ngOnDetach();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -4,7 +4,6 @@ export * from './sorters/super-type-sorter';
|
|||||||
|
|
||||||
export * from './api-path-interceptor';
|
export * from './api-path-interceptor';
|
||||||
export * from './configuration.initializer';
|
export * from './configuration.initializer';
|
||||||
export * from './custom-route-reuse.strategy';
|
|
||||||
export * from './date-inputs-utils';
|
export * from './date-inputs-utils';
|
||||||
export * from './file-download-utils';
|
export * from './file-download-utils';
|
||||||
export * from './file-drop-utils';
|
export * from './file-drop-utils';
|
||||||
|
|||||||
@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg height="14px" version="1.1" viewBox="0 0 14 14" width="14px"
|
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g fill="none" fill-rule="evenodd" id="right_expandable" stroke="none" stroke-width="1">
|
|
||||||
<polygon fill="currentColor" id="Fill-1"
|
|
||||||
points="7 9 10 5 4 5"
|
|
||||||
transform="translate(7.000000, 7.000000) rotate(-90.000000) translate(-7.000000, -7.000000) "></polygon>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 465 B |
@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg height="14px" version="1.1" viewBox="0 0 14 14" width="14px"
|
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g fill="none" fill-rule="evenodd" id="Dossiers-&-Documents" stroke="none" stroke-width="1">
|
|
||||||
<g id="04.-Document-Hover" transform="translate(-1400.000000, -137.000000)">
|
|
||||||
<rect height="980" width="1440" x="0" y="0"></rect>
|
|
||||||
<g fill="currentColor" fill-rule="nonzero" id="Dossier-details"
|
|
||||||
transform="translate(1111.000000, 127.000000)">
|
|
||||||
<g id="Group-6" transform="translate(279.000000, 0.000000)">
|
|
||||||
<g id="status" transform="translate(10.000000, 10.000000)">
|
|
||||||
<polygon id="Path"
|
|
||||||
points="9.17 3.5 8.19 4.48 9.94 6.3 1.4 6.3 1.4 7.7 9.94 7.7 8.19 9.52 9.17 10.5 12.6 7"></polygon>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 960 B |
@ -1,20 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg height="14px" version="1.1" viewBox="0 0 14 14" width="14px"
|
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g fill="none" fill-rule="evenodd" id="Dossiers-&-Documents" stroke="none" stroke-width="1">
|
|
||||||
<g id="04.-Collapsed-Details" transform="translate(-1403.000000, -137.000000)">
|
|
||||||
<rect height="980" width="1440" x="0" y="0"></rect>
|
|
||||||
<rect height="1500" id="Rectangle" width="60" x="1380" y="111"></rect>
|
|
||||||
<g id="Group-6" transform="translate(1393.000000, 127.000000)">
|
|
||||||
<rect height="34" id="Rectangle" rx="17" width="34" x="0" y="0"></rect>
|
|
||||||
<g fill="currentColor"
|
|
||||||
fill-rule="nonzero"
|
|
||||||
id="status"
|
|
||||||
transform="translate(17.000000, 17.000000) scale(-1, 1) translate(-17.000000, -17.000000) translate(10.000000, 10.000000)">
|
|
||||||
<polygon id="Path"
|
|
||||||
points="9.17 3.5 8.19 4.48 9.94 6.3 1.4 6.3 1.4 7.7 9.94 7.7 8.19 9.52 9.17 10.5 12.6 7"></polygon>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg height="100px" version="1.1" viewBox="0 0 100 100" width="100px"
|
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g fill="currentColor" fill-rule="evenodd" id="plus_white" stroke="none" stroke-width="1">
|
|
||||||
<polygon fill-rule="nonzero" id="Path"
|
|
||||||
points="78 45 55 45 55 22 45 22 45 45 22 45 22 55 45 55 45 78 55 78 55 55 78 55"></polygon>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 417 B |
@ -1,15 +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">
|
|
||||||
<g fill="none" fill-rule="evenodd" id="Bulk-Actions" stroke="none" stroke-width="1">
|
|
||||||
<g id="01.-Bulk-Actions" transform="translate(-10.000000, -127.000000)">
|
|
||||||
<rect fill="none" height="980" width="1440" x="0" y="0"></rect>
|
|
||||||
<polygon fill="none" id="Rectangle" points="0 112 1086 112 1086 162 0 162"></polygon>
|
|
||||||
<g fill="currentColor" id="intermediary_selection"
|
|
||||||
transform="translate(10.000000, 127.000000)">
|
|
||||||
<path
|
|
||||||
d="M10,0 C15.5228475,0 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 C4.4771525,20 0,15.5228475 0,10 C0,4.4771525 4.4771525,0 10,0 Z M14,8.9 L6,8.9 C5.44771525,8.9 5,9.34771525 5,9.9 L5,9.9 L5,10.1 C5,10.6522847 5.44771525,11.1 6,11.1 L6,11.1 L14,11.1 C14.5522847,11.1 15,10.6522847 15,10.1 L15,10.1 L15,9.9 C15,9.34771525 14.5522847,8.9 14,8.9 L14,8.9 Z"></path>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@ -1,17 +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">
|
|
||||||
<g fill="none" fill-rule="evenodd" id="Bulk-Actions" stroke="none" stroke-width="1">
|
|
||||||
<g id="01.-Bulk-Actions" transform="translate(-10.000000, -209.000000)">
|
|
||||||
<rect fill="none" height="980" width="1440" x="0" y="0"></rect>
|
|
||||||
<g fill="none" id="Entry" transform="translate(0.000000, 194.000000)">
|
|
||||||
<polygon id="Rectangle" points="0 0 1086 0 1086 50 0 50"></polygon>
|
|
||||||
</g>
|
|
||||||
<g fill="currentColor" id="Radio_selected" transform="translate(10.000000, 209.000000)">
|
|
||||||
<path
|
|
||||||
d="M10,0 C15.5228475,0 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 C4.4771525,20 0,15.5228475 0,10 C0,4.4771525 4.4771525,0 10,0 Z M13.6545842,6.07220062 L8.50054373,11.3199291 L6.58289039,9.38262084 C6.34328715,9.14059736 5.95224003,9.14059736 5.71263679,9.38262084 L5.06605523,10.0357335 C4.82983344,10.2743414 4.82983344,10.6586767 5.06605523,10.8972846 L8.06804104,13.9295935 C8.30826653,14.1722455 8.70055256,14.1715218 8.93988111,13.9279851 L15.1747747,7.58346184 C15.4094976,7.34461174 15.4087908,6.96150162 15.1731882,6.72351919 L14.5266067,6.07040651 C14.2863095,5.82768204 13.8938806,5.82848943 13.6545842,6.07220062 Z"
|
|
||||||
id="radio_selected"></path>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
@ -1,41 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg height="15px" version="1.1" viewBox="0 0 15 15" width="15px" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<defs>
|
|
||||||
<path
|
|
||||||
d="M1028,576 L1412,576 C1416.41828,576 1420,579.581722 1420,584 L1420,873 C1420,877.418278 1416.41828,881 1412,881 L1028,881 C1023.58172,881 1020,877.418278 1020,873 L1020,584 C1020,579.581722 1023.58172,576 1028,576 Z"
|
|
||||||
id="path-1"></path>
|
|
||||||
<filter filterUnits="objectBoundingBox" height="117.7%" id="filter-3" width="113.5%"
|
|
||||||
x="-6.8%" y="-7.9%">
|
|
||||||
<feMorphology in="SourceAlpha" operator="dilate" radius="2.5"
|
|
||||||
result="shadowSpreadOuter1"></feMorphology>
|
|
||||||
<feOffset dx="0" dy="3" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
|
|
||||||
<feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1"
|
|
||||||
stdDeviation="6"></feGaussianBlur>
|
|
||||||
<feColorMatrix in="shadowBlurOuter1"
|
|
||||||
type="matrix"
|
|
||||||
values="0 0 0 0 0.156862745 0 0 0 0 0.196078431 0 0 0 0 0.254901961 0 0 0 0.1428069 0"></feColorMatrix>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<g fill="none" fill-rule="evenodd" id="File-Upload-&-Download-Overlays" stroke="none"
|
|
||||||
stroke-width="1">
|
|
||||||
<g id="Document-Upload---Hover" transform="translate(-1360.000000, -592.000000)">
|
|
||||||
<rect height="900" width="1440" x="0" y="0"></rect>
|
|
||||||
<g id="Dossier-details" transform="translate(1111.000000, 127.000000)">
|
|
||||||
<g id="Group-4" transform="translate(0.000000, 145.000000)"></g>
|
|
||||||
</g>
|
|
||||||
<g id="Rectangle">
|
|
||||||
<use fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-1"></use>
|
|
||||||
<use fill-rule="evenodd" xlink:href="#path-1"></use>
|
|
||||||
</g>
|
|
||||||
<g id="Group-6-Copy">
|
|
||||||
<g id="status" transform="translate(1352.000000, 584.000000)">
|
|
||||||
<g transform="translate(15.500000, 15.500000) rotate(90.000000) translate(-15.500000, -15.500000) translate(8.000000, 8.000000)">
|
|
||||||
<polygon fill="currentColor" fill-rule="nonzero" id="Path"
|
|
||||||
points="9.825 3.75 8.775 4.8 10.65 6.75 1.5 6.75 1.5 8.25 10.65 8.25 8.775 10.2 9.825 11.25 13.5 7.5"></polygon>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,58 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg height="15px" version="1.1" viewBox="0 0 15 15" width="15px" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<defs>
|
|
||||||
<path
|
|
||||||
d="M8,0 L392,0 C396.418278,-8.11624501e-16 400,3.581722 400,8 L400,40 C400,44.418278 396.418278,48 392,48 L8,48 C3.581722,48 5.41083001e-16,44.418278 0,40 L0,8 C-5.41083001e-16,3.581722 3.581722,8.11624501e-16 8,0 Z"
|
|
||||||
id="path-1"></path>
|
|
||||||
<filter filterUnits="objectBoundingBox" height="212.5%" id="filter-3" width="113.5%"
|
|
||||||
x="-6.8%" y="-50.0%">
|
|
||||||
<feMorphology in="SourceAlpha" operator="dilate" radius="2.5"
|
|
||||||
result="shadowSpreadOuter1"></feMorphology>
|
|
||||||
<feOffset dx="0" dy="3" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
|
|
||||||
<feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1"
|
|
||||||
stdDeviation="6"></feGaussianBlur>
|
|
||||||
<feColorMatrix in="shadowBlurOuter1"
|
|
||||||
type="matrix"
|
|
||||||
values="0 0 0 0 0.156862745 0 0 0 0 0.196078431 0 0 0 0 0.254901961 0 0 0 0.1428069 0"></feColorMatrix>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<g fill="none" fill-rule="evenodd" id="File-Upload-&-Download-Overlays" stroke="none"
|
|
||||||
stroke-width="1">
|
|
||||||
<g id="Document-Upload---Collapsed" transform="translate(-1359.000000, -847.000000)">
|
|
||||||
<rect height="900" width="1440" x="0" y="0"></rect>
|
|
||||||
<g fill="currentColor" font-family="Inter-Regular, Inter" font-size="16"
|
|
||||||
font-weight="normal" id="Dossier-details"
|
|
||||||
transform="translate(1111.000000, 127.000000)">
|
|
||||||
<g id="Group-4" transform="translate(0.000000, 145.000000)">
|
|
||||||
<g id="Group-11" transform="translate(0.000000, 566.000000)">
|
|
||||||
<text id="Description">
|
|
||||||
<tspan x="0" y="16">Description</tspan>
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g id="Group-10" transform="translate(1020.000000, 832.000000)">
|
|
||||||
<g id="Group-8">
|
|
||||||
<mask id="mask-2">
|
|
||||||
<use xlink:href="#path-1"></use>
|
|
||||||
</mask>
|
|
||||||
<g id="Rectangle">
|
|
||||||
<use fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-1"></use>
|
|
||||||
<use fill-rule="evenodd" xlink:href="#path-1"></use>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g fill="currentColor"
|
|
||||||
fill-rule="nonzero"
|
|
||||||
id="Group-6-Copy"
|
|
||||||
transform="translate(347.000000, 23.000000) rotate(180.000000) translate(-347.000000, -23.000000) translate(332.000000, 8.000000)">
|
|
||||||
<g id="status"
|
|
||||||
transform="translate(15.500000, 15.500000) rotate(90.000000) translate(-15.500000, -15.500000) translate(8.000000, 8.000000)">
|
|
||||||
<polygon id="Path"
|
|
||||||
points="9.825 3.75 8.775 4.8 10.65 6.75 1.5 6.75 1.5 8.25 10.65 8.25 8.775 10.2 9.825 11.25 13.5 7.5"></polygon>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.2 KiB |
@ -1,9 +0,0 @@
|
|||||||
@use 'common-mixins';
|
|
||||||
|
|
||||||
.mat-autocomplete-panel {
|
|
||||||
@include common-mixins.scroll-bar;
|
|
||||||
|
|
||||||
.mat-option {
|
|
||||||
font-size: inherit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,42 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
@use 'common-mixins';
|
|
||||||
|
|
||||||
.breadcrumbs-container {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
mat-icon {
|
|
||||||
width: 16px;
|
|
||||||
min-width: 16px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.breadcrumb {
|
|
||||||
text-decoration: none;
|
|
||||||
color: variables.$accent;
|
|
||||||
font-weight: 600;
|
|
||||||
width: fit-content;
|
|
||||||
white-space: nowrap;
|
|
||||||
|
|
||||||
&.back {
|
|
||||||
display: flex !important;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
mat-icon {
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
@include common-mixins.line-clamp(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
color: variables.$primary;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.mat-checkbox .mat-checkbox-frame {
|
|
||||||
border: 1px solid variables.$grey-5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,
|
|
||||||
.mat-checkbox-checked.mat-accent .mat-checkbox-background {
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-checkbox-layout {
|
|
||||||
align-items: center !important;
|
|
||||||
|
|
||||||
.mat-checkbox-inner-container {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-checkbox-label {
|
|
||||||
font-size: 13px;
|
|
||||||
color: variables.$accent;
|
|
||||||
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-checkbox.error .mat-checkbox-label {
|
|
||||||
color: variables.$primary;
|
|
||||||
}
|
|
||||||
@ -1,97 +1,6 @@
|
|||||||
@use 'variables';
|
@use 'variables';
|
||||||
@use 'common-mixins';
|
@use 'common-mixins';
|
||||||
|
|
||||||
.oval,
|
|
||||||
.square {
|
|
||||||
font-weight: 600;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: 24px;
|
|
||||||
width: 24px;
|
|
||||||
min-width: 24px;
|
|
||||||
font-size: 10px;
|
|
||||||
line-height: 12px;
|
|
||||||
text-align: center;
|
|
||||||
text-transform: uppercase;
|
|
||||||
border: none;
|
|
||||||
box-sizing: border-box;
|
|
||||||
|
|
||||||
&.large {
|
|
||||||
height: 32px;
|
|
||||||
width: 32px;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.gray-dark {
|
|
||||||
background-color: variables.$grey-6;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.gray-red {
|
|
||||||
background-color: variables.$grey-6;
|
|
||||||
color: variables.$primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.lightgray-dark {
|
|
||||||
background-color: variables.$grey-4;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.lightgray-red {
|
|
||||||
background-color: variables.$grey-4;
|
|
||||||
color: variables.$primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.darkgray-white {
|
|
||||||
background-color: variables.$accent;
|
|
||||||
color: variables.$white;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.lightgray-white {
|
|
||||||
background-color: variables.$grey-5;
|
|
||||||
color: variables.$white;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.red-white {
|
|
||||||
background-color: variables.$primary;
|
|
||||||
color: variables.$white;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.white-dark {
|
|
||||||
border: 1px solid variables.$grey-4;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.inactive {
|
|
||||||
background-color: variables.$grey-6;
|
|
||||||
color: variables.$grey-7;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.oval {
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stats-subtitle {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
> div {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
width: fit-content;
|
|
||||||
|
|
||||||
mat-icon {
|
|
||||||
width: 10px;
|
|
||||||
height: 10px;
|
|
||||||
line-height: 13px;
|
|
||||||
margin-right: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not(:last-child) {
|
|
||||||
margin-right: 12px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.pill {
|
.pill {
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
border-radius: 9px;
|
border-radius: 9px;
|
||||||
@ -183,11 +92,3 @@
|
|||||||
stroke: variables.$primary;
|
stroke: variables.$primary;
|
||||||
background-color: variables.$primary;
|
background-color: variables.$primary;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay-shadow {
|
|
||||||
@include common-mixins.inset-shadow;
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
|
||||||
height: 4px;
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
||||||
|
|||||||
@ -1,49 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.btn-group {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
|
|
||||||
.btn-group-btn {
|
|
||||||
cursor: pointer;
|
|
||||||
color: variables.$accent;
|
|
||||||
background: variables.$white;
|
|
||||||
font-family: Inter, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 14px;
|
|
||||||
padding: 10px 14px;
|
|
||||||
transition: color 0.25s ease-in-out;
|
|
||||||
outline: none;
|
|
||||||
border: none;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: variables.$black;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
color: variables.$light;
|
|
||||||
background: variables.$primary;
|
|
||||||
border-radius: 17px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active:hover {
|
|
||||||
color: variables.$grey-3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon-10 {
|
|
||||||
width: 10px;
|
|
||||||
height: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.noselect {
|
|
||||||
-webkit-touch-callout: none; /* iOS Safari */
|
|
||||||
-webkit-user-select: none; /* Safari */
|
|
||||||
-khtml-user-select: none; /* Konqueror HTML */
|
|
||||||
-moz-user-select: none; /* Old versions of Firefox */
|
|
||||||
-ms-user-select: none; /* Internet Explorer/Edge */
|
|
||||||
user-select: none;
|
|
||||||
/* Non-prefixed version, currently
|
|
||||||
supported by Chrome, Edge, Opera and Firefox */
|
|
||||||
}
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
/* inter-regular - latin */
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'OpenSans Extrabold';
|
|
||||||
src: url('../font/OpenSans-ExtraBold.ttf') format('truetype');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-weight: 300;
|
|
||||||
src: url('../font/Inter-VariableFont.ttf') format('truetype');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-weight: 400;
|
|
||||||
src: url('../font/Inter-VariableFont.ttf') format('truetype');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-weight: 500;
|
|
||||||
src: url('../font/Inter-VariableFont.ttf') format('truetype');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-weight: 600;
|
|
||||||
src: url('../font/Inter-VariableFont.ttf') format('truetype');
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-weight: 700;
|
|
||||||
src: url('../font/Inter-VariableFont.ttf') format('truetype');
|
|
||||||
}
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.help-mode-on-mouse-over {
|
|
||||||
z-index: 100;
|
|
||||||
position: absolute;
|
|
||||||
top: -5px;
|
|
||||||
left: -5px;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
padding-right: 5px;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
transition: all 0.25s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.help-highlight,
|
|
||||||
.help-mode-on-mouse-over:hover {
|
|
||||||
background: rgba(92, 229, 148, 0.5);
|
|
||||||
box-shadow: 0 0 0 2px variables.$green-2 inset;
|
|
||||||
cursor: help;
|
|
||||||
}
|
|
||||||
|
|
||||||
.help-mode-on-mouse-over-filters,
|
|
||||||
.help-mode-on-mouse-over-quick-filters,
|
|
||||||
.help-mode-on-mouse-over-new-dossier {
|
|
||||||
padding-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.help-mode-on-mouse-over-notifications {
|
|
||||||
padding-left: 4px;
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.mat-list-item {
|
|
||||||
color: variables.$accent !important;
|
|
||||||
font-size: 13px !important;
|
|
||||||
line-height: 16px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-50vh {
|
|
||||||
overflow-y: scroll;
|
|
||||||
max-height: 50vh;
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
.loading:after {
|
|
||||||
content: '.';
|
|
||||||
animation: dots 1s steps(5, end) infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes dots {
|
|
||||||
0%,
|
|
||||||
20% {
|
|
||||||
color: rgba(40, 50, 65, 0);
|
|
||||||
text-shadow: 0.25em 0 0 rgba(40, 50, 65, 0), 0.5em 0 0 rgba(40, 50, 65, 0);
|
|
||||||
}
|
|
||||||
40% {
|
|
||||||
color: #283241;
|
|
||||||
text-shadow: 0.25em 0 0 rgba(40, 50, 65, 0), 0.5em 0 0 rgba(40, 50, 65, 0);
|
|
||||||
}
|
|
||||||
60% {
|
|
||||||
text-shadow: 0.25em 0 0 #283241, 0.5em 0 0 rgba(40, 50, 65, 0);
|
|
||||||
}
|
|
||||||
80%,
|
|
||||||
100% {
|
|
||||||
text-shadow: 0.25em 0 0 #283241, 0.5em 0 0 #283241;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,63 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
@use 'common-mixins';
|
|
||||||
|
|
||||||
.mat-menu-panel {
|
|
||||||
border-radius: 8px !important;
|
|
||||||
box-shadow: 0 2px 6px 0 rgba(40, 50, 65, 0.3);
|
|
||||||
max-width: none !important;
|
|
||||||
min-width: 180px !important;
|
|
||||||
margin-top: 10px;
|
|
||||||
@include common-mixins.scroll-bar;
|
|
||||||
|
|
||||||
.mat-menu-content:not(:empty) {
|
|
||||||
padding-top: 8px;
|
|
||||||
padding-bottom: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.padding-bottom-0 .mat-menu-content:not(:empty) {
|
|
||||||
padding-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.padding-bottom-8 .mat-menu-content:not(:empty) {
|
|
||||||
padding-bottom: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-menu-item {
|
|
||||||
font-size: 13px;
|
|
||||||
color: variables.$accent;
|
|
||||||
padding: 0 8px;
|
|
||||||
margin: 0 8px 2px 8px;
|
|
||||||
border-radius: 4px;
|
|
||||||
width: -webkit-fill-available;
|
|
||||||
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.arrow-wrapper {
|
|
||||||
width: 16px;
|
|
||||||
text-align: center;
|
|
||||||
|
|
||||||
mat-icon {
|
|
||||||
width: 16px;
|
|
||||||
height: 16px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.padding-left {
|
|
||||||
padding-left: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-of-type {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: rgba(variables.$primary, 0.1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,387 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
@use 'common-mixins';
|
|
||||||
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
height: 100vh;
|
|
||||||
font-family: 'Inter', sans-serif;
|
|
||||||
color: variables.$accent;
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section.settings {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
.page-header,
|
|
||||||
.red-content-inner {
|
|
||||||
width: calc(100vw - 200px);
|
|
||||||
}
|
|
||||||
|
|
||||||
redaction-admin-side-nav {
|
|
||||||
height: calc(100vh - 61px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 0 24px;
|
|
||||||
height: 50px;
|
|
||||||
width: 100vw;
|
|
||||||
box-sizing: border-box;
|
|
||||||
background-color: variables.$white;
|
|
||||||
border-bottom: 1px solid variables.$separator;
|
|
||||||
|
|
||||||
.filters {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> div:first-child {
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
form {
|
|
||||||
margin-left: 6px;
|
|
||||||
|
|
||||||
.iqser-input-group {
|
|
||||||
width: 250px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.reset-filters {
|
|
||||||
margin-left: 12px;
|
|
||||||
color: variables.$primary;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.actions {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: flex-end;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 2px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.fullscreen {
|
|
||||||
.page-header {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.red-content-inner {
|
|
||||||
height: calc(100% - 50px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.overlay-shadow {
|
|
||||||
top: 50px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.red-content-inner {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: calc(100% - 111px);
|
|
||||||
transition: height ease-in-out 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content-container {
|
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
|
|
||||||
.dialog {
|
|
||||||
border-radius: 8px;
|
|
||||||
margin-top: 40px;
|
|
||||||
margin-bottom: 70px;
|
|
||||||
background-color: variables.$white;
|
|
||||||
max-width: 650px;
|
|
||||||
height: fit-content;
|
|
||||||
box-shadow: 0 1px 5px 0 rgba(40, 50, 65, 0.19);
|
|
||||||
position: unset;
|
|
||||||
|
|
||||||
.heading-l {
|
|
||||||
margin-bottom: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog-content {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
.dialog-content-left {
|
|
||||||
min-width: 300px;
|
|
||||||
margin-right: 64px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link-action {
|
|
||||||
margin-top: 8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 1600px) {
|
|
||||||
.user-column {
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
redaction-initials-avatar .username {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-container {
|
|
||||||
border-left: 1px solid variables.$grey-4;
|
|
||||||
box-sizing: border-box;
|
|
||||||
background: variables.$white;
|
|
||||||
overflow: hidden;
|
|
||||||
transition: width ease-in-out 0.2s, min-width ease-in-out 0.2s;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
overflow-y: auto;
|
|
||||||
@include common-mixins.scroll-bar;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapsed-wrapper {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.collapsed {
|
|
||||||
padding-left: 0 !important;
|
|
||||||
padding-right: 0 !important;
|
|
||||||
width: 60px !important;
|
|
||||||
min-width: 60px !important;
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
div:not(.collapsed-wrapper) {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapsed-wrapper {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
width: 60px;
|
|
||||||
|
|
||||||
div {
|
|
||||||
display: initial;
|
|
||||||
}
|
|
||||||
|
|
||||||
.all-caps-label {
|
|
||||||
transform: rotate(90deg) translateX(50%);
|
|
||||||
white-space: nowrap;
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex {
|
|
||||||
display: flex !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-end {
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-center {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-align-items-center {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-1 {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-2 {
|
|
||||||
flex: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-5 {
|
|
||||||
margin-top: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-8 {
|
|
||||||
margin-top: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-16 {
|
|
||||||
margin-top: 16px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-20 {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-24 {
|
|
||||||
margin-top: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-32 {
|
|
||||||
margin-top: 32px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mb-6 {
|
|
||||||
margin-bottom: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mb-8 {
|
|
||||||
margin-bottom: 8px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mb-12 {
|
|
||||||
margin-bottom: 12px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ml-8 {
|
|
||||||
margin-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ml-14 {
|
|
||||||
margin-left: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ml-16 {
|
|
||||||
margin-left: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mr-24 {
|
|
||||||
margin-right: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pb-24 {
|
|
||||||
padding-bottom: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pb-32 {
|
|
||||||
padding-bottom: 32px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.w-100 {
|
|
||||||
min-width: 100px !important;
|
|
||||||
width: 100px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.break-20 {
|
|
||||||
height: 20px;
|
|
||||||
background: transparent;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.detail-row {
|
|
||||||
opacity: 1;
|
|
||||||
font-family: Inter, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
letter-spacing: 0;
|
|
||||||
line-height: 14px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.red-top-bar {
|
|
||||||
height: 61px;
|
|
||||||
width: 100vw;
|
|
||||||
max-height: 61px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
.top-bar-row {
|
|
||||||
height: 60px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding: 0 24px;
|
|
||||||
|
|
||||||
.center {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin: 0 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-name {
|
|
||||||
font-family: 'OpenSans Extrabold', sans-serif;
|
|
||||||
margin-left: 10px;
|
|
||||||
height: 20px;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: 800;
|
|
||||||
letter-spacing: 0;
|
|
||||||
line-height: 20px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
overflow: hidden;
|
|
||||||
|
|
||||||
&.right {
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.divider {
|
|
||||||
height: 1px;
|
|
||||||
opacity: 0.15;
|
|
||||||
background-color: variables.$accent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hidden {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.not-visible {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pointer {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mr-4 {
|
|
||||||
margin-right: 4px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mr-8 {
|
|
||||||
margin-right: 8px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mr-16 {
|
|
||||||
margin-right: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mr-34 {
|
|
||||||
margin-right: 34px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fit-content {
|
|
||||||
width: fit-content;
|
|
||||||
}
|
|
||||||
|
|
||||||
.d-flex {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cdk-overlay-container {
|
|
||||||
z-index: 800;
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.mat-progress-bar {
|
|
||||||
height: 6px;
|
|
||||||
border-radius: 3px;
|
|
||||||
|
|
||||||
.mat-progress-bar-buffer {
|
|
||||||
background-color: variables.$grey-4;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.green {
|
|
||||||
.mat-progress-bar-fill::after {
|
|
||||||
background-color: variables.$green-2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
@use 'common-mixins';
|
|
||||||
|
|
||||||
.mat-select-panel {
|
|
||||||
@include common-mixins.scroll-bar;
|
|
||||||
|
|
||||||
.mat-option {
|
|
||||||
&:hover:not(.mat-option-disabled),
|
|
||||||
&:focus:not(.mat-option-disabled) {
|
|
||||||
background-color: variables.$grey-6;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.mat-selected:not(.mat-option-multiple) {
|
|
||||||
background-color: rgba(variables.$primary, 0.2);
|
|
||||||
color: variables.$accent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-form-field.no-label .mat-form-field-infix {
|
|
||||||
padding: 0 !important;
|
|
||||||
border-top: 0 !important;
|
|
||||||
}
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.mat-slider-horizontal {
|
|
||||||
width: 140px;
|
|
||||||
height: 32px !important;
|
|
||||||
|
|
||||||
.mat-slider-wrapper {
|
|
||||||
left: 0 !important;
|
|
||||||
top: 16px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slider-track-wrapper,
|
|
||||||
.mat-slider-track-fill {
|
|
||||||
height: 6px !important;
|
|
||||||
border-radius: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// For disabled state
|
|
||||||
.mat-slider-track-fill {
|
|
||||||
background-color: variables.$primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slider-track-background {
|
|
||||||
height: 4px !important;
|
|
||||||
margin-top: 1px;
|
|
||||||
border-radius: 3px;
|
|
||||||
background-color: variables.$grey-4 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slider-focus-ring {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slider-thumb {
|
|
||||||
width: 16px !important;
|
|
||||||
height: 16px !important;
|
|
||||||
border-width: 0 !important;
|
|
||||||
background-color: variables.$primary !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb {
|
|
||||||
transform: scale(1) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slider-horizontal.mat-slider-disabled {
|
|
||||||
.mat-slider-thumb {
|
|
||||||
transform: translateX(-3px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.default-table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
|
|
||||||
th,
|
|
||||||
td {
|
|
||||||
padding: 8px;
|
|
||||||
text-align: left;
|
|
||||||
border: 1px solid variables.$separator;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-header-actions {
|
|
||||||
display: flex;
|
|
||||||
flex: 1;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: flex-end;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.red-tab {
|
|
||||||
&:not(:last-child) {
|
|
||||||
margin-right: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
height: 30px;
|
|
||||||
line-height: 30px;
|
|
||||||
padding: 0 14px;
|
|
||||||
border-radius: 17px;
|
|
||||||
transition: background-color 0.2s;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
&:not(.disabled):not(.active):hover {
|
|
||||||
background-color: variables.$grey-6;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
background-color: rgba(variables.$primary, 0.1);
|
|
||||||
font-weight: 600;
|
|
||||||
color: variables.$primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.disabled {
|
|
||||||
color: rgba(variables.$accent, 0.3);
|
|
||||||
cursor: not-allowed;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,23 +1,4 @@
|
|||||||
@use 'red-fonts';
|
|
||||||
@use '~ngx-toastr/toastr';
|
@use '~ngx-toastr/toastr';
|
||||||
@use 'red-material-theme';
|
@use 'red-material-theme';
|
||||||
@use 'red-page-layout';
|
|
||||||
@use 'red-select';
|
|
||||||
@use 'red-autocomplete';
|
|
||||||
@use 'red-list';
|
|
||||||
@use 'red-checkbox';
|
|
||||||
@use 'red-toggle';
|
|
||||||
@use 'red-toggle-button';
|
|
||||||
@use 'red-menu';
|
|
||||||
@use 'red-tables';
|
|
||||||
@use 'red-components';
|
@use 'red-components';
|
||||||
@use 'red-controls';
|
|
||||||
@use 'red-toasts';
|
|
||||||
@use 'red-tooltips';
|
|
||||||
@use 'red-breadcrumbs';
|
|
||||||
@use 'red-editor';
|
@use 'red-editor';
|
||||||
@use 'red-slider';
|
|
||||||
@use 'red-loading';
|
|
||||||
@use 'red-progress-bar';
|
|
||||||
@use 'red-tabs';
|
|
||||||
@use 'red-help-mode';
|
|
||||||
|
|||||||
@ -1,110 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
$toast-width: 400px;
|
|
||||||
|
|
||||||
.toast-container .ngx-toastr,
|
|
||||||
.inline-dialog-toast {
|
|
||||||
padding: 11px 16px;
|
|
||||||
border-radius: 8px;
|
|
||||||
background-image: none;
|
|
||||||
font-family: Inter, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 18px;
|
|
||||||
width: $toast-width;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
box-shadow: none;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.actions-wrapper {
|
|
||||||
margin-top: 24px;
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
> *:not(:last-child) {
|
|
||||||
margin-right: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: 600;
|
|
||||||
line-height: 14px;
|
|
||||||
color: variables.$accent;
|
|
||||||
text-transform: uppercase;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-top-right {
|
|
||||||
top: 128px;
|
|
||||||
right: calc(50% - #{$toast-width} / 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-file-preview {
|
|
||||||
top: 160px;
|
|
||||||
right: 405px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-close-button {
|
|
||||||
position: initial;
|
|
||||||
opacity: 1;
|
|
||||||
text-shadow: none;
|
|
||||||
|
|
||||||
mat-icon {
|
|
||||||
width: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-warning,
|
|
||||||
.toast-success {
|
|
||||||
.toast-message {
|
|
||||||
color: variables.$accent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-close-button {
|
|
||||||
color: variables.$accent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-error,
|
|
||||||
.toast-info {
|
|
||||||
.toast-close-button:hover {
|
|
||||||
color: variables.$white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-success {
|
|
||||||
background-color: variables.$green-2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-error {
|
|
||||||
background-color: variables.$primary;
|
|
||||||
color: variables.$white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-warning {
|
|
||||||
background-color: variables.$yellow-2;
|
|
||||||
color: variables.$accent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-info {
|
|
||||||
background-color: variables.$accent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inline-dialog-toast {
|
|
||||||
width: calc(100% - 96px);
|
|
||||||
margin-left: 32px;
|
|
||||||
margin-top: 14px;
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.mat-button-toggle-standalone,
|
|
||||||
.mat-button-toggle-group {
|
|
||||||
box-shadow: none;
|
|
||||||
border-radius: 100px !important;
|
|
||||||
width: fit-content;
|
|
||||||
|
|
||||||
.mat-button-toggle:not(.mat-button-toggle-checked) {
|
|
||||||
.mat-button-toggle-button {
|
|
||||||
background: variables.$grey-6;
|
|
||||||
color: variables.$grey-7;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-button-toggle-disabled {
|
|
||||||
.mat-button-toggle-button {
|
|
||||||
cursor: not-allowed !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
@ -1,42 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.mat-slide-toggle {
|
|
||||||
.mat-slide-toggle-bar {
|
|
||||||
height: 16px !important;
|
|
||||||
width: 30px !important;
|
|
||||||
border-radius: 16px !important;
|
|
||||||
background-color: variables.$grey-4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slide-toggle-thumb-container {
|
|
||||||
top: 2px !important;
|
|
||||||
left: 2px !important;
|
|
||||||
height: 12px !important;
|
|
||||||
width: 12px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slide-toggle-thumb {
|
|
||||||
height: 12px !important;
|
|
||||||
width: 12px !important;
|
|
||||||
box-shadow: none;
|
|
||||||
background-color: variables.$grey-2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-ripple {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.mat-primary.mat-checked {
|
|
||||||
.mat-slide-toggle-bar {
|
|
||||||
background-color: variables.$primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slide-toggle-thumb {
|
|
||||||
background-color: variables.$white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-slide-toggle-thumb-container {
|
|
||||||
transform: translate3d(14px, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
@use 'variables';
|
|
||||||
|
|
||||||
.mat-tooltip {
|
|
||||||
background-color: variables.$accent;
|
|
||||||
border-radius: 3px !important;
|
|
||||||
padding: 10px;
|
|
||||||
margin: 12px !important;
|
|
||||||
font-size: 11px;
|
|
||||||
line-height: 14px;
|
|
||||||
color: variables.$white !important;
|
|
||||||
position: relative;
|
|
||||||
overflow: visible !important;
|
|
||||||
text-align: center;
|
|
||||||
|
|
||||||
//&:after {
|
|
||||||
// content: '';
|
|
||||||
// position: absolute;
|
|
||||||
// left: 50%;
|
|
||||||
// margin-left: -5px;
|
|
||||||
// width: 0;
|
|
||||||
// height: 0;
|
|
||||||
// z-index: 3000;
|
|
||||||
// border-left: solid 5px transparent;
|
|
||||||
// border-right: solid 5px transparent;
|
|
||||||
// border-top: solid 6px $accent;
|
|
||||||
//}
|
|
||||||
|
|
||||||
&.small {
|
|
||||||
max-width: 160px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.warn {
|
|
||||||
background-color: variables.$yellow-2;
|
|
||||||
color: variables.$accent !important;
|
|
||||||
|
|
||||||
//&:after {
|
|
||||||
// border-top: solid 6px $yellow-2;
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
//.mat-tooltip[style*='transform-origin: center top']:after {
|
|
||||||
// top: -6px;
|
|
||||||
// transform: rotate(180deg);
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//.mat-tooltip[style*='transform-origin: center bottom']:after {
|
|
||||||
// top: 100%;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//.mat-tooltip[style*='transform-origin: right center']:after {
|
|
||||||
// top: 50%;
|
|
||||||
// left: 100%;
|
|
||||||
// transform: rotate(-90deg) translateY(3px) translateX(3px);
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//.mat-tooltip[style*='transform-origin: left center']:after {
|
|
||||||
// top: 50%;
|
|
||||||
// left: 0;
|
|
||||||
// transform: rotate(90deg) translateY(3px) translateX(-3px);
|
|
||||||
//}
|
|
||||||
@ -16,6 +16,8 @@
|
|||||||
$iqser-btn-bg: vars.$btn-bg,
|
$iqser-btn-bg: vars.$btn-bg,
|
||||||
$iqser-warn: vars.$warn,
|
$iqser-warn: vars.$warn,
|
||||||
$iqser-white: vars.$white,
|
$iqser-white: vars.$white,
|
||||||
|
$iqser-black: vars.$black,
|
||||||
|
$iqser-light: vars.$light,
|
||||||
$iqser-separator: vars.$separator,
|
$iqser-separator: vars.$separator,
|
||||||
$iqser-quick-filter-border: vars.$quick-filter-border,
|
$iqser-quick-filter-border: vars.$quick-filter-border,
|
||||||
$iqser-grey-2: vars.$grey-2,
|
$iqser-grey-2: vars.$grey-2,
|
||||||
@ -23,6 +25,11 @@
|
|||||||
$iqser-grey-4: vars.$grey-4,
|
$iqser-grey-4: vars.$grey-4,
|
||||||
$iqser-grey-5: vars.$grey-5,
|
$iqser-grey-5: vars.$grey-5,
|
||||||
$iqser-grey-6: vars.$grey-6,
|
$iqser-grey-6: vars.$grey-6,
|
||||||
|
$iqser-grey-7: vars.$grey-7,
|
||||||
|
$iqser-green-1: vars.$green-1,
|
||||||
|
$iqser-green-2: vars.$green-2,
|
||||||
|
$iqser-yellow-1: vars.$yellow-1,
|
||||||
|
$iqser-yellow-2: vars.$yellow-2,
|
||||||
$iqser-helpmode-primary: vars.$green-2
|
$iqser-helpmode-primary: vars.$green-2
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||