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
+10 -10
View File
@@ -109,7 +109,7 @@ function DeclareClass(node, parent) {
}
this.word("class");
this.space();
_interfaceish.call(this, node);
this._interfaceish(node);
}
function DeclareFunction(node, parent) {
if (!isDeclareExportDeclaration(parent)) {
@@ -140,7 +140,7 @@ function DeclaredPredicate(node) {
function DeclareInterface(node) {
this.word("declare");
this.space();
InterfaceDeclaration.call(this, node);
this.InterfaceDeclaration(node);
}
function DeclareModule(node) {
this.word("declare");
@@ -162,14 +162,14 @@ function DeclareModuleExports(node) {
function DeclareTypeAlias(node) {
this.word("declare");
this.space();
TypeAlias.call(this, node);
this.TypeAlias(node);
}
function DeclareOpaqueType(node, parent) {
if (!isDeclareExportDeclaration(parent)) {
this.word("declare");
this.space();
}
OpaqueType.call(this, node);
this.OpaqueType(node);
}
function DeclareVariable(node, parent) {
if (!isDeclareExportDeclaration(parent)) {
@@ -397,7 +397,7 @@ function _variance(node) {
function InterfaceDeclaration(node) {
this.word("interface");
this.space();
_interfaceish.call(this, node);
this._interfaceish(node);
}
function andSeparator(occurrenceCount) {
this.space();
@@ -475,7 +475,7 @@ function TypeParameterInstantiation(node) {
this.tokenChar(62);
}
function TypeParameter(node) {
_variance.call(this, node);
this._variance(node);
this.word(node.name);
if (node.bound) {
this.print(node.bound);
@@ -517,12 +517,12 @@ function ObjectTypeAnnotation(node) {
if (props.length) {
this.newline();
this.space();
this.printJoin(props, true, true, () => {
this.printJoin(props, true, true, undefined, undefined, () => {
if (props.length !== 1 || node.inexact) {
this.tokenChar(44);
this.space();
}
}, true);
});
this.space();
}
if (node.inexact) {
@@ -568,7 +568,7 @@ function ObjectTypeIndexer(node) {
this.word("static");
this.space();
}
_variance.call(this, node);
this._variance(node);
this.tokenChar(91);
if (node.id) {
this.print(node.id);
@@ -594,7 +594,7 @@ function ObjectTypeProperty(node) {
this.word(node.kind);
this.space();
}
_variance.call(this, node);
this._variance(node);
this.print(node.key);
if (node.optional) this.tokenChar(63);
if (!node.method) {