From 350fc745d9ce62430de23c7d122ca0976a7520a2 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 22 Aug 2026 09:57:56 +0200 Subject: [PATCH] Task/improve storybook setup (#7691) * Load @angular/localize centrally * Disable telemetry * Update changelog --- CHANGELOG.md | 5 +++++ libs/ui/.storybook/main.mjs | 3 +++ libs/ui/.storybook/preview.js | 1 + .../account-selector/account-selector.component.stories.ts | 1 - .../currency-selector/currency-selector.component.stories.ts | 1 - .../fear-and-greed-index.component.stories.ts | 1 - .../lib/fire-calculator/fire-calculator.component.stories.ts | 1 - .../lib/membership-card/membership-card.component.stories.ts | 1 - .../portfolio-filter-form.component.stories.ts | 1 - .../portfolio-proportion-chart.component.stories.ts | 1 - .../src/lib/tags-selector/tags-selector.component.stories.ts | 1 - .../src/lib/treemap-chart/treemap-chart.component.stories.ts | 1 - libs/ui/src/lib/value/value.component.stories.ts | 1 - 13 files changed, 9 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db177b1c1..11daee2ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Disabled the telemetry in the _Storybook_ setup - Upgraded the `Node.js` engine from version `>=22.18.0` to `>=22.22.3` (`package.json`) +### Fixed + +- Fixed the _Storybook_ setup by loading the `@angular/localize` polyfill centrally + ## 3.57.0 - 2026-08-21 ### Added diff --git a/libs/ui/.storybook/main.mjs b/libs/ui/.storybook/main.mjs index 28a7854e3..724224026 100644 --- a/libs/ui/.storybook/main.mjs +++ b/libs/ui/.storybook/main.mjs @@ -9,6 +9,9 @@ const config = { getAbsolutePath('@storybook/addon-docs'), getAbsolutePath('@storybook/addon-themes') ], + core: { + disableTelemetry: true + }, framework: { name: getAbsolutePath('@storybook/angular'), options: {} diff --git a/libs/ui/.storybook/preview.js b/libs/ui/.storybook/preview.js index e8e2fe282..c29b26fd6 100644 --- a/libs/ui/.storybook/preview.js +++ b/libs/ui/.storybook/preview.js @@ -1,3 +1,4 @@ +import '@angular/localize/init'; import { withThemeByClassName } from '@storybook/addon-themes'; const preview = { diff --git a/libs/ui/src/lib/account-selector/account-selector.component.stories.ts b/libs/ui/src/lib/account-selector/account-selector.component.stories.ts index 6908ef257..d974145aa 100644 --- a/libs/ui/src/lib/account-selector/account-selector.component.stories.ts +++ b/libs/ui/src/lib/account-selector/account-selector.component.stories.ts @@ -3,7 +3,6 @@ import { AccountWithPlatform } from '@ghostfolio/common/types'; import { CommonModule } from '@angular/common'; import { ANIMATION_MODULE_TYPE, importProvidersFrom } from '@angular/core'; import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; -import '@angular/localize/init'; import { applicationConfig, Meta, diff --git a/libs/ui/src/lib/currency-selector/currency-selector.component.stories.ts b/libs/ui/src/lib/currency-selector/currency-selector.component.stories.ts index beb63e369..53872ce31 100644 --- a/libs/ui/src/lib/currency-selector/currency-selector.component.stories.ts +++ b/libs/ui/src/lib/currency-selector/currency-selector.component.stories.ts @@ -1,6 +1,5 @@ import { ANIMATION_MODULE_TYPE } from '@angular/core'; import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; -import '@angular/localize/init'; import { MatFormFieldModule } from '@angular/material/form-field'; import { Meta, moduleMetadata, StoryObj } from '@storybook/angular'; diff --git a/libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.stories.ts b/libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.stories.ts index b5b2074da..52e716a82 100644 --- a/libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.stories.ts +++ b/libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.stories.ts @@ -1,4 +1,3 @@ -import '@angular/localize/init'; import { moduleMetadata } from '@storybook/angular'; import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; diff --git a/libs/ui/src/lib/fire-calculator/fire-calculator.component.stories.ts b/libs/ui/src/lib/fire-calculator/fire-calculator.component.stories.ts index f4528aac6..5d0304a7d 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.stories.ts +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.stories.ts @@ -3,7 +3,6 @@ import { DEFAULT_LOCALE } from '@ghostfolio/common/config'; import { CommonModule } from '@angular/common'; import { ANIMATION_MODULE_TYPE } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import '@angular/localize/init'; import { MatButtonModule } from '@angular/material/button'; import { provideNativeDateAdapter } from '@angular/material/core'; import { MatDatepickerModule } from '@angular/material/datepicker'; diff --git a/libs/ui/src/lib/membership-card/membership-card.component.stories.ts b/libs/ui/src/lib/membership-card/membership-card.component.stories.ts index 0d475bda7..234b3517a 100644 --- a/libs/ui/src/lib/membership-card/membership-card.component.stories.ts +++ b/libs/ui/src/lib/membership-card/membership-card.component.stories.ts @@ -1,5 +1,4 @@ import { CommonModule } from '@angular/common'; -import '@angular/localize/init'; import { MatButtonModule } from '@angular/material/button'; import { ActivatedRoute, RouterModule } from '@angular/router'; import { IonIcon } from '@ionic/angular/standalone'; diff --git a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts index 2b28d63a7..fc56158e9 100644 --- a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts +++ b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts @@ -1,6 +1,5 @@ import { AccountWithPlatform } from '@ghostfolio/common/types'; -import '@angular/localize/init'; import { Meta, moduleMetadata, StoryObj } from '@storybook/angular'; import { holdings } from '../mocks/holdings'; diff --git a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.stories.ts b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.stories.ts index 8ee9a4c7f..ccfdbb9f4 100644 --- a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.stories.ts +++ b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.stories.ts @@ -1,5 +1,4 @@ import { CommonModule } from '@angular/common'; -import '@angular/localize/init'; import { moduleMetadata } from '@storybook/angular'; import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; diff --git a/libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts b/libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts index e8bdd1873..29e85e393 100644 --- a/libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts +++ b/libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts @@ -1,6 +1,5 @@ import { CommonModule } from '@angular/common'; import { ANIMATION_MODULE_TYPE } from '@angular/core'; -import '@angular/localize/init'; import { Meta, moduleMetadata, StoryObj } from '@storybook/angular'; import { GfTagsSelectorComponent } from './tags-selector.component'; diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.stories.ts b/libs/ui/src/lib/treemap-chart/treemap-chart.component.stories.ts index e98b85252..04ea5c65f 100644 --- a/libs/ui/src/lib/treemap-chart/treemap-chart.component.stories.ts +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.stories.ts @@ -1,7 +1,6 @@ import { DEFAULT_COLOR_SCHEME } from '@ghostfolio/common/config'; import { CommonModule } from '@angular/common'; -import '@angular/localize/init'; import { moduleMetadata } from '@storybook/angular'; import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; diff --git a/libs/ui/src/lib/value/value.component.stories.ts b/libs/ui/src/lib/value/value.component.stories.ts index 19139e266..eb8520a88 100644 --- a/libs/ui/src/lib/value/value.component.stories.ts +++ b/libs/ui/src/lib/value/value.component.stories.ts @@ -1,5 +1,4 @@ import { ANIMATION_MODULE_TYPE } from '@angular/core'; -import '@angular/localize/init'; import { applicationConfig, moduleMetadata } from '@storybook/angular'; import type { Meta, StoryObj } from '@storybook/angular'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';