AAE-40911 Add adf-icon to core lib (#11471)

* AAE-40911 Add adf-icon

* AAE-40911 Add adf-icon directive to remaining core lib components

* AAE-40911 Fix icon name

* AAE-40911 Remove doc change

* AAE-40911 Add icon module

* AAE-40911 Add icon module

* AAE-40911 Fix export

* AAE-40911 Fix export
This commit is contained in:
Diogo Bastos
2026-01-02 16:13:29 +00:00
committed by GitHub
parent d8720dbb59
commit 41b97eb835
70 changed files with 258 additions and 224 deletions
@@ -15,7 +15,7 @@
[title]="'CORE.BREADCRUMBS.SHOWALL' | translate" [title]="'CORE.BREADCRUMBS.SHOWALL' | translate"
[attr.aria-label]="'CORE.BREADCRUMBS.SHOWALL' | translate" [attr.aria-label]="'CORE.BREADCRUMBS.SHOWALL' | translate"
> >
<mat-icon class="adf-breadcrumb__show-all-button-icon--rotate">more_vert</mat-icon > <mat-icon class="adf-breadcrumb__show-all-button-icon--rotate" adf-icon="more_vert" />
</button> </button>
<div class="adf-breadcrumb__chevron" [class.adf-breadcrumb__chevron-after--compact]="compact" ></div> <div class="adf-breadcrumb__chevron" [class.adf-breadcrumb__chevron-after--compact]="compact" ></div>
</li> </li>
@@ -32,18 +32,18 @@ import {
} from '@angular/core'; } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { map, startWith } from 'rxjs/operators'; import { map, startWith } from 'rxjs/operators';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { BreadcrumbFocusDirective } from '../../directives/breadcrumb-focus.directive'; import { BreadcrumbFocusDirective } from '../../directives/breadcrumb-focus.directive';
import { BreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component'; import { BreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';
import { IconModule } from '@alfresco/adf-core';
@Component({ @Component({
selector: 'adf-breadcrumb', selector: 'adf-breadcrumb',
templateUrl: './breadcrumb.component.html', templateUrl: './breadcrumb.component.html',
styleUrls: ['./breadcrumb.component.scss'], styleUrls: ['./breadcrumb.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
imports: [CommonModule, MatIconModule, TranslatePipe, MatButtonModule, BreadcrumbFocusDirective] imports: [CommonModule, IconModule, TranslatePipe, MatButtonModule, BreadcrumbFocusDirective]
}) })
export class BreadcrumbComponent implements AfterContentInit, OnChanges { export class BreadcrumbComponent implements AfterContentInit, OnChanges {
private _breadcrumbTemplateRefs: Array<TemplateRef<unknown>> = []; private _breadcrumbTemplateRefs: Array<TemplateRef<unknown>> = [];
@@ -8,11 +8,8 @@
<mat-slide-toggle <mat-slide-toggle
[checked]="isEnabled" [checked]="isEnabled"
(change)="onEnable($event.checked)" /> (change)="onEnable($event.checked)" />
<button <button class="adf-feature-flags-overrides-header-close" mat-icon-button mat-dialog-close>
class="adf-feature-flags-overrides-header-close" <mat-icon adf-icon="close" />
mat-icon-button
mat-dialog-close>
<mat-icon>close</mat-icon>
</button> </button>
</mat-toolbar> </mat-toolbar>
@@ -20,7 +17,7 @@
<table mat-table [dataSource]="flags" class="adf-feature-flags-overrides-table mat-elevation-z0"> <table mat-table [dataSource]="flags" class="adf-feature-flags-overrides-table mat-elevation-z0">
<ng-container matColumnDef="icon"> <ng-container matColumnDef="icon">
<th mat-header-cell class="adf-icon-col adf-header-cell" *matHeaderCellDef> <th mat-header-cell class="adf-icon-col adf-header-cell" *matHeaderCellDef>
<mat-icon class="material-icons-outlined adf-search-icon">search</mat-icon> <mat-icon class="material-icons-outlined adf-search-icon" adf-icon="search" />
</th> </th>
<td mat-cell class="adf-icon-col" *matCellDef="let element"> <td mat-cell class="adf-icon-col" *matCellDef="let element">
<button mat-icon-button *ngIf="element.fictive; else flagFromApi" class="adf-fictive-flag-button" (click)="onDelete(element.flag)"> <button mat-icon-button *ngIf="element.fictive; else flagFromApi" class="adf-fictive-flag-button" (click)="onDelete(element.flag)">
@@ -46,7 +43,7 @@
<mat-icon class="material-icons-outlined" fontIcon="add_circle" /> <mat-icon class="material-icons-outlined" fontIcon="add_circle" />
</button> </button>
<button *ngIf="inputValue" matSuffix mat-icon-button aria-label="Clear" (click)="onClearInput()" class="adf-clear-button"> <button *ngIf="inputValue" matSuffix mat-icon-button aria-label="Clear" (click)="onClearInput()" class="adf-clear-button">
<mat-icon>cancel</mat-icon> <mat-icon adf-icon="cancel" />
</button> </button>
</div> </div>
</th> </th>
@@ -64,6 +61,6 @@
</ng-container> </ng-container>
<ng-template #flagFromApi> <ng-template #flagFromApi>
<mat-icon class="material-icons-outlined">cloud</mat-icon> <mat-icon class="material-icons-outlined" adf-icon="cloud" />
</ng-template> </ng-template>
@@ -30,7 +30,6 @@ import { debounceTime, map, take, tap } from 'rxjs/operators';
import { MatTableModule } from '@angular/material/table'; import { MatTableModule } from '@angular/material/table';
import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatToolbarModule } from '@angular/material/toolbar'; import { MatToolbarModule } from '@angular/material/toolbar';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
@@ -38,6 +37,7 @@ import { FlagsOverrideComponent } from '../feature-override-indicator.component'
import { MatDialogModule } from '@angular/material/dialog'; import { MatDialogModule } from '@angular/material/dialog';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '@alfresco/adf-core';
@Component({ @Component({
selector: 'adf-feature-flags-overrides', selector: 'adf-feature-flags-overrides',
@@ -48,7 +48,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
MatTableModule, MatTableModule,
MatSlideToggleModule, MatSlideToggleModule,
MatToolbarModule, MatToolbarModule,
MatIconModule, IconModule,
MatButtonModule, MatButtonModule,
MatInputModule, MatInputModule,
MatDialogModule, MatDialogModule,
@@ -80,7 +80,7 @@
[attr.aria-hidden]="ariaHidden" [attr.aria-hidden]="ariaHidden"
[attr.data-automation-id]="testId" [attr.data-automation-id]="testId"
> >
<mat-icon *ngIf="icon" class="adf-button__icon">{{ icon }}</mat-icon> <mat-icon *ngIf="icon" class="adf-button__icon" [adf-icon]="icon" />
<ng-container [ngTemplateOutlet]="buttonContent" /> <ng-container [ngTemplateOutlet]="buttonContent" />
</button> </button>
</ng-container> </ng-container>
@@ -98,7 +98,7 @@
[attr.aria-hidden]="ariaHidden" [attr.aria-hidden]="ariaHidden"
[attr.data-automation-id]="testId" [attr.data-automation-id]="testId"
> >
<mat-icon *ngIf="icon" class="adf-button__icon">{{ icon }}</mat-icon> <mat-icon *ngIf="icon" class="adf-button__icon" [adf-icon]="icon" />
<ng-container *ngIf="!icon" [ngTemplateOutlet]="buttonContent" /> <ng-container *ngIf="!icon" [ngTemplateOutlet]="buttonContent" />
</button> </button>
</ng-container> </ng-container>
@@ -116,7 +116,7 @@
[attr.aria-hidden]="ariaHidden" [attr.aria-hidden]="ariaHidden"
[attr.data-automation-id]="testId" [attr.data-automation-id]="testId"
> >
<mat-icon *ngIf="icon" class="adf-button__icon">{{ icon }}</mat-icon> <mat-icon *ngIf="icon" class="adf-button__icon" [adf-icon]="icon" />
<ng-container *ngIf="!icon" [ngTemplateOutlet]="buttonContent" /> <ng-container *ngIf="!icon" [ngTemplateOutlet]="buttonContent" />
</button> </button>
</ng-container> </ng-container>
+2 -2
View File
@@ -19,14 +19,14 @@ import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core'
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { ThemePalette } from '@angular/material/core'; import { ThemePalette } from '@angular/material/core';
import { MatIconModule } from '@angular/material/icon'; import { IconModule } from '../icon/icon.module';
export type ButtonVariant = 'basic' | 'raised' | 'stroked' | 'flat' | 'icon' | 'fab' | 'mini-fab' | undefined; export type ButtonVariant = 'basic' | 'raised' | 'stroked' | 'flat' | 'icon' | 'fab' | 'mini-fab' | undefined;
export type ButtonColor = ThemePalette; export type ButtonColor = ThemePalette;
@Component({ @Component({
selector: 'adf-button', selector: 'adf-button',
imports: [CommonModule, MatButtonModule, MatIconModule], imports: [CommonModule, MatButtonModule, IconModule],
templateUrl: './button.component.html', templateUrl: './button.component.html',
styleUrls: ['./button.component.scss'], styleUrls: ['./button.component.scss'],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
@@ -9,7 +9,7 @@
(click)="clicked()" (click)="clicked()"
[attr.data-automation-id]="'card-arrayitem-chip-' + item.value"> [attr.data-automation-id]="'card-arrayitem-chip-' + item.value">
<div class="adf-card-view-array-chip-content"> <div class="adf-card-view-array-chip-content">
<mat-icon *ngIf="item?.icon" class="adf-array-item-icon">{{item.icon}}</mat-icon> <mat-icon *ngIf="item?.icon" class="adf-array-item-icon" [adf-icon]="item.icon" />
<span>{{item?.value}}</span> <span>{{item?.value}}</span>
</div> </div>
</mat-chip> </mat-chip>
@@ -27,7 +27,7 @@
(click)="clicked()" (click)="clicked()"
[attr.data-automation-id]="'card-arrayitem-chip-' + item.value"> [attr.data-automation-id]="'card-arrayitem-chip-' + item.value">
<div class="adf-card-view-array-chip-content"> <div class="adf-card-view-array-chip-content">
<mat-icon *ngIf="item?.icon" class="adf-array-item-icon">{{item.icon}}</mat-icon> <mat-icon *ngIf="item?.icon" class="adf-array-item-icon" [adf-icon]="item.icon" />
<span>{{item?.value}}</span> <span>{{item?.value}}</span>
</div> </div>
</mat-chip> </mat-chip>
@@ -41,7 +41,7 @@
*ngFor="let item of items.slice(displayCount, items.length)" *ngFor="let item of items.slice(displayCount, items.length)"
[attr.data-automation-id]="'card-arrayitem-chip-' + item.value"> [attr.data-automation-id]="'card-arrayitem-chip-' + item.value">
<div class="adf-card-view-array-chip-content"> <div class="adf-card-view-array-chip-content">
<mat-icon *ngIf="item?.icon" class="adf-array-item-icon">{{item.icon}}</mat-icon> <mat-icon *ngIf="item?.icon" class="adf-array-item-icon" [adf-icon]="item.icon" />
<span>{{item?.value}}</span> <span>{{item?.value}}</span>
</div> </div>
</mat-chip> </mat-chip>
@@ -60,6 +60,6 @@
[attr.aria-label]="'CORE.METADATA.ACTIONS.EDIT' | translate" [attr.aria-label]="'CORE.METADATA.ACTIONS.EDIT' | translate"
[attr.title]="'CORE.METADATA.ACTIONS.EDIT' | translate" [attr.title]="'CORE.METADATA.ACTIONS.EDIT' | translate"
[attr.data-automation-id]="'card-array-item-clickable-icon-' + property.key"> [attr.data-automation-id]="'card-array-item-clickable-icon-' + property.key">
<mat-icon class="adf-array-item-button-icon">{{property.icon}}</mat-icon> <mat-icon class="adf-array-item-button-icon" [adf-icon]="property.icon" />
</button> </button>
</div> </div>
@@ -21,14 +21,14 @@ import { BaseCardView } from '../base-card-view';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { MatChipsModule } from '@angular/material/chips'; import { MatChipsModule } from '@angular/material/chips';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu'; import { MatMenuModule } from '@angular/material/menu';
import { MatCardModule } from '@angular/material/card'; import { MatCardModule } from '@angular/material/card';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { IconModule } from '../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-card-view-arrayitem', selector: 'adf-card-view-arrayitem',
imports: [CommonModule, MatChipsModule, TranslatePipe, MatIconModule, MatMenuModule, MatCardModule, MatButtonModule], imports: [CommonModule, MatChipsModule, TranslatePipe, IconModule, MatMenuModule, MatCardModule, MatButtonModule],
templateUrl: './card-view-arrayitem.component.html', templateUrl: './card-view-arrayitem.component.html',
styleUrls: ['./card-view-arrayitem.component.scss'], styleUrls: ['./card-view-arrayitem.component.scss'],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
@@ -60,9 +60,8 @@
(click)="onDateClear()" (click)="onDateClear()"
[attr.title]="'CORE.METADATA.ACTIONS.CLEAR' | translate" [attr.title]="'CORE.METADATA.ACTIONS.CLEAR' | translate"
[attr.data-automation-id]="'datepicker-date-clear-' + property.key" [attr.data-automation-id]="'datepicker-date-clear-' + property.key"
> adf-icon="clear"
clear />
</mat-icon>
<mat-datetimepicker-toggle <mat-datetimepicker-toggle
matIconSuffix matIconSuffix
[attr.tabindex]="-1" [attr.tabindex]="-1"
@@ -92,7 +91,7 @@
(removed)="removeValueFromList(idx)" (removed)="removeValueFromList(idx)"
> >
{{ propertyValue }} {{ propertyValue }}
<mat-icon *ngIf="isEditable" matChipRemove>cancel</mat-icon> <mat-icon *ngIf="isEditable" matChipRemove adf-icon="cancel" />
</mat-chip-option> </mat-chip-option>
</mat-chip-listbox> </mat-chip-listbox>
@@ -35,13 +35,13 @@ import { isValid } from 'date-fns';
import { DateFnsUtils } from '../../../common/utils/date-fns-utils'; import { DateFnsUtils } from '../../../common/utils/date-fns-utils';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
import { MatChipsModule } from '@angular/material/chips'; import { MatChipsModule } from '@angular/material/chips';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatDatepickerModule } from '@angular/material/datepicker'; import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatSnackBarModule } from '@angular/material/snack-bar'; import { MatSnackBarModule } from '@angular/material/snack-bar';
import { FormControl, ReactiveFormsModule } from '@angular/forms'; import { FormControl, ReactiveFormsModule } from '@angular/forms';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { IconModule } from '../../../icon/icon.module';
@Component({ @Component({
providers: [ providers: [
@@ -54,7 +54,7 @@ import { MatInputModule } from '@angular/material/input';
imports: [ imports: [
CommonModule, CommonModule,
TranslatePipe, TranslatePipe,
MatIconModule, IconModule,
MatDatetimepickerModule, MatDatetimepickerModule,
MatChipsModule, MatChipsModule,
MatInputModule, MatInputModule,
@@ -47,7 +47,7 @@
mat-icon-button mat-icon-button
(click)="remove(i)" (click)="remove(i)"
class="adf-property-col-delete"> class="adf-property-col-delete">
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</div> </div>
</div> </div>
@@ -57,7 +57,7 @@
class="adf-card-view__key-value-pairs__add-btn" class="adf-card-view__key-value-pairs__add-btn"
[attr.data-automation-id]="'card-key-value-pairs-button-' + property.key"> [attr.data-automation-id]="'card-key-value-pairs-button-' + property.key">
{{ 'CORE.CARDVIEW.KEYVALUEPAIRS.ADD' | translate }} {{ 'CORE.CARDVIEW.KEYVALUEPAIRS.ADD' | translate }}
<mat-icon>add</mat-icon> <mat-icon adf-icon="add" />
</button> </button>
</div> </div>
</div> </div>
@@ -25,11 +25,11 @@ import { TranslatePipe } from '@ngx-translate/core';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon'; import { IconModule } from '../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-card-view-key-value-pairs-item', selector: 'adf-card-view-key-value-pairs-item',
imports: [CommonModule, TranslatePipe, MatTableModule, MatInputModule, FormsModule, MatButtonModule, MatIconModule], imports: [CommonModule, TranslatePipe, MatTableModule, MatInputModule, FormsModule, MatButtonModule, IconModule],
templateUrl: './card-view-keyvaluepairsitem.component.html', templateUrl: './card-view-keyvaluepairsitem.component.html',
styleUrls: ['./card-view-keyvaluepairsitem.component.scss'], styleUrls: ['./card-view-keyvaluepairsitem.component.scss'],
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
@@ -20,7 +20,7 @@
*ngIf="term" *ngIf="term"
(keydown.enter)="reset($event)" (keydown.enter)="reset($event)"
(click)="reset()"> (click)="reset()">
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</mat-form-field> </mat-form-field>
</div> </div>
@@ -22,13 +22,13 @@ import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-select-filter-input', selector: 'adf-select-filter-input',
imports: [CommonModule, MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, MatIconModule, TranslatePipe], imports: [CommonModule, MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, IconModule, TranslatePipe],
templateUrl: './select-filter-input.component.html', templateUrl: './select-filter-input.component.html',
styleUrls: ['./select-filter-input.component.scss'], styleUrls: ['./select-filter-input.component.scss'],
host: { class: 'adf-select-filter-input' }, host: { class: 'adf-select-filter-input' },
@@ -78,7 +78,7 @@
<mat-chip-grid #chipElement class="adf-textitem-chip-list"> <mat-chip-grid #chipElement class="adf-textitem-chip-list">
<mat-chip-row *ngFor="let propertyValue of editedValue; let idx = index" [removable]="isEditable" (removed)="removeValueFromList(idx)"> <mat-chip-row *ngFor="let propertyValue of editedValue; let idx = index" [removable]="isEditable" (removed)="removeValueFromList(idx)">
{{ propertyValue }} {{ propertyValue }}
<mat-icon *ngIf="isEditable" matChipRemove>cancel</mat-icon> <mat-icon *ngIf="isEditable" matChipRemove adf-icon="cancel" />
</mat-chip-row> </mat-chip-row>
</mat-chip-grid> </mat-chip-grid>
@@ -154,7 +154,7 @@
[attr.title]="'CORE.METADATA.ACTIONS.EDIT' | translate" [attr.title]="'CORE.METADATA.ACTIONS.EDIT' | translate"
[attr.data-automation-id]="'card-textitem-clickable-icon-' + property.key" [attr.data-automation-id]="'card-textitem-clickable-icon-' + property.key"
> >
<mat-icon class="adf-textitem-icon">{{ property?.icon }}</mat-icon> <mat-icon class="adf-textitem-icon" [adf-icon]="property?.icon" />
</button> </button>
</mat-form-field> </mat-form-field>
</div> </div>
@@ -28,10 +28,10 @@ import { CommonModule } from '@angular/common';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatSnackBarModule } from '@angular/material/snack-bar'; import { MatSnackBarModule } from '@angular/material/snack-bar';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../../../icon/icon.module';
export const DEFAULT_SEPARATOR = ', '; export const DEFAULT_SEPARATOR = ', ';
const templateTypes = { const templateTypes = {
@@ -51,7 +51,7 @@ const templateTypes = {
MatInputModule, MatInputModule,
ReactiveFormsModule, ReactiveFormsModule,
MatChipsModule, MatChipsModule,
MatIconModule, IconModule,
FormsModule, FormsModule,
MatButtonModule, MatButtonModule,
MatSnackBarModule MatSnackBarModule
@@ -7,7 +7,7 @@
[disabled]="link.model?.disabled" [disabled]="link.model?.disabled"
[title]="link.model?.tooltip | translate" [title]="link.model?.tooltip | translate"
(click)="onMenuItemClick($event, link)"> (click)="onMenuItemClick($event, link)">
<mat-icon *ngIf="link.model?.icon">{{ link.model.icon }}</mat-icon> <mat-icon *ngIf="link.model?.icon" [adf-icon]="link.model.icon" />
<span>{{ link.title || link.model?.title | translate }}</span> <span>{{ link.title || link.model?.title | translate }}</span>
</button> </button>
</ng-container> </ng-container>
@@ -22,10 +22,10 @@ import { ContextMenuOverlayRef } from './context-menu-overlay';
import { contextMenuAnimation } from './animations'; import { contextMenuAnimation } from './animations';
import { CONTEXT_MENU_DATA } from './context-menu.tokens'; import { CONTEXT_MENU_DATA } from './context-menu.tokens';
import { AfterViewInit, Component, HostListener, Inject, Optional, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core'; import { AfterViewInit, Component, HostListener, Inject, Optional, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { NgForOf, NgIf } from '@angular/common'; import { NgForOf, NgIf } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes'; import { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';
import { IconModule } from '../icon/icon.module';
@Component({ @Component({
selector: 'adf-context-menu', selector: 'adf-context-menu',
@@ -36,7 +36,7 @@ import { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';
class: 'adf-context-menu' class: 'adf-context-menu'
}, },
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
imports: [MatIconModule, MatMenuModule, NgForOf, NgIf, TranslatePipe], imports: [IconModule, MatMenuModule, NgForOf, NgIf, TranslatePipe],
animations: [trigger('panelAnimation', contextMenuAnimation)] animations: [trigger('panelAnimation', contextMenuAnimation)]
}) })
export class ContextMenuListComponent implements AfterViewInit { export class ContextMenuListComponent implements AfterViewInit {
@@ -16,17 +16,14 @@
[attr.aria-label]="'CLOSE' | translate" [attr.aria-label]="'CLOSE' | translate"
(click)="closeMenu()" (click)="closeMenu()"
> >
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</div> </div>
<mat-divider class="adf-columns-selector-divider" /> <mat-divider class="adf-columns-selector-divider" />
<div class="adf-columns-selector-search-input-container"> <div class="adf-columns-selector-search-input-container">
<mat-icon <mat-icon class="adf-columns-selector-search-input-icon" adf-icon="search" />
class="adf-columns-selector-search-input-icon">
search
</mat-icon>
<input <input
[formControl]="searchInputControl" [formControl]="searchInputControl"
@@ -23,12 +23,12 @@ import { DataColumn } from '../../data/data-column.model';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatDividerModule } from '@angular/material/divider'; import { MatDividerModule } from '@angular/material/divider';
import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatCheckboxModule } from '@angular/material/checkbox';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { ColumnsSearchFilterPipe } from './columns-search-filter.pipe'; import { ColumnsSearchFilterPipe } from './columns-search-filter.pipe';
import { MatListOption, MatSelectionList, MatSelectionListChange } from '@angular/material/list'; import { MatListOption, MatSelectionList, MatSelectionListChange } from '@angular/material/list';
import { IconModule } from '../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-datatable-column-selector', selector: 'adf-datatable-column-selector',
@@ -36,7 +36,7 @@ import { MatListOption, MatSelectionList, MatSelectionListChange } from '@angula
CommonModule, CommonModule,
TranslatePipe, TranslatePipe,
MatButtonModule, MatButtonModule,
MatIconModule, IconModule,
MatDividerModule, MatDividerModule,
ReactiveFormsModule, ReactiveFormsModule,
MatCheckboxModule, MatCheckboxModule,
@@ -163,7 +163,7 @@
#mainMenuTrigger="matMenuTrigger" #mainMenuTrigger="matMenuTrigger"
(click)="onMainMenuOpen()" (click)="onMainMenuOpen()"
[matMenuTriggerFor]="mainMenu"> [matMenuTriggerFor]="mainMenu">
<mat-icon>view_week_outline</mat-icon> <mat-icon adf-icon="view_week_outline" />
</button> </button>
<mat-menu #mainMenu (closed)="onMainMenuClosed()"> <mat-menu #mainMenu (closed)="onMainMenuClosed()">
<div #mainMenuTemplate role="presentation" (keydown.tab)="$event.stopPropagation()"> <div #mainMenuTemplate role="presentation" (keydown.tab)="$event.stopPropagation()">
@@ -213,7 +213,7 @@
class="adf-datatable-cell adf-datatable__actions-cell adf-datatable-hover-only"> class="adf-datatable-cell adf-datatable__actions-cell adf-datatable-hover-only">
<button mat-icon-button <button mat-icon-button
[attr.aria-label]="'ADF-DATATABLE.ACCESSIBILITY.DRAG' | translate"> [attr.aria-label]="'ADF-DATATABLE.ACCESSIBILITY.DRAG' | translate">
<mat-icon>drag_indicator</mat-icon> <mat-icon adf-icon="drag_indicator" />
</button> </button>
</div> </div>
@@ -224,14 +224,14 @@
[title]="'ADF-DATATABLE.CONTENT-ACTIONS.TOOLTIP' | translate" [title]="'ADF-DATATABLE.CONTENT-ACTIONS.TOOLTIP' | translate"
[attr.id]="'action_menu_left_' + idx" [attr.id]="'action_menu_left_' + idx"
[attr.data-automation-id]="'action_menu_' + idx"> [attr.data-automation-id]="'action_menu_' + idx">
<mat-icon>more_vert</mat-icon> <mat-icon adf-icon="more_vert" />
</button> </button>
<mat-menu #menu="matMenu"> <mat-menu #menu="matMenu">
<button mat-menu-item *ngFor="let action of getRowActions(row)" <button mat-menu-item *ngFor="let action of getRowActions(row)"
[attr.data-automation-id]="action.title" [attr.data-automation-id]="action.title"
[disabled]="action.disabled" [disabled]="action.disabled"
(click)="onExecuteRowAction(row, action)"> (click)="onExecuteRowAction(row, action)">
<mat-icon *ngIf="action.icon">{{ action.icon }}</mat-icon> <mat-icon *ngIf="action.icon" [adf-icon]="action.icon" />
<span>{{ action.title | translate }}</span> <span>{{ action.title | translate }}</span>
</button> </button>
</mat-menu> </mat-menu>
@@ -282,9 +282,9 @@
<mat-icon <mat-icon
[attr.aria-label]="col.srTitle? (col.srTitle | translate) : null" [attr.aria-label]="col.srTitle? (col.srTitle | translate) : null"
[attr.aria-hidden]="!asIconValue(row, col)" [attr.aria-hidden]="!asIconValue(row, col)"
*ngIf="isIconValue(row, col); else no_iconvalue"> *ngIf="isIconValue(row, col); else no_iconvalue"
{{ asIconValue(row, col) }} [adf-icon]="asIconValue(row, col)"
</mat-icon> />
<ng-template #no_iconvalue> <ng-template #no_iconvalue>
<mat-icon class="adf-datatable-selected" <mat-icon class="adf-datatable-selected"
*ngIf="row.isSelected && !multiselect; else no_selected_row" svgIcon="selected" /> *ngIf="row.isSelected && !multiselect; else no_selected_row" svgIcon="selected" />
@@ -427,7 +427,7 @@
[attr.id]="'action_menu_right_' + idx" [attr.id]="'action_menu_right_' + idx"
[attr.data-automation-id]="'action_menu_' + idx" [attr.data-automation-id]="'action_menu_' + idx"
(keydown.enter)="actionsMenuTrigger.openMenu()"> (keydown.enter)="actionsMenuTrigger.openMenu()">
<mat-icon>more_vert</mat-icon> <mat-icon adf-icon="more_vert" />
</button> </button>
<mat-menu #menu="matMenu"> <mat-menu #menu="matMenu">
<button mat-menu-item *ngFor="let action of getRowActions(row)" <button mat-menu-item *ngFor="let action of getRowActions(row)"
@@ -435,7 +435,7 @@
[attr.aria-label]="action.title | translate" [attr.aria-label]="action.title | translate"
[disabled]="action.disabled" [disabled]="action.disabled"
(click)="onExecuteRowAction(row, action)"> (click)="onExecuteRowAction(row, action)">
<mat-icon *ngIf="action.icon">{{ action.icon }}</mat-icon> <mat-icon *ngIf="action.icon" [adf-icon]="action.icon" />
<span>{{ action.title | translate }}</span> <span>{{ action.title | translate }}</span>
</button> </button>
</mat-menu> </mat-menu>
@@ -60,7 +60,7 @@ import { DataCellEvent } from '../data-cell.event';
import { DataRowActionEvent } from '../data-row-action.event'; import { DataRowActionEvent } from '../data-row-action.event';
import { buffer, debounceTime, filter, map, share } from 'rxjs/operators'; import { buffer, debounceTime, filter, map, share } from 'rxjs/operators';
import { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop'; import { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
import { MatIconModule, MatIconRegistry } from '@angular/material/icon'; import { MatIconRegistry } from '@angular/material/icon';
import { DomSanitizer } from '@angular/platform-browser'; import { DomSanitizer } from '@angular/platform-browser';
import { ResizeEvent } from '../../directives/resizable/types'; import { ResizeEvent } from '../../directives/resizable/types';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
@@ -83,6 +83,7 @@ import { JsonCellComponent } from '../json-cell/json-cell.component';
import { AmountCellComponent } from '../amount-cell/amount-cell.component'; import { AmountCellComponent } from '../amount-cell/amount-cell.component';
import { NumberCellComponent } from '../number-cell/number-cell.component'; import { NumberCellComponent } from '../number-cell/number-cell.component';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../../../icon/icon.module';
// eslint-disable-next-line no-shadow // eslint-disable-next-line no-shadow
export enum ShowHeaderMode { export enum ShowHeaderMode {
@@ -107,7 +108,7 @@ export enum ShowHeaderMode {
ResizeHandleDirective, ResizeHandleDirective,
MatButtonModule, MatButtonModule,
MatMenuModule, MatMenuModule,
MatIconModule, IconModule,
UploadDirective, UploadDirective,
ContextMenuDirective, ContextMenuDirective,
FileTypePipe, FileTypePipe,
@@ -16,17 +16,17 @@
*/ */
import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed } from '@angular/core'; import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { DataTableCellComponent } from '../datatable-cell/datatable-cell.component'; import { DataTableCellComponent } from '../datatable-cell/datatable-cell.component';
import { toSignal } from '@angular/core/rxjs-interop'; import { toSignal } from '@angular/core/rxjs-interop';
import { IconModule } from '../../../icon/icon.module';
@Component({ @Component({
imports: [MatIconModule], imports: [IconModule],
selector: 'adf-icon-cell', selector: 'adf-icon-cell',
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
template: ` template: `
@if (icon()) { @if (icon()) {
<mat-icon [title]="title()" aria-hidden="true">{{ icon() }}</mat-icon> <mat-icon [title]="title()" aria-hidden="true" [adf-icon]="icon()" />
} }
`, `,
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
@@ -13,9 +13,8 @@
*ngIf="data.headerIcon" *ngIf="data.headerIcon"
color="primary" color="primary"
class="adf-dialog-header-icon" class="adf-dialog-header-icon"
> [adf-icon]="data.headerIcon"
{{ data.headerIcon }} />
</mat-icon>
<h2 class="adf-dialog-title">{{ data.title | translate }}</h2> <h2 class="adf-dialog-title">{{ data.title | translate }}</h2>
</div> </div>
<button <button
@@ -25,7 +24,7 @@
title="{{'CLOSE' | translate }}" title="{{'CLOSE' | translate }}"
data-automation-id="adf-dialog-close-button" data-automation-id="adf-dialog-close-button"
> >
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</div> </div>
@@ -22,9 +22,9 @@ import { BehaviorSubject } from 'rxjs';
import { DialogSize, DialogSizes } from './dialog.model'; import { DialogSize, DialogSizes } from './dialog.model';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../../icon/icon.module';
export const DIALOG_COMPONENT_DATA = new InjectionToken<any>('dialog component data'); export const DIALOG_COMPONENT_DATA = new InjectionToken<any>('dialog component data');
@@ -32,7 +32,7 @@ export const DIALOG_COMPONENT_DATA = new InjectionToken<any>('dialog component d
selector: 'adf-dialog', selector: 'adf-dialog',
templateUrl: './dialog.component.html', templateUrl: './dialog.component.html',
styleUrls: ['./dialog.component.scss'], styleUrls: ['./dialog.component.scss'],
imports: [CommonModule, TranslatePipe, MatIconModule, MatDialogModule, MatButtonModule], imports: [CommonModule, TranslatePipe, IconModule, MatDialogModule, MatButtonModule],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
}) })
export class DialogComponent { export class DialogComponent {
@@ -6,7 +6,7 @@
mat-icon-button mat-icon-button
[title]="'CLOSE' | translate" [title]="'CLOSE' | translate"
[mat-dialog-close]="false"> [mat-dialog-close]="false">
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</h1> </h1>
<mat-dialog-content class="adf-unsaved-changes-dialog-content"> <mat-dialog-content class="adf-unsaved-changes-dialog-content">
@@ -22,10 +22,10 @@ import { MatCheckboxChange, MatCheckboxModule } from '@angular/material/checkbox
import { ReactiveFormsModule } from '@angular/forms'; import { ReactiveFormsModule } from '@angular/forms';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { UserPreferencesService } from '../../common'; import { UserPreferencesService } from '../../common';
import { AppConfigValues } from '../../app-config'; import { AppConfigValues } from '../../app-config';
import { IconModule } from '../../icon/icon.module';
/** /**
* Dialog which informs about unsaved changes. Allows discard them and proceed or close dialog and stop proceeding. * Dialog which informs about unsaved changes. Allows discard them and proceed or close dialog and stop proceeding.
@@ -41,12 +41,15 @@ import { AppConfigValues } from '../../app-config';
templateUrl: './unsaved-changes-dialog.component.html', templateUrl: './unsaved-changes-dialog.component.html',
styleUrls: ['./unsaved-changes-dialog.component.scss'], styleUrls: ['./unsaved-changes-dialog.component.scss'],
host: { class: 'adf-unsaved-changes-dialog' }, host: { class: 'adf-unsaved-changes-dialog' },
imports: [MatDialogModule, TranslatePipe, MatButtonModule, MatIconModule, CommonModule, MatCheckboxModule, ReactiveFormsModule] imports: [MatDialogModule, TranslatePipe, MatButtonModule, IconModule, CommonModule, MatCheckboxModule, ReactiveFormsModule]
}) })
export class UnsavedChangesDialogComponent implements OnInit { export class UnsavedChangesDialogComponent implements OnInit {
dialogData: UnsavedChangesDialogData; dialogData: UnsavedChangesDialogData;
constructor(@Inject(MAT_DIALOG_DATA) public data: UnsavedChangesDialogData, private userPreferencesService: UserPreferencesService) {} constructor(
@Inject(MAT_DIALOG_DATA) public data: UnsavedChangesDialogData,
private userPreferencesService: UserPreferencesService
) {}
ngOnInit() { ngOnInit() {
this.dialogData = { this.dialogData = {
@@ -18,13 +18,14 @@
[attr.aria-label]="chip.name" [attr.aria-label]="chip.name"
(removed)="removedChip.emit(chip.id)"> (removed)="removedChip.emit(chip.id)">
<span id="adf-dynamic-chip-list-chip-name-{{ idx }}">{{ chip.name }}</span> <span id="adf-dynamic-chip-list-chip-name-{{ idx }}">{{ chip.name }}</span>
<mat-icon *ngIf="showDelete" <mat-icon
id="adf-dynamic-chip-list-delete-{{ chip.name }}" *ngIf="showDelete"
class="adf-dynamic-chip-list-delete-icon" id="adf-dynamic-chip-list-delete-{{ chip.name }}"
[disabled]="disableDelete" class="adf-dynamic-chip-list-delete-icon"
matChipRemove> [disabled]="disableDelete"
close adf-icon="close"
</mat-icon> matChipRemove
/>
</mat-chip> </mat-chip>
</mat-chip-set> </mat-chip-set>
<button <button
@@ -36,9 +36,9 @@ import {
} from '@angular/core'; } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatChip, MatChipsModule } from '@angular/material/chips'; import { MatChip, MatChipsModule } from '@angular/material/chips';
import { MatIconModule } from '@angular/material/icon';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { Chip } from './chip'; import { Chip } from './chip';
import { IconModule } from '../icon/icon.module';
/** /**
* This component shows dynamic list of chips which render depending on free space. * This component shows dynamic list of chips which render depending on free space.
@@ -47,7 +47,7 @@ import { Chip } from './chip';
selector: 'adf-dynamic-chip-list', selector: 'adf-dynamic-chip-list',
templateUrl: './dynamic-chip-list.component.html', templateUrl: './dynamic-chip-list.component.html',
styleUrls: ['./dynamic-chip-list.component.scss'], styleUrls: ['./dynamic-chip-list.component.scss'],
imports: [MatChipsModule, TranslatePipe, NgForOf, MatIconModule, NgIf, MatButtonModule], imports: [MatChipsModule, TranslatePipe, NgForOf, IconModule, NgIf, MatButtonModule],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
}) })
export class DynamicChipListComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy { export class DynamicChipListComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy {
@@ -95,7 +95,7 @@
[matTooltip]="'FORM.FORM_RENDERER.DELETE_ROW' | translate" [matTooltip]="'FORM.FORM_RENDERER.DELETE_ROW' | translate"
(click)="displayDialogToRemoveRow(currentRootElement.field, rowIndex)" (click)="displayDialogToRemoveRow(currentRootElement.field, rowIndex)"
> >
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
} }
</div> </div>
@@ -19,7 +19,6 @@ import { NgClass, NgForOf, NgIf, NgStyle, NgTemplateOutlet } from '@angular/comm
import { ChangeDetectorRef, Component, Inject, inject, Injector, Input, OnDestroy, OnInit, Optional, ViewEncapsulation } from '@angular/core'; import { ChangeDetectorRef, Component, Inject, inject, Injector, Input, OnDestroy, OnInit, Optional, ViewEncapsulation } from '@angular/core';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatTabsModule } from '@angular/material/tabs'; import { MatTabsModule } from '@angular/material/tabs';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { FormRulesManager, formRulesManagerFactory } from '../models/form-rules.model'; import { FormRulesManager, formRulesManagerFactory } from '../models/form-rules.model';
@@ -33,6 +32,7 @@ import { DecimalRenderMiddlewareService } from './middlewares/decimal-middleware
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { ConfirmDialogComponent } from '../../../lib/dialogs/confirm-dialog/confirm.dialog'; import { ConfirmDialogComponent } from '../../../lib/dialogs/confirm-dialog/confirm.dialog';
import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTooltipModule } from '@angular/material/tooltip';
import { IconModule } from '../../icon/icon.module';
@Component({ @Component({
selector: 'adf-form-renderer', selector: 'adf-form-renderer',
@@ -57,7 +57,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
NgTemplateOutlet, NgTemplateOutlet,
TranslatePipe, TranslatePipe,
MatButtonModule, MatButtonModule,
MatIconModule, IconModule,
NgStyle, NgStyle,
FormFieldComponent, FormFieldComponent,
FormsModule, FormsModule,
@@ -1,10 +1,10 @@
<div class="adf-error-container adf-error-widget-container"> <div class="adf-error-container adf-error-widget-container">
<div *ngIf="error?.isActive()" [@transitionMessages]="subscriptAnimationState" class="adf-error"> <div *ngIf="error?.isActive()" [@transitionMessages]="subscriptAnimationState" class="adf-error">
<mat-icon class="adf-error-icon">error_outline</mat-icon> <mat-icon class="adf-error-icon" adf-icon="error_outline" />
<div class="adf-error-text">{{ error.message | translate:translateParameters }}</div> <div class="adf-error-text">{{ error.message | translate:translateParameters }}</div>
</div> </div>
<div *ngIf="required" [@transitionMessages]="subscriptAnimationState" class="adf-error"> <div *ngIf="required" [@transitionMessages]="subscriptAnimationState" class="adf-error">
<mat-icon class="adf-error-icon">error_outline</mat-icon> <mat-icon class="adf-error-icon" adf-icon="error_outline" />
<div class="adf-error-text">{{ required }}</div> <div class="adf-error-text">{{ required }}</div>
</div> </div>
</div> </div>
@@ -20,11 +20,11 @@
import { animate, state, style, transition, trigger } from '@angular/animations'; import { animate, state, style, transition, trigger } from '@angular/animations';
import { NgIf } from '@angular/common'; import { NgIf } from '@angular/common';
import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core'; import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { FormService } from '../../../services/form.service'; import { FormService } from '../../../services/form.service';
import { ErrorMessageModel } from '../core'; import { ErrorMessageModel } from '../core';
import { WidgetComponent } from '../widget.component'; import { WidgetComponent } from '../widget.component';
import { IconModule } from '../../../../icon/icon.module';
@Component({ @Component({
selector: 'error-widget', selector: 'error-widget',
@@ -53,7 +53,7 @@ import { WidgetComponent } from '../widget.component';
'(invalid)': 'event($event)', '(invalid)': 'event($event)',
'(select)': 'event($event)' '(select)': 'event($event)'
}, },
imports: [NgIf, MatIconModule, TranslatePipe], imports: [NgIf, IconModule, TranslatePipe],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
}) })
export class ErrorWidgetComponent extends WidgetComponent implements OnChanges { export class ErrorWidgetComponent extends WidgetComponent implements OnChanges {
@@ -30,7 +30,7 @@
class="mdl-button--icon" class="mdl-button--icon"
(click)="onExpanderClicked(element)" (click)="onExpanderClicked(element)"
> >
<mat-icon> {{ element?.isExpanded ? 'expand_more' : 'expand_less' }} </mat-icon> <mat-icon [adf-icon]="element?.isExpanded ? 'expand_more' : 'expand_less'" />
</button> </button>
} }
</ng-template> </ng-template>
@@ -18,17 +18,17 @@
import { Component, Input, ViewEncapsulation } from '@angular/core'; import { Component, Input, ViewEncapsulation } from '@angular/core';
import { ContainerModel } from '../core/container.model'; import { ContainerModel } from '../core/container.model';
import { FieldStylePipe } from './../../../pipes/field-style.pipe'; import { FieldStylePipe } from './../../../pipes/field-style.pipe';
import { MatIconModule } from '@angular/material/icon';
import { NgTemplateOutlet } from '@angular/common'; import { NgTemplateOutlet } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { IconModule } from '../../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-header-widget', selector: 'adf-header-widget',
templateUrl: './header.widget.html', templateUrl: './header.widget.html',
styleUrls: ['./header.widget.scss'], styleUrls: ['./header.widget.scss'],
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
imports: [FieldStylePipe, MatIconModule, MatButtonModule, TranslatePipe, NgTemplateOutlet] imports: [FieldStylePipe, IconModule, MatButtonModule, TranslatePipe, NgTemplateOutlet]
}) })
export class HeaderWidgetComponent { export class HeaderWidgetComponent {
@Input() element: ContainerModel; @Input() element: ContainerModel;
@@ -20,7 +20,7 @@
[disabled]="element.field.readOnly" [disabled]="element.field.readOnly"
(click)="addRow()" (click)="addRow()"
> >
<mat-icon>add</mat-icon> {{ 'FORM.FIELD.REPEATABLE_SECTION.ADD_ROW' | translate }} <mat-icon adf-icon="add" /> {{ 'FORM.FIELD.REPEATABLE_SECTION.ADD_ROW' | translate }}
</button> </button>
} @else { } @else {
<span class="adf-container-widget-row-action adf-container-widget-row-limit">{{ 'FORM.FIELD.REPEATABLE_SECTION.ROW_LIMIT_REACHED' | translate: { limit: element.field.params.maxNumberOfRows } }}</span> <span class="adf-container-widget-row-action adf-container-widget-row-limit">{{ 'FORM.FIELD.REPEATABLE_SECTION.ROW_LIMIT_REACHED' | translate: { limit: element.field.params.maxNumberOfRows } }}</span>
@@ -17,17 +17,17 @@
import { Component, Input, ViewEncapsulation } from '@angular/core'; import { Component, Input, ViewEncapsulation } from '@angular/core';
import { FieldStylePipe } from '../../../pipes/field-style.pipe'; import { FieldStylePipe } from '../../../pipes/field-style.pipe';
import { MatIconModule } from '@angular/material/icon';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { ContainerModel } from '../core/container.model'; import { ContainerModel } from '../core/container.model';
import { IconModule } from '../../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-repeat-widget', selector: 'adf-repeat-widget',
templateUrl: './repeat.widget.html', templateUrl: './repeat.widget.html',
styleUrls: ['./repeat.widget.scss'], styleUrls: ['./repeat.widget.scss'],
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
imports: [FieldStylePipe, MatIconModule, MatButtonModule, TranslatePipe] imports: [FieldStylePipe, IconModule, MatButtonModule, TranslatePipe]
}) })
export class RepeatWidgetComponent { export class RepeatWidgetComponent {
@Input() element: ContainerModel; @Input() element: ContainerModel;
@@ -18,17 +18,17 @@
/* eslint-disable @angular-eslint/component-selector */ /* eslint-disable @angular-eslint/component-selector */
import { Component, ViewEncapsulation } from '@angular/core'; import { Component, ViewEncapsulation } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { MatListModule } from '@angular/material/list'; import { MatListModule } from '@angular/material/list';
import { FormService } from '../../../services/form.service'; import { FormService } from '../../../services/form.service';
import { WidgetComponent } from '../widget.component'; import { WidgetComponent } from '../widget.component';
import { IconModule } from '../../../../icon/icon.module';
@Component({ @Component({
selector: 'unknown-widget', selector: 'unknown-widget',
template: ` template: `
<mat-list class="adf-unknown-widget"> <mat-list class="adf-unknown-widget">
<mat-list-item> <mat-list-item>
<mat-icon class="mat-24">error_outline</mat-icon> <mat-icon class="mat-24" adf-icon="error_outline" />
<span class="adf-unknown-text">Unknown type: {{ field.type }}</span> <span class="adf-unknown-text">Unknown type: {{ field.type }}</span>
</mat-list-item> </mat-list-item>
</mat-list> </mat-list>
@@ -45,7 +45,7 @@ import { WidgetComponent } from '../widget.component';
'(invalid)': 'event($event)', '(invalid)': 'event($event)',
'(select)': 'event($event)' '(select)': 'event($event)'
}, },
imports: [MatListModule, MatIconModule], imports: [MatListModule, IconModule],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
}) })
export class UnknownWidgetComponent extends WidgetComponent { export class UnknownWidgetComponent extends WidgetComponent {
@@ -0,0 +1,28 @@
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Component } from '@angular/core';
import { IconModule } from './icon.module';
@Component({
template: `<mat-icon [adf-icon]="name" />`,
standalone: true,
imports: [IconModule]
})
export class IconComponent {
name: string;
}
+7 -18
View File
@@ -15,36 +15,25 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { IconDirective } from './icon.directive';
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { IconType, MatIconHarness, MatIconTestingModule } from '@angular/material/icon/testing'; import { IconType, MatIconHarness, MatIconTestingModule } from '@angular/material/icon/testing';
import { HarnessLoader } from '@angular/cdk/testing'; import { HarnessLoader } from '@angular/cdk/testing';
import { ICON_ALIAS_MAP_TOKEN } from './icon-alias-map.token'; import { ICON_ALIAS_MAP_TOKEN } from './icon-alias-map.token';
import { IconComponent } from './icon.component.mock';
@Component({
template: `<mat-icon adf-icon [name]="name" />`,
standalone: true,
imports: [MatIconModule, IconDirective]
})
class TestComponent {
name: string;
}
describe('IconDirective', () => { describe('IconDirective', () => {
let fixture: ComponentFixture<TestComponent>; let fixture: ComponentFixture<IconComponent>;
let component: TestComponent; let component: IconComponent;
let loader: HarnessLoader; let loader: HarnessLoader;
describe('alias map NOT provided', () => { describe('alias map NOT provided', () => {
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [TestComponent, MatIconTestingModule] imports: [IconComponent, MatIconTestingModule]
}); });
fixture = TestBed.createComponent(TestComponent); fixture = TestBed.createComponent(IconComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
loader = TestbedHarnessEnvironment.loader(fixture); loader = TestbedHarnessEnvironment.loader(fixture);
}); });
@@ -62,7 +51,7 @@ describe('IconDirective', () => {
describe('alias map provided', () => { describe('alias map provided', () => {
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [TestComponent, MatIconTestingModule], imports: [IconComponent, MatIconTestingModule],
providers: [ providers: [
{ {
provide: ICON_ALIAS_MAP_TOKEN, provide: ICON_ALIAS_MAP_TOKEN,
@@ -73,7 +62,7 @@ describe('IconDirective', () => {
] ]
}); });
fixture = TestBed.createComponent(TestComponent); fixture = TestBed.createComponent(IconComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
loader = TestbedHarnessEnvironment.loader(fixture); loader = TestbedHarnessEnvironment.loader(fixture);
}); });
+6 -5
View File
@@ -16,18 +16,19 @@
*/ */
import { Directive, ElementRef, inject, Input, OnChanges } from '@angular/core'; import { Directive, ElementRef, inject, Input, OnChanges } from '@angular/core';
import { ICON_ALIAS_MAP_TOKEN } from './icon-alias-map.token';
import { MatIcon } from '@angular/material/icon'; import { MatIcon } from '@angular/material/icon';
import { ICON_ALIAS_MAP_TOKEN } from './icon-alias-map.token';
@Directive({ @Directive({
selector: 'mat-icon[adf-icon]' selector: 'mat-icon[adf-icon]',
standalone: false
}) })
export class IconDirective implements OnChanges { export class IconDirective implements OnChanges {
private readonly matIcon = inject(MatIcon); private readonly matIcon = inject(MatIcon);
private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef); private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);
private readonly aliasMap = inject(ICON_ALIAS_MAP_TOKEN, { optional: true }); private readonly aliasMap = inject(ICON_ALIAS_MAP_TOKEN, { optional: true });
@Input() name: string; @Input('adf-icon') name: string;
ngOnChanges() { ngOnChanges() {
const iconAlias = this.aliasMap?.[this.name]; const iconAlias = this.aliasMap?.[this.name];
@@ -40,7 +41,7 @@ export class IconDirective implements OnChanges {
} }
private appendLigatureText() { private appendLigatureText() {
this.resetSvg(); this.resetSvgIcon();
const element = this.elementRef.nativeElement; const element = this.elementRef.nativeElement;
const textNode = this.findTextNode(element); const textNode = this.findTextNode(element);
@@ -56,7 +57,7 @@ export class IconDirective implements OnChanges {
return Array.from(element.childNodes).find((node: ChildNode) => node.nodeType === Node.TEXT_NODE); return Array.from(element.childNodes).find((node: ChildNode) => node.nodeType === Node.TEXT_NODE);
} }
private resetSvg() { private resetSvgIcon() {
this.matIcon.svgIcon = null; this.matIcon.svgIcon = null;
} }
} }
+27
View File
@@ -0,0 +1,27 @@
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { IconDirective } from './icon.directive';
@NgModule({
declarations: [IconDirective],
imports: [MatIconModule],
exports: [MatIconModule, IconDirective]
})
export class IconModule {}
+2 -1
View File
@@ -16,6 +16,7 @@
*/ */
export * from './icon.component'; export * from './icon.component';
export * from './icon-alias-map.type';
export * from './icon-alias-map.token'; export * from './icon-alias-map.token';
export * from './icon-alias-map.type';
export * from './icon.directive'; export * from './icon.directive';
export * from './icon.module';
@@ -18,7 +18,7 @@
class="adf-info-drawer-tab"> class="adf-info-drawer-tab">
<ng-template mat-tab-label> <ng-template mat-tab-label>
<mat-icon *ngIf="contentBlock.icon">{{ contentBlock.icon }}</mat-icon> <mat-icon *ngIf="contentBlock.icon" [adf-icon]="contentBlock.icon" />
<span *ngIf="contentBlock.label">{{ contentBlock.label | translate }}</span> <span *ngIf="contentBlock.label">{{ contentBlock.label | translate }}</span>
</ng-template> </ng-template>
@@ -36,7 +36,7 @@ import {
InfoDrawerTitleDirective InfoDrawerTitleDirective
} from './info-drawer-layout.component'; } from './info-drawer-layout.component';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon'; import { IconModule } from '../icon/icon.module';
@Component({ @Component({
selector: 'adf-info-drawer-tab', selector: 'adf-info-drawer-tab',
@@ -63,7 +63,7 @@ export class InfoDrawerTabComponent {
InfoDrawerLayoutComponent, InfoDrawerLayoutComponent,
TranslatePipe, TranslatePipe,
MatTabsModule, MatTabsModule,
MatIconModule, IconModule,
InfoDrawerButtonsDirective, InfoDrawerButtonsDirective,
InfoDrawerTitleDirective, InfoDrawerTitleDirective,
InfoDrawerContentDirective, InfoDrawerContentDirective,
@@ -21,14 +21,14 @@ import { CommonModule } from '@angular/common';
import { MatMenu, MatMenuItem, MatMenuModule } from '@angular/material/menu'; import { MatMenu, MatMenuItem, MatMenuModule } from '@angular/material/menu';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { LanguageMenuComponent } from './language-menu.component'; import { LanguageMenuComponent } from './language-menu.component';
import { MatIconModule } from '@angular/material/icon'; import { IconModule } from '../icon/icon.module';
@Component({ @Component({
selector: 'adf-picker-button', selector: 'adf-picker-button',
imports: [CommonModule, MatMenuModule, TranslatePipe, LanguageMenuComponent, MatIconModule], imports: [CommonModule, MatMenuModule, TranslatePipe, LanguageMenuComponent, IconModule],
template: ` template: `
<button mat-menu-item [matMenuTriggerFor]="langMenu"> <button mat-menu-item [matMenuTriggerFor]="langMenu">
<mat-icon>language</mat-icon> <mat-icon adf-icon="language" />
{{ 'ADF.LANGUAGE' | translate }} {{ 'ADF.LANGUAGE' | translate }}
</button> </button>
<mat-menu #langMenu="matMenu"> <mat-menu #langMenu="matMenu">
@@ -12,11 +12,7 @@
(click)="toggleMenu()" (click)="toggleMenu()"
[attr.aria-expanded]="expandedSidenav" [attr.aria-expanded]="expandedSidenav"
[attr.aria-label]="'CORE.HEADER.ACCESSIBILITY.SIDEBAR_TOGGLE_BUTTON_ARIA_LABEL' | translate"> [attr.aria-label]="'CORE.HEADER.ACCESSIBILITY.SIDEBAR_TOGGLE_BUTTON_ARIA_LABEL' | translate">
<mat-icon <mat-icon class="adf-menu-icon-header" role="img" aria-hidden="true" [adf-icon]="toggleIcon" />
class="adf-menu-icon-header"
role="img"
aria-hidden="true">{{ toggleIcon }}
</mat-icon>
</button> </button>
<a *ngIf="showLogo" [routerLink]="redirectUrl" title="{{ tooltip }}"> <a *ngIf="showLogo" [routerLink]="redirectUrl" title="{{ tooltip }}">
@@ -47,10 +43,6 @@
(click)="toggleMenu()" (click)="toggleMenu()"
[attr.aria-expanded]="expandedSidenav" [attr.aria-expanded]="expandedSidenav"
[attr.aria-label]="'CORE.HEADER.ACCESSIBILITY.SIDEBAR_TOGGLE_BUTTON_ARIA_LABEL' | translate"> [attr.aria-label]="'CORE.HEADER.ACCESSIBILITY.SIDEBAR_TOGGLE_BUTTON_ARIA_LABEL' | translate">
<mat-icon <mat-icon class="adf-menu-icon-header" role="img" aria-hidden="true" [adf-icon]="toggleIcon" />
class="adf-menu-icon-header"
role="img"
aria-hidden="true">{{ toggleIcon }}
</mat-icon>
</button> </button>
</mat-toolbar> </mat-toolbar>
@@ -21,13 +21,13 @@ import { AppConfigService } from '../../../app-config/app-config.service';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { MatToolbarModule } from '@angular/material/toolbar'; import { MatToolbarModule } from '@angular/material/toolbar';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { IconModule } from '../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-layout-header', selector: 'adf-layout-header',
imports: [CommonModule, MatToolbarModule, MatButtonModule, MatIconModule, RouterModule, TranslatePipe], imports: [CommonModule, MatToolbarModule, MatButtonModule, IconModule, RouterModule, TranslatePipe],
templateUrl: './header.component.html', templateUrl: './header.component.html',
styleUrls: ['./header.component.scss'], styleUrls: ['./header.component.scss'],
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
@@ -32,7 +32,7 @@
id="login-error" id="login-error"
data-automation-id="login-error" data-automation-id="login-error"
class="adf-error adf-error-message"> class="adf-error adf-error-message">
<mat-icon class="adf-error-icon">warning</mat-icon> <mat-icon class="adf-error-icon" adf-icon="warning" />
<span class="adf-login-error-message"> <span class="adf-login-error-message">
{{ errorMsg | translate }} {{ errorMsg | translate }}
</span> </span>
@@ -91,9 +91,7 @@
(click)="toggleShowPassword($event)" (click)="toggleShowPassword($event)"
(keyup.enter)="toggleShowPassword($event)" (keyup.enter)="toggleShowPassword($event)"
[attr.data-automation-id]="isPasswordShow ? 'hide_password' : 'show_password'"> [attr.data-automation-id]="isPasswordShow ? 'hide_password' : 'show_password'">
<mat-icon class="adf-login-form-password-icon adf-login-password-icon"> <mat-icon class="adf-login-form-password-icon adf-login-password-icon" [adf-icon]="isPasswordShow ? 'visibility' : 'visibility_off'" />
{{ isPasswordShow ? 'visibility' : 'visibility_off' }}
</mat-icon>
</button> </button>
</mat-form-field> </mat-form-field>
<span class="adf-login-validation" <span class="adf-login-validation"
@@ -142,7 +140,7 @@
<span class="adf-login-button-label"> <span class="adf-login-button-label">
{{ 'LOGIN.BUTTON.WELCOME' | translate }} {{ 'LOGIN.BUTTON.WELCOME' | translate }}
</span> </span>
<mat-icon class="adf-welcome-icon">done</mat-icon> <mat-icon class="adf-welcome-icon" adf-icon="done" />
</div> </div>
</button> </button>
<div *ngIf="showRememberMe" class="adf-login__remember-me"> <div *ngIf="showRememberMe" class="adf-login__remember-me">
@@ -22,7 +22,6 @@ import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card'; import { MatCardModule } from '@angular/material/card';
import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { ActivatedRoute, Params, Router } from '@angular/router'; import { ActivatedRoute, Params, Router } from '@angular/router';
@@ -37,6 +36,7 @@ import { LoginErrorEvent } from '../../models/login-error.event';
import { LoginSubmitEvent } from '../../models/login-submit.event'; import { LoginSubmitEvent } from '../../models/login-submit.event';
import { LoginSuccessEvent } from '../../models/login-success.event'; import { LoginSuccessEvent } from '../../models/login-success.event';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../../../icon/icon.module';
// eslint-disable-next-line no-shadow // eslint-disable-next-line no-shadow
enum LoginSteps { enum LoginSteps {
@@ -65,7 +65,7 @@ interface LoginFormValues {
MatCardModule, MatCardModule,
ReactiveFormsModule, ReactiveFormsModule,
TranslatePipe, TranslatePipe,
MatIconModule, IconModule,
MatFormFieldModule, MatFormFieldModule,
MatInputModule, MatInputModule,
MatButtonModule, MatButtonModule,
@@ -1,17 +1,14 @@
<button mat-button <button
[matMenuTriggerFor]="menu" mat-button
aria-hidden="false" [matMenuTriggerFor]="menu"
[attr.aria-label]="('NOTIFICATIONS.' + (notifications.length ? 'UNREAD_MESSAGES' : 'NO_MESSAGE') | translate) + ' ' + ('NOTIFICATIONS.OPEN_HISTORY' | translate)" aria-hidden="false"
title="{{ 'NOTIFICATIONS.OPEN_HISTORY' | translate }}" [attr.aria-label]="('NOTIFICATIONS.' + (notifications.length ? 'UNREAD_MESSAGES' : 'NO_MESSAGE') | translate) + ' ' + ('NOTIFICATIONS.OPEN_HISTORY' | translate)"
class="adf-notification-history-menu_button" title="{{ 'NOTIFICATIONS.OPEN_HISTORY' | translate }}"
id="adf-notification-history-open-button" class="adf-notification-history-menu_button"
(menuOpened)="onMenuOpened()"> id="adf-notification-history-open-button"
<mat-icon matBadge="&#8288;" (menuOpened)="onMenuOpened()"
[matBadgeHidden]="!notifications.length" >
class="adf-notification-history-menu_button-icon" <mat-icon matBadge="&#8288;" [matBadgeHidden]="!notifications.length" class="adf-notification-history-menu_button-icon" matBadgeColor="accent" matBadgeSize="small" adf-icon="notifications" />
matBadgeColor="accent"
matBadgeSize="small">notifications
</mat-icon>
</button> </button>
<mat-menu #menu="matMenu" <mat-menu #menu="matMenu"
@@ -29,7 +26,7 @@
(click)="markAsRead()" (click)="markAsRead()"
#markAsReadButton #markAsReadButton
(keydown)="manageFocus($event)"> (keydown)="manageFocus($event)">
<mat-icon class="adf-notification-history-mark-as-read-icon">done_all</mat-icon> <mat-icon class="adf-notification-history-mark-as-read-icon" adf-icon="done_all" />
</button> </button>
</div> </div>
@@ -46,9 +43,7 @@
<div *ngIf="notification.initiator; else no_avatar" <div *ngIf="notification.initiator; else no_avatar"
[outerHTML]="notification.initiator | usernameInitials : 'adf-notification-initiator-pic'"></div> [outerHTML]="notification.initiator | usernameInitials : 'adf-notification-initiator-pic'"></div>
<ng-template #no_avatar> <ng-template #no_avatar>
<mat-icon class="adf-notification-history-menu-initiator"> <mat-icon class="adf-notification-history-menu-initiator" [adf-icon]="notification.icon" />
{{ notification.icon }}
</mat-icon>
</ng-template> </ng-template>
<div class="adf-notification-history-menu-item-content-message"> <div class="adf-notification-history-menu-item-content-message">
<p class="adf-notification-history-menu-text adf-notification-history-menu-message" <p class="adf-notification-history-menu-text adf-notification-history-menu-message"
@@ -35,7 +35,6 @@ import { StorageService } from '../../common/services/storage.service';
import { PaginationModel } from '../../models/pagination.model'; import { PaginationModel } from '../../models/pagination.model';
import { MatButton, MatButtonModule, MatIconButton } from '@angular/material/button'; import { MatButton, MatButtonModule, MatIconButton } from '@angular/material/button';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
import { MatBadgeModule } from '@angular/material/badge'; import { MatBadgeModule } from '@angular/material/badge';
import { MatListModule } from '@angular/material/list'; import { MatListModule } from '@angular/material/list';
import { NgForOf, NgIf } from '@angular/common'; import { NgForOf, NgIf } from '@angular/common';
@@ -43,6 +42,7 @@ import { InitialUsernamePipe, TimeAgoPipe } from '../../pipes';
import { MatSnackBarModule } from '@angular/material/snack-bar'; import { MatSnackBarModule } from '@angular/material/snack-bar';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { FocusKeyManager } from '@angular/cdk/a11y'; import { FocusKeyManager } from '@angular/cdk/a11y';
import { IconModule } from '../../icon/icon.module';
@Component({ @Component({
selector: 'adf-notification-history', selector: 'adf-notification-history',
@@ -52,7 +52,7 @@ import { FocusKeyManager } from '@angular/cdk/a11y';
MatButtonModule, MatButtonModule,
MatMenuModule, MatMenuModule,
TranslatePipe, TranslatePipe,
MatIconModule, IconModule,
MatBadgeModule, MatBadgeModule,
MatListModule, MatListModule,
NgIf, NgIf,
@@ -18,7 +18,7 @@
mat-icon-button mat-icon-button
[attr.aria-label]="'CORE.PAGINATION.ARIA.ITEMS_PER_PAGE' | translate" [attr.aria-label]="'CORE.PAGINATION.ARIA.ITEMS_PER_PAGE' | translate"
[matMenuTriggerFor]="pageSizeMenu"> [matMenuTriggerFor]="pageSizeMenu">
<mat-icon>arrow_drop_down</mat-icon> <mat-icon adf-icon="arrow_drop_down" />
</button> </button>
<mat-menu #pageSizeMenu="matMenu" class="adf-pagination__page-selector"> <mat-menu #pageSizeMenu="matMenu" class="adf-pagination__page-selector">
@@ -42,7 +42,7 @@
[attr.aria-label]="'CORE.PAGINATION.ARIA.CURRENT_PAGE' | translate" [attr.aria-label]="'CORE.PAGINATION.ARIA.CURRENT_PAGE' | translate"
[matMenuTriggerFor]="pagesMenu" [matMenuTriggerFor]="pagesMenu"
*ngIf="lastPage > 1"> *ngIf="lastPage > 1">
<mat-icon>arrow_drop_down</mat-icon> <mat-icon adf-icon="arrow_drop_down" />
</button> </button>
<div *ngIf="pagination.totalItems"> <div *ngIf="pagination.totalItems">
@@ -68,7 +68,7 @@
[attr.aria-label]="'CORE.PAGINATION.ARIA.PREVIOUS_PAGE' | translate" [attr.aria-label]="'CORE.PAGINATION.ARIA.PREVIOUS_PAGE' | translate"
[disabled]="isFirstPage" [disabled]="isFirstPage"
(click)="goPrevious()"> (click)="goPrevious()">
<mat-icon>keyboard_arrow_left</mat-icon> <mat-icon adf-icon="keyboard_arrow_left" />
</button> </button>
<button <button
@@ -77,7 +77,7 @@
[attr.aria-label]="'CORE.PAGINATION.ARIA.NEXT_PAGE' | translate" [attr.aria-label]="'CORE.PAGINATION.ARIA.NEXT_PAGE' | translate"
[disabled]="isLastPage" [disabled]="isLastPage"
(click)="goNext()"> (click)="goNext()">
<mat-icon>keyboard_arrow_right</mat-icon> <mat-icon adf-icon="keyboard_arrow_right" />
</button> </button>
</div> </div>
</ng-container> </ng-container>
@@ -36,9 +36,9 @@ import { UserPreferencesService, UserPreferenceValues } from '../common/services
import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { TranslatePipe, TranslateService } from '@ngx-translate/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu'; import { MatMenuModule } from '@angular/material/menu';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../icon/icon.module';
export type PaginationAction = 'NEXT_PAGE' | 'PREV_PAGE' | 'CHANGE_PAGE_SIZE' | 'CHANGE_PAGE_NUMBER'; export type PaginationAction = 'NEXT_PAGE' | 'PREV_PAGE' | 'CHANGE_PAGE_SIZE' | 'CHANGE_PAGE_NUMBER';
@@ -57,7 +57,7 @@ export const DEFAULT_PAGINATION: PaginationModel = {
styleUrls: ['./pagination.component.scss'], styleUrls: ['./pagination.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
imports: [CommonModule, TranslatePipe, MatButtonModule, MatIconModule, MatMenuModule] imports: [CommonModule, TranslatePipe, MatButtonModule, IconModule, MatMenuModule]
}) })
export class PaginationComponent implements OnInit, PaginationComponentInterface { export class PaginationComponent implements OnInit, PaginationComponentInterface {
private _pagination: PaginationModel; private _pagination: PaginationModel;
@@ -10,7 +10,7 @@
[title]="'CORE.SEARCH.BUTTON.TOOLTIP' | translate" [title]="'CORE.SEARCH.BUTTON.TOOLTIP' | translate"
(click)="toggleSearchBar()" (click)="toggleSearchBar()"
(keyup.enter)="toggleSearchBar()"> (keyup.enter)="toggleSearchBar()">
<mat-icon [attr.aria-label]="'CORE.SEARCH.BUTTON.ARIA-LABEL' | translate">search</mat-icon> <mat-icon [attr.aria-label]="'CORE.SEARCH.BUTTON.ARIA-LABEL' | translate" adf-icon="search" />
</button> </button>
<mat-form-field class="adf-input-form-field-divider" [hintLabel]="hintLabel"> <mat-form-field class="adf-input-form-field-divider" [hintLabel]="hintLabel">
<mat-label *ngIf='label'>{{label}}</mat-label> <mat-label *ngIf='label'>{{label}}</mat-label>
@@ -37,7 +37,7 @@
[title]="'CORE.SEARCH.FILTER.BUTTONS.CLOSE' | translate" [title]="'CORE.SEARCH.FILTER.BUTTONS.CLOSE' | translate"
(click)="resetSearch()" (click)="resetSearch()"
(keyup.enter)="resetSearch()"> (keyup.enter)="resetSearch()">
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</mat-form-field> </mat-form-field>
</div> </div>
@@ -33,7 +33,6 @@ import {
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { Observable, Subject, Subscription } from 'rxjs'; import { Observable, Subject, Subscription } from 'rxjs';
@@ -43,6 +42,7 @@ import { searchAnimation } from './animations';
import { SearchAnimationDirection, SearchAnimationState, SearchTextStateEnum } from './models/search-text-input.model'; import { SearchAnimationDirection, SearchAnimationState, SearchTextStateEnum } from './models/search-text-input.model';
import { SearchTriggerDirective } from './search-trigger.directive'; import { SearchTriggerDirective } from './search-trigger.directive';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../icon/icon.module';
@Component({ @Component({
selector: 'adf-search-text-input', selector: 'adf-search-text-input',
@@ -50,7 +50,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
styleUrls: ['./search-text-input.component.scss'], styleUrls: ['./search-text-input.component.scss'],
animations: [searchAnimation], animations: [searchAnimation],
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
imports: [MatButtonModule, MatIconModule, TranslatePipe, MatFormFieldModule, MatInputModule, FormsModule, SearchTriggerDirective, NgIf, NgClass], imports: [MatButtonModule, IconModule, TranslatePipe, MatFormFieldModule, MatInputModule, FormsModule, SearchTriggerDirective, NgIf, NgClass],
host: { host: {
class: 'adf-search-text-input' class: 'adf-search-text-input'
} }
@@ -1,6 +1,6 @@
<p class="adf-snackbar-message-content" data-automation-id="adf-snackbar-message-content" aria-hidden="true"> <p class="adf-snackbar-message-content" data-automation-id="adf-snackbar-message-content" aria-hidden="true">
@if (data.decorativeIcon) { @if (data.decorativeIcon) {
<mat-icon data-automation-id="adf-snackbar-decorative-icon">{{ data.decorativeIcon }}</mat-icon> <mat-icon data-automation-id="adf-snackbar-decorative-icon" [adf-icon]="data.decorativeIcon" />
} }
{{ data.message }} {{ data.message }}
</p> </p>
@@ -16,7 +16,7 @@
@if (data.actionIcon) { @if (data.actionIcon) {
<button mat-button (click)="onIconClicked()" class="adf-snackbar-message-content-action-icon" <button mat-button (click)="onIconClicked()" class="adf-snackbar-message-content-action-icon"
[attr.aria-label]="data.actionIconAriaLabel | translate"> [attr.aria-label]="data.actionIconAriaLabel | translate">
<mat-icon>{{ data.actionIcon }}</mat-icon> <mat-icon [adf-icon]="data.actionIcon" />
</button> </button>
} }
</div> </div>
@@ -18,13 +18,13 @@
import { Component, Inject } from '@angular/core'; import { Component, Inject } from '@angular/core';
import { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar'; import { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';
import { SnackBarData } from './snack-bar-data'; import { SnackBarData } from './snack-bar-data';
import { MatIconModule } from '@angular/material/icon';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { IconModule } from '../icon/icon.module';
@Component({ @Component({
selector: 'adf-snackbar-content', selector: 'adf-snackbar-content',
imports: [MatIconModule, TranslatePipe, MatButtonModule], imports: [IconModule, TranslatePipe, MatButtonModule],
templateUrl: './snackbar-content.component.html', templateUrl: './snackbar-content.component.html',
styleUrls: ['./snackbar-content.component.scss'], styleUrls: ['./snackbar-content.component.scss'],
host: { host: {
@@ -32,7 +32,10 @@ import { MatButtonModule } from '@angular/material/button';
} }
}) })
export class SnackbarContentComponent { export class SnackbarContentComponent {
constructor(public snackBarRef: MatSnackBarRef<SnackbarContentComponent>, @Inject(MAT_SNACK_BAR_DATA) public data: SnackBarData) { constructor(
public snackBarRef: MatSnackBarRef<SnackbarContentComponent>,
@Inject(MAT_SNACK_BAR_DATA) public data: SnackBarData
) {
if (!data) { if (!data) {
this.data = { message: '' }; this.data = { message: '' };
} }
@@ -8,6 +8,6 @@
</mat-form-field> </mat-form-field>
<button *ngIf="selected" class="adf-sorting-picker-button" mat-icon-button (click)="toggleSortDirection()" aria-label="'CORE.SEARCH.TOGGLE_ASC_DESC_ORDER' | translate"> <button *ngIf="selected" class="adf-sorting-picker-button" mat-icon-button (click)="toggleSortDirection()" aria-label="'CORE.SEARCH.TOGGLE_ASC_DESC_ORDER' | translate">
<mat-icon *ngIf="ascending">arrow_upward</mat-icon> <mat-icon *ngIf="ascending" adf-icon="arrow_upward" />
<mat-icon *ngIf="!ascending">arrow_downward</mat-icon> <mat-icon *ngIf="!ascending" adf-icon="arrow_downward" />
</button> </button>
@@ -21,11 +21,11 @@ import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon'; import { IconModule } from '../icon/icon.module';
@Component({ @Component({
selector: 'adf-sorting-picker', selector: 'adf-sorting-picker',
imports: [CommonModule, TranslatePipe, MatFormFieldModule, MatSelectModule, MatButtonModule, MatIconModule], imports: [CommonModule, TranslatePipe, MatFormFieldModule, MatSelectModule, MatButtonModule, IconModule],
templateUrl: './sorting-picker.component.html', templateUrl: './sorting-picker.component.html',
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
host: { class: 'adf-sorting-picker' } host: { class: 'adf-sorting-picker' }
@@ -19,7 +19,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}"
mat-icon-button mat-icon-button
(click)="zoomOut()"> (click)="zoomOut()">
<mat-icon>zoom_out</mat-icon> <mat-icon adf-icon="zoom_out" />
</button> </button>
<div class="adf-image-viewer__toolbar-page-scale" data-automation-id="adf-page-scale"> <div class="adf-image-viewer__toolbar-page-scale" data-automation-id="adf-page-scale">
@@ -31,7 +31,7 @@
title="{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}" title="{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}"
attr.aria-label="{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}"
(click)="zoomIn()"> (click)="zoomIn()">
<mat-icon>zoom_in</mat-icon> <mat-icon adf-icon="zoom_in" />
</button> </button>
<button *ngIf="!readOnly && allowedEditActions.rotate" id="viewer-rotate-button" <button *ngIf="!readOnly && allowedEditActions.rotate" id="viewer-rotate-button"
@@ -39,14 +39,14 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.ROTATE' | translate }}"
mat-icon-button mat-icon-button
(click)="rotateImage()"> (click)="rotateImage()">
<mat-icon>rotate_left</mat-icon> <mat-icon adf-icon="rotate_left" />
</button> </button>
<button *ngIf="!readOnly && allowedEditActions.crop" id="viewer-crop-button" <button *ngIf="!readOnly && allowedEditActions.crop" id="viewer-crop-button"
title="{{ 'ADF_VIEWER.ARIA.CROP' | translate }}" title="{{ 'ADF_VIEWER.ARIA.CROP' | translate }}"
attr.aria-label="{{ 'ADF_VIEWER.ARIA.CROP' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.CROP' | translate }}"
mat-icon-button mat-icon-button
(click)="cropImage()"> (click)="cropImage()">
<mat-icon>crop</mat-icon> <mat-icon adf-icon="crop" />
</button> </button>
<button id="viewer-reset-button" <button id="viewer-reset-button"
@@ -54,7 +54,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.RESET' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.RESET' | translate }}"
mat-icon-button mat-icon-button
(click)="reset()"> (click)="reset()">
<mat-icon>zoom_out_map</mat-icon> <mat-icon adf-icon="zoom_out_map" />
</button> </button>
</adf-toolbar> </adf-toolbar>
@@ -65,7 +65,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.CANCEL' | translate }}"
mat-icon-button mat-icon-button
(click)="reset()"> (click)="reset()">
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
<button id="viewer-save-button" <button id="viewer-save-button"
@@ -73,7 +73,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.SAVE' | translate }}"
mat-icon-button mat-icon-button
(click)="save()"> (click)="save()">
<mat-icon>check</mat-icon> <mat-icon adf-icon="check" />
</button> </button>
</adf-toolbar> </adf-toolbar>
@@ -31,19 +31,19 @@ import {
ViewEncapsulation ViewEncapsulation
} from '@angular/core'; } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import Cropper from 'cropperjs'; import Cropper from 'cropperjs';
import { AppConfigService } from '../../../app-config'; import { AppConfigService } from '../../../app-config';
import { UrlService } from '../../../common'; import { UrlService } from '../../../common';
import { ToolbarComponent } from '../../../toolbar'; import { ToolbarComponent } from '../../../toolbar';
import { IconModule } from '../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-img-viewer', selector: 'adf-img-viewer',
templateUrl: './img-viewer.component.html', templateUrl: './img-viewer.component.html',
styleUrls: ['./img-viewer.component.scss'], styleUrls: ['./img-viewer.component.scss'],
host: { class: 'adf-image-viewer' }, host: { class: 'adf-image-viewer' },
imports: [ToolbarComponent, TranslatePipe, MatIconModule, MatButtonModule, NgIf], imports: [ToolbarComponent, TranslatePipe, IconModule, MatButtonModule, NgIf],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
}) })
export class ImgViewerComponent implements AfterViewInit, OnChanges, OnDestroy { export class ImgViewerComponent implements AfterViewInit, OnChanges, OnDestroy {
@@ -1,5 +1,5 @@
<div mat-dialog-title> <div mat-dialog-title>
<mat-icon>lock</mat-icon> <mat-icon adf-icon="lock" />
</div> </div>
<mat-dialog-content> <mat-dialog-content>
@@ -21,9 +21,9 @@ import { MatButtonModule } from '@angular/material/button';
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog'; import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
import { ReactiveFormsModule, UntypedFormControl, Validators } from '@angular/forms'; import { ReactiveFormsModule, UntypedFormControl, Validators } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { IconModule } from '../../../icon/icon.module';
declare const pdfjsLib: any; declare const pdfjsLib: any;
@@ -31,13 +31,16 @@ declare const pdfjsLib: any;
selector: 'adf-pdf-viewer-password-dialog', selector: 'adf-pdf-viewer-password-dialog',
templateUrl: './pdf-viewer-password-dialog.html', templateUrl: './pdf-viewer-password-dialog.html',
styleUrls: ['./pdf-viewer-password-dialog.scss'], styleUrls: ['./pdf-viewer-password-dialog.scss'],
imports: [MatDialogModule, MatIconModule, MatFormFieldModule, MatInputModule, ReactiveFormsModule, TranslatePipe, NgIf, MatButtonModule], imports: [MatDialogModule, IconModule, MatFormFieldModule, MatInputModule, ReactiveFormsModule, TranslatePipe, NgIf, MatButtonModule],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
}) })
export class PdfPasswordDialogComponent implements OnInit { export class PdfPasswordDialogComponent implements OnInit {
passwordFormControl: UntypedFormControl; passwordFormControl: UntypedFormControl;
constructor(private dialogRef: MatDialogRef<PdfPasswordDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any) {} constructor(
private dialogRef: MatDialogRef<PdfPasswordDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: any
) {}
ngOnInit() { ngOnInit() {
this.passwordFormControl = new UntypedFormControl('', [Validators.required]); this.passwordFormControl = new UntypedFormControl('', [Validators.required]);
@@ -8,7 +8,7 @@
(click)="toggleThumbnails()" (click)="toggleThumbnails()"
[attr.aria-label]="'ADF_VIEWER.ARIA.THUMBNAILS_PANLEL_CLOSE' | translate" [attr.aria-label]="'ADF_VIEWER.ARIA.THUMBNAILS_PANLEL_CLOSE' | translate"
title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}"> title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}">
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</div> </div>
@@ -52,7 +52,7 @@
data-automation-id="adf-thumbnails-button" data-automation-id="adf-thumbnails-button"
[disabled]="isPanelDisabled" [disabled]="isPanelDisabled"
(click)="toggleThumbnails()"> (click)="toggleThumbnails()">
<mat-icon>dashboard</mat-icon> <mat-icon adf-icon="dashboard" />
</button> </button>
<adf-toolbar-divider /> <adf-toolbar-divider />
</ng-container> </ng-container>
@@ -62,7 +62,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.PREVIOUS_PAGE' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.PREVIOUS_PAGE' | translate }}"
mat-icon-button mat-icon-button
(click)="previousPage()"> (click)="previousPage()">
<mat-icon>keyboard_arrow_up</mat-icon> <mat-icon adf-icon="keyboard_arrow_up" />
</button> </button>
<button id="viewer-next-page-button" <button id="viewer-next-page-button"
@@ -70,7 +70,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.NEXT_PAGE' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.NEXT_PAGE' | translate }}"
mat-icon-button mat-icon-button
(click)="nextPage()"> (click)="nextPage()">
<mat-icon>keyboard_arrow_down</mat-icon> <mat-icon adf-icon="keyboard_arrow_down" />
</button> </button>
<div class="adf-pdf-viewer__toolbar-page-selector"> <div class="adf-pdf-viewer__toolbar-page-selector">
@@ -95,7 +95,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.ZOOM_IN' | translate }}"
mat-icon-button mat-icon-button
(click)="zoomIn()"> (click)="zoomIn()">
<mat-icon>zoom_in</mat-icon> <mat-icon adf-icon="zoom_in" />
</button> </button>
<button id="viewer-zoom-out-button" <button id="viewer-zoom-out-button"
@@ -103,7 +103,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.ZOOM_OUT' | translate }}"
mat-icon-button mat-icon-button
(click)="zoomOut()"> (click)="zoomOut()">
<mat-icon>zoom_out</mat-icon> <mat-icon adf-icon="zoom_out" />
</button> </button>
<button id="viewer-scale-page-button" <button id="viewer-scale-page-button"
@@ -112,7 +112,7 @@
attr.aria-label="{{ 'ADF_VIEWER.ARIA.FIT_PAGE' | translate }}" attr.aria-label="{{ 'ADF_VIEWER.ARIA.FIT_PAGE' | translate }}"
mat-icon-button mat-icon-button
(click)="pageFit()"> (click)="pageFit()">
<mat-icon>zoom_out_map</mat-icon> <mat-icon adf-icon="zoom_out_map" />
</button> </button>
</adf-toolbar> </adf-toolbar>
@@ -36,7 +36,6 @@ import {
} from '@angular/core'; } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { MatIconModule } from '@angular/material/icon';
import { MatProgressBarModule } from '@angular/material/progress-bar'; import { MatProgressBarModule } from '@angular/material/progress-bar';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { from, Subject, switchMap } from 'rxjs'; import { from, Subject, switchMap } from 'rxjs';
@@ -49,6 +48,7 @@ import { PdfThumbListComponent } from '../pdf-viewer-thumbnails/pdf-viewer-thumb
import * as pdfjsLib from 'pdfjs-dist/build/pdf.min.mjs'; import * as pdfjsLib from 'pdfjs-dist/build/pdf.min.mjs';
import { EventBus, PDFViewer } from 'pdfjs-dist/web/pdf_viewer.mjs'; import { EventBus, PDFViewer } from 'pdfjs-dist/web/pdf_viewer.mjs';
import { OnProgressParameters, PDFDocumentLoadingTask, PDFDocumentProxy } from 'pdfjs-dist/types/src/display/api'; import { OnProgressParameters, PDFDocumentLoadingTask, PDFDocumentProxy } from 'pdfjs-dist/types/src/display/api';
import { IconModule } from '../../../icon/icon.module';
export type PdfScaleMode = 'init' | 'page-actual' | 'page-width' | 'page-height' | 'page-fit' | 'auto'; export type PdfScaleMode = 'init' | 'page-actual' | 'page-width' | 'page-height' | 'page-fit' | 'auto';
@@ -63,7 +63,7 @@ export const PDFJS_VIEWER_MODULE = new InjectionToken('PDFJS_VIEWER_MODULE', { f
host: { class: 'adf-pdf-viewer' }, host: { class: 'adf-pdf-viewer' },
imports: [ imports: [
MatButtonModule, MatButtonModule,
MatIconModule, IconModule,
TranslatePipe, TranslatePipe,
PdfThumbListComponent, PdfThumbListComponent,
NgIf, NgIf,
@@ -1,6 +1,6 @@
<div class="adf-viewer__unknown-format-view"> <div class="adf-viewer__unknown-format-view">
<div> <div>
<mat-icon class="icon">error</mat-icon> <mat-icon class="icon" adf-icon="error" />
<div class="adf-viewer__unknown-label">{{ customError || 'ADF_VIEWER.UNKNOWN_FORMAT' | translate }}</div> <div class="adf-viewer__unknown-label">{{ customError || 'ADF_VIEWER.UNKNOWN_FORMAT' | translate }}</div>
</div> </div>
</div> </div>
@@ -16,14 +16,14 @@
*/ */
import { Component, Input, ViewEncapsulation } from '@angular/core'; import { Component, Input, ViewEncapsulation } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { IconModule } from '../../../icon/icon.module';
@Component({ @Component({
selector: 'adf-viewer-unknown-format', selector: 'adf-viewer-unknown-format',
templateUrl: './unknown-format.component.html', templateUrl: './unknown-format.component.html',
styleUrls: ['./unknown-format.component.scss'], styleUrls: ['./unknown-format.component.scss'],
imports: [MatIconModule, TranslatePipe], imports: [IconModule, TranslatePipe],
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
}) })
export class UnknownFormatComponent { export class UnknownFormatComponent {
@@ -18,7 +18,7 @@
data-automation-id="adf-toolbar-left-sidebar" data-automation-id="adf-toolbar-left-sidebar"
[color]="showLeftSidebar ? 'accent' : null" [color]="showLeftSidebar ? 'accent' : null"
(click)="toggleLeftSidebar()"> (click)="toggleLeftSidebar()">
<mat-icon>info_outline</mat-icon> <mat-icon adf-icon="info_outline" />
</button> </button>
</ng-container> </ng-container>
@@ -29,7 +29,7 @@
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}"
(click)="onClose()"> (click)="onClose()">
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</adf-toolbar-title> </adf-toolbar-title>
@@ -40,7 +40,7 @@
[attr.aria-label]="'ADF_VIEWER.ACTIONS.PREV_FILE' | translate" [attr.aria-label]="'ADF_VIEWER.ACTIONS.PREV_FILE' | translate"
title="{{ 'ADF_VIEWER.ACTIONS.PREV_FILE' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.PREV_FILE' | translate }}"
(click)="onNavigateBeforeClick($event)"> (click)="onNavigateBeforeClick($event)">
<mat-icon>navigate_before</mat-icon> <mat-icon adf-icon="navigate_before" />
</button> </button>
<img class="adf-viewer__mimeicon" <img class="adf-viewer__mimeicon"
[alt]="'ADF_VIEWER.ARIA.MIME_TYPE_ICON' | translate" [alt]="'ADF_VIEWER.ARIA.MIME_TYPE_ICON' | translate"
@@ -66,7 +66,7 @@
[attr.aria-label]="'ADF_VIEWER.ACTIONS.NEXT_FILE' | translate" [attr.aria-label]="'ADF_VIEWER.ACTIONS.NEXT_FILE' | translate"
title="{{ 'ADF_VIEWER.ACTIONS.NEXT_FILE' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.NEXT_FILE' | translate }}"
(click)="onNavigateNextClick($event)"> (click)="onNavigateNextClick($event)">
<mat-icon>navigate_next</mat-icon> <mat-icon adf-icon="navigate_next" />
</button> </button>
</div> </div>
@@ -79,7 +79,7 @@
[matMenuTriggerFor]="mnuOpenWith" [matMenuTriggerFor]="mnuOpenWith"
data-automation-id="adf-toolbar-open-with"> data-automation-id="adf-toolbar-open-with">
<span>{{ 'ADF_VIEWER.ACTIONS.OPEN_WITH' | translate }}</span> <span>{{ 'ADF_VIEWER.ACTIONS.OPEN_WITH' | translate }}</span>
<mat-icon>arrow_drop_down</mat-icon> <mat-icon adf-icon="arrow_drop_down" />
</button> </button>
<mat-menu #mnuOpenWith="matMenu" <mat-menu #mnuOpenWith="matMenu"
[overlapTrigger]="false"> [overlapTrigger]="false">
@@ -100,7 +100,7 @@
title="{{ 'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate }}"
data-automation-id="adf-toolbar-fullscreen" data-automation-id="adf-toolbar-fullscreen"
(click)="enterFullScreen()"> (click)="enterFullScreen()">
<mat-icon>fullscreen</mat-icon> <mat-icon adf-icon="fullscreen" />
</button> </button>
<ng-container *ngIf="allowRightSidebar && !hideInfoButton"> <ng-container *ngIf="allowRightSidebar && !hideInfoButton">
@@ -113,7 +113,7 @@
data-automation-id="adf-toolbar-sidebar" data-automation-id="adf-toolbar-sidebar"
[color]="showRightSidebar ? 'accent' : null" [color]="showRightSidebar ? 'accent' : null"
(click)="toggleRightSidebar()"> (click)="toggleRightSidebar()">
<mat-icon>info_outline</mat-icon> <mat-icon adf-icon="info_outline" />
</button> </button>
</ng-container> </ng-container>
@@ -125,7 +125,7 @@
[attr.aria-label]="'ADF_VIEWER.ACTIONS.MORE_ACTIONS' | translate" [attr.aria-label]="'ADF_VIEWER.ACTIONS.MORE_ACTIONS' | translate"
title="{{ 'ADF_VIEWER.ACTIONS.MORE_ACTIONS' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.MORE_ACTIONS' | translate }}"
data-automation-id="adf-toolbar-more-actions"> data-automation-id="adf-toolbar-more-actions">
<mat-icon>more_vert</mat-icon> <mat-icon adf-icon="more_vert" />
</button> </button>
<mat-menu #mnuMoreActions="matMenu" <mat-menu #mnuMoreActions="matMenu"
[overlapTrigger]="false"> [overlapTrigger]="false">
@@ -143,7 +143,7 @@
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}"
(click)="onClose()"> (click)="onClose()">
<mat-icon>close</mat-icon> <mat-icon adf-icon="close" />
</button> </button>
</ng-container> </ng-container>
@@ -37,7 +37,6 @@ import {
} from '@angular/core'; } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu'; import { MatMenuModule } from '@angular/material/menu';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
import { fromEvent } from 'rxjs'; import { fromEvent } from 'rxjs';
@@ -58,6 +57,7 @@ import { ViewerToolbarCustomActionsComponent } from './viewer-toolbar-custom-act
import { IconComponent } from '../../icon'; import { IconComponent } from '../../icon';
import { ThumbnailService } from '../../common'; import { ThumbnailService } from '../../common';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IconModule } from '../../icon/icon.module';
const DEFAULT_NON_PREVIEW_CONFIG = { const DEFAULT_NON_PREVIEW_CONFIG = {
enableDownloadPrompt: false, enableDownloadPrompt: false,
@@ -79,7 +79,7 @@ const DEFAULT_NON_PREVIEW_CONFIG = {
ToolbarTitleComponent, ToolbarTitleComponent,
MatButtonModule, MatButtonModule,
TranslatePipe, TranslatePipe,
MatIconModule, IconModule,
MatMenuModule, MatMenuModule,
ToolbarDividerComponent, ToolbarDividerComponent,
ViewerRenderComponent, ViewerRenderComponent,