From 83af63ae5c080c429ea2691d18e6100c188c6e56 Mon Sep 17 00:00:00 2001 From: Josep Piguillem Date: Tue, 28 Jul 2026 17:57:26 +0200 Subject: [PATCH] refactor: migra a control flow nativo (@if/@for/@switch) y elimina CommonModule --- libs/ui/README.md | 26 +- .../accordion/accordion.component.html | 300 +++++++++--------- .../accordion/accordion.component.ts | 4 +- .../ui/banner/banner/banner.component.html | 25 +- .../lib/ui/banner/banner/banner.component.ts | 3 +- .../action-button.component.html | 35 +- .../action-button/action-button.component.ts | 3 +- .../icon-button/icon-button.component.html | 36 ++- .../icon-button/icon-button.component.ts | 4 +- .../radio-button/radio-button.component.html | 15 +- .../radio-button/radio-button.component.ts | 4 +- .../toggle-button.component.html | 12 +- .../toggle-button/toggle-button.component.ts | 4 +- .../src/lib/ui/card/card/card.component.html | 14 +- .../ui/src/lib/ui/card/card/card.component.ts | 4 +- .../carousel/carousel/carousel.component.html | 49 +-- .../carousel/carousel/carousel.component.ts | 4 +- .../chart-legend/chart-legend.component.html | 4 +- .../chart-legend/chart-legend.component.ts | 4 +- .../chip-action/chip-action.component.html | 36 ++- .../chip/chip-action/chip-action.component.ts | 4 +- .../chip/chip-date/chip-date.component.html | 6 +- .../ui/chip/chip-date/chip-date.component.ts | 3 +- .../chip-status/chip-status.component.html | 17 +- .../chip/chip-status/chip-status.component.ts | 4 +- .../chip/chip-time/chip-time.component.html | 48 ++- .../ui/chip/chip-time/chip-time.component.ts | 4 +- .../chip/chip-value/chip-value.component.html | 8 +- .../chip/chip-value/chip-value.component.ts | 3 +- .../src/lib/ui/chip/chip/chip.component.html | 44 +-- .../ui/src/lib/ui/chip/chip/chip.component.ts | 4 +- .../src/lib/ui/chip/tile/tile.component.html | 15 +- .../ui/src/lib/ui/chip/tile/tile.component.ts | 4 +- .../data-grid/data-grid.component.html | 129 ++++---- .../data-grid/data-grid.component.ts | 4 +- .../cell-type/cell-type.component.html | 36 +-- .../cell-type/cell-type.component.ts | 5 +- .../data-table-item.component.html | 4 +- .../data-table-item.component.ts | 4 +- .../ui/divider/divider/divider.component.html | 23 +- .../ui/divider/divider/divider.component.ts | 4 +- .../currency-field.component.html | 33 +- .../currency-field.component.ts | 4 +- .../email-field/email-field.component.html | 12 +- .../email-field/email-field.component.ts | 6 +- .../icon-field/icon-field.component.html | 12 +- .../icon-field/icon-field.component.ts | 4 +- .../incremental-number-field.component.html | 50 +-- .../incremental-number-field.component.ts | 7 +- .../incremental-range-field.component.html | 12 +- .../incremental-range-field.component.ts | 7 +- .../number-field/number-field.component.html | 12 +- .../number-field/number-field.component.ts | 6 +- .../password-field.component.html | 12 +- .../password-field.component.ts | 6 +- .../phone-field/phone-field.component.html | 12 +- .../phone-field/phone-field.component.ts | 6 +- .../search-field/search-field.component.html | 17 +- .../search-field/search-field.component.ts | 3 +- .../text-field/text-field.component.html | 12 +- .../text-field/text-field.component.ts | 6 +- .../textarea/textarea.component.html | 18 +- .../form-field/textarea/textarea.component.ts | 6 +- .../src/lib/ui/icon/icon/icon.component.html | 13 +- .../ui/src/lib/ui/icon/icon/icon.component.ts | 4 +- .../ui/image/headline/headline.component.html | 31 +- .../ui/image/headline/headline.component.ts | 4 +- .../lib/ui/modal/modal/modal.component.html | 86 ++--- .../src/lib/ui/modal/modal/modal.component.ts | 3 +- .../src/lib/ui/note/note/note.component.html | 8 +- .../ui/src/lib/ui/note/note/note.component.ts | 4 +- .../snack-bar/snack-bar.component.html | 22 +- .../snack-bar/snack-bar.component.ts | 3 +- .../paginator/paginator.component.html | 71 +++-- .../paginator/paginator.component.ts | 4 +- .../expansion-panel.component.html | 20 +- .../expansion-panel.component.ts | 3 +- .../lib/ui/panel/panel/panel.component.html | 18 +- .../src/lib/ui/panel/panel/panel.component.ts | 3 +- .../progress-spinner.component.html | 28 +- .../progress-spinner.component.ts | 5 +- .../select-carousel.component.html | 51 ++- .../select-carousel.component.ts | 3 +- .../select-multiple.component.html | 204 ++++++------ .../select-multiple.component.ts | 12 +- .../select-option.component.html | 117 +++---- .../select-option/select-option.component.ts | 12 +- .../select-period.component.html | 185 ++++++----- .../select-period/select-period.component.ts | 14 +- .../ui/select/select/select.component.html | 144 ++++----- .../lib/ui/select/select/select.component.ts | 12 +- .../ui/slider/slider/slider.component.html | 10 +- .../lib/ui/slider/slider/slider.component.ts | 4 +- libs/ui/src/lib/ui/tab/tab/tab.component.html | 83 ++--- libs/ui/src/lib/ui/tab/tab/tab.component.ts | 4 +- .../text-area-expansion.component.html | 27 +- .../text-area-expansion.component.ts | 4 +- .../text-viewer-link.component.html | 49 +-- .../text-viewer-link.component.ts | 11 +- .../text-viewer/text-viewer.component.html | 23 +- .../text/text-viewer/text-viewer.component.ts | 4 +- .../src/lib/ui/wrapper/form/form.wrapper.html | 4 +- .../src/lib/ui/wrapper/form/form.wrapper.ts | 3 +- .../lib/ui/wrapper/header/header.wrapper.html | 5 +- .../lib/ui/wrapper/header/header.wrapper.ts | 4 +- 105 files changed, 1273 insertions(+), 1268 deletions(-) diff --git a/libs/ui/README.md b/libs/ui/README.md index 8f4236d..317d640 100644 --- a/libs/ui/README.md +++ b/libs/ui/README.md @@ -22,10 +22,12 @@ Construir: `nx build ui` · Lint: `nx lint ui` | NgModules | 41 → 4 (sólo quedan los que aportan providers: `icon-registry`, `loaders`, `router-store`, `scroll-to`) | | Componentes | 70, **todos** con `ChangeDetectionStrategy.OnPush` | | Decoradores | 0 restantes: 460 `input()`, 6 `model()`, 20 `output()`, 8 `viewChild()`, 2 `viewChildren()`, 17 `contentChild()`, 6 `contentChildren()` | +| Control flow | `*ngIf`/`*ngFor`/`*ngSwitch` → `@if`/`@for`/`@switch` (110 `@if`, 26 `@for`, 3 `@switch`). Ya no se importa ninguna directiva de `CommonModule` | Se usaron las migraciones oficiales de Angular (`@angular/core:standalone`, -`signal-input-migration`, `output-migration`, `signal-queries-migration`) y se -resolvió a mano lo que no cubren. +`signal-input-migration`, `output-migration`, `signal-queries-migration`, +`control-flow-migration`, `cleanup-unused-imports`) y se resolvió a mano lo que +no cubren. ## Decisiones que cambian comportamiento @@ -79,6 +81,17 @@ Mantiene el runtime idéntico al original. Se pueden eliminar migrando a `truncate : (33 || …)`, así que el fallback nunca se aplicaba. Ahora está parentizado como se pretendía. +**8. Los 3 selects se convirtieron a control flow a mano.** +La migración automática se rindió con ellos: tenían un `*ngIf ... else` que +apuntaba a un `` con un `[ngSwitch]` dentro. Al reescribirlos hubo +que renombrar plantillas duplicadas (`#defaultSelected` aparecía dos veces en +ramas distintas del switch) a `#defaultSelectedFill`/`#defaultSelectedOutline`, +y en select-period `#defaultOption` → `#defaultMonthOption`/`#defaultYearOption`. +Los `*ngFor` sin `trackBy` pasaron a `track `, que es lo que hacía `ngFor` +por defecto. En data-grid y select-carousel la migración generó +`track trackByFn(i, item)` pero esos `trackByFn` sólo declaran `index`: se +corrigió la aridad a `track trackByFn(i)`. + ## Colisiones de nombres en el barrel El origen tiene símbolos duplicados. En `index.ts` gana el primero y el otro se @@ -104,7 +117,8 @@ omite (queda anotado en el fichero). Siguen siendo accesibles por ruta directa: - **`Sector`** vivía en `deale-saas/util/models` (lib de aplicación, fuera de alcance); se trajo la interfaz a `util/models`. - **ngrx 21 con Angular 22**: instalado con `--legacy-peer-deps` (aún no declara soporte para 22). - **Lint**: `nx lint ui` falla con avisos heredados del código original — - `prefer-control-flow` (104: `*ngIf`/`*ngFor` en vez de `@if`/`@for`), - `directive-selector` (40), `prefer-inject` (33), a11y y `no-unused-vars`. - Nada bloquea el build. Hay migraciones oficiales para los dos primeros grupos: - `nx g @angular/core:control-flow-migration` y `nx g @angular/core:inject-migration`. + `prefer-inject` (51), `directive-selector` (46), `no-explicit-any` (35), + `no-unused-expressions` (33), a11y (`click-events-have-key-events`, + `interactive-supports-focus`, `label-has-associated-control`) y + `no-unused-vars`. Nada bloquea el build. Para el primer grupo hay migración + oficial: `nx g @angular/core:inject-migration`. diff --git a/libs/ui/src/lib/ui/accordion/accordion/accordion.component.html b/libs/ui/src/lib/ui/accordion/accordion/accordion.component.html index 2782302..2662ee0 100644 --- a/libs/ui/src/lib/ui/accordion/accordion/accordion.component.html +++ b/libs/ui/src/lib/ui/accordion/accordion/accordion.component.html @@ -1,131 +1,119 @@ - -
- -
- -
- - -
- - -
- - +@if (direction() === 'default') { + @for (item of items(); track item; let i = $index) {
- + + @if (item.isConfidential() === true) { +
+ +
+ } + +
+ + +
+ + @if (!!item?.summaryContent() && !isItemExpanded(i)) { +
+ +
+ } + +
+ +
- - -
- -
-
-
- - - - - - - - - + } +} @else {
- + @for (item of items(); track item; let i = $index) {
- + @if (hasChevron()) { + + }
-
+ }
-
- -
+ @for (item of items(); track item; let i = $index) { +
+ +
+ }
+} + + + + + + diff --git a/libs/ui/src/lib/ui/accordion/accordion/accordion.component.ts b/libs/ui/src/lib/ui/accordion/accordion/accordion.component.ts index eaef649..7e17937 100644 --- a/libs/ui/src/lib/ui/accordion/accordion/accordion.component.ts +++ b/libs/ui/src/lib/ui/accordion/accordion/accordion.component.ts @@ -8,7 +8,7 @@ import { } from '@angular/core'; import { padding, styleType, textColor } from '../../../styles'; import { PiAccordionItemDirective } from '../directives/accordion-content.directive'; -import { NgIf, NgFor, NgTemplateOutlet } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiDynamicColorDirective } from '../../../util/color/directives/colors.directive'; import { PiTextViewerComponent } from '../../text/text-viewer/text-viewer.component'; import { PiChipStatusComponent } from '../../chip/chip-status/chip-status.component'; @@ -22,8 +22,6 @@ import { TranslatePipe } from '@ngx-translate/core'; styleUrls: ['../styles/accordion.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ - NgIf, - NgFor, PiDynamicColorDirective, PiTextViewerComponent, NgTemplateOutlet, diff --git a/libs/ui/src/lib/ui/banner/banner/banner.component.html b/libs/ui/src/lib/ui/banner/banner/banner.component.html index 950a22f..ada3b75 100644 --- a/libs/ui/src/lib/ui/banner/banner/banner.component.html +++ b/libs/ui/src/lib/ui/banner/banner/banner.component.html @@ -10,18 +10,21 @@

{{ title() }}

- {{ message() }} + @if (message()) { + {{ message() }} + }
- {{ buttonText() }} + @if (buttonText()) { + {{ buttonText() }} + }
diff --git a/libs/ui/src/lib/ui/banner/banner/banner.component.ts b/libs/ui/src/lib/ui/banner/banner/banner.component.ts index 0be45b2..bc3439f 100644 --- a/libs/ui/src/lib/ui/banner/banner/banner.component.ts +++ b/libs/ui/src/lib/ui/banner/banner/banner.component.ts @@ -7,7 +7,7 @@ import { } from '@angular/core'; import { PiBackgroundImageDirective } from '../../image/background-image.directive'; import { PiTextWeightBoldDirective } from '../../text/directives/text-weights.directive'; -import { NgIf } from '@angular/common'; + import { PiIconButtonComponent } from '../../button/icon-button/icon-button.component'; @Component({ @@ -18,7 +18,6 @@ import { PiIconButtonComponent } from '../../button/icon-button/icon-button.comp imports: [ PiBackgroundImageDirective, PiTextWeightBoldDirective, - NgIf, PiIconButtonComponent, ], }) diff --git a/libs/ui/src/lib/ui/button/action-button/action-button.component.html b/libs/ui/src/lib/ui/button/action-button/action-button.component.html index 66ff2c8..6d6cb97 100644 --- a/libs/ui/src/lib/ui/button/action-button/action-button.component.html +++ b/libs/ui/src/lib/ui/button/action-button/action-button.component.html @@ -14,23 +14,22 @@ appearanceClass, ]" > - {{ text() }} + @if (text()) { + {{ text() }} + } - - - - - - - - + @if (hasIcon()) { + + + + + + + + + } diff --git a/libs/ui/src/lib/ui/button/action-button/action-button.component.ts b/libs/ui/src/lib/ui/button/action-button/action-button.component.ts index 296addf..f79202b 100644 --- a/libs/ui/src/lib/ui/button/action-button/action-button.component.ts +++ b/libs/ui/src/lib/ui/button/action-button/action-button.component.ts @@ -6,14 +6,13 @@ import { } from '@angular/core'; import { buttonSize, mode } from '../../../styles'; import { PiBaseButtonComponent } from '../base-button.component'; -import { NgIf } from '@angular/common'; @Component({ selector: 'pi-action-button', templateUrl: './action-button.component.html', styleUrls: ['./action-button.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf], + imports: [], }) export class PiActionButtonComponent extends PiBaseButtonComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/button/icon-button/icon-button.component.html b/libs/ui/src/lib/ui/button/icon-button/icon-button.component.html index 4d446c3..edb697c 100644 --- a/libs/ui/src/lib/ui/button/icon-button/icon-button.component.html +++ b/libs/ui/src/lib/ui/button/icon-button/icon-button.component.html @@ -1,5 +1,5 @@ - - - +} @else { + + @if (!previous()) { + + } + +} diff --git a/libs/ui/src/lib/ui/button/icon-button/icon-button.component.ts b/libs/ui/src/lib/ui/button/icon-button/icon-button.component.ts index 6773e7f..5ab359a 100644 --- a/libs/ui/src/lib/ui/button/icon-button/icon-button.component.ts +++ b/libs/ui/src/lib/ui/button/icon-button/icon-button.component.ts @@ -8,7 +8,7 @@ import { } from '@angular/core'; import { buttonSize, mode } from '../../../styles'; import { PiBaseButtonComponent } from '../base-button.component'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -16,7 +16,7 @@ import { MatIcon } from '@angular/material/icon'; templateUrl: './icon-button.component.html', styleUrls: ['./icon-button.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiIconButtonComponent extends PiBaseButtonComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/button/radio-button/radio-button.component.html b/libs/ui/src/lib/ui/button/radio-button/radio-button.component.html index 096eb21..47bb6ff 100644 --- a/libs/ui/src/lib/ui/button/radio-button/radio-button.component.html +++ b/libs/ui/src/lib/ui/button/radio-button/radio-button.component.html @@ -1,13 +1,10 @@ - - - +} @else { + + > +} diff --git a/libs/ui/src/lib/ui/button/radio-button/radio-button.component.ts b/libs/ui/src/lib/ui/button/radio-button/radio-button.component.ts index 2aa7fcf..65ecb1e 100644 --- a/libs/ui/src/lib/ui/button/radio-button/radio-button.component.ts +++ b/libs/ui/src/lib/ui/button/radio-button/radio-button.component.ts @@ -5,7 +5,7 @@ import { input, } from '@angular/core'; import { PiBaseButtonComponent } from '../base-button.component'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -13,7 +13,7 @@ import { MatIcon } from '@angular/material/icon'; templateUrl: './radio-button.component.html', styleUrls: ['./radio-button.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiRadioButtonComponent extends PiBaseButtonComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/button/toggle-button/toggle-button.component.html b/libs/ui/src/lib/ui/button/toggle-button/toggle-button.component.html index af723e5..fa77f2e 100644 --- a/libs/ui/src/lib/ui/button/toggle-button/toggle-button.component.html +++ b/libs/ui/src/lib/ui/button/toggle-button/toggle-button.component.html @@ -3,11 +3,15 @@ [disabled]="isDisabled()" class="pi-button__toggle" > - + @if (icon()) { + + } {{ text() }} -{{ amount() }} +@if (amount()) { + {{ amount() }} +} diff --git a/libs/ui/src/lib/ui/button/toggle-button/toggle-button.component.ts b/libs/ui/src/lib/ui/button/toggle-button/toggle-button.component.ts index a97aa65..a1bdda7 100644 --- a/libs/ui/src/lib/ui/button/toggle-button/toggle-button.component.ts +++ b/libs/ui/src/lib/ui/button/toggle-button/toggle-button.component.ts @@ -6,7 +6,7 @@ import { } from '@angular/core'; import { buttonSize } from '../../../styles'; import { PiBaseButtonComponent } from '../base-button.component'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -14,7 +14,7 @@ import { MatIcon } from '@angular/material/icon'; templateUrl: './toggle-button.component.html', styleUrls: ['./toggle-button.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiToggleButtonComponent extends PiBaseButtonComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/card/card/card.component.html b/libs/ui/src/lib/ui/card/card/card.component.html index 6b1937e..c8b8923 100644 --- a/libs/ui/src/lib/ui/card/card/card.component.html +++ b/libs/ui/src/lib/ui/card/card/card.component.html @@ -5,9 +5,11 @@ - - - {{ linkLabel() }} - - - +@if (isClickable() && !!linkLabel()) { + + + {{ linkLabel() }} + + + +} diff --git a/libs/ui/src/lib/ui/card/card/card.component.ts b/libs/ui/src/lib/ui/card/card/card.component.ts index 61c3763..51b2739 100644 --- a/libs/ui/src/lib/ui/card/card/card.component.ts +++ b/libs/ui/src/lib/ui/card/card/card.component.ts @@ -3,14 +3,14 @@ import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core'; // Components import { PiBaseCardComponent } from '../base-card.component'; -import { NgIf } from '@angular/common'; + import { PiIconComponent } from '../../icon/icon/icon.component'; @Component({ selector: 'pi-card', templateUrl: './card.component.html', changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, PiIconComponent], + imports: [PiIconComponent], }) export class PiCardComponent extends PiBaseCardComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/carousel/carousel/carousel.component.html b/libs/ui/src/lib/ui/carousel/carousel/carousel.component.html index 75400bc..07f6291 100644 --- a/libs/ui/src/lib/ui/carousel/carousel/carousel.component.html +++ b/libs/ui/src/lib/ui/carousel/carousel/carousel.component.html @@ -1,33 +1,34 @@
- + @if (hasOverflow && !hideSwipeButtons()) { + + }
- + @for (item of carouselItems(); track trackByFn(i, item); let i = $index) {
-
+ }
- + @if (hasOverflow && !hideSwipeButtons()) { + + }
-
-
-
+@if (hasOverflow && !hidePaginator()) { +
+ @for (i of pages; track i; let index = $index) { +
+ } +
+} diff --git a/libs/ui/src/lib/ui/carousel/carousel/carousel.component.ts b/libs/ui/src/lib/ui/carousel/carousel/carousel.component.ts index 80d9d95..b2ded9d 100644 --- a/libs/ui/src/lib/ui/carousel/carousel/carousel.component.ts +++ b/libs/ui/src/lib/ui/carousel/carousel/carousel.component.ts @@ -23,7 +23,7 @@ import { ComponentFamilyClass, justify, theming } from '../../../styles'; import { Device, DeviceConfigsFacade } from '../../../util/device-configs'; import { PiCarouselItemDirective } from '../carousel.directive'; import { Subject, combineLatest, skip, takeUntil } from 'rxjs'; -import { NgIf, NgFor, NgTemplateOutlet } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiIconButtonComponent } from '../../button/icon-button/icon-button.component'; @Component({ @@ -31,7 +31,7 @@ import { PiIconButtonComponent } from '../../button/icon-button/icon-button.comp templateUrl: './carousel.component.html', styleUrls: ['./carousel.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, PiIconButtonComponent, NgFor, NgTemplateOutlet], + imports: [PiIconButtonComponent, NgTemplateOutlet], }) export class PiCarouselComponent implements OnInit, OnChanges, AfterViewInit, AfterViewChecked, OnDestroy diff --git a/libs/ui/src/lib/ui/chart/chart-legend/chart-legend.component.html b/libs/ui/src/lib/ui/chart/chart-legend/chart-legend.component.html index 97de0b5..61e5618 100644 --- a/libs/ui/src/lib/ui/chart/chart-legend/chart-legend.component.html +++ b/libs/ui/src/lib/ui/chart/chart-legend/chart-legend.component.html @@ -1,4 +1,4 @@ - +@for (dataset of datasets(); track dataset; let index = $index) {
-
+} {{ 'common.legend' | translate }} diff --git a/libs/ui/src/lib/ui/chart/chart-legend/chart-legend.component.ts b/libs/ui/src/lib/ui/chart/chart-legend/chart-legend.component.ts index 52a6f89..503251d 100644 --- a/libs/ui/src/lib/ui/chart/chart-legend/chart-legend.component.ts +++ b/libs/ui/src/lib/ui/chart/chart-legend/chart-legend.component.ts @@ -6,7 +6,7 @@ import { output, } from '@angular/core'; import { Dataset } from '../../../util/models'; -import { NgFor } from '@angular/common'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -14,7 +14,7 @@ import { TranslatePipe } from '@ngx-translate/core'; templateUrl: './chart-legend.component.html', styleUrls: ['./chart-legend.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgFor, TranslatePipe], + imports: [TranslatePipe], }) export class PiChartLegendComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/chip/chip-action/chip-action.component.html b/libs/ui/src/lib/ui/chip/chip-action/chip-action.component.html index dc7693c..aa671a4 100644 --- a/libs/ui/src/lib/ui/chip/chip-action/chip-action.component.html +++ b/libs/ui/src/lib/ui/chip/chip-action/chip-action.component.html @@ -1,21 +1,27 @@
{{ label() }} - - - {{ value() }} - + @if (value() || icon()) { + + @if (icon()) { + + } + @if (value()) { + {{ value() }} + } + + }
- + @if (isClosable()) { + + }
diff --git a/libs/ui/src/lib/ui/chip/chip-action/chip-action.component.ts b/libs/ui/src/lib/ui/chip/chip-action/chip-action.component.ts index 28651dd..8755f05 100644 --- a/libs/ui/src/lib/ui/chip/chip-action/chip-action.component.ts +++ b/libs/ui/src/lib/ui/chip/chip-action/chip-action.component.ts @@ -8,7 +8,7 @@ import { import { ComponentFamilyClass, mode, styleType } from '../../../styles'; import { PiBaseChipComponent } from '../base-chip.component'; import { chipColor } from '../entities/chip.model'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -19,7 +19,7 @@ import { MatIcon } from '@angular/material/icon'; '../styles/base-chip.component.scss', ], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiChipActionComponent extends PiBaseChipComponent { @HostBinding('class') get actionClasses(): string { diff --git a/libs/ui/src/lib/ui/chip/chip-date/chip-date.component.html b/libs/ui/src/lib/ui/chip/chip-date/chip-date.component.html index 30894fb..31452aa 100644 --- a/libs/ui/src/lib/ui/chip/chip-date/chip-date.component.html +++ b/libs/ui/src/lib/ui/chip/chip-date/chip-date.component.html @@ -1,7 +1,7 @@ - {{ - dateValue?.weekDay - }} + @if (size() === 'large') { + {{ dateValue?.weekDay }} + } {{ dateValue?.day }} {{ dateValue?.month.toUpperCase() }} diff --git a/libs/ui/src/lib/ui/chip/chip-date/chip-date.component.ts b/libs/ui/src/lib/ui/chip/chip-date/chip-date.component.ts index 069ba1f..b66ee8c 100644 --- a/libs/ui/src/lib/ui/chip/chip-date/chip-date.component.ts +++ b/libs/ui/src/lib/ui/chip/chip-date/chip-date.component.ts @@ -11,7 +11,6 @@ import { Date } from '../../../util/models'; import { PiBaseChipComponent } from '../base-chip.component'; import { DateTime } from 'luxon'; import _ from 'lodash'; -import { NgIf } from '@angular/common'; @Component({ selector: 'pi-chip-date', @@ -21,7 +20,7 @@ import { NgIf } from '@angular/common'; '../styles/base-chip.component.scss', ], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf], + imports: [], }) export class PiChipDateComponent extends PiBaseChipComponent { @HostBinding('class') get dateClasses(): string { diff --git a/libs/ui/src/lib/ui/chip/chip-status/chip-status.component.html b/libs/ui/src/lib/ui/chip/chip-status/chip-status.component.html index 9f578c3..05a0eb9 100644 --- a/libs/ui/src/lib/ui/chip/chip-status/chip-status.component.html +++ b/libs/ui/src/lib/ui/chip/chip-status/chip-status.component.html @@ -1,11 +1,14 @@ - {{ label() }} + @if (label()) { + {{ label() }} + } - + @if (icon()) { + + } diff --git a/libs/ui/src/lib/ui/chip/chip-status/chip-status.component.ts b/libs/ui/src/lib/ui/chip/chip-status/chip-status.component.ts index 07c2623..8bf18c7 100644 --- a/libs/ui/src/lib/ui/chip/chip-status/chip-status.component.ts +++ b/libs/ui/src/lib/ui/chip/chip-status/chip-status.component.ts @@ -8,7 +8,7 @@ import { // Shared import { status } from '../../../util/status'; import { PiBaseChipComponent } from '../base-chip.component'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -19,7 +19,7 @@ import { MatIcon } from '@angular/material/icon'; '../styles/base-chip.component.scss', ], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiChipStatusComponent extends PiBaseChipComponent { @HostBinding('class') get statusClasses(): string { diff --git a/libs/ui/src/lib/ui/chip/chip-time/chip-time.component.html b/libs/ui/src/lib/ui/chip/chip-time/chip-time.component.html index 25d735f..efa5bce 100644 --- a/libs/ui/src/lib/ui/chip/chip-time/chip-time.component.html +++ b/libs/ui/src/lib/ui/chip/chip-time/chip-time.component.html @@ -1,33 +1,29 @@ - -
- - {{ timeValue }}h - - {{ dateValue }} -
- - -
- - +@if (time() && date()) {
- - {{ timeValue }}h - - + {{ timeValue }}h + + {{ dateValue }} +
+ @if (isClosable()) { + + } +
+} @else { + +
+ + @if (time()) { + {{ timeValue }}h + } @else { {{ dateValue }} - + }
-
+} diff --git a/libs/ui/src/lib/ui/chip/chip-time/chip-time.component.ts b/libs/ui/src/lib/ui/chip/chip-time/chip-time.component.ts index 0135bf2..40b3a92 100644 --- a/libs/ui/src/lib/ui/chip/chip-time/chip-time.component.ts +++ b/libs/ui/src/lib/ui/chip/chip-time/chip-time.component.ts @@ -10,7 +10,7 @@ import { ComponentFamilyClass } from '../../../styles'; import { DateTime } from 'luxon'; import { PiBaseChipComponent } from '../base-chip.component'; import { chipThemingColor } from '../entities/chip.model'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -21,7 +21,7 @@ import { MatIcon } from '@angular/material/icon'; '../styles/base-chip.component.scss', ], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiChipTimeComponent extends PiBaseChipComponent { @HostBinding('class') get dateClasses(): string { diff --git a/libs/ui/src/lib/ui/chip/chip-value/chip-value.component.html b/libs/ui/src/lib/ui/chip/chip-value/chip-value.component.html index 43544d0..5066755 100644 --- a/libs/ui/src/lib/ui/chip/chip-value/chip-value.component.html +++ b/libs/ui/src/lib/ui/chip/chip-value/chip-value.component.html @@ -1,11 +1,15 @@ - + @if (label()) { + + } diff --git a/libs/ui/src/lib/ui/chip/chip-value/chip-value.component.ts b/libs/ui/src/lib/ui/chip/chip-value/chip-value.component.ts index 4ff77f7..93fe39d 100644 --- a/libs/ui/src/lib/ui/chip/chip-value/chip-value.component.ts +++ b/libs/ui/src/lib/ui/chip/chip-value/chip-value.component.ts @@ -6,7 +6,6 @@ import { } from '@angular/core'; import { PiBaseChipComponent } from '../base-chip.component'; import { unit } from '../../../util/models'; -import { NgIf } from '@angular/common'; @Component({ selector: 'pi-chip-value', @@ -16,7 +15,7 @@ import { NgIf } from '@angular/common'; '../styles/base-chip.component.scss', ], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf], + imports: [], }) export class PiChipValueComponent extends PiBaseChipComponent { @HostBinding('class') get valueClasses(): string { diff --git a/libs/ui/src/lib/ui/chip/chip/chip.component.html b/libs/ui/src/lib/ui/chip/chip/chip.component.html index 7b06e62..16355d2 100644 --- a/libs/ui/src/lib/ui/chip/chip/chip.component.html +++ b/libs/ui/src/lib/ui/chip/chip/chip.component.html @@ -1,23 +1,27 @@ - {{ label() }} + @if (label()) { + {{ label() }} + } - - - - - - - - {{ value() }} - + @if (icon() || value()) { + + @if (icon()) { + @if (iconType() === 'custom') { + + } @else { + + } + } + @if (value()) { + {{ value() }} + } + + } diff --git a/libs/ui/src/lib/ui/chip/chip/chip.component.ts b/libs/ui/src/lib/ui/chip/chip/chip.component.ts index 5e869d0..efca564 100644 --- a/libs/ui/src/lib/ui/chip/chip/chip.component.ts +++ b/libs/ui/src/lib/ui/chip/chip/chip.component.ts @@ -7,7 +7,7 @@ import { import { theming } from '../../../styles'; import { chipColor } from '../entities/chip.model'; import { PiBaseChipComponent } from '../base-chip.component'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -15,7 +15,7 @@ import { MatIcon } from '@angular/material/icon'; templateUrl: './chip.component.html', styleUrls: ['./chip.component.scss', '../styles/base-chip.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiChipComponent extends PiBaseChipComponent { @HostBinding('class') get chipClasses(): string { diff --git a/libs/ui/src/lib/ui/chip/tile/tile.component.html b/libs/ui/src/lib/ui/chip/tile/tile.component.html index db7facc..1cae229 100644 --- a/libs/ui/src/lib/ui/chip/tile/tile.component.html +++ b/libs/ui/src/lib/ui/chip/tile/tile.component.html @@ -1,15 +1,14 @@
- - + @if (icon()) { + + } @else { {{ value() }} - + }
- {{ value() }} + @if (icon() && value()) { + {{ value() }} + }
diff --git a/libs/ui/src/lib/ui/chip/tile/tile.component.ts b/libs/ui/src/lib/ui/chip/tile/tile.component.ts index ff53f5a..b7aab97 100644 --- a/libs/ui/src/lib/ui/chip/tile/tile.component.ts +++ b/libs/ui/src/lib/ui/chip/tile/tile.component.ts @@ -5,7 +5,7 @@ import { input, } from '@angular/core'; import { ComponentFamilyClass, theming } from '../../../styles'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -13,7 +13,7 @@ import { MatIcon } from '@angular/material/icon'; templateUrl: './tile.component.html', styleUrls: ['./tile.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiTileComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/data-grid/data-grid/data-grid.component.html b/libs/ui/src/lib/ui/data-grid/data-grid/data-grid.component.html index 8ac0c9f..f592e17 100644 --- a/libs/ui/src/lib/ui/data-grid/data-grid/data-grid.component.html +++ b/libs/ui/src/lib/ui/data-grid/data-grid/data-grid.component.html @@ -1,24 +1,20 @@ - -
- - -
+@if (keysTemplateRef() && mode() === 'list') { +
+ + +
+} - - +@if (dataDirection() === 'column') { - + @for (value of data(); track trackByFn(i); let i = $index) {
-
-
-
- - - + } +} @else {
-
-
- - - - - - - -
- - -
+
+ + @if (isExpandable()) { + + } + + } -
+} + + diff --git a/libs/ui/src/lib/ui/data-grid/data-grid/data-grid.component.ts b/libs/ui/src/lib/ui/data-grid/data-grid/data-grid.component.ts index 2297f9b..49e3910 100644 --- a/libs/ui/src/lib/ui/data-grid/data-grid/data-grid.component.ts +++ b/libs/ui/src/lib/ui/data-grid/data-grid/data-grid.component.ts @@ -17,14 +17,14 @@ import { columnsNumber, rowsNumber, } from '../entities/data-grid.model'; -import { NgIf, NgTemplateOutlet, NgFor } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiGridItemDirective } from '../directives/grid-item.directive'; @Component({ selector: 'pi-data-grid', templateUrl: './data-grid.component.html', changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, PiGridItemDirective, NgTemplateOutlet, NgFor], + imports: [PiGridItemDirective, NgTemplateOutlet], }) export class PiDataGridComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/data-table/cell-type/cell-type.component.html b/libs/ui/src/lib/ui/data-table/cell-type/cell-type.component.html index fdcb2cd..3772d45 100644 --- a/libs/ui/src/lib/ui/data-table/cell-type/cell-type.component.html +++ b/libs/ui/src/lib/ui/data-table/cell-type/cell-type.component.html @@ -1,22 +1,20 @@ - - - - - - - - - - - - - +@switch (type()) { + @case ('amount') { + + } + @case ('text') { + + } + @case ('date') { + + } + @case ('input') { + + } + @case ('action') { + + } +} diff --git a/libs/ui/src/lib/ui/data-table/cell-type/cell-type.component.ts b/libs/ui/src/lib/ui/data-table/cell-type/cell-type.component.ts index 3818a78..f585feb 100644 --- a/libs/ui/src/lib/ui/data-table/cell-type/cell-type.component.ts +++ b/libs/ui/src/lib/ui/data-table/cell-type/cell-type.component.ts @@ -4,8 +4,7 @@ import { HostBinding, input, } from '@angular/core'; -import { NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common'; -import { PiBaseDataTableComponent } from '../base-data-table/base-data-table.component'; +import { NgTemplateOutlet } from '@angular/common'; export type PiDropdownSelectorTemplateType = 'text' | 'date' | 'amount' | 'input' | 'action'; @@ -14,7 +13,7 @@ export type PiDropdownSelectorTemplateType = templateUrl: './cell-type.component.html', styleUrls: ['./cell-type.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgSwitch, NgSwitchCase, NgTemplateOutlet, PiBaseDataTableComponent], + imports: [NgTemplateOutlet], }) export class PiCellTypeComponent { @HostBinding('class') className = 'pi-cell-type'; diff --git a/libs/ui/src/lib/ui/data-table/data-table-item/data-table-item.component.html b/libs/ui/src/lib/ui/data-table/data-table-item/data-table-item.component.html index d0e1d67..87a63a1 100644 --- a/libs/ui/src/lib/ui/data-table/data-table-item/data-table-item.component.html +++ b/libs/ui/src/lib/ui/data-table/data-table-item/data-table-item.component.html @@ -1,8 +1,8 @@

{{ heading() }}

- + @for (value of values(); track value; let i = $index) { - + }
diff --git a/libs/ui/src/lib/ui/data-table/data-table-item/data-table-item.component.ts b/libs/ui/src/lib/ui/data-table/data-table-item/data-table-item.component.ts index e9fc90e..c4ba3b9 100644 --- a/libs/ui/src/lib/ui/data-table/data-table-item/data-table-item.component.ts +++ b/libs/ui/src/lib/ui/data-table/data-table-item/data-table-item.component.ts @@ -20,13 +20,13 @@ import { // RxJS import { take } from 'rxjs/operators'; -import { NgFor, NgTemplateOutlet } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; @Component({ selector: 'pi-data-table-item', templateUrl: './data-table-item.component.html', styleUrls: ['./data-table-item.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgFor, NgTemplateOutlet], + imports: [NgTemplateOutlet], }) export class PiDataTableItemComponent implements AfterViewInit { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/divider/divider/divider.component.html b/libs/ui/src/lib/ui/divider/divider/divider.component.html index f3bdd83..e620b8f 100644 --- a/libs/ui/src/lib/ui/divider/divider/divider.component.html +++ b/libs/ui/src/lib/ui/divider/divider/divider.component.html @@ -1,15 +1,14 @@ - - +@if (!label()) { + @if (icon()) { + + } +
+} @else {
-
- -
{{ label() }}
-
+} diff --git a/libs/ui/src/lib/ui/divider/divider/divider.component.ts b/libs/ui/src/lib/ui/divider/divider/divider.component.ts index 4d58b21..112ef1f 100644 --- a/libs/ui/src/lib/ui/divider/divider/divider.component.ts +++ b/libs/ui/src/lib/ui/divider/divider/divider.component.ts @@ -7,7 +7,7 @@ import { // Shared import { alignment, gap, iconSize, textColor } from '../../../styles'; -import { NgIf } from '@angular/common'; + import { PiIconComponent } from '../../icon/icon/icon.component'; @Component({ @@ -15,7 +15,7 @@ import { PiIconComponent } from '../../icon/icon/icon.component'; templateUrl: './divider.component.html', styleUrls: ['./divider.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, PiIconComponent], + imports: [PiIconComponent], }) export class PiDividerComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/form-field/currency-field/currency-field.component.html b/libs/ui/src/lib/ui/form-field/currency-field/currency-field.component.html index 0960710..c11f603 100644 --- a/libs/ui/src/lib/ui/form-field/currency-field/currency-field.component.html +++ b/libs/ui/src/lib/ui/form-field/currency-field/currency-field.component.html @@ -9,20 +9,23 @@ - + @if (control) { + + } - - - {{ text | translate }} - - + @if (enableErrorMessage() && control.errors) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + + } diff --git a/libs/ui/src/lib/ui/form-field/currency-field/currency-field.component.ts b/libs/ui/src/lib/ui/form-field/currency-field/currency-field.component.ts index 943ac0a..06c843d 100644 --- a/libs/ui/src/lib/ui/form-field/currency-field/currency-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/currency-field/currency-field.component.ts @@ -15,7 +15,7 @@ import { MatSuffix, MatError, } from '@angular/material/form-field'; -import { NgIf, NgFor } from '@angular/common'; + import { MatInput } from '@angular/material/input'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; @@ -36,13 +36,11 @@ import { TranslatePipe } from '@ngx-translate/core'; MatFormField, MatLabel, MatSuffix, - NgIf, MatInput, NgxCurrencyDirective, ReactiveFormsModule, PiAutofocusDirective, MatError, - NgFor, forwardRef(() => PiCurrencyFieldComponent), TranslatePipe, ], diff --git a/libs/ui/src/lib/ui/form-field/email-field/email-field.component.html b/libs/ui/src/lib/ui/form-field/email-field/email-field.component.html index 67fe7ae..2b5be99 100644 --- a/libs/ui/src/lib/ui/form-field/email-field/email-field.component.html +++ b/libs/ui/src/lib/ui/form-field/email-field/email-field.component.html @@ -15,9 +15,11 @@ [isAutofocusSelected]="isAutofocus()" /> - - - {{ text | translate }} - - + @if (control.errors) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + + } diff --git a/libs/ui/src/lib/ui/form-field/email-field/email-field.component.ts b/libs/ui/src/lib/ui/form-field/email-field/email-field.component.ts index 4cd75a5..866a34b 100644 --- a/libs/ui/src/lib/ui/form-field/email-field/email-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/email-field/email-field.component.ts @@ -10,8 +10,7 @@ import { import { PiIconComponent } from '../../icon/icon/icon.component'; import { MatInput } from '@angular/material/input'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; -import { NgIf, NgFor } from '@angular/common'; -import { PiCurrencyFieldComponent } from '../currency-field/currency-field.component'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -33,10 +32,7 @@ import { TranslatePipe } from '@ngx-translate/core'; MatInput, ReactiveFormsModule, PiAutofocusDirective, - NgIf, MatError, - NgFor, - PiCurrencyFieldComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/form-field/icon-field/icon-field.component.html b/libs/ui/src/lib/ui/form-field/icon-field/icon-field.component.html index b1bf71c..53252dc 100644 --- a/libs/ui/src/lib/ui/form-field/icon-field/icon-field.component.html +++ b/libs/ui/src/lib/ui/form-field/icon-field/icon-field.component.html @@ -17,8 +17,10 @@ /> - - - {{ text | translate }} - - +@if (control.errors && enableErrorMessage()) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + +} diff --git a/libs/ui/src/lib/ui/form-field/icon-field/icon-field.component.ts b/libs/ui/src/lib/ui/form-field/icon-field/icon-field.component.ts index fc592b8..7c48da6 100644 --- a/libs/ui/src/lib/ui/form-field/icon-field/icon-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/icon-field/icon-field.component.ts @@ -11,7 +11,7 @@ import { PiIconComponent } from '../../icon/icon/icon.component'; import { MatFormField, MatLabel, MatError } from '@angular/material/form-field'; import { MatInput } from '@angular/material/input'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; -import { NgIf, NgFor } from '@angular/common'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -33,9 +33,7 @@ import { TranslatePipe } from '@ngx-translate/core'; MatInput, ReactiveFormsModule, PiAutofocusDirective, - NgIf, MatError, - NgFor, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/form-field/incremental-number-field/incremental-number-field.component.html b/libs/ui/src/lib/ui/form-field/incremental-number-field/incremental-number-field.component.html index 8a396e8..70f2990 100644 --- a/libs/ui/src/lib/ui/form-field/incremental-number-field/incremental-number-field.component.html +++ b/libs/ui/src/lib/ui/form-field/incremental-number-field/incremental-number-field.component.html @@ -2,27 +2,29 @@ - + @if (showIncrementButtons()) { + + } - + @if (showIncrementButtons()) { + + } - - - {{ text | translate }} - - + @if (control.errors) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + + } diff --git a/libs/ui/src/lib/ui/form-field/incremental-number-field/incremental-number-field.component.ts b/libs/ui/src/lib/ui/form-field/incremental-number-field/incremental-number-field.component.ts index a62c3a8..147a8b9 100644 --- a/libs/ui/src/lib/ui/form-field/incremental-number-field/incremental-number-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/incremental-number-field/incremental-number-field.component.ts @@ -19,11 +19,11 @@ import { PiPrefixDirective, PiSuffixDirective, } from '../../../util/affix/affix.directive'; -import { NgIf, NgFor } from '@angular/common'; + import { PiIconComponent } from '../../icon/icon/icon.component'; import { MatInput } from '@angular/material/input'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; -import { PiCurrencyFieldComponent } from '../currency-field/currency-field.component'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -42,7 +42,6 @@ import { TranslatePipe } from '@ngx-translate/core'; MatLabel, PiPrefixDirective, MatPrefix, - NgIf, PiIconComponent, PiSuffixDirective, MatSuffix, @@ -50,8 +49,6 @@ import { TranslatePipe } from '@ngx-translate/core'; ReactiveFormsModule, PiAutofocusDirective, MatError, - NgFor, - PiCurrencyFieldComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/form-field/incremental-range-field/incremental-range-field.component.html b/libs/ui/src/lib/ui/form-field/incremental-range-field/incremental-range-field.component.html index f9c0177..89820b2 100644 --- a/libs/ui/src/lib/ui/form-field/incremental-range-field/incremental-range-field.component.html +++ b/libs/ui/src/lib/ui/form-field/incremental-range-field/incremental-range-field.component.html @@ -30,9 +30,11 @@ > - - - {{ text | translate }} - - + @if (form.errors && showError()) { + + @for (text of form.errors['message']; track text) { + {{ text | translate }} + } + + } diff --git a/libs/ui/src/lib/ui/form-field/incremental-range-field/incremental-range-field.component.ts b/libs/ui/src/lib/ui/form-field/incremental-range-field/incremental-range-field.component.ts index 26b8c47..3183e57 100644 --- a/libs/ui/src/lib/ui/form-field/incremental-range-field/incremental-range-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/incremental-range-field/incremental-range-field.component.ts @@ -13,9 +13,9 @@ import { unit } from '../../../util/models'; import { PiLabelDirective } from '../directives/label.directive'; import { PiIncrementalNumberFieldComponent } from '../incremental-number-field/incremental-number-field.component'; import { PiDividerComponent } from '../../divider/divider/divider.component'; -import { NgIf, NgFor } from '@angular/common'; + import { MatError } from '@angular/material/form-field'; -import { PiCurrencyFieldComponent } from '../currency-field/currency-field.component'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -27,10 +27,7 @@ import { TranslatePipe } from '@ngx-translate/core'; PiLabelDirective, PiIncrementalNumberFieldComponent, PiDividerComponent, - NgIf, MatError, - NgFor, - PiCurrencyFieldComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/form-field/number-field/number-field.component.html b/libs/ui/src/lib/ui/form-field/number-field/number-field.component.html index 54daa59..63c9a61 100644 --- a/libs/ui/src/lib/ui/form-field/number-field/number-field.component.html +++ b/libs/ui/src/lib/ui/form-field/number-field/number-field.component.html @@ -18,9 +18,11 @@ [isAutofocusSelected]="isAutofocus()" /> - - - {{ text | translate }} - - + @if (control.errors) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + + } diff --git a/libs/ui/src/lib/ui/form-field/number-field/number-field.component.ts b/libs/ui/src/lib/ui/form-field/number-field/number-field.component.ts index 4d9e158..b43e987 100644 --- a/libs/ui/src/lib/ui/form-field/number-field/number-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/number-field/number-field.component.ts @@ -15,8 +15,7 @@ import { } from '@angular/material/form-field'; import { MatInput } from '@angular/material/input'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; -import { NgIf, NgFor } from '@angular/common'; -import { PiCurrencyFieldComponent } from '../currency-field/currency-field.component'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -38,10 +37,7 @@ import { TranslatePipe } from '@ngx-translate/core'; MatInput, ReactiveFormsModule, PiAutofocusDirective, - NgIf, MatError, - NgFor, - PiCurrencyFieldComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/form-field/password-field/password-field.component.html b/libs/ui/src/lib/ui/form-field/password-field/password-field.component.html index 740e350..da86c1d 100644 --- a/libs/ui/src/lib/ui/form-field/password-field/password-field.component.html +++ b/libs/ui/src/lib/ui/form-field/password-field/password-field.component.html @@ -22,9 +22,11 @@ [isAutofocusSelected]="isAutofocus()" /> - - - {{ text | translate }} - - + @if (control.errors) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + + } diff --git a/libs/ui/src/lib/ui/form-field/password-field/password-field.component.ts b/libs/ui/src/lib/ui/form-field/password-field/password-field.component.ts index 0ad040b..36973e2 100644 --- a/libs/ui/src/lib/ui/form-field/password-field/password-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/password-field/password-field.component.ts @@ -11,8 +11,7 @@ import { PiSuffixDirective } from '../../../util/affix/affix.directive'; import { PiIconComponent } from '../../icon/icon/icon.component'; import { MatInput } from '@angular/material/input'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; -import { NgIf, NgFor } from '@angular/common'; -import { PiCurrencyFieldComponent } from '../currency-field/currency-field.component'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -35,10 +34,7 @@ import { TranslatePipe } from '@ngx-translate/core'; MatInput, ReactiveFormsModule, PiAutofocusDirective, - NgIf, MatError, - NgFor, - PiCurrencyFieldComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/form-field/phone-field/phone-field.component.html b/libs/ui/src/lib/ui/form-field/phone-field/phone-field.component.html index 60f2889..c01ff38 100644 --- a/libs/ui/src/lib/ui/form-field/phone-field/phone-field.component.html +++ b/libs/ui/src/lib/ui/form-field/phone-field/phone-field.component.html @@ -14,9 +14,11 @@ [isAutofocusSelected]="isAutofocus()" /> - - - {{ text | translate }} - - + @if (control.errors) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + + } diff --git a/libs/ui/src/lib/ui/form-field/phone-field/phone-field.component.ts b/libs/ui/src/lib/ui/form-field/phone-field/phone-field.component.ts index ec6d736..ba1bf00 100644 --- a/libs/ui/src/lib/ui/form-field/phone-field/phone-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/phone-field/phone-field.component.ts @@ -10,8 +10,7 @@ import { import { PiIconComponent } from '../../icon/icon/icon.component'; import { MatInput } from '@angular/material/input'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; -import { NgIf, NgFor } from '@angular/common'; -import { PiCurrencyFieldComponent } from '../currency-field/currency-field.component'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -33,10 +32,7 @@ import { TranslatePipe } from '@ngx-translate/core'; MatInput, ReactiveFormsModule, PiAutofocusDirective, - NgIf, MatError, - NgFor, - PiCurrencyFieldComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/form-field/search-field/search-field.component.html b/libs/ui/src/lib/ui/form-field/search-field/search-field.component.html index 2312f7a..b3965c5 100644 --- a/libs/ui/src/lib/ui/form-field/search-field/search-field.component.html +++ b/libs/ui/src/lib/ui/form-field/search-field/search-field.component.html @@ -14,11 +14,12 @@ type="search" /> - +@if (isClosable()) { + +} diff --git a/libs/ui/src/lib/ui/form-field/search-field/search-field.component.ts b/libs/ui/src/lib/ui/form-field/search-field/search-field.component.ts index a12f4e7..3e03312 100644 --- a/libs/ui/src/lib/ui/form-field/search-field/search-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/search-field/search-field.component.ts @@ -14,7 +14,6 @@ import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms'; import { OnInit } from '@angular/core'; import { PiBaseFormFieldComponent } from '../base-form-field.component'; import { PiIconComponent } from '../../icon/icon/icon.component'; -import { NgIf } from '@angular/common'; @Component({ selector: 'pi-search-field', @@ -28,7 +27,7 @@ import { NgIf } from '@angular/common'; multi: true, }, ], - imports: [PiIconComponent, ReactiveFormsModule, NgIf], + imports: [PiIconComponent, ReactiveFormsModule], }) export class PiSearchFieldComponent extends PiBaseFormFieldComponent diff --git a/libs/ui/src/lib/ui/form-field/text-field/text-field.component.html b/libs/ui/src/lib/ui/form-field/text-field/text-field.component.html index cb40cea..8edfb39 100644 --- a/libs/ui/src/lib/ui/form-field/text-field/text-field.component.html +++ b/libs/ui/src/lib/ui/form-field/text-field/text-field.component.html @@ -13,9 +13,11 @@ [isAutofocusSelected]="isAutofocus()" /> - - - {{ text | translate }} - - + @if (control.errors) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + + } diff --git a/libs/ui/src/lib/ui/form-field/text-field/text-field.component.ts b/libs/ui/src/lib/ui/form-field/text-field/text-field.component.ts index c9f9232..7cd6751 100644 --- a/libs/ui/src/lib/ui/form-field/text-field/text-field.component.ts +++ b/libs/ui/src/lib/ui/form-field/text-field/text-field.component.ts @@ -9,8 +9,7 @@ import { } from '@angular/material/form-field'; import { MatInput } from '@angular/material/input'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; -import { NgIf, NgFor } from '@angular/common'; -import { PiCurrencyFieldComponent } from '../currency-field/currency-field.component'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -31,10 +30,7 @@ import { TranslatePipe } from '@ngx-translate/core'; MatInput, ReactiveFormsModule, PiAutofocusDirective, - NgIf, MatError, - NgFor, - PiCurrencyFieldComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/form-field/textarea/textarea.component.html b/libs/ui/src/lib/ui/form-field/textarea/textarea.component.html index 3c2454c..2e95f1f 100644 --- a/libs/ui/src/lib/ui/form-field/textarea/textarea.component.html +++ b/libs/ui/src/lib/ui/form-field/textarea/textarea.component.html @@ -15,11 +15,13 @@ [isAutofocusSelected]="isAutofocus()" > - - - {{ text | translate }} - - -{{ control.value?.length || 0 }} / {{ maxLength() }} +@if (control.errors && enableErrorMessage()) { + + @for (text of control.errors['message']; track text) { + {{ text | translate }} + } + +} +@if (maxLength() !== 1e6) { + {{ control.value?.length || 0 }} / {{ maxLength() }} +} diff --git a/libs/ui/src/lib/ui/form-field/textarea/textarea.component.ts b/libs/ui/src/lib/ui/form-field/textarea/textarea.component.ts index e2411ef..ff55a98 100644 --- a/libs/ui/src/lib/ui/form-field/textarea/textarea.component.ts +++ b/libs/ui/src/lib/ui/form-field/textarea/textarea.component.ts @@ -10,8 +10,7 @@ import { MatFormField, MatLabel, MatError } from '@angular/material/form-field'; import { MatInput } from '@angular/material/input'; import { CdkTextareaAutosize } from '@angular/cdk/text-field'; import { PiAutofocusDirective } from '../directives/autofocus.directive'; -import { NgIf, NgFor } from '@angular/common'; -import { PiCurrencyFieldComponent } from '../currency-field/currency-field.component'; + import { TranslatePipe } from '@ngx-translate/core'; @Component({ @@ -32,10 +31,7 @@ import { TranslatePipe } from '@ngx-translate/core'; CdkTextareaAutosize, ReactiveFormsModule, PiAutofocusDirective, - NgIf, MatError, - NgFor, - PiCurrencyFieldComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/icon/icon/icon.component.html b/libs/ui/src/lib/ui/icon/icon/icon.component.html index e0cdf0f..05fa874 100644 --- a/libs/ui/src/lib/ui/icon/icon/icon.component.html +++ b/libs/ui/src/lib/ui/icon/icon/icon.component.html @@ -1,8 +1,5 @@ - - - +@if (type() === 'custom') { + +} @else { + +} diff --git a/libs/ui/src/lib/ui/icon/icon/icon.component.ts b/libs/ui/src/lib/ui/icon/icon/icon.component.ts index 8c31c74..3a7a460 100644 --- a/libs/ui/src/lib/ui/icon/icon/icon.component.ts +++ b/libs/ui/src/lib/ui/icon/icon/icon.component.ts @@ -13,7 +13,7 @@ import { iconSize, styleType, } from '../../../styles'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -21,7 +21,7 @@ import { MatIcon } from '@angular/material/icon'; templateUrl: './icon.component.html', styleUrls: ['./icon.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiIconComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/image/headline/headline.component.html b/libs/ui/src/lib/ui/image/headline/headline.component.html index 67eebfa..9905596 100644 --- a/libs/ui/src/lib/ui/image/headline/headline.component.html +++ b/libs/ui/src/lib/ui/image/headline/headline.component.html @@ -1,21 +1,26 @@
- - + @if (link()) { + + } @else { - + }
- +@if (hasContent()) { + +} diff --git a/libs/ui/src/lib/ui/image/headline/headline.component.ts b/libs/ui/src/lib/ui/image/headline/headline.component.ts index 20ee28b..f7f4fc6 100644 --- a/libs/ui/src/lib/ui/image/headline/headline.component.ts +++ b/libs/ui/src/lib/ui/image/headline/headline.component.ts @@ -14,7 +14,7 @@ import { flexDirection, gap, } from '../../../styles'; -import { NgIf } from '@angular/common'; + import { SanitizerAltImagePipe } from '../../../util/pipes/pipes'; @Directive({ @@ -34,7 +34,7 @@ export class PiHeadlineDescriptionContentDirective {} templateUrl: './headline.component.html', styleUrls: ['./headline.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, SanitizerAltImagePipe], + imports: [SanitizerAltImagePipe], }) export class PiHeadlineComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/modal/modal/modal.component.html b/libs/ui/src/lib/ui/modal/modal/modal.component.html index ef929a6..ae34042 100644 --- a/libs/ui/src/lib/ui/modal/modal/modal.component.html +++ b/libs/ui/src/lib/ui/modal/modal/modal.component.html @@ -1,17 +1,22 @@
-

- {{ title }} - {{ subtitle }} -

+ @if (title) { +

+ {{ title }} + @if (subtitle) { + {{ subtitle }} + } +

+ }
- + @if (!dialogRef.disableClose) { + + }
- - {{ dialogModalData.label }} - - {{ - dialogModalData.description - }} + @if (dialogModalData.label) { + + {{ dialogModalData.label }} + + } + @if (dialogModalData.description) { + {{ + dialogModalData.description + }} + } -
- - -
+ @if (dialogModalData.template) { +
+ + +
+ } - - - - + @if (dialogModalData.buttonText) { + + @if (dialogModalData.buttonText.secondaryAction) { + + } + @if (dialogModalData.buttonText.primaryAction) { + + } + + }
diff --git a/libs/ui/src/lib/ui/modal/modal/modal.component.ts b/libs/ui/src/lib/ui/modal/modal/modal.component.ts index cb18189..6f2bbdd 100644 --- a/libs/ui/src/lib/ui/modal/modal/modal.component.ts +++ b/libs/ui/src/lib/ui/modal/modal/modal.component.ts @@ -11,7 +11,7 @@ import { ModalStyleType, ModalType, } from '../entities/modal.model'; -import { NgIf, NgTemplateOutlet } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiTextWeightBoldDirective } from '../../text/directives/text-weights.directive'; import { PiTextLargeDirective } from '../../text/directives/text-sizes.directive'; import { PiColorPrimaryDirective } from '../../../util/color/directives/colors.directive'; @@ -30,7 +30,6 @@ import { PiGhostButtonDirective } from '../../button/button.directive'; styleUrls: ['./modal.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ - NgIf, PiTextWeightBoldDirective, PiTextLargeDirective, PiColorPrimaryDirective, diff --git a/libs/ui/src/lib/ui/note/note/note.component.html b/libs/ui/src/lib/ui/note/note/note.component.html index ff8d630..9d56d1a 100644 --- a/libs/ui/src/lib/ui/note/note/note.component.html +++ b/libs/ui/src/lib/ui/note/note/note.component.html @@ -1,7 +1,11 @@
-
{{ title() }}
- {{ text() }} + @if (title()) { +
{{ title() }}
+ } + @if (text()) { + {{ text() }} + }
diff --git a/libs/ui/src/lib/ui/note/note/note.component.ts b/libs/ui/src/lib/ui/note/note/note.component.ts index bcf60fc..30d1a4e 100644 --- a/libs/ui/src/lib/ui/note/note/note.component.ts +++ b/libs/ui/src/lib/ui/note/note/note.component.ts @@ -12,7 +12,7 @@ import { NoteStatus } from '../entities/note.model'; import { status } from '../../../util/status'; import { gap, alignment } from '../../../styles'; import { MatIcon } from '@angular/material/icon'; -import { NgIf } from '@angular/common'; + import { PiTextSmallDirective, PiTextXSmallDirective, @@ -35,7 +35,7 @@ export class PiNoteActionContentDirective {} templateUrl: './note.component.html', styleUrls: ['./note.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [MatIcon, NgIf, PiTextSmallDirective, PiTextXSmallDirective], + imports: [MatIcon, PiTextSmallDirective, PiTextXSmallDirective], }) export class PiNoteComponent implements OnInit { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/notification/snack-bar/snack-bar.component.html b/libs/ui/src/lib/ui/notification/snack-bar/snack-bar.component.html index 664245e..5bb3614 100644 --- a/libs/ui/src/lib/ui/notification/snack-bar/snack-bar.component.html +++ b/libs/ui/src/lib/ui/notification/snack-bar/snack-bar.component.html @@ -1,17 +1,15 @@
- + @if (icon()) { + + } @else { + + }
{{ message() }}
- {{ description() }} + @if (description()) { + {{ description() }} + }
- - - diff --git a/libs/ui/src/lib/ui/notification/snack-bar/snack-bar.component.ts b/libs/ui/src/lib/ui/notification/snack-bar/snack-bar.component.ts index 3796b21..4b92053 100644 --- a/libs/ui/src/lib/ui/notification/snack-bar/snack-bar.component.ts +++ b/libs/ui/src/lib/ui/notification/snack-bar/snack-bar.component.ts @@ -12,7 +12,7 @@ import { MAT_SNACK_BAR_DATA, } from '@angular/material/snack-bar'; import { styleType } from '../../../styles'; -import { NgIf } from '@angular/common'; + import { PiIconComponent } from '../../icon/icon/icon.component'; import { PiMediumButtonDirective, @@ -30,7 +30,6 @@ import { styleUrls: ['./snack-bar.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ - NgIf, PiIconComponent, PiMediumButtonDirective, PiTextWeightMediumDirective, diff --git a/libs/ui/src/lib/ui/paginator/paginator/paginator.component.html b/libs/ui/src/lib/ui/paginator/paginator/paginator.component.html index ee7ba2c..9b50b79 100644 --- a/libs/ui/src/lib/ui/paginator/paginator/paginator.component.html +++ b/libs/ui/src/lib/ui/paginator/paginator/paginator.component.html @@ -21,9 +21,43 @@ >
- + @if (totalPages() < 5) { + @for (page of pages; track page; let i = $index) { + + {{ page }} + } + } @else { + @for (page of firstPages; track page; let i = $index) { +
+ + {{ page }} + +
+ } + + @if ( + totalPages() > 6 && totalPages() - firstPages[firstPages.length - 1] > 6 + ) { + + } + @for (page of lastPages; track page; let i = $index) { +
+ + {{ page }} + +
+ } + }
Next - - - - {{ page }} - - - -
- - {{ page }} - -
- - -
- - {{ page }} - -
-
diff --git a/libs/ui/src/lib/ui/paginator/paginator/paginator.component.ts b/libs/ui/src/lib/ui/paginator/paginator/paginator.component.ts index 10e8131..2d04b75 100644 --- a/libs/ui/src/lib/ui/paginator/paginator/paginator.component.ts +++ b/libs/ui/src/lib/ui/paginator/paginator/paginator.component.ts @@ -9,7 +9,7 @@ import { output, } from '@angular/core'; import { PiIconButtonComponent } from '../../button/icon-button/icon-button.component'; -import { NgIf, NgFor } from '@angular/common'; + import { PiIconComponent } from '../../icon/icon/icon.component'; @Component({ @@ -19,8 +19,6 @@ import { PiIconComponent } from '../../icon/icon/icon.component'; changeDetection: ChangeDetectionStrategy.OnPush, imports: [ PiIconButtonComponent, - NgIf, - NgFor, PiIconComponent, forwardRef(() => PiPaginatorComponent), ], diff --git a/libs/ui/src/lib/ui/panel/expansion-panel/expansion-panel.component.html b/libs/ui/src/lib/ui/panel/expansion-panel/expansion-panel.component.html index 7c560f9..cbfdee2 100644 --- a/libs/ui/src/lib/ui/panel/expansion-panel/expansion-panel.component.html +++ b/libs/ui/src/lib/ui/panel/expansion-panel/expansion-panel.component.html @@ -1,14 +1,15 @@ - +@if (type() === 'form') {

{{ title() }}

-

{{ subtitle() }}

+ @if (subtitle()) { +

{{ subtitle() }}

+ }
- -
-
- - - +} @else {
@@ -57,10 +53,8 @@ >
- -
-
+} + + diff --git a/libs/ui/src/lib/ui/panel/expansion-panel/expansion-panel.component.ts b/libs/ui/src/lib/ui/panel/expansion-panel/expansion-panel.component.ts index 6f1391b..8bc5433 100644 --- a/libs/ui/src/lib/ui/panel/expansion-panel/expansion-panel.component.ts +++ b/libs/ui/src/lib/ui/panel/expansion-panel/expansion-panel.component.ts @@ -14,7 +14,7 @@ import { import { FormGroup, ReactiveFormsModule } from '@angular/forms'; import { ComponentFamilyClass } from '../../../styles'; import { PiBasePanelComponent } from '../base-panel.component'; -import { NgIf, NgTemplateOutlet } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiTextMediumDirective, PiTextXSmallDirective, @@ -36,7 +36,6 @@ import { TranslatePipe } from '@ngx-translate/core'; styleUrls: ['./expansion-panel.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ - NgIf, ReactiveFormsModule, PiTextMediumDirective, PiTextWeightMediumDirective, diff --git a/libs/ui/src/lib/ui/panel/panel/panel.component.html b/libs/ui/src/lib/ui/panel/panel/panel.component.html index d564eeb..5577cc2 100644 --- a/libs/ui/src/lib/ui/panel/panel/panel.component.html +++ b/libs/ui/src/lib/ui/panel/panel/panel.component.html @@ -1,12 +1,16 @@
-
-
-

{{ title() }}

-

{{ subtitle() }}

-
- -
+ @if (title()) { +
+
+

{{ title() }}

+ @if (subtitle()) { +

{{ subtitle() }}

+ } +
+ +
+ } diff --git a/libs/ui/src/lib/ui/panel/panel/panel.component.ts b/libs/ui/src/lib/ui/panel/panel/panel.component.ts index a54e5c0..80f87a0 100644 --- a/libs/ui/src/lib/ui/panel/panel/panel.component.ts +++ b/libs/ui/src/lib/ui/panel/panel/panel.component.ts @@ -6,7 +6,7 @@ import { } from '@angular/core'; import { ComponentFamilyClass } from '../../../styles'; import { PiBasePanelComponent } from '../base-panel.component'; -import { NgIf } from '@angular/common'; + import { PiTextMediumDirective, PiTextXSmallDirective, @@ -24,7 +24,6 @@ import { PiColorGreyDirective } from '../../../util/color/directives/colors.dire styleUrls: ['./panel.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ - NgIf, PiTextMediumDirective, PiTextWeightMediumDirective, PiMediumButtonDirective, diff --git a/libs/ui/src/lib/ui/progress/progress-spinner/progress-spinner.component.html b/libs/ui/src/lib/ui/progress/progress-spinner/progress-spinner.component.html index 33c44d6..c92b7d1 100644 --- a/libs/ui/src/lib/ui/progress/progress-spinner/progress-spinner.component.html +++ b/libs/ui/src/lib/ui/progress/progress-spinner/progress-spinner.component.html @@ -8,22 +8,22 @@ - - {{ value() }}% - - - - +@if (appearance() === 'compact') { + + {{ value() }}% + +} @else { {{ value() }}% {{ label() }} - +} + + diff --git a/libs/ui/src/lib/ui/progress/progress-spinner/progress-spinner.component.ts b/libs/ui/src/lib/ui/progress/progress-spinner/progress-spinner.component.ts index 11aa491..25db614 100644 --- a/libs/ui/src/lib/ui/progress/progress-spinner/progress-spinner.component.ts +++ b/libs/ui/src/lib/ui/progress/progress-spinner/progress-spinner.component.ts @@ -5,14 +5,13 @@ import { input, } from '@angular/core'; import { MatProgressSpinner } from '@angular/material/progress-spinner'; -import { NgIf } from '@angular/common'; -import { PiProgressBarComponent } from '../progress-bar/progress-bar.component'; + @Component({ selector: 'pi-progress-spinner', templateUrl: './progress-spinner.component.html', styleUrls: ['./progress-spinner.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [MatProgressSpinner, NgIf, PiProgressBarComponent], + imports: [MatProgressSpinner], }) export class PiProgressSpinnerComponent { @HostBinding('class') diff --git a/libs/ui/src/lib/ui/select/select-carousel/select-carousel.component.html b/libs/ui/src/lib/ui/select/select-carousel/select-carousel.component.html index 5eb9640..82e9cee 100644 --- a/libs/ui/src/lib/ui/select/select-carousel/select-carousel.component.html +++ b/libs/ui/src/lib/ui/select/select-carousel/select-carousel.component.html @@ -12,30 +12,29 @@ [justify]="justifyCarousel()" (itemChanged)="onItemChanged($event)" > - - - - - - - - - - - + @for (option of options(); track trackByFn(i); let i = $index) { + + + + + + + + + + + + } diff --git a/libs/ui/src/lib/ui/select/select-carousel/select-carousel.component.ts b/libs/ui/src/lib/ui/select/select-carousel/select-carousel.component.ts index 351d01a..ce8bf57 100644 --- a/libs/ui/src/lib/ui/select/select-carousel/select-carousel.component.ts +++ b/libs/ui/src/lib/ui/select/select-carousel/select-carousel.component.ts @@ -19,7 +19,7 @@ import { PiSelectOptionComponent } from '../select-option/select-option.componen import { Device } from '../../../util/device-configs'; import { justify } from '../../../styles'; import { PiCarouselComponent } from '../../carousel/carousel/carousel.component'; -import { NgFor, NgTemplateOutlet } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiCarouselItemDirective } from '../../carousel/carousel.directive'; @Component({ @@ -36,7 +36,6 @@ import { PiCarouselItemDirective } from '../../carousel/carousel.directive'; ], imports: [ PiCarouselComponent, - NgFor, PiCarouselItemDirective, PiSelectOptionComponent, NgTemplateOutlet, diff --git a/libs/ui/src/lib/ui/select/select-multiple/select-multiple.component.html b/libs/ui/src/lib/ui/select/select-multiple/select-multiple.component.html index e485ae6..3348a4a 100644 --- a/libs/ui/src/lib/ui/select/select-multiple/select-multiple.component.html +++ b/libs/ui/src/lib/ui/select/select-multiple/select-multiple.component.html @@ -1,21 +1,20 @@ - - +@if (type() === 'dropdown') { + @if (pickedOptionType() === 'button') {
- + @if (icon()) { + + } {{ (selectedOptionsNames?.join(', ') | truncate: 33) || (label() | translate) @@ -27,11 +26,10 @@ size="small" >
-
- - + } @else { + @switch (appearance()) { - + @case ('fill') {
{{ label() | translate }} - + {{ (selectedOptionsNames?.join(', ') | truncate: 33) || (placeholder() | translate) }} @@ -68,10 +68,10 @@ >
-
+ } - + @case ('outline') {
- + {{ (selectedOptionsNames?.join(', ') | truncate: 33) || (placeholder() | translate) }} @@ -99,92 +101,94 @@ >
-
-
-
-
+ } + } + } +} diff --git a/libs/ui/src/lib/ui/select/select-multiple/select-multiple.component.ts b/libs/ui/src/lib/ui/select/select-multiple/select-multiple.component.ts index c817e97..141c603 100644 --- a/libs/ui/src/lib/ui/select/select-multiple/select-multiple.component.ts +++ b/libs/ui/src/lib/ui/select/select-multiple/select-multiple.component.ts @@ -19,13 +19,7 @@ import { PiBaseSelectComponent } from '../base-select.component'; import { PiSelectOptionComponent } from '../select-option/select-option.component'; import _ from 'lodash'; import { MatCheckboxChange, MatCheckbox } from '@angular/material/checkbox'; -import { - NgIf, - NgSwitch, - NgSwitchCase, - NgTemplateOutlet, - NgFor, -} from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiIconComponent } from '../../icon/icon/icon.component'; import { PiDisabledDirective } from '../../../util/status/directives/status.directive'; import { PiDisabledDirective as PiDisabledDirective_1 } from '../../text/directives/text-styles.directive'; @@ -53,16 +47,12 @@ import { TruncatePipe } from '../../../util/pipes/pipes'; ], imports: [ ReactiveFormsModule, - NgIf, PiIconComponent, PiDisabledDirective, PiDisabledDirective_1, - NgSwitch, - NgSwitchCase, NgTemplateOutlet, MatCheckbox, PiDynamicColorDirective, - NgFor, PiSelectOptionComponent, PiGhostButtonDirective, PiColorPrimaryDirective, diff --git a/libs/ui/src/lib/ui/select/select-option/select-option.component.html b/libs/ui/src/lib/ui/select/select-option/select-option.component.html index 35ac20a..5a7d92d 100644 --- a/libs/ui/src/lib/ui/select/select-option/select-option.component.html +++ b/libs/ui/src/lib/ui/select/select-option/select-option.component.html @@ -1,33 +1,38 @@ - +@switch (type()) { - + @case ('single') {
- + @if (hasRadio()) { + + } {{ label() | translate }} - {{ - description() | translate - }} + @if (description()) { + {{ + description() | translate + }} + }
- - {{ - initials() | translate - }} - -
- + @if (initials()) { + {{ + initials() | translate + }} + } + @if (icon()) { + + } + } - + @case ('multiple') {
{{ label() | translate }}
- {{ - initials() | translate - }} - -
- + @if (initials()) { + {{ + initials() | translate + }} + } + @if (icon()) { + + } + } - - + @case ('flex-wrap') { + @if (icon()) { + + } {{ label() | translate }} - {{ - initials() | translate - }} - - -
+ @if (initials()) { + {{ + initials() | translate + }} + } + @if (hasRadio()) { + + } + } +} diff --git a/libs/ui/src/lib/ui/select/select-option/select-option.component.ts b/libs/ui/src/lib/ui/select/select-option/select-option.component.ts index a747bc4..add0c4c 100644 --- a/libs/ui/src/lib/ui/select/select-option/select-option.component.ts +++ b/libs/ui/src/lib/ui/select/select-option/select-option.component.ts @@ -10,7 +10,7 @@ import { SelectOptionFlexDirection, actionIcon, } from '../entities/select.model'; -import { NgSwitch, NgSwitchCase, NgIf } from '@angular/common'; + import { PiRadioButtonComponent } from '../../button/radio-button/radio-button.component'; import { MatIcon } from '@angular/material/icon'; import { MatCheckbox } from '@angular/material/checkbox'; @@ -21,15 +21,7 @@ import { TranslatePipe } from '@ngx-translate/core'; templateUrl: './select-option.component.html', styleUrls: ['./select-option.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ - NgSwitch, - NgSwitchCase, - NgIf, - PiRadioButtonComponent, - MatIcon, - MatCheckbox, - TranslatePipe, - ], + imports: [PiRadioButtonComponent, MatIcon, MatCheckbox, TranslatePipe], }) export class PiSelectOptionComponent { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/select/select-period/select-period.component.html b/libs/ui/src/lib/ui/select/select-period/select-period.component.html index 898b7a0..18b7b0c 100644 --- a/libs/ui/src/lib/ui/select/select-period/select-period.component.html +++ b/libs/ui/src/lib/ui/select/select-period/select-period.component.html @@ -1,10 +1,8 @@ - - +@if (type() === 'dropdown') { + @if (pickedOptionType() === 'button') {
@@ -18,11 +16,10 @@ size="small" >
-
- - + } @else { + @switch (appearance()) { - + @case ('fill') {
{{ label() | translate }} - + {{ selectedOption?.name || placeholder() | translate }} @@ -57,10 +56,10 @@ >
-
+ } - + @case ('outline') {
- + {{ selectedOption?.name || placeholder() | translate }} @@ -87,96 +88,94 @@ >
-
-
-
-
+ } + } + } +} diff --git a/libs/ui/src/lib/ui/select/select-period/select-period.component.ts b/libs/ui/src/lib/ui/select/select-period/select-period.component.ts index 9ead740..2a8f4cd 100644 --- a/libs/ui/src/lib/ui/select/select-period/select-period.component.ts +++ b/libs/ui/src/lib/ui/select/select-period/select-period.component.ts @@ -17,17 +17,10 @@ import { merge } from 'rxjs'; import { PiBaseSelectComponent } from '../base-select.component'; import { PiSelectOptionComponent } from '../select-option/select-option.component'; import _ from 'lodash'; -import { - NgIf, - NgSwitch, - NgSwitchCase, - NgTemplateOutlet, - NgFor, -} from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiIconComponent } from '../../icon/icon/icon.component'; import { PiDisabledDirective } from '../../../util/status/directives/status.directive'; import { PiDisabledDirective as PiDisabledDirective_1 } from '../../text/directives/text-styles.directive'; -import { PiSelectComponent } from '../select/select.component'; @Component({ selector: 'pi-select-period', @@ -43,16 +36,11 @@ import { PiSelectComponent } from '../select/select.component'; ], imports: [ ReactiveFormsModule, - NgIf, PiIconComponent, - NgSwitch, - NgSwitchCase, NgTemplateOutlet, PiDisabledDirective, PiDisabledDirective_1, - NgFor, PiSelectOptionComponent, - PiSelectComponent, TranslatePipe, ], }) diff --git a/libs/ui/src/lib/ui/select/select/select.component.html b/libs/ui/src/lib/ui/select/select/select.component.html index 30ea425..3cd1690 100644 --- a/libs/ui/src/lib/ui/select/select/select.component.html +++ b/libs/ui/src/lib/ui/select/select/select.component.html @@ -1,10 +1,8 @@ - - +@if (type() === 'dropdown') { + @if (pickedOptionType() === 'button') {
@@ -18,11 +16,10 @@ size="small" >
-
- - + } @else { + @switch (appearance()) { - + @case ('fill') {
{{ label() | translate }} - + {{ selectedOption?.name || placeholder() | translate }} @@ -57,10 +56,10 @@ >
-
+ } - + @case ('outline') {
- + {{ selectedOption?.name || placeholder() | translate }} @@ -87,67 +88,66 @@ >
-
-
-
-
+ } + } + } +} diff --git a/libs/ui/src/lib/ui/select/select/select.component.ts b/libs/ui/src/lib/ui/select/select/select.component.ts index eec7a46..5a378b9 100644 --- a/libs/ui/src/lib/ui/select/select/select.component.ts +++ b/libs/ui/src/lib/ui/select/select/select.component.ts @@ -19,13 +19,7 @@ import { merge } from 'rxjs'; import { PiBaseSelectComponent } from '../base-select.component'; import { PiSelectOptionComponent } from '../select-option/select-option.component'; import _ from 'lodash'; -import { - NgIf, - NgSwitch, - NgSwitchCase, - NgTemplateOutlet, - NgFor, -} from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiIconComponent } from '../../icon/icon/icon.component'; import { PiDisabledDirective } from '../../../util/status/directives/status.directive'; import { PiDisabledDirective as PiDisabledDirective_1 } from '../../text/directives/text-styles.directive'; @@ -44,14 +38,10 @@ import { PiDisabledDirective as PiDisabledDirective_1 } from '../../text/directi ], imports: [ ReactiveFormsModule, - NgIf, PiIconComponent, - NgSwitch, - NgSwitchCase, NgTemplateOutlet, PiDisabledDirective, PiDisabledDirective_1, - NgFor, PiSelectOptionComponent, forwardRef(() => PiSelectComponent), TranslatePipe, diff --git a/libs/ui/src/lib/ui/slider/slider/slider.component.html b/libs/ui/src/lib/ui/slider/slider/slider.component.html index 6efcd57..c41f11f 100644 --- a/libs/ui/src/lib/ui/slider/slider/slider.component.html +++ b/libs/ui/src/lib/ui/slider/slider/slider.component.html @@ -1,7 +1,9 @@ - - - {{ control?.value }} {{ unit() }} - +@if (label()) { + + + {{ control?.value }} {{ unit() }} + +} (); diff --git a/libs/ui/src/lib/ui/tab/tab/tab.component.html b/libs/ui/src/lib/ui/tab/tab/tab.component.html index 43f3022..aa99dcd 100644 --- a/libs/ui/src/lib/ui/tab/tab/tab.component.html +++ b/libs/ui/src/lib/ui/tab/tab/tab.component.html @@ -1,59 +1,62 @@
- + @if (isTabWrapperOverflowing && !isSmallDevice()) { + + }
- - + @if (tabButtons()) { + @for (tab of tabButtons(); track tab; let i = $index) {
- + @if (tab.icon) { + + } {{ tab.label | translate }}
-
-
+ } + } @else { + @for (tab of tabElementItems(); track tab; let i = $index) { +
+ +
+ } + }
- - -
- -
-
-
- + @if (isTabWrapperOverflowing && !isSmallDevice()) { + + }
- + @for (tab of tabContentItems(); track tab; let i = $index) {
-
+ }
diff --git a/libs/ui/src/lib/ui/tab/tab/tab.component.ts b/libs/ui/src/lib/ui/tab/tab/tab.component.ts index 2920653..31b13dd 100644 --- a/libs/ui/src/lib/ui/tab/tab/tab.component.ts +++ b/libs/ui/src/lib/ui/tab/tab/tab.component.ts @@ -15,7 +15,7 @@ import { } from '@angular/core'; import { TabButton } from '../entities/tab.model'; import { PiTabContentDirective, PiTabElementDirective } from '../tab.directive'; -import { NgIf, NgFor, NgTemplateOutlet } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { PiIconComponent } from '../../icon/icon/icon.component'; import { PiDisabledDirective } from '../../../util/status/directives/status.directive'; import { PiDisabledDirective as PiDisabledDirective_1 } from '../../text/directives/text-styles.directive'; @@ -27,11 +27,9 @@ import { TranslatePipe } from '@ngx-translate/core'; styleUrls: ['./tab.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ - NgIf, PiIconComponent, PiDisabledDirective, PiDisabledDirective_1, - NgFor, NgTemplateOutlet, TranslatePipe, ], diff --git a/libs/ui/src/lib/ui/text/text-area-expansion/text-area-expansion.component.html b/libs/ui/src/lib/ui/text/text-area-expansion/text-area-expansion.component.html index 47fb6bb..de9dc26 100644 --- a/libs/ui/src/lib/ui/text/text-area-expansion/text-area-expansion.component.html +++ b/libs/ui/src/lib/ui/text/text-area-expansion/text-area-expansion.component.html @@ -1,18 +1,19 @@
- {{ isLongText ? (text() | slice: 0 : characterLimit()) : text() - }}... + {{ isLongText ? (text() | slice: 0 : characterLimit()) : text() }} + @if (isLongText && isCollapsed) { + ... + } -
- {{ text() | slice: characterLimit() : text()?.length }} -
+ @if (!isCollapsed) { +
+ {{ text() | slice: characterLimit() : text()?.length }} +
+ }
- +@if (isLongText) { + +} diff --git a/libs/ui/src/lib/ui/text/text-area-expansion/text-area-expansion.component.ts b/libs/ui/src/lib/ui/text/text-area-expansion/text-area-expansion.component.ts index f03ea7c..4b8bd83 100644 --- a/libs/ui/src/lib/ui/text/text-area-expansion/text-area-expansion.component.ts +++ b/libs/ui/src/lib/ui/text/text-area-expansion/text-area-expansion.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectionStrategy, Component, input } from '@angular/core'; import { DURATION, transitionAnimation } from '../../../styles'; -import { NgIf, SlicePipe } from '@angular/common'; +import { SlicePipe } from '@angular/common'; import { PiGhostButtonDirective } from '../../button/button.directive'; @Component({ @@ -9,7 +9,7 @@ import { PiGhostButtonDirective } from '../../button/button.directive'; styleUrls: ['./text-area-expansion.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, animations: transitionAnimation(DURATION.Medium), - imports: [NgIf, PiGhostButtonDirective, SlicePipe], + imports: [PiGhostButtonDirective, SlicePipe], }) export class PiTextAreaExpansionComponent { readonly text = input(''); diff --git a/libs/ui/src/lib/ui/text/text-viewer-link/text-viewer-link.component.html b/libs/ui/src/lib/ui/text/text-viewer-link/text-viewer-link.component.html index 4cbc765..80eba13 100644 --- a/libs/ui/src/lib/ui/text/text-viewer-link/text-viewer-link.component.html +++ b/libs/ui/src/lib/ui/text/text-viewer-link/text-viewer-link.component.html @@ -1,25 +1,34 @@ - +@if (icon()) { + +} diff --git a/libs/ui/src/lib/ui/text/text-viewer-link/text-viewer-link.component.ts b/libs/ui/src/lib/ui/text/text-viewer-link/text-viewer-link.component.ts index 3d6d2a7..f9b418e 100644 --- a/libs/ui/src/lib/ui/text/text-viewer-link/text-viewer-link.component.ts +++ b/libs/ui/src/lib/ui/text/text-viewer-link/text-viewer-link.component.ts @@ -13,7 +13,7 @@ import { justify, } from '../../../styles'; import { PiBaseTextViewerComponent } from '../base-text-viewer.component'; -import { NgIf, NgSwitch, NgSwitchCase } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -24,14 +24,7 @@ import { MatIcon } from '@angular/material/icon'; '../styles/base-text-viewer.component.scss', ], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ - NgIf, - MatIcon, - NgSwitch, - NgSwitchCase, - RouterLink, - RouterLinkActive, - ], + imports: [MatIcon, RouterLink, RouterLinkActive], }) export class PiTextViewerLinkComponent extends PiBaseTextViewerComponent { @HostBinding('class') get textViewerLinkClasses(): string { diff --git a/libs/ui/src/lib/ui/text/text-viewer/text-viewer.component.html b/libs/ui/src/lib/ui/text/text-viewer/text-viewer.component.html index 340f02b..e5812eb 100644 --- a/libs/ui/src/lib/ui/text/text-viewer/text-viewer.component.html +++ b/libs/ui/src/lib/ui/text/text-viewer/text-viewer.component.html @@ -1,13 +1,16 @@ - +@if (icon()) { + +}
- - {{ value() }} - + @if (value()) { + + {{ value() }} + + }
diff --git a/libs/ui/src/lib/ui/text/text-viewer/text-viewer.component.ts b/libs/ui/src/lib/ui/text/text-viewer/text-viewer.component.ts index 641093a..25e7f70 100644 --- a/libs/ui/src/lib/ui/text/text-viewer/text-viewer.component.ts +++ b/libs/ui/src/lib/ui/text/text-viewer/text-viewer.component.ts @@ -7,7 +7,7 @@ import { import { ComponentFamilyClass } from '../../../styles'; import { PiBaseTextViewerComponent } from '../base-text-viewer.component'; -import { NgIf } from '@angular/common'; + import { MatIcon } from '@angular/material/icon'; @Component({ @@ -15,7 +15,7 @@ import { MatIcon } from '@angular/material/icon'; templateUrl: './text-viewer.component.html', styleUrls: ['../styles/base-text-viewer.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, MatIcon], + imports: [MatIcon], }) export class PiTextViewerComponent extends PiBaseTextViewerComponent { @HostBinding('class') get textViewerClasses(): string { diff --git a/libs/ui/src/lib/ui/wrapper/form/form.wrapper.html b/libs/ui/src/lib/ui/wrapper/form/form.wrapper.html index 5688d5a..f0fed23 100644 --- a/libs/ui/src/lib/ui/wrapper/form/form.wrapper.html +++ b/libs/ui/src/lib/ui/wrapper/form/form.wrapper.html @@ -1,4 +1,6 @@ -

{{ title() }}

+@if (title()) { +

{{ title() }}

+}
diff --git a/libs/ui/src/lib/ui/wrapper/form/form.wrapper.ts b/libs/ui/src/lib/ui/wrapper/form/form.wrapper.ts index c7d00fa..7f8859e 100644 --- a/libs/ui/src/lib/ui/wrapper/form/form.wrapper.ts +++ b/libs/ui/src/lib/ui/wrapper/form/form.wrapper.ts @@ -8,13 +8,12 @@ import { FormGroup, ReactiveFormsModule } from '@angular/forms'; import { grid, WrapperTypeClass } from '../../../styles'; import { PiBaseWrapper } from '../base.wrapper'; -import { NgIf } from '@angular/common'; @Component({ selector: 'pi-form-wrapper', templateUrl: './form.wrapper.html', changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, ReactiveFormsModule], + imports: [ReactiveFormsModule], }) export class PiFormWrapper extends PiBaseWrapper { @HostBinding('class') get classes(): string { diff --git a/libs/ui/src/lib/ui/wrapper/header/header.wrapper.html b/libs/ui/src/lib/ui/wrapper/header/header.wrapper.html index bb8b907..3c6ef40 100644 --- a/libs/ui/src/lib/ui/wrapper/header/header.wrapper.html +++ b/libs/ui/src/lib/ui/wrapper/header/header.wrapper.html @@ -1,4 +1,5 @@ -
+@if (backLink()) { +
-
+} diff --git a/libs/ui/src/lib/ui/wrapper/header/header.wrapper.ts b/libs/ui/src/lib/ui/wrapper/header/header.wrapper.ts index fd39255..f783afa 100644 --- a/libs/ui/src/lib/ui/wrapper/header/header.wrapper.ts +++ b/libs/ui/src/lib/ui/wrapper/header/header.wrapper.ts @@ -9,7 +9,7 @@ import { alignment, WrapperTypeClass } from '../../../styles'; import { PiBaseWrapper } from '../base.wrapper'; import { backLink } from '../definitions'; -import { NgIf } from '@angular/common'; + import { PiTextViewerComponent } from '../../text/text-viewer/text-viewer.component'; import { RouterLink, RouterLinkActive } from '@angular/router'; @@ -37,7 +37,7 @@ export class PiHeaderWrapperRightContentDirective {} selector: 'pi-header-wrapper', templateUrl: './header.wrapper.html', changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, PiTextViewerComponent, RouterLink, RouterLinkActive], + imports: [PiTextViewerComponent, RouterLink, RouterLinkActive], }) export class PiHeaderWrapper extends PiBaseWrapper { @HostBinding('class') get classes(): string {