feature/migrate to Angular control flow syntax (#4321)
* Migrate to Angular control flow syntax * Update changelog
This commit is contained in:
parent
ec098c8d68
commit
fe6dcdf682
@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Migrated the `@ghostfolio/client` components to control flow
|
||||||
|
- Migrated the `@ghostfolio/ui` components to control flow
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Added missing assets in _Storybook_ setup
|
- Added missing assets in _Storybook_ setup
|
||||||
|
@ -3,7 +3,6 @@ import { DataService } from '@ghostfolio/client/services/data.service';
|
|||||||
import { PROPERTY_API_KEY_GHOSTFOLIO } from '@ghostfolio/common/config';
|
import { PROPERTY_API_KEY_GHOSTFOLIO } from '@ghostfolio/common/config';
|
||||||
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
|
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
|
||||||
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject } from '@angular/core';
|
||||||
import { MatButtonModule } from '@angular/material/button';
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
import {
|
import {
|
||||||
@ -18,7 +17,6 @@ import { GhostfolioPremiumApiDialogParams } from './interfaces/interfaces';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
|
||||||
GfDialogFooterModule,
|
GfDialogFooterModule,
|
||||||
GfDialogHeaderModule,
|
GfDialogHeaderModule,
|
||||||
GfPremiumIndicatorComponent,
|
GfPremiumIndicatorComponent,
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import {
|
import {
|
||||||
CUSTOM_ELEMENTS_SCHEMA,
|
CUSTOM_ELEMENTS_SCHEMA,
|
||||||
ChangeDetectionStrategy,
|
ChangeDetectionStrategy,
|
||||||
@ -10,7 +9,6 @@ import { DataSource } from '@prisma/client';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
imports: [CommonModule],
|
|
||||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||||
selector: 'gf-asset-profile-icon',
|
selector: 'gf-asset-profile-icon',
|
||||||
styleUrls: ['./asset-profile-icon.component.scss'],
|
styleUrls: ['./asset-profile-icon.component.scss'],
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import { XRayRulesSettings } from '@ghostfolio/common/interfaces';
|
import { XRayRulesSettings } from '@ghostfolio/common/interfaces';
|
||||||
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject } 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';
|
||||||
@ -14,13 +13,7 @@ import { MatSliderModule } from '@angular/material/slider';
|
|||||||
import { IRuleSettingsDialogParams } from './interfaces/interfaces';
|
import { IRuleSettingsDialogParams } from './interfaces/interfaces';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
imports: [
|
imports: [FormsModule, MatButtonModule, MatDialogModule, MatSliderModule],
|
||||||
CommonModule,
|
|
||||||
FormsModule,
|
|
||||||
MatButtonModule,
|
|
||||||
MatDialogModule,
|
|
||||||
MatSliderModule
|
|
||||||
],
|
|
||||||
selector: 'gf-rule-settings-dialog',
|
selector: 'gf-rule-settings-dialog',
|
||||||
styleUrls: ['./rule-settings-dialog.scss'],
|
styleUrls: ['./rule-settings-dialog.scss'],
|
||||||
templateUrl: './rule-settings-dialog.html'
|
templateUrl: './rule-settings-dialog.html'
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { MatButtonModule } from '@angular/material/button';
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
|
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
|
||||||
@ -6,7 +5,7 @@ import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
|
|||||||
import { IAlertDialogParams } from './interfaces/interfaces';
|
import { IAlertDialogParams } from './interfaces/interfaces';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
imports: [CommonModule, MatButtonModule, MatDialogModule],
|
imports: [MatButtonModule, MatDialogModule],
|
||||||
selector: 'gf-alert-dialog',
|
selector: 'gf-alert-dialog',
|
||||||
styleUrls: ['./alert-dialog.scss'],
|
styleUrls: ['./alert-dialog.scss'],
|
||||||
templateUrl: './alert-dialog.html'
|
templateUrl: './alert-dialog.html'
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { Component, HostListener } from '@angular/core';
|
import { Component, HostListener } from '@angular/core';
|
||||||
import { MatButtonModule } from '@angular/material/button';
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
|
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
|
||||||
@ -7,7 +6,7 @@ import { ConfirmationDialogType } from './confirmation-dialog.type';
|
|||||||
import { IConfirmDialogParams } from './interfaces/interfaces';
|
import { IConfirmDialogParams } from './interfaces/interfaces';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
imports: [CommonModule, MatButtonModule, MatDialogModule],
|
imports: [MatButtonModule, MatDialogModule],
|
||||||
selector: 'gf-confirmation-dialog',
|
selector: 'gf-confirmation-dialog',
|
||||||
styleUrls: ['./confirmation-dialog.scss'],
|
styleUrls: ['./confirmation-dialog.scss'],
|
||||||
templateUrl: './confirmation-dialog.html'
|
templateUrl: './confirmation-dialog.html'
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { Component } from '@angular/core';
|
import { Component } 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';
|
||||||
@ -8,7 +7,6 @@ import { MatInputModule } from '@angular/material/input';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
|
||||||
FormsModule,
|
FormsModule,
|
||||||
MatButtonModule,
|
MatButtonModule,
|
||||||
MatDialogModule,
|
MatDialogModule,
|
||||||
|
@ -3,14 +3,13 @@ import { Product } from '@ghostfolio/common/interfaces';
|
|||||||
import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools';
|
import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools';
|
||||||
import { translate } from '@ghostfolio/ui/i18n';
|
import { translate } from '@ghostfolio/ui/i18n';
|
||||||
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { MatButtonModule } from '@angular/material/button';
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
import { ActivatedRoute, RouterModule } from '@angular/router';
|
import { ActivatedRoute, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
host: { class: 'page' },
|
host: { class: 'page' },
|
||||||
imports: [CommonModule, MatButtonModule, RouterModule],
|
imports: [MatButtonModule, RouterModule],
|
||||||
selector: 'gf-product-page',
|
selector: 'gf-product-page',
|
||||||
styleUrls: ['./product-page.scss'],
|
styleUrls: ['./product-page.scss'],
|
||||||
templateUrl: './product-page.html'
|
templateUrl: './product-page.html'
|
||||||
|
@ -8,7 +8,6 @@ import {
|
|||||||
} from '@ghostfolio/common/interfaces';
|
} from '@ghostfolio/common/interfaces';
|
||||||
import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
|
import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
|
||||||
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import {
|
import {
|
||||||
CUSTOM_ELEMENTS_SCHEMA,
|
CUSTOM_ELEMENTS_SCHEMA,
|
||||||
ChangeDetectionStrategy,
|
ChangeDetectionStrategy,
|
||||||
@ -33,7 +32,6 @@ import { BenchmarkDetailDialogParams } from './interfaces/interfaces';
|
|||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
host: { class: 'd-flex flex-column h-100' },
|
host: { class: 'd-flex flex-column h-100' },
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
|
||||||
GfDialogFooterModule,
|
GfDialogFooterModule,
|
||||||
GfDialogHeaderModule,
|
GfDialogHeaderModule,
|
||||||
GfLineChartComponent,
|
GfLineChartComponent,
|
||||||
|
@ -1,9 +1,16 @@
|
|||||||
<small class="text-muted">
|
<small class="text-muted">
|
||||||
<ng-container i18n>Market data provided by</ng-container> <ng-container
|
<ng-container i18n>Market data provided by</ng-container>
|
||||||
*ngFor="let dataProviderInfo of dataProviderInfos; let last = last"
|
@for (
|
||||||
><a target="_blank" [href]="dataProviderInfo.url">{{
|
dataProviderInfo of dataProviderInfos;
|
||||||
|
track dataProviderInfo;
|
||||||
|
let last = $last
|
||||||
|
) {
|
||||||
|
<a target="_blank" [href]="dataProviderInfo.url">{{
|
||||||
dataProviderInfo.name
|
dataProviderInfo.name
|
||||||
}}</a
|
}}</a>
|
||||||
><ng-container *ngIf="!last">, </ng-container></ng-container
|
@if (!last) {
|
||||||
>.
|
,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.
|
||||||
</small>
|
</small>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import { DataProviderInfo } from '@ghostfolio/common/interfaces';
|
import { DataProviderInfo } from '@ghostfolio/common/interfaces';
|
||||||
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import {
|
import {
|
||||||
CUSTOM_ELEMENTS_SCHEMA,
|
CUSTOM_ELEMENTS_SCHEMA,
|
||||||
ChangeDetectionStrategy,
|
ChangeDetectionStrategy,
|
||||||
@ -10,7 +9,6 @@ import {
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
imports: [CommonModule],
|
|
||||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||||
selector: 'gf-data-provider-credits',
|
selector: 'gf-data-provider-credits',
|
||||||
styleUrls: ['./data-provider-credits.component.scss'],
|
styleUrls: ['./data-provider-credits.component.scss'],
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import { AdminService } from '@ghostfolio/client/services/admin.service';
|
import { AdminService } from '@ghostfolio/client/services/admin.service';
|
||||||
import { DataService } from '@ghostfolio/client/services/data.service';
|
import { DataService } from '@ghostfolio/client/services/data.service';
|
||||||
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import {
|
import {
|
||||||
ChangeDetectionStrategy,
|
ChangeDetectionStrategy,
|
||||||
ChangeDetectorRef,
|
ChangeDetectorRef,
|
||||||
@ -29,7 +28,6 @@ import { HistoricalMarketDataEditorDialogParams } from './interfaces/interfaces'
|
|||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
host: { class: 'h-100' },
|
host: { class: 'h-100' },
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
|
||||||
FormsModule,
|
FormsModule,
|
||||||
MatButtonModule,
|
MatButtonModule,
|
||||||
MatDatepickerModule,
|
MatDatepickerModule,
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import {
|
import {
|
||||||
ChangeDetectionStrategy,
|
ChangeDetectionStrategy,
|
||||||
Component,
|
Component,
|
||||||
@ -28,7 +27,6 @@ import { BehaviorSubject, Subject, takeUntil } from 'rxjs';
|
|||||||
@Component({
|
@Component({
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
|
||||||
FormsModule,
|
FormsModule,
|
||||||
MatAutocompleteModule,
|
MatAutocompleteModule,
|
||||||
MatChipsModule,
|
MatChipsModule,
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import { DateRange, MarketState } from '@ghostfolio/common/types';
|
import { DateRange, MarketState } from '@ghostfolio/common/types';
|
||||||
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import {
|
import {
|
||||||
CUSTOM_ELEMENTS_SCHEMA,
|
CUSTOM_ELEMENTS_SCHEMA,
|
||||||
ChangeDetectionStrategy,
|
ChangeDetectionStrategy,
|
||||||
@ -11,7 +10,7 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
imports: [CommonModule, NgxSkeletonLoaderModule],
|
imports: [NgxSkeletonLoaderModule],
|
||||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||||
selector: 'gf-trend-indicator',
|
selector: 'gf-trend-indicator',
|
||||||
styleUrls: ['./trend-indicator.component.scss'],
|
styleUrls: ['./trend-indicator.component.scss'],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user