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
+58 -62
View File
@@ -1,6 +1,6 @@
import { Platform } from '@angular/cdk/platform';
import * as i0 from '@angular/core';
import { inject, NgZone, DestroyRef, ElementRef, Input, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component, input, model, InjectionToken, ViewContainerRef, signal, booleanAttribute, linkedSignal, computed, effect, Renderer2, ChangeDetectorRef, ContentChildren, forwardRef, numberAttribute, ViewChildren, contentChild, output, TemplateRef, afterNextRender, isDevMode, ContentChild, NgModule } from '@angular/core';
import { inject, NgZone, DestroyRef, ElementRef, Input, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component, input, model, contentChild, booleanAttribute, output, computed, InjectionToken, ViewContainerRef, signal, linkedSignal, effect, Renderer2, ChangeDetectorRef, ContentChildren, forwardRef, numberAttribute, ViewChildren, TemplateRef, afterNextRender, isDevMode, ContentChild, NgModule } from '@angular/core';
import { takeUntilDestroyed, toSignal, toObservable } from '@angular/core/rxjs-interop';
import { NzResizeService } from 'ng-zorro-antd/core/services';
import * as i2 from 'ng-zorro-antd/core/outlet';
@@ -332,12 +332,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
}]
}] });
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzInputSearchDirective {
inputDir = contentChild.required(NzInputDirective);
inputRef = contentChild.required(NzInputDirective, { read: ElementRef });
nzEnterButton = input(false, ...(ngDevMode ? [{ debugName: "nzEnterButton" }] : []));
nzLoading = input(false, ...(ngDevMode ? [{ debugName: "nzLoading", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
nzSearch = output();
size = computed(() => this.inputDir().nzSize(), ...(ngDevMode ? [{ debugName: "size" }] : []));
search(event, source = 'input') {
if (!this.nzLoading()) {
this.nzSearch.emit({ value: this.inputRef().nativeElement.value, event, source });
}
}
onEnter(event) {
if (event.target === this.inputRef().nativeElement) {
this.search(event);
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzInputSearchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.0", type: NzInputSearchDirective, isStandalone: true, selector: "nz-input-search", inputs: { nzEnterButton: { classPropertyName: "nzEnterButton", publicName: "nzEnterButton", isSignal: true, isRequired: false, transformFunction: null }, nzLoading: { classPropertyName: "nzLoading", publicName: "nzLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nzSearch: "nzSearch" }, host: { listeners: { "keydown.enter": "onEnter($any($event))" }, properties: { "class.ant-input-search-large": "size() === 'large'", "class.ant-input-search-small": "size() === 'small'", "class.ant-input-search-with-button": "nzEnterButton() !== false" }, classAttribute: "ant-input-search" }, queries: [{ propertyName: "inputDir", first: true, predicate: NzInputDirective, descendants: true, isSignal: true }, { propertyName: "inputRef", first: true, predicate: NzInputDirective, descendants: true, read: ElementRef, isSignal: true }], exportAs: ["nzInputSearch"], ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzInputSearchDirective, decorators: [{
type: Directive,
args: [{
selector: 'nz-input-search',
exportAs: 'nzInputSearch',
host: {
class: 'ant-input-search',
'[class.ant-input-search-large]': `size() === 'large'`,
'[class.ant-input-search-small]': `size() === 'small'`,
'[class.ant-input-search-with-button]': 'nzEnterButton() !== false',
'(keydown.enter)': 'onEnter($any($event))'
}
}]
}] });
class NzInputSearchEnterButtonDirective {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzInputSearchEnterButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: NzInputSearchEnterButtonDirective, isStandalone: true, selector: "[nzInputSearchEnterButton]", ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzInputSearchEnterButtonDirective, decorators: [{
type: Directive,
args: [{
selector: '[nzInputSearchEnterButton]'
}]
}] });
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
const NZ_INPUT_WRAPPER = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'nz-input-wrapper' : '');
const NZ_INPUT_SEARCH = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'nz-input-search' : '');
/**
* Use of this source code is governed by an MIT-style license that can be
@@ -354,7 +402,7 @@ class NzInputDirective {
focusMonitor = inject(FocusMonitor);
hostView = inject(ViewContainerRef);
inputPasswordDir = inject(NzInputPasswordDirective, { host: true, optional: true });
inputSearchDir = inject(NZ_INPUT_SEARCH, { host: true, optional: true });
inputSearchDir = inject(NzInputSearchDirective, { host: true, optional: true });
ngControl = inject(NgControl, { self: true, optional: true });
value = signal(this.elementRef.nativeElement.value, ...(ngDevMode ? [{ debugName: "value" }] : []));
/**
@@ -1003,56 +1051,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
type: Input
}] } });
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzInputSearchDirective {
inputDir = contentChild.required(NzInputDirective);
inputRef = contentChild.required(NzInputDirective, { read: ElementRef });
nzEnterButton = input(false, ...(ngDevMode ? [{ debugName: "nzEnterButton" }] : []));
nzLoading = input(false, ...(ngDevMode ? [{ debugName: "nzLoading", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
nzSearch = output();
size = computed(() => this.inputDir().nzSize(), ...(ngDevMode ? [{ debugName: "size" }] : []));
search(event, source = 'input') {
if (!this.nzLoading()) {
this.nzSearch.emit({ value: this.inputRef().nativeElement.value, event, source });
}
}
onEnter(event) {
if (event.target === this.inputRef().nativeElement) {
this.search(event);
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzInputSearchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.0", type: NzInputSearchDirective, isStandalone: true, selector: "nz-input-search", inputs: { nzEnterButton: { classPropertyName: "nzEnterButton", publicName: "nzEnterButton", isSignal: true, isRequired: false, transformFunction: null }, nzLoading: { classPropertyName: "nzLoading", publicName: "nzLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nzSearch: "nzSearch" }, host: { listeners: { "keydown.enter": "onEnter($any($event))" }, properties: { "class.ant-input-search-large": "size() === 'large'", "class.ant-input-search-small": "size() === 'small'", "class.ant-input-search-with-button": "nzEnterButton() !== false" }, classAttribute: "ant-input-search" }, providers: [{ provide: NZ_INPUT_SEARCH, useExisting: forwardRef(() => NzInputSearchDirective) }], queries: [{ propertyName: "inputDir", first: true, predicate: NzInputDirective, descendants: true, isSignal: true }, { propertyName: "inputRef", first: true, predicate: NzInputDirective, descendants: true, read: ElementRef, isSignal: true }], exportAs: ["nzInputSearch"], ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzInputSearchDirective, decorators: [{
type: Directive,
args: [{
selector: 'nz-input-search',
exportAs: 'nzInputSearch',
providers: [{ provide: NZ_INPUT_SEARCH, useExisting: forwardRef(() => NzInputSearchDirective) }],
host: {
class: 'ant-input-search',
'[class.ant-input-search-large]': `size() === 'large'`,
'[class.ant-input-search-small]': `size() === 'small'`,
'[class.ant-input-search-with-button]': 'nzEnterButton() !== false',
'(keydown.enter)': 'onEnter($any($event))'
}
}]
}] });
class NzInputSearchEnterButtonDirective {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzInputSearchEnterButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: NzInputSearchEnterButtonDirective, isStandalone: true, selector: "[nzInputSearchEnterButton]", ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzInputSearchEnterButtonDirective, decorators: [{
type: Directive,
args: [{
selector: '[nzInputSearchEnterButton]'
}]
}] });
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
@@ -1178,8 +1176,7 @@ class NzInputWrapperComponent {
@if (hasAddonAfter()) {
<span class="ant-input-group-addon">
@if (inputSearchDir) {
@let nzEnterButton = inputSearchDir.nzEnterButton();
@let hasEnterButton = inputSearchEnterButton() ?? nzEnterButton !== false;
@let hasEnterButton = inputSearchEnterButton() ?? inputSearchDir.nzEnterButton() !== false;
<button
nz-button
[nzType]="hasEnterButton ? 'primary' : 'default'"
@@ -1190,8 +1187,8 @@ class NzInputWrapperComponent {
(click)="inputSearchDir.search($event)"
>
<ng-content select="[nzInputSearchEnterButton]">
@if (nzEnterButton && typeof nzEnterButton === 'string') {
{{ nzEnterButton }}
@if (typeof inputSearchDir.nzEnterButton() === 'string') {
{{ inputSearchDir.nzEnterButton() }}
} @else {
<nz-icon nzType="search" nzTheme="outline" />
}
@@ -1297,8 +1294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
@if (hasAddonAfter()) {
<span class="ant-input-group-addon">
@if (inputSearchDir) {
@let nzEnterButton = inputSearchDir.nzEnterButton();
@let hasEnterButton = inputSearchEnterButton() ?? nzEnterButton !== false;
@let hasEnterButton = inputSearchEnterButton() ?? inputSearchDir.nzEnterButton() !== false;
<button
nz-button
[nzType]="hasEnterButton ? 'primary' : 'default'"
@@ -1309,8 +1305,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
(click)="inputSearchDir.search($event)"
>
<ng-content select="[nzInputSearchEnterButton]">
@if (nzEnterButton && typeof nzEnterButton === 'string') {
{{ nzEnterButton }}
@if (typeof inputSearchDir.nzEnterButton() === 'string') {
{{ inputSearchDir.nzEnterButton() }}
} @else {
<nz-icon nzType="search" nzTheme="outline" />
}
@@ -1545,5 +1541,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
* Generated bundle index. Do not edit.
*/
export { NZ_INPUT_SEARCH, NZ_INPUT_WRAPPER, NzAutosizeDirective, NzInputAddonAfterDirective, NzInputAddonBeforeDirective, NzInputDirective, NzInputGroupComponent, NzInputGroupSlotComponent, NzInputGroupWhitSuffixOrPrefixDirective, NzInputModule, NzInputOtpComponent, NzInputPasswordDirective, NzInputPasswordIconDirective, NzInputPrefixDirective, NzInputSearchDirective, NzInputSearchEnterButtonDirective, NzInputSuffixDirective, NzInputWrapperComponent, NzTextareaCountComponent };
export { NZ_INPUT_WRAPPER, NzAutosizeDirective, NzInputAddonAfterDirective, NzInputAddonBeforeDirective, NzInputDirective, NzInputGroupComponent, NzInputGroupSlotComponent, NzInputGroupWhitSuffixOrPrefixDirective, NzInputModule, NzInputOtpComponent, NzInputPasswordDirective, NzInputPasswordIconDirective, NzInputPrefixDirective, NzInputSearchDirective, NzInputSearchEnterButtonDirective, NzInputSuffixDirective, NzInputWrapperComponent, NzTextareaCountComponent };
//# sourceMappingURL=ng-zorro-antd-input.mjs.map