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
+15 -25
View File
@@ -1,15 +1,15 @@
'use strict'
const { Minipass } = require('minipass')
const { MinipassSized } = require('minipass-sized')
const MinipassSized = require('minipass-sized')
const Blob = require('./blob.js')
const { BUFFER } = Blob
const FetchError = require('./fetch-error.js')
// optional dependency on 'iconv-lite'
let decode
// optional dependency on 'encoding'
let convert
try {
decode = require('iconv-lite').decode
convert = require('encoding').convert
} catch (e) {
// defer error until textConverted is called
}
@@ -92,10 +92,6 @@ class Body {
}
textConverted () {
/* istanbul ignore if */
if (typeof decode !== 'function') {
throw new Error('The package `iconv-lite` must be installed to use the textConverted() function')
}
return this[CONSUME_BODY]().then(buf => convertBody(buf, this.headers))
}
@@ -289,6 +285,11 @@ const isBlob = obj =>
/^(Blob|File)$/.test(obj[Symbol.toStringTag])
const convertBody = (buffer, headers) => {
/* istanbul ignore if */
if (typeof convert !== 'function') {
throw new Error('The package `encoding` must be installed to use the textConverted() function')
}
const ct = headers && headers.get('content-type')
let charset = 'utf-8'
let res
@@ -338,23 +339,12 @@ const convertBody = (buffer, headers) => {
}
}
if (charset === 'UTF-8') {
return buffer.toString('UTF-8')
}
charset = charset.toString().trim()
.replace(/^latin[-_]?(\d+)$/i, 'ISO-8859-$1')
.replace(/^win(?:dows)?[-_]?(\d+)$/i, 'WINDOWS-$1')
.replace(/^utf[-_]?(\d+)$/i, 'UTF-$1')
.replace(/^ks_c_5601-1987$/i, 'CP949')
.replace(/^us[-_]?ascii$/i, 'ASCII')
.toUpperCase()
try {
return decode(buffer, charset).toString()
} catch {
/* istanbul ignore next */
return buffer.toString('UTF-8')
}
// turn raw buffers into a single utf-8 buffer
return convert(
buffer,
'UTF-8',
charset
).toString()
}
module.exports = Body