import { Component, EventEmitter, OnInit, Output, DestroyRef } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { ReactiveFormsModule, FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FormsModule } from '@angular/forms'; import { LucideAngularModule, BookCopy, X, Plus, Check } from 'lucide-angular'; import { TranslatePipe } from '@ngx-translate/core'; import { LoreService } from '../../../services/lore.service'; import { Lore } from '../../../services/lore.model'; import { GameSystemService } from '../../../services/game-system.service'; import { GameSystem } from '../../../services/game-system.model'; /** * Payload émis vers le parent à la création d'une campagne. * `loreId` et `gameSystemId` sont optionnels (null = non associé). */ export interface CampaignCreatePayload { name: string; description: string; playerCount: number; loreId: string | null; gameSystemId: string | null; } @Component({ selector: 'app-campaign-create', imports: [ReactiveFormsModule, FormsModule, LucideAngularModule, TranslatePipe], templateUrl: './campaign-create.component.html', styleUrls: ['./campaign-create.component.scss'] }) export class CampaignCreateComponent implements OnInit { @Output() closed = new EventEmitter(); @Output() created = new EventEmitter(); readonly BookCopy = BookCopy; readonly X = X; readonly Plus = Plus; readonly Check = Check; /** Valeur sentinelle de l'option "Creer un systeme" dans le