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
+114 -116
View File
@@ -1,136 +1,134 @@
"use strict"
"use strict";
var Buffer = require("safer-buffer").Buffer
var Buffer = require("safer-buffer").Buffer;
var bomHandling = require("./bom-handling")
var mergeModules = require("./helpers/merge-exports")
var bomHandling = require("./bom-handling"),
iconv = module.exports;
// All codecs and aliases are kept here, keyed by encoding name/alias.
// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
// Cannot initialize with { __proto__: null } because Boolean({ __proto__: null }) === true
module.exports.encodings = null
iconv.encodings = null;
// Characters emitted in case of error.
module.exports.defaultCharUnicode = ""
module.exports.defaultCharSingleByte = "?"
iconv.defaultCharUnicode = '';
iconv.defaultCharSingleByte = '?';
// Public API.
module.exports.encode = function encode (str, encoding, options) {
str = "" + (str || "") // Ensure string.
iconv.encode = function encode(str, encoding, options) {
str = "" + (str || ""); // Ensure string.
var encoder = module.exports.getEncoder(encoding, options)
var encoder = iconv.getEncoder(encoding, options);
var res = encoder.write(str)
var trail = encoder.end()
return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res
var res = encoder.write(str);
var trail = encoder.end();
return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
}
module.exports.decode = function decode (buf, encoding, options) {
if (typeof buf === "string") {
if (!module.exports.skipDecodeWarning) {
console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding")
module.exports.skipDecodeWarning = true
iconv.decode = function decode(buf, encoding, options) {
if (typeof buf === 'string') {
if (!iconv.skipDecodeWarning) {
console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
iconv.skipDecodeWarning = true;
}
buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer.
}
buf = Buffer.from("" + (buf || ""), "binary") // Ensure buffer.
}
var decoder = iconv.getDecoder(encoding, options);
var decoder = module.exports.getDecoder(encoding, options)
var res = decoder.write(buf);
var trail = decoder.end();
var res = decoder.write(buf)
var trail = decoder.end()
return trail ? (res + trail) : res
return trail ? (res + trail) : res;
}
module.exports.encodingExists = function encodingExists (enc) {
try {
module.exports.getCodec(enc)
return true
} catch (e) {
return false
}
iconv.encodingExists = function encodingExists(enc) {
try {
iconv.getCodec(enc);
return true;
} catch (e) {
return false;
}
}
// Legacy aliases to convert functions
module.exports.toEncoding = module.exports.encode
module.exports.fromEncoding = module.exports.decode
iconv.toEncoding = iconv.encode;
iconv.fromEncoding = iconv.decode;
// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
module.exports._codecDataCache = { __proto__: null }
iconv._codecDataCache = {};
iconv.getCodec = function getCodec(encoding) {
if (!iconv.encodings)
iconv.encodings = require("../encodings"); // Lazy load all encoding definitions.
// Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
var enc = iconv._canonicalizeEncoding(encoding);
module.exports.getCodec = function getCodec (encoding) {
if (!module.exports.encodings) {
var raw = require("../encodings")
// TODO: In future versions when old nodejs support is removed can use object.assign
module.exports.encodings = { __proto__: null } // Initialize as empty object.
mergeModules(module.exports.encodings, raw)
}
// Traverse iconv.encodings to find actual codec.
var codecOptions = {};
while (true) {
var codec = iconv._codecDataCache[enc];
if (codec)
return codec;
// Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
var enc = module.exports._canonicalizeEncoding(encoding)
var codecDef = iconv.encodings[enc];
// Traverse iconv.encodings to find actual codec.
var codecOptions = {}
while (true) {
var codec = module.exports._codecDataCache[enc]
switch (typeof codecDef) {
case "string": // Direct alias to other encoding.
enc = codecDef;
break;
if (codec) { return codec }
case "object": // Alias with options. Can be layered.
for (var key in codecDef)
codecOptions[key] = codecDef[key];
var codecDef = module.exports.encodings[enc]
if (!codecOptions.encodingName)
codecOptions.encodingName = enc;
enc = codecDef.type;
break;
switch (typeof codecDef) {
case "string": // Direct alias to other encoding.
enc = codecDef
break
case "function": // Codec itself.
if (!codecOptions.encodingName)
codecOptions.encodingName = enc;
case "object": // Alias with options. Can be layered.
for (var key in codecDef) { codecOptions[key] = codecDef[key] }
// The codec function must load all tables and return object with .encoder and .decoder methods.
// It'll be called only once (for each different options object).
codec = new codecDef(codecOptions, iconv);
if (!codecOptions.encodingName) { codecOptions.encodingName = enc }
iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
return codec;
enc = codecDef.type
break
case "function": // Codec itself.
if (!codecOptions.encodingName) { codecOptions.encodingName = enc }
// The codec function must load all tables and return object with .encoder and .decoder methods.
// It'll be called only once (for each different options object).
//
codec = new codecDef(codecOptions, module.exports)
module.exports._codecDataCache[codecOptions.encodingName] = codec // Save it to be reused later.
return codec
default:
throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')")
default:
throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
}
}
}
}
module.exports._canonicalizeEncoding = function (encoding) {
// Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "")
iconv._canonicalizeEncoding = function(encoding) {
// Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
}
module.exports.getEncoder = function getEncoder (encoding, options) {
var codec = module.exports.getCodec(encoding)
var encoder = new codec.encoder(options, codec)
iconv.getEncoder = function getEncoder(encoding, options) {
var codec = iconv.getCodec(encoding),
encoder = new codec.encoder(options, codec);
if (codec.bomAware && options && options.addBOM) { encoder = new bomHandling.PrependBOM(encoder, options) }
if (codec.bomAware && options && options.addBOM)
encoder = new bomHandling.PrependBOM(encoder, options);
return encoder
return encoder;
}
module.exports.getDecoder = function getDecoder (encoding, options) {
var codec = module.exports.getCodec(encoding)
var decoder = new codec.decoder(options, codec)
iconv.getDecoder = function getDecoder(encoding, options) {
var codec = iconv.getCodec(encoding),
decoder = new codec.decoder(options, codec);
if (codec.bomAware && !(options && options.stripBOM === false)) { decoder = new bomHandling.StripBOM(decoder, options) }
if (codec.bomAware && !(options && options.stripBOM === false))
decoder = new bomHandling.StripBOM(decoder, options);
return decoder
return decoder;
}
// Streaming API
@@ -138,45 +136,45 @@ module.exports.getDecoder = function getDecoder (encoding, options) {
// up to 100Kb to the output bundle. To avoid unnecessary code bloat, we don't enable Streaming API in browser by default.
// If you would like to enable it explicitly, please add the following code to your app:
// > iconv.enableStreamingAPI(require('stream'));
module.exports.enableStreamingAPI = function enableStreamingAPI (streamModule) {
if (module.exports.supportsStreams) { return }
iconv.enableStreamingAPI = function enableStreamingAPI(stream_module) {
if (iconv.supportsStreams)
return;
// Dependency-inject stream module to create IconvLite stream classes.
var streams = require("./streams")(streamModule)
// Dependency-inject stream module to create IconvLite stream classes.
var streams = require("./streams")(stream_module);
// Not public API yet, but expose the stream classes.
module.exports.IconvLiteEncoderStream = streams.IconvLiteEncoderStream
module.exports.IconvLiteDecoderStream = streams.IconvLiteDecoderStream
// Not public API yet, but expose the stream classes.
iconv.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
iconv.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
// Streaming API.
module.exports.encodeStream = function encodeStream (encoding, options) {
return new module.exports.IconvLiteEncoderStream(module.exports.getEncoder(encoding, options), options)
}
// Streaming API.
iconv.encodeStream = function encodeStream(encoding, options) {
return new iconv.IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
}
module.exports.decodeStream = function decodeStream (encoding, options) {
return new module.exports.IconvLiteDecoderStream(module.exports.getDecoder(encoding, options), options)
}
iconv.decodeStream = function decodeStream(encoding, options) {
return new iconv.IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
}
module.exports.supportsStreams = true
iconv.supportsStreams = true;
}
// Enable Streaming API automatically if 'stream' module is available and non-empty (the majority of environments).
var streamModule
var stream_module;
try {
streamModule = require("stream")
stream_module = require("stream");
} catch (e) {}
if (streamModule && streamModule.Transform) {
module.exports.enableStreamingAPI(streamModule)
if (stream_module && stream_module.Transform) {
iconv.enableStreamingAPI(stream_module);
} else {
// In rare cases where 'stream' module is not available by default, throw a helpful exception.
module.exports.encodeStream = module.exports.decodeStream = function () {
throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")
}
// In rare cases where 'stream' module is not available by default, throw a helpful exception.
iconv.encodeStream = iconv.decodeStream = function() {
throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
};
}
// Some environments, such as browsers, may not load JavaScript files as UTF-8
// eslint-disable-next-line no-constant-condition
if ("Ā" !== "\u0100") {
console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.")
if ("Ā" != "\u0100") {
console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
}