feat(planning): grille hebdomadaire complète avec API et filtres

- Connexion API via proxy Angular (résolution CORS, base path /api)
- Import CSS ng-zorro global pour les modales et composants
- Filtres Camion/Show câblés sur l'affichage de la grille
- Camions affichés via TrucksService (linkés au show du même créneau)
- Panneau de détails : spectacles + camions du jour sélectionné
- Modale de création de spectacle stylisée avec fond et centrage
- Positionnement précis des events à la minute dans leur créneau
- Auto-scroll vers l'heure courante au chargement
- Ligne "maintenant" sur la colonne du jour actuel
- Régénération des services OpenAPI (nouveaux noms de types)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 20:36:03 +02:00
parent 150b97cd2e
commit 654b297e2e
3131 changed files with 149304 additions and 104334 deletions
@@ -1 +1,3 @@
<nz-cascader [(ngModel)]="values" [nzOptions]="nzOptions()" (ngModelChange)="onChanges($event)" />
<nz-cascader [(ngModel)]="values" [nzOptions]="nzOptions" (ngModelChange)="onChanges($event)"></nz-cascader>
@@ -1,4 +1,4 @@
import { Component, OnInit, signal } from '@angular/core';
import { Component, OnInit } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { NzCascaderModule, NzCascaderOption } from 'ng-zorro-antd/cascader';
@@ -48,10 +48,12 @@ const options: NzCascaderOption[] = [
@Component({
selector: '<%= selector %>',
imports: [FormsModule, NzCascaderModule],
<% if(inlineTemplate) { %>template: `<nz-cascader [(ngModel)]="values" [nzOptions]="nzOptions()" (ngModelChange)="onChanges($event)" />`<% } else { %>templateUrl: './<%= dasherize(name) %>.component.html'<% } %>
<% if(inlineTemplate) { %>template: `
<nz-cascader [(ngModel)]="values" [nzOptions]="nzOptions" (ngModelChange)="onChanges($event)"></nz-cascader>
`<% } else { %>templateUrl: './<%= dasherize(name) %>.component.html'<% } %>
})
export class <%= classify(name) %>Component implements OnInit {
readonly nzOptions = signal<NzCascaderOption[] | null>(null);
nzOptions: NzCascaderOption[] | null = null;
values: string[] = ['zhejiang', 'hangzhou', 'xihu'];
onChanges(values: string[]): void {
@@ -59,6 +61,8 @@ export class <%= classify(name) %>Component implements OnInit {
}
ngOnInit(): void {
setTimeout(() => this.nzOptions.set(options), 500);
setTimeout(() => {
this.nzOptions = options;
}, 500);
}
}