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
+31 -92
View File
@@ -42,7 +42,6 @@ exports._xid = _xid;
exports._ksuid = _ksuid;
exports._ipv4 = _ipv4;
exports._ipv6 = _ipv6;
exports._mac = _mac;
exports._cidrv4 = _cidrv4;
exports._cidrv6 = _cidrv6;
exports._base64 = _base64;
@@ -110,7 +109,6 @@ exports._normalize = _normalize;
exports._trim = _trim;
exports._toLowerCase = _toLowerCase;
exports._toUpperCase = _toUpperCase;
exports._slugify = _slugify;
exports._array = _array;
exports._union = _union;
exports._discriminatedUnion = _discriminatedUnion;
@@ -137,14 +135,9 @@ exports._lazy = _lazy;
exports._promise = _promise;
exports._custom = _custom;
exports._refine = _refine;
exports._superRefine = _superRefine;
exports._check = _check;
exports.describe = describe;
exports.meta = meta;
exports._stringbool = _stringbool;
exports._stringFormat = _stringFormat;
const checks = __importStar(require("./checks.cjs"));
const registries = __importStar(require("./registries.cjs"));
const schemas = __importStar(require("./schemas.cjs"));
const util = __importStar(require("./util.cjs"));
function _string(Class, params) {
@@ -307,15 +300,6 @@ function _ipv6(Class, params) {
...util.normalizeParams(params),
});
}
function _mac(Class, params) {
return new Class({
type: "string",
format: "mac",
check: "string_format",
abort: false,
...util.normalizeParams(params),
});
}
function _cidrv4(Class, params) {
return new Class({
type: "string",
@@ -756,10 +740,6 @@ function _toLowerCase() {
function _toUpperCase() {
return _overwrite((input) => input.toUpperCase());
}
// slugify
function _slugify() {
return _overwrite((input) => util.slugify(input));
}
function _array(Class, element, params) {
return new Class({
type: "array",
@@ -900,7 +880,7 @@ function _default(Class, innerType, defaultValue) {
type: "default",
innerType,
get defaultValue() {
return typeof defaultValue === "function" ? defaultValue() : util.shallowClone(defaultValue);
return typeof defaultValue === "function" ? defaultValue() : defaultValue;
},
});
}
@@ -967,6 +947,13 @@ function _custom(Class, fn, _params) {
});
return schema;
}
// export function _refine<T>(
// Class: util.SchemaClass<schemas.$ZodCustom>,
// fn: (arg: NoInfer<T>) => util.MaybeAsync<unknown>,
// _params: string | $ZodCustomParams = {}
// ): checks.$ZodCheck<T> {
// return _custom(Class, fn, _params);
// }
// same as _custom but defaults to abort:false
function _refine(Class, fn, _params) {
const schema = new Class({
@@ -977,58 +964,6 @@ function _refine(Class, fn, _params) {
});
return schema;
}
function _superRefine(fn) {
const ch = _check((payload) => {
payload.addIssue = (issue) => {
if (typeof issue === "string") {
payload.issues.push(util.issue(issue, payload.value, ch._zod.def));
}
else {
// for Zod 3 backwards compatibility
const _issue = issue;
if (_issue.fatal)
_issue.continue = false;
_issue.code ?? (_issue.code = "custom");
_issue.input ?? (_issue.input = payload.value);
_issue.inst ?? (_issue.inst = ch);
_issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...
payload.issues.push(util.issue(_issue));
}
};
return fn(payload.value, payload);
});
return ch;
}
function _check(fn, params) {
const ch = new checks.$ZodCheck({
check: "custom",
...util.normalizeParams(params),
});
ch._zod.check = fn;
return ch;
}
function describe(description) {
const ch = new checks.$ZodCheck({ check: "describe" });
ch._zod.onattach = [
(inst) => {
const existing = registries.globalRegistry.get(inst) ?? {};
registries.globalRegistry.add(inst, { ...existing, description });
},
];
ch._zod.check = () => { }; // no-op check
return ch;
}
function meta(metadata) {
const ch = new checks.$ZodCheck({ check: "meta" });
ch._zod.onattach = [
(inst) => {
const existing = registries.globalRegistry.get(inst) ?? {};
registries.globalRegistry.add(inst, { ...existing, ...metadata });
},
];
ch._zod.check = () => { }; // no-op check
return ch;
}
function _stringbool(Classes, _params) {
const params = util.normalizeParams(_params);
let truthyArray = params.truthy ?? ["true", "1", "yes", "on", "y", "enabled"];
@@ -1039,16 +974,13 @@ function _stringbool(Classes, _params) {
}
const truthySet = new Set(truthyArray);
const falsySet = new Set(falsyArray);
const _Codec = Classes.Codec ?? schemas.$ZodCodec;
const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;
const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;
const _String = Classes.String ?? schemas.$ZodString;
const stringSchema = new _String({ type: "string", error: params.error });
const booleanSchema = new _Boolean({ type: "boolean", error: params.error });
const codec = new _Codec({
type: "pipe",
in: stringSchema,
out: booleanSchema,
transform: ((input, payload) => {
const _Transform = Classes.Transform ?? schemas.$ZodTransform;
const tx = new _Transform({
type: "transform",
transform: (input, payload) => {
let data = input;
if (params.case !== "sensitive")
data = data.toLowerCase();
@@ -1064,23 +996,30 @@ function _stringbool(Classes, _params) {
expected: "stringbool",
values: [...truthySet, ...falsySet],
input: payload.value,
inst: codec,
continue: false,
inst: tx,
});
return {};
}
}),
reverseTransform: ((input, _payload) => {
if (input === true) {
return truthyArray[0] || "true";
}
else {
return falsyArray[0] || "false";
}
},
error: params.error,
});
// params.error;
const innerPipe = new _Pipe({
type: "pipe",
in: new _String({ type: "string", error: params.error }),
out: tx,
error: params.error,
});
const outerPipe = new _Pipe({
type: "pipe",
in: innerPipe,
out: new _Boolean({
type: "boolean",
error: params.error,
}),
error: params.error,
});
return codec;
return outerPipe;
}
function _stringFormat(Class, format, fnOrRegex, _params = {}) {
const params = util.normalizeParams(_params);