Migration Angular 18 -> 19 (ng update, standalone par defaut, build OK)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-10 14:47:19 +02:00
parent d772e969ea
commit 05bbe64841
75 changed files with 3267 additions and 2013 deletions

4557
web/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -15,25 +15,25 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^18.2.14", "@angular/animations": "^19.2.25",
"@angular/common": "^18.2.14", "@angular/common": "^19.2.25",
"@angular/compiler": "^18.2.14", "@angular/compiler": "^19.2.25",
"@angular/core": "^18.2.14", "@angular/core": "^19.2.25",
"@angular/forms": "^18.2.14", "@angular/forms": "^19.2.25",
"@angular/platform-browser": "^18.2.14", "@angular/platform-browser": "^19.2.25",
"@angular/platform-browser-dynamic": "^18.2.14", "@angular/platform-browser-dynamic": "^19.2.25",
"@angular/router": "^18.2.14", "@angular/router": "^19.2.25",
"dompurify": "^3.4.1", "dompurify": "^3.4.1",
"lucide-angular": "^1.0.0", "lucide-angular": "^1.0.0",
"marked": "^18.0.2", "marked": "^18.0.2",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.3.0", "tslib": "^2.3.0",
"zone.js": "~0.14.2" "zone.js": "~0.15.1"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "^18.2.21", "@angular-devkit/build-angular": "^19.2.27",
"@angular/cli": "^18.2.21", "@angular/cli": "^19.2.27",
"@angular/compiler-cli": "^18.2.14", "@angular/compiler-cli": "^19.2.25",
"@playwright/test": "^1.59.1", "@playwright/test": "^1.59.1",
"typescript": "~5.5.4" "typescript": "~5.5.4"
} }

View File

@@ -12,7 +12,6 @@ import { VersionCheckerService } from './services/version-checker.service';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
standalone: true,
imports: [ imports: [
RouterOutlet, RouterOutlet,
SidebarComponent, SidebarComponent,

View File

@@ -20,7 +20,6 @@ import { CAMPAIGN_ICON_OPTIONS } from '../../campaign-icons';
*/ */
@Component({ @Component({
selector: 'app-arc-create', selector: 'app-arc-create',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, IconPickerComponent], imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, IconPickerComponent],
templateUrl: './arc-create.component.html', templateUrl: './arc-create.component.html',
styleUrls: ['./arc-create.component.scss'] styleUrls: ['./arc-create.component.scss']

View File

@@ -33,7 +33,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-arc-edit', selector: 'app-arc-edit',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, LoreLinkPickerComponent, AiChatDrawerComponent, ImageGalleryComponent, IconPickerComponent], imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, LoreLinkPickerComponent, AiChatDrawerComponent, ImageGalleryComponent, IconPickerComponent],
templateUrl: './arc-edit.component.html', templateUrl: './arc-edit.component.html',
styleUrls: ['./arc-edit.component.scss'] styleUrls: ['./arc-edit.component.scss']

View File

@@ -25,7 +25,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-arc-view', selector: 'app-arc-view',
standalone: true,
imports: [CommonModule, RouterModule, LucideAngularModule, ImageGalleryComponent], imports: [CommonModule, RouterModule, LucideAngularModule, ImageGalleryComponent],
templateUrl: './arc-view.component.html', templateUrl: './arc-view.component.html',
styleUrls: ['./arc-view.component.scss'] styleUrls: ['./arc-view.component.scss']

View File

@@ -22,7 +22,6 @@ export interface CampaignCreatePayload {
@Component({ @Component({
selector: 'app-campaign-create', selector: 'app-campaign-create',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, FormsModule, LucideAngularModule], imports: [CommonModule, ReactiveFormsModule, FormsModule, LucideAngularModule],
templateUrl: './campaign-create.component.html', templateUrl: './campaign-create.component.html',
styleUrls: ['./campaign-create.component.scss'] styleUrls: ['./campaign-create.component.scss']

View File

@@ -27,7 +27,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
@Component({ @Component({
selector: 'app-campaign-detail', selector: 'app-campaign-detail',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule, RouterLink], imports: [CommonModule, FormsModule, LucideAngularModule, RouterLink],
templateUrl: './campaign-detail.component.html', templateUrl: './campaign-detail.component.html',
styleUrls: ['./campaign-detail.component.scss'] styleUrls: ['./campaign-detail.component.scss']

View File

@@ -47,7 +47,6 @@ interface ArcNode {
*/ */
@Component({ @Component({
selector: 'app-campaign-import', selector: 'app-campaign-import',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './campaign-import.component.html', templateUrl: './campaign-import.component.html',
styleUrls: ['./campaign-import.component.scss'] styleUrls: ['./campaign-import.component.scss']

View File

@@ -9,7 +9,6 @@ import { CampaignCreateComponent, CampaignCreatePayload } from './campaign/campa
@Component({ @Component({
selector: 'app-campaigns', selector: 'app-campaigns',
standalone: true,
imports: [CommonModule, LucideAngularModule, CampaignCreateComponent], imports: [CommonModule, LucideAngularModule, CampaignCreateComponent],
templateUrl: './campaigns.component.html', templateUrl: './campaigns.component.html',
styleUrls: ['./campaigns.component.scss'] styleUrls: ['./campaigns.component.scss']

View File

@@ -19,7 +19,6 @@ import { CAMPAIGN_ICON_OPTIONS } from '../../campaign-icons';
*/ */
@Component({ @Component({
selector: 'app-chapter-create', selector: 'app-chapter-create',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, IconPickerComponent], imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, IconPickerComponent],
templateUrl: './chapter-create.component.html', templateUrl: './chapter-create.component.html',
styleUrls: ['./chapter-create.component.scss'] styleUrls: ['./chapter-create.component.scss']

View File

@@ -33,7 +33,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-chapter-edit', selector: 'app-chapter-edit',
standalone: true,
imports: [ imports: [
CommonModule, CommonModule,
ReactiveFormsModule, ReactiveFormsModule,

View File

@@ -21,7 +21,6 @@ interface GraphEdge { key: string; label: string; x1: number; y1: number; x2: nu
*/ */
@Component({ @Component({
selector: 'app-chapter-graph', selector: 'app-chapter-graph',
standalone: true,
imports: [CommonModule, RouterModule, LucideAngularModule], imports: [CommonModule, RouterModule, LucideAngularModule],
templateUrl: './chapter-graph.component.html', templateUrl: './chapter-graph.component.html',
styleUrls: ['./chapter-graph.component.scss'] styleUrls: ['./chapter-graph.component.scss']

View File

@@ -24,7 +24,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-chapter-view', selector: 'app-chapter-view',
standalone: true,
imports: [CommonModule, RouterModule, LucideAngularModule, ImageGalleryComponent], imports: [CommonModule, RouterModule, LucideAngularModule, ImageGalleryComponent],
templateUrl: './chapter-view.component.html', templateUrl: './chapter-view.component.html',
styleUrls: ['./chapter-view.component.scss'] styleUrls: ['./chapter-view.component.scss']

View File

@@ -26,7 +26,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-character-edit', selector: 'app-character-edit',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule, AiChatDrawerComponent, DynamicFieldsFormComponent, SingleImagePickerComponent], imports: [CommonModule, FormsModule, LucideAngularModule, AiChatDrawerComponent, DynamicFieldsFormComponent, SingleImagePickerComponent],
templateUrl: './character-edit.component.html', templateUrl: './character-edit.component.html',
styleUrls: ['./character-edit.component.scss'] styleUrls: ['./character-edit.component.scss']

View File

@@ -17,7 +17,6 @@ import { AiChatDrawerComponent } from '../../../shared/ai-chat-drawer/ai-chat-dr
*/ */
@Component({ @Component({
selector: 'app-character-view', selector: 'app-character-view',
standalone: true,
imports: [CommonModule, LucideAngularModule, PersonaViewComponent, AiChatDrawerComponent], imports: [CommonModule, LucideAngularModule, PersonaViewComponent, AiChatDrawerComponent],
templateUrl: './character-view.component.html', templateUrl: './character-view.component.html',
styleUrls: ['./character-view.component.scss'] styleUrls: ['./character-view.component.scss']

View File

@@ -14,7 +14,6 @@ import { ItemCatalog, CatalogItem, ItemCatalogCreate } from '../../../services/i
*/ */
@Component({ @Component({
selector: 'app-item-catalog-edit', selector: 'app-item-catalog-edit',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './item-catalog-edit.component.html', templateUrl: './item-catalog-edit.component.html',
styleUrls: ['./item-catalog-edit.component.scss'] styleUrls: ['./item-catalog-edit.component.scss']

View File

@@ -13,7 +13,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-item-catalog-list', selector: 'app-item-catalog-list',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './item-catalog-list.component.html', templateUrl: './item-catalog-list.component.html',
styleUrls: ['./item-catalog-list.component.scss'] styleUrls: ['./item-catalog-list.component.scss']

View File

@@ -14,7 +14,6 @@ interface ItemGroup { category: string; items: CatalogItem[]; }
*/ */
@Component({ @Component({
selector: 'app-item-catalog-view', selector: 'app-item-catalog-view',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './item-catalog-view.component.html', templateUrl: './item-catalog-view.component.html',
styleUrls: ['./item-catalog-view.component.scss'] styleUrls: ['./item-catalog-view.component.scss']

View File

@@ -15,7 +15,6 @@ import { NotebookAction } from '../../../services/notebook-action.model';
*/ */
@Component({ @Component({
selector: 'app-notebook-action-card', selector: 'app-notebook-action-card',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './notebook-action-card.component.html', templateUrl: './notebook-action-card.component.html',
styleUrls: ['./notebook-action-card.component.scss'] styleUrls: ['./notebook-action-card.component.scss']

View File

@@ -20,7 +20,6 @@ import { NotebookActionCardComponent } from '../notebook-action-card/notebook-ac
*/ */
@Component({ @Component({
selector: 'app-notebook-detail', selector: 'app-notebook-detail',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule, NotebookActionCardComponent], imports: [CommonModule, FormsModule, LucideAngularModule, NotebookActionCardComponent],
templateUrl: './notebook-detail.component.html', templateUrl: './notebook-detail.component.html',
styleUrls: ['./notebook-detail.component.scss'] styleUrls: ['./notebook-detail.component.scss']

View File

@@ -14,7 +14,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-notebook-list', selector: 'app-notebook-list',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './notebook-list.component.html', templateUrl: './notebook-list.component.html',
styleUrls: ['./notebook-list.component.scss'] styleUrls: ['./notebook-list.component.scss']

View File

@@ -21,7 +21,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-npc-edit', selector: 'app-npc-edit',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule, AiChatDrawerComponent, DynamicFieldsFormComponent, SingleImagePickerComponent], imports: [CommonModule, FormsModule, LucideAngularModule, AiChatDrawerComponent, DynamicFieldsFormComponent, SingleImagePickerComponent],
templateUrl: './npc-edit.component.html', templateUrl: './npc-edit.component.html',
styleUrls: ['./npc-edit.component.scss'] styleUrls: ['./npc-edit.component.scss']

View File

@@ -18,7 +18,6 @@ import { AiChatDrawerComponent } from '../../../shared/ai-chat-drawer/ai-chat-dr
*/ */
@Component({ @Component({
selector: 'app-npc-view', selector: 'app-npc-view',
standalone: true,
imports: [CommonModule, LucideAngularModule, PersonaViewComponent, AiChatDrawerComponent], imports: [CommonModule, LucideAngularModule, PersonaViewComponent, AiChatDrawerComponent],
templateUrl: './npc-view.component.html', templateUrl: './npc-view.component.html',
styleUrls: ['./npc-view.component.scss'] styleUrls: ['./npc-view.component.scss']

View File

@@ -25,7 +25,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-playthrough-detail', selector: 'app-playthrough-detail',
standalone: true,
imports: [CommonModule, RouterModule, LucideAngularModule], imports: [CommonModule, RouterModule, LucideAngularModule],
templateUrl: './playthrough-detail.component.html', templateUrl: './playthrough-detail.component.html',
styleUrls: ['./playthrough-detail.component.scss'] styleUrls: ['./playthrough-detail.component.scss']

View File

@@ -20,7 +20,6 @@ import { PlaythroughFlagsManagerComponent } from '../../../shared/playthrough-fl
*/ */
@Component({ @Component({
selector: 'app-playthrough-flags-page', selector: 'app-playthrough-flags-page',
standalone: true,
imports: [CommonModule, RouterModule, LucideAngularModule, PlaythroughFlagsManagerComponent], imports: [CommonModule, RouterModule, LucideAngularModule, PlaythroughFlagsManagerComponent],
templateUrl: './playthrough-flags-page.component.html', templateUrl: './playthrough-flags-page.component.html',
styleUrls: ['./playthrough-flags-page.component.scss'] styleUrls: ['./playthrough-flags-page.component.scss']

View File

@@ -15,7 +15,6 @@ import { DiceUtils } from '../../../shared/dice.utils';
*/ */
@Component({ @Component({
selector: 'app-random-table-edit', selector: 'app-random-table-edit',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './random-table-edit.component.html', templateUrl: './random-table-edit.component.html',
styleUrls: ['./random-table-edit.component.scss'] styleUrls: ['./random-table-edit.component.scss']

View File

@@ -14,7 +14,6 @@ import { DiceUtils, DiceRoll } from '../../../shared/dice.utils';
*/ */
@Component({ @Component({
selector: 'app-random-table-view', selector: 'app-random-table-view',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './random-table-view.component.html', templateUrl: './random-table-view.component.html',
styleUrls: ['./random-table-view.component.scss'] styleUrls: ['./random-table-view.component.scss']

View File

@@ -19,7 +19,6 @@ import { CAMPAIGN_ICON_OPTIONS } from '../../campaign-icons';
*/ */
@Component({ @Component({
selector: 'app-scene-create', selector: 'app-scene-create',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, IconPickerComponent], imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, IconPickerComponent],
templateUrl: './scene-create.component.html', templateUrl: './scene-create.component.html',
styleUrls: ['./scene-create.component.scss'] styleUrls: ['./scene-create.component.scss']

View File

@@ -30,7 +30,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-scene-edit', selector: 'app-scene-edit',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, ExpandableSectionComponent, LoreLinkPickerComponent, AiChatDrawerComponent, ImageGalleryComponent, IconPickerComponent, RoomsEditorComponent], imports: [CommonModule, ReactiveFormsModule, LucideAngularModule, ExpandableSectionComponent, LoreLinkPickerComponent, AiChatDrawerComponent, ImageGalleryComponent, IconPickerComponent, RoomsEditorComponent],
templateUrl: './scene-edit.component.html', templateUrl: './scene-edit.component.html',
styleUrls: ['./scene-edit.component.scss'] styleUrls: ['./scene-edit.component.scss']

View File

@@ -24,7 +24,6 @@ import { ConfirmDialogService } from '../../../shared/confirm-dialog/confirm-dia
*/ */
@Component({ @Component({
selector: 'app-scene-view', selector: 'app-scene-view',
standalone: true,
imports: [CommonModule, RouterModule, LucideAngularModule, ImageGalleryComponent], imports: [CommonModule, RouterModule, LucideAngularModule, ImageGalleryComponent],
templateUrl: './scene-view.component.html', templateUrl: './scene-view.component.html',
styleUrls: ['./scene-view.component.scss'] styleUrls: ['./scene-view.component.scss']

View File

@@ -41,7 +41,6 @@ const NPC_FIELD_SUGGESTIONS = ['Motivation', 'Apparence', 'Faction', 'Notes MJ']
@Component({ @Component({
selector: 'app-game-system-edit', selector: 'app-game-system-edit',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule, TemplateFieldsEditorComponent], imports: [CommonModule, FormsModule, LucideAngularModule, TemplateFieldsEditorComponent],
templateUrl: './game-system-edit.component.html', templateUrl: './game-system-edit.component.html',
styleUrls: ['./game-system-edit.component.scss'] styleUrls: ['./game-system-edit.component.scss']

View File

@@ -9,7 +9,6 @@ import { ConfirmDialogService } from '../shared/confirm-dialog/confirm-dialog.se
@Component({ @Component({
selector: 'app-game-systems', selector: 'app-game-systems',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './game-systems.component.html', templateUrl: './game-systems.component.html',
styleUrls: ['./game-systems.component.scss'] styleUrls: ['./game-systems.component.scss']

View File

@@ -24,7 +24,6 @@ import { ConfirmDialogService } from '../../shared/confirm-dialog/confirm-dialog
*/ */
@Component({ @Component({
selector: 'app-folder-view', selector: 'app-folder-view',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './folder-view.component.html', templateUrl: './folder-view.component.html',
styleUrls: ['./folder-view.component.scss'] styleUrls: ['./folder-view.component.scss']

View File

@@ -5,7 +5,6 @@ import { LucideAngularModule, BookCopy, X } from 'lucide-angular';
@Component({ @Component({
selector: 'app-lore-create', selector: 'app-lore-create',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, LucideAngularModule], imports: [CommonModule, ReactiveFormsModule, LucideAngularModule],
templateUrl: './lore-create.component.html', templateUrl: './lore-create.component.html',
styleUrls: ['./lore-create.component.scss'] styleUrls: ['./lore-create.component.scss']

View File

@@ -14,7 +14,6 @@ import { ConfirmDialogService } from '../../shared/confirm-dialog/confirm-dialog
@Component({ @Component({
selector: 'app-lore-detail', selector: 'app-lore-detail',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './lore-detail.component.html', templateUrl: './lore-detail.component.html',
styleUrls: ['./lore-detail.component.scss'] styleUrls: ['./lore-detail.component.scss']

View File

@@ -14,7 +14,6 @@ import { LORE_ICON_OPTIONS, IconOption, resolveIcon } from '../lore-icons';
@Component({ @Component({
selector: 'app-lore-node-create', selector: 'app-lore-node-create',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, LucideAngularModule], imports: [CommonModule, ReactiveFormsModule, LucideAngularModule],
templateUrl: './lore-node-create.component.html', templateUrl: './lore-node-create.component.html',
styleUrls: ['./lore-node-create.component.scss'] styleUrls: ['./lore-node-create.component.scss']

View File

@@ -32,7 +32,6 @@ import { LORE_ICON_OPTIONS, IconOption } from '../lore-icons';
*/ */
@Component({ @Component({
selector: 'app-lore-node-edit', selector: 'app-lore-node-edit',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, LucideAngularModule], imports: [CommonModule, ReactiveFormsModule, LucideAngularModule],
templateUrl: './lore-node-edit.component.html', templateUrl: './lore-node-edit.component.html',
styleUrls: ['./lore-node-edit.component.scss'] styleUrls: ['./lore-node-edit.component.scss']

View File

@@ -9,7 +9,6 @@ import { LoreCreateComponent } from './lore-create/lore-create.component';
@Component({ @Component({
selector: 'app-lore', selector: 'app-lore',
standalone: true,
imports: [CommonModule, LucideAngularModule, LoreCreateComponent], imports: [CommonModule, LucideAngularModule, LoreCreateComponent],
templateUrl: './lore.component.html', templateUrl: './lore.component.html',
styleUrls: ['./lore.component.scss'] styleUrls: ['./lore.component.scss']

View File

@@ -26,7 +26,6 @@ import { AiChatDrawerComponent, ChatPrimaryAction } from '../../shared/ai-chat-d
*/ */
@Component({ @Component({
selector: 'app-page-create', selector: 'app-page-create',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, RouterModule, LucideAngularModule, AiChatDrawerComponent], imports: [CommonModule, ReactiveFormsModule, RouterModule, LucideAngularModule, AiChatDrawerComponent],
templateUrl: './page-create.component.html', templateUrl: './page-create.component.html',
styleUrls: ['./page-create.component.scss'] styleUrls: ['./page-create.component.scss']

View File

@@ -36,7 +36,6 @@ import { ConfirmDialogService } from '../../shared/confirm-dialog/confirm-dialog
*/ */
@Component({ @Component({
selector: 'app-page-edit', selector: 'app-page-edit',
standalone: true,
imports: [CommonModule, FormsModule, RouterLink, LucideAngularModule, ChipsInputComponent, LoreLinkPickerComponent, BreadcrumbComponent, AiChatDrawerComponent, ImageGalleryComponent], imports: [CommonModule, FormsModule, RouterLink, LucideAngularModule, ChipsInputComponent, LoreLinkPickerComponent, BreadcrumbComponent, AiChatDrawerComponent, ImageGalleryComponent],
templateUrl: './page-edit.component.html', templateUrl: './page-edit.component.html',
styleUrls: ['./page-edit.component.scss'] styleUrls: ['./page-edit.component.scss']

View File

@@ -28,7 +28,6 @@ import { ConfirmDialogService } from '../../shared/confirm-dialog/confirm-dialog
*/ */
@Component({ @Component({
selector: 'app-page-view', selector: 'app-page-view',
standalone: true,
imports: [CommonModule, RouterModule, LucideAngularModule, BreadcrumbComponent, ImageGalleryComponent], imports: [CommonModule, RouterModule, LucideAngularModule, BreadcrumbComponent, ImageGalleryComponent],
templateUrl: './page-view.component.html', templateUrl: './page-view.component.html',
styleUrls: ['./page-view.component.scss'] styleUrls: ['./page-view.component.scss']

View File

@@ -20,7 +20,6 @@ import { popReturnTo } from '../return-stack.helper';
*/ */
@Component({ @Component({
selector: 'app-template-create', selector: 'app-template-create',
standalone: true,
imports: [CommonModule, FormsModule, ReactiveFormsModule, RouterModule, LucideAngularModule], imports: [CommonModule, FormsModule, ReactiveFormsModule, RouterModule, LucideAngularModule],
templateUrl: './template-create.component.html', templateUrl: './template-create.component.html',
styleUrls: ['./template-create.component.scss'] styleUrls: ['./template-create.component.scss']

View File

@@ -21,7 +21,6 @@ import { ConfirmDialogService } from '../../shared/confirm-dialog/confirm-dialog
*/ */
@Component({ @Component({
selector: 'app-template-edit', selector: 'app-template-edit',
standalone: true,
imports: [CommonModule, FormsModule, ReactiveFormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, ReactiveFormsModule, LucideAngularModule],
templateUrl: './template-edit.component.html', templateUrl: './template-edit.component.html',
styleUrls: ['./template-edit.component.scss'] styleUrls: ['./template-edit.component.scss']

View File

@@ -23,7 +23,6 @@ import { AiChatService, ChatMessage } from '../../services/ai-chat.service';
*/ */
@Component({ @Component({
selector: 'app-session-ai-chat-panel', selector: 'app-session-ai-chat-panel',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './session-ai-chat-panel.component.html', templateUrl: './session-ai-chat-panel.component.html',
styleUrls: ['./session-ai-chat-panel.component.scss'] styleUrls: ['./session-ai-chat-panel.component.scss']

View File

@@ -29,7 +29,6 @@ import { DiceRollResult } from '../session-dice-panel/session-dice-panel.compone
*/ */
@Component({ @Component({
selector: 'app-session-detail', selector: 'app-session-detail',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule, RouterLink, SessionReferencePanelComponent], imports: [CommonModule, FormsModule, LucideAngularModule, RouterLink, SessionReferencePanelComponent],
templateUrl: './session-detail.component.html', templateUrl: './session-detail.component.html',
styleUrls: ['./session-detail.component.scss'] styleUrls: ['./session-detail.component.scss']

View File

@@ -26,7 +26,6 @@ export interface DiceRollResult {
*/ */
@Component({ @Component({
selector: 'app-session-dice-panel', selector: 'app-session-dice-panel',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './session-dice-panel.component.html', templateUrl: './session-dice-panel.component.html',
styleUrls: ['./session-dice-panel.component.scss'] styleUrls: ['./session-dice-panel.component.scss']

View File

@@ -13,7 +13,6 @@ interface ItemGroup { category: string; items: CatalogItem[]; }
*/ */
@Component({ @Component({
selector: 'app-session-item-catalogs-panel', selector: 'app-session-item-catalogs-panel',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './session-item-catalogs-panel.component.html', templateUrl: './session-item-catalogs-panel.component.html',
styleUrls: ['./session-item-catalogs-panel.component.scss'] styleUrls: ['./session-item-catalogs-panel.component.scss']

View File

@@ -18,7 +18,6 @@ import { DiceRollResult } from '../session-dice-panel/session-dice-panel.compone
*/ */
@Component({ @Component({
selector: 'app-session-random-tables-panel', selector: 'app-session-random-tables-panel',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './session-random-tables-panel.component.html', templateUrl: './session-random-tables-panel.component.html',
styleUrls: ['./session-random-tables-panel.component.scss'] styleUrls: ['./session-random-tables-panel.component.scss']

View File

@@ -30,7 +30,6 @@ type TabId = 'dice' | 'tables' | 'objects' | 'characters' | 'scenes' | 'ai';
*/ */
@Component({ @Component({
selector: 'app-session-reference-panel', selector: 'app-session-reference-panel',
standalone: true,
imports: [CommonModule, LucideAngularModule, SessionDicePanelComponent, SessionAiChatPanelComponent, SessionRandomTablesPanelComponent, SessionItemCatalogsPanelComponent], imports: [CommonModule, LucideAngularModule, SessionDicePanelComponent, SessionAiChatPanelComponent, SessionRandomTablesPanelComponent, SessionItemCatalogsPanelComponent],
templateUrl: './session-reference-panel.component.html', templateUrl: './session-reference-panel.component.html',
styleUrls: ['./session-reference-panel.component.scss'] styleUrls: ['./session-reference-panel.component.scss']

View File

@@ -19,7 +19,6 @@ import { ConfirmDialogService } from '../../shared/confirm-dialog/confirm-dialog
*/ */
@Component({ @Component({
selector: 'app-ollama-model-manager', selector: 'app-ollama-model-manager',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './ollama-model-manager.component.html', templateUrl: './ollama-model-manager.component.html',
// Reutilise la feuille de style de l'ecran Parametres (modal, suggestions, // Reutilise la feuille de style de l'ecran Parametres (modal, suggestions,

View File

@@ -24,7 +24,6 @@ import { OllamaModelManagerComponent } from './ollama-model-manager/ollama-model
*/ */
@Component({ @Component({
selector: 'app-settings', selector: 'app-settings',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule, UpdatesSectionComponent, OllamaModelManagerComponent], imports: [CommonModule, FormsModule, LucideAngularModule, UpdatesSectionComponent, OllamaModelManagerComponent],
templateUrl: './settings.component.html', templateUrl: './settings.component.html',
styleUrls: ['./settings.component.scss'] styleUrls: ['./settings.component.scss']

View File

@@ -22,7 +22,6 @@ import { ConfirmDialogService } from '../../shared/confirm-dialog/confirm-dialog
*/ */
@Component({ @Component({
selector: 'app-settings-updates-section', selector: 'app-settings-updates-section',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './updates-section.component.html', templateUrl: './updates-section.component.html',
// Reutilise la feuille de style de l'ecran Parametres : les blocs deplaces // Reutilise la feuille de style de l'ecran Parametres : les blocs deplaces

View File

@@ -31,10 +31,9 @@ export interface ChatPrimaryAction {
*/ */
@Component({ @Component({
selector: 'app-ai-chat-drawer', selector: 'app-ai-chat-drawer',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule, MarkdownPipe], imports: [CommonModule, FormsModule, LucideAngularModule, MarkdownPipe],
templateUrl: './ai-chat-drawer.component.html', templateUrl: './ai-chat-drawer.component.html',
styleUrls: ['./ai-chat-drawer.component.scss'], styleUrls: ['./ai-chat-drawer.component.scss']
}) })
export class AiChatDrawerComponent implements OnInit, OnChanges, OnDestroy { export class AiChatDrawerComponent implements OnInit, OnChanges, OnDestroy {
readonly X = X; readonly X = X;

View File

@@ -23,7 +23,6 @@ export interface BreadcrumbItem {
*/ */
@Component({ @Component({
selector: 'app-breadcrumb', selector: 'app-breadcrumb',
standalone: true,
imports: [CommonModule, RouterLink], imports: [CommonModule, RouterLink],
templateUrl: './breadcrumb.component.html', templateUrl: './breadcrumb.component.html',
styleUrls: ['./breadcrumb.component.scss'] styleUrls: ['./breadcrumb.component.scss']

View File

@@ -21,7 +21,6 @@ import { LucideAngularModule, X } from 'lucide-angular';
*/ */
@Component({ @Component({
selector: 'app-chips-input', selector: 'app-chips-input',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './chips-input.component.html', templateUrl: './chips-input.component.html',
styleUrls: ['./chips-input.component.scss'] styleUrls: ['./chips-input.component.scss']

View File

@@ -5,7 +5,6 @@ import { ConfirmDialogService } from './confirm-dialog.service';
@Component({ @Component({
selector: 'app-confirm-dialog-host', selector: 'app-confirm-dialog-host',
standalone: true,
imports: [CommonModule, ConfirmDialogComponent], imports: [CommonModule, ConfirmDialogComponent],
template: ` template: `
<app-confirm-dialog <app-confirm-dialog

View File

@@ -6,7 +6,6 @@ export type ConfirmDialogVariant = 'warning' | 'danger' | 'info';
@Component({ @Component({
selector: 'app-confirm-dialog', selector: 'app-confirm-dialog',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './confirm-dialog.component.html', templateUrl: './confirm-dialog.component.html',
styleUrls: ['./confirm-dialog.component.scss'] styleUrls: ['./confirm-dialog.component.scss']

View File

@@ -17,7 +17,6 @@ import { ImageGalleryComponent } from '../image-gallery/image-gallery.component'
*/ */
@Component({ @Component({
selector: 'app-dynamic-fields-form', selector: 'app-dynamic-fields-form',
standalone: true,
imports: [CommonModule, FormsModule, ImageGalleryComponent], imports: [CommonModule, FormsModule, ImageGalleryComponent],
templateUrl: './dynamic-fields-form.component.html', templateUrl: './dynamic-fields-form.component.html',
styleUrls: ['./dynamic-fields-form.component.scss'] styleUrls: ['./dynamic-fields-form.component.scss']

View File

@@ -13,7 +13,6 @@ import { LucideAngularModule, ChevronDown, ChevronUp } from 'lucide-angular';
*/ */
@Component({ @Component({
selector: 'app-expandable-section', selector: 'app-expandable-section',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './expandable-section.component.html', templateUrl: './expandable-section.component.html',
styleUrls: ['./expandable-section.component.scss'] styleUrls: ['./expandable-section.component.scss']

View File

@@ -31,7 +31,6 @@ interface SearchResult {
*/ */
@Component({ @Component({
selector: 'app-global-search', selector: 'app-global-search',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './global-search.component.html', templateUrl: './global-search.component.html',
styleUrls: ['./global-search.component.scss'] styleUrls: ['./global-search.component.scss']

View File

@@ -20,7 +20,6 @@ export interface IconPickerOption {
*/ */
@Component({ @Component({
selector: 'app-icon-picker', selector: 'app-icon-picker',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
template: ` template: `
<div class="icon-grid"> <div class="icon-grid">

View File

@@ -27,7 +27,6 @@ import { ImageUploaderComponent } from '../image-uploader/image-uploader.compone
*/ */
@Component({ @Component({
selector: 'app-image-gallery', selector: 'app-image-gallery',
standalone: true,
imports: [CommonModule, LucideAngularModule, ImageUploaderComponent], imports: [CommonModule, LucideAngularModule, ImageUploaderComponent],
templateUrl: './image-gallery.component.html', templateUrl: './image-gallery.component.html',
styleUrls: ['./image-gallery.component.scss'] styleUrls: ['./image-gallery.component.scss']

View File

@@ -19,7 +19,6 @@ import { Image } from '../../services/image.model';
*/ */
@Component({ @Component({
selector: 'app-image-uploader', selector: 'app-image-uploader',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './image-uploader.component.html', templateUrl: './image-uploader.component.html',
styleUrls: ['./image-uploader.component.scss'] styleUrls: ['./image-uploader.component.scss']

View File

@@ -26,7 +26,6 @@ import { Page } from '../../services/page.model';
*/ */
@Component({ @Component({
selector: 'app-lore-link-picker', selector: 'app-lore-link-picker',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './lore-link-picker.component.html', templateUrl: './lore-link-picker.component.html',
styleUrls: ['./lore-link-picker.component.scss'] styleUrls: ['./lore-link-picker.component.scss']

View File

@@ -34,7 +34,6 @@ export interface PersonaLike {
@Component({ @Component({
selector: 'app-persona-view', selector: 'app-persona-view',
standalone: true,
imports: [CommonModule, LucideAngularModule, ImageGalleryComponent], imports: [CommonModule, LucideAngularModule, ImageGalleryComponent],
templateUrl: './persona-view.component.html', templateUrl: './persona-view.component.html',
styleUrls: ['./persona-view.component.scss'] styleUrls: ['./persona-view.component.scss']

View File

@@ -15,7 +15,6 @@ import { forkJoin } from 'rxjs';
*/ */
@Component({ @Component({
selector: 'app-playthrough-flags-manager', selector: 'app-playthrough-flags-manager',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './playthrough-flags-manager.component.html', templateUrl: './playthrough-flags-manager.component.html',
styleUrls: ['./playthrough-flags-manager.component.scss'] styleUrls: ['./playthrough-flags-manager.component.scss']

View File

@@ -13,7 +13,6 @@ import { Chapter, Prerequisite } from '../../services/campaign.model';
*/ */
@Component({ @Component({
selector: 'app-prerequisite-editor', selector: 'app-prerequisite-editor',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './prerequisite-editor.component.html', templateUrl: './prerequisite-editor.component.html',
styleUrls: ['./prerequisite-editor.component.scss'] styleUrls: ['./prerequisite-editor.component.scss']

View File

@@ -9,7 +9,6 @@ import { QuestStatus } from '../../services/campaign.model';
*/ */
@Component({ @Component({
selector: 'app-quest-status-badge', selector: 'app-quest-status-badge',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './quest-status-badge.component.html', templateUrl: './quest-status-badge.component.html',
styleUrls: ['./quest-status-badge.component.scss'] styleUrls: ['./quest-status-badge.component.scss']

View File

@@ -15,7 +15,6 @@ import { Room, RoomBranch } from '../../services/campaign.model';
*/ */
@Component({ @Component({
selector: 'app-rooms-editor', selector: 'app-rooms-editor',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './rooms-editor.component.html', templateUrl: './rooms-editor.component.html',
styleUrls: ['./rooms-editor.component.scss'] styleUrls: ['./rooms-editor.component.scss']

View File

@@ -7,7 +7,6 @@ import { resolveIcon } from '../../lore/lore-icons';
@Component({ @Component({
selector: 'app-secondary-sidebar', selector: 'app-secondary-sidebar',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './secondary-sidebar.component.html', templateUrl: './secondary-sidebar.component.html',
styleUrls: ['./secondary-sidebar.component.scss'] styleUrls: ['./secondary-sidebar.component.scss']

View File

@@ -21,7 +21,6 @@ import { ImageUploaderComponent } from '../image-uploader/image-uploader.compone
*/ */
@Component({ @Component({
selector: 'app-single-image-picker', selector: 'app-single-image-picker',
standalone: true,
imports: [CommonModule, LucideAngularModule, ImageUploaderComponent], imports: [CommonModule, LucideAngularModule, ImageUploaderComponent],
templateUrl: './single-image-picker.component.html', templateUrl: './single-image-picker.component.html',
styleUrls: ['./single-image-picker.component.scss'] styleUrls: ['./single-image-picker.component.scss']

View File

@@ -16,7 +16,6 @@ import { TemplateField, FieldType, ImageLayout } from '../../services/template.m
*/ */
@Component({ @Component({
selector: 'app-template-fields-editor', selector: 'app-template-fields-editor',
standalone: true,
imports: [CommonModule, FormsModule, LucideAngularModule], imports: [CommonModule, FormsModule, LucideAngularModule],
templateUrl: './template-fields-editor.component.html', templateUrl: './template-fields-editor.component.html',
styleUrls: ['./template-fields-editor.component.scss'] styleUrls: ['./template-fields-editor.component.scss']

View File

@@ -10,7 +10,6 @@ import { VersionCheckerService } from '../../services/version-checker.service';
*/ */
@Component({ @Component({
selector: 'app-update-banner', selector: 'app-update-banner',
standalone: true,
imports: [CommonModule, LucideAngularModule], imports: [CommonModule, LucideAngularModule],
templateUrl: './update-banner.component.html', templateUrl: './update-banner.component.html',
styleUrls: ['./update-banner.component.scss'] styleUrls: ['./update-banner.component.scss']

View File

@@ -12,7 +12,6 @@ import packageJson from '../../../package.json';
@Component({ @Component({
selector: 'app-sidebar', selector: 'app-sidebar',
standalone: true,
imports: [AsyncPipe, NgIf, NgFor, LucideAngularModule], imports: [AsyncPipe, NgIf, NgFor, LucideAngularModule],
templateUrl: './sidebar.component.html', templateUrl: './sidebar.component.html',
styleUrls: ['./sidebar.component.scss'] styleUrls: ['./sidebar.component.scss']