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 -67
View File
@@ -2,17 +2,18 @@
/* eslint indent: [2, 2, {"SwitchCase": 1}] */
import path from 'path';
import os from 'os';
import { createRequire } from 'module';
import fs from '../lib/less-node/fs.js';
import * as utils from '../lib/less/utils.js';
import * as Constants from '../lib/less/constants.js';
import less from '../lib/less-node/index.js';
'use strict';
const require = createRequire(import.meta.url);
var path = require('path');
var fs = require('../lib/less-node/fs').default;
var os = require('os');
var utils = require('../lib/less/utils');
var Constants = require('../lib/less/constants');
var less = require('../lib/less-node').default;
var errno;
var mkdirp;
try {
errno = require('errno');
@@ -64,7 +65,6 @@ var parseVariableOption = function parseVariableOption(option, variables) {
};
var sourceMapFileInline = false;
var pendingDeprecations = [];
function printUsage() {
less.lesscHelper.printUsage();
@@ -98,48 +98,53 @@ function render() {
}
if (options.sourceMap) {
// Validate conflicting options
sourceMapOptions.sourceMapInputFilename = input;
if (!sourceMapOptions.sourceMapFullFilename) {
if (!output && !sourceMapFileInline) {
console.error('the sourcemap option only has an optional filename if the css filename is given');
console.error('consider adding --source-map-map-inline which embeds the sourcemap into the css');
process.exitCode = 1;
return;
} // its in the same directory, so always just the basename
if (output) {
sourceMapOptions.sourceMapOutputFilename = path.basename(output);
sourceMapOptions.sourceMapFullFilename = ''.concat(output, '.map');
} // its in the same directory, so always just the basename
if ('sourceMapFullFilename' in sourceMapOptions) {
sourceMapOptions.sourceMapFilename = path.basename(sourceMapOptions.sourceMapFullFilename);
}
} else if (options.sourceMap && !sourceMapFileInline) {
var mapFilename = path.resolve(process.cwd(), sourceMapOptions.sourceMapFullFilename);
var mapDir = path.dirname(mapFilename);
var outputDir = path.dirname(output); // find the path from the map to the output file
// eslint-disable-next-line max-len
sourceMapOptions.sourceMapOutputFilename = path.join(path.relative(mapDir, outputDir), path.basename(output)); // make the sourcemap filename point to the sourcemap relative to the css file output directory
sourceMapOptions.sourceMapFilename = path.join(path.relative(outputDir, mapDir), path.basename(sourceMapOptions.sourceMapFullFilename));
}
if (sourceMapOptions.sourceMapURL && sourceMapOptions.disableSourcemapAnnotation) {
console.error('You cannot provide flag --source-map-url with --source-map-no-annotation.');
console.error('Please remove one of those flags.');
process.exitcode = 1;
return;
}
}
// Handle explicit sourceMapFullFilename (from --source-map=filename)
// Normalization of other options (sourceMapBasepath, sourceMapRootpath, etc.)
// is handled automatically in parse-tree.js
if (sourceMapOptions.sourceMapFullFilename && !sourceMapFileInline) {
var mapFilename = path.resolve(process.cwd(), sourceMapOptions.sourceMapFullFilename);
var mapDir = path.dirname(mapFilename);
if (sourceMapOptions.sourceMapBasepath === undefined) {
sourceMapOptions.sourceMapBasepath = input ? path.dirname(input) : process.cwd();
}
if (output) {
var outputDir = path.dirname(output);
// Set sourceMapOutputFilename relative to map directory
sourceMapOptions.sourceMapOutputFilename = path.join(
path.relative(mapDir, outputDir),
path.basename(output)
);
// Set sourceMapFilename relative to output directory (for sourceMappingURL comment)
sourceMapOptions.sourceMapFilename = path.join(
path.relative(outputDir, mapDir),
path.basename(sourceMapOptions.sourceMapFullFilename)
);
} else {
// No output filename, just use basename
sourceMapOptions.sourceMapOutputFilename = path.basename(output || 'output.css');
sourceMapOptions.sourceMapFilename = path.basename(sourceMapOptions.sourceMapFullFilename);
}
} else if (!sourceMapOptions.sourceMapFullFilename && output && !sourceMapFileInline) {
// No explicit sourcemap filename, derive from output
sourceMapOptions.sourceMapOutputFilename = path.basename(output);
sourceMapOptions.sourceMapFullFilename = ''.concat(output, '.map');
} else if (!output && !sourceMapFileInline) {
console.error('the sourcemap option only has an optional filename if the css filename is given');
console.error('consider adding --source-map-map-inline which embeds the sourcemap into the css');
process.exitCode = 1;
return;
}
if (sourceMapOptions.sourceMapRootpath === undefined) {
var pathToMap = path.dirname((sourceMapFileInline ? output : sourceMapOptions.sourceMapFullFilename) || '.');
var pathToInput = path.dirname(sourceMapOptions.sourceMapInputFilename || '.');
sourceMapOptions.sourceMapRootpath = path.relative(pathToMap, pathToInput);
}
if (!input) {
@@ -150,7 +155,6 @@ function render() {
return;
}
var mkdirp;
var ensureDirectory = function ensureDirectory(filepath) {
var dir = path.dirname(filepath);
var cmd;
@@ -189,7 +193,7 @@ function render() {
// To fix https://github.com/less/less.js/issues/3646
output = output.toString();
fs.writeFile(filename, output, 'utf8', function (err) {
if (err) {
var description = 'Error: ';
@@ -404,15 +408,11 @@ function processPluginQueue() {
case 'silent':
options.silent = silent = true;
break;
case 'quiet':
options.quiet = quiet = true;
break;
case 'quiet-deprecations':
options.quietDeprecations = true;
break;
case 'l':
case 'lint':
options.lint = true;
@@ -458,7 +458,6 @@ function processPluginQueue() {
case 'js':
options.javascriptEnabled = true;
pendingDeprecations.push('Warning: Inline JavaScript (--js) is deprecated and will be removed in Less 5.x. Use Less functions or custom plugins instead. (js-eval)');
break;
case 'no-js':
@@ -482,7 +481,6 @@ function processPluginQueue() {
case 'line-numbers':
if (checkArgFunc(arg, match[2])) {
options.dumpLineNumbers = match[2];
pendingDeprecations.push('Warning: The --line-numbers option is deprecated and will be removed in Less 5.x. Use source maps instead (--source-map). (dump-line-numbers)');
}
break;
@@ -539,13 +537,13 @@ function processPluginQueue() {
}
break;
case 'ie-compat':
pendingDeprecations.push('Warning: The --ie-compat option is deprecated, as it has no effect on compilation.');
console.warn('The --ie-compat option is deprecated, as it has no effect on compilation.');
break;
case 'relative-urls':
pendingDeprecations.push('Warning: The --relative-urls option has been deprecated. Use --rewrite-urls=all.');
console.warn('The --relative-urls option has been deprecated. Use --rewrite-urls=all.');
options.rewriteUrls = Constants.RewriteUrls.ALL;
break;
@@ -573,7 +571,7 @@ function processPluginQueue() {
case 'sm':
case 'strict-math':
pendingDeprecations.push('Warning: The --strict-math option has been deprecated. Use --math=strict.');
console.warn('The --strict-math option has been deprecated. Use --math=strict.');
if (checkArgFunc(arg, match[2])) {
if (checkBooleanArg(match[2])) {
@@ -588,14 +586,14 @@ function processPluginQueue() {
let m = match[2];
if (checkArgFunc(arg, m)) {
if (m === 'always') {
pendingDeprecations.push('Warning: --math=always is deprecated and will be removed in Less 5.x. Use --math=parens-division (default) or --math=parens. (math-always)');
console.warn('--math=always is deprecated and will be removed in the future.');
options.math = Constants.Math.ALWAYS;
} else if (m === 'parens-division') {
options.math = Constants.Math.PARENS_DIVISION;
} else if (m === 'parens' || m === 'strict') {
options.math = Constants.Math.PARENS;
} else if (m === 'strict-legacy') {
pendingDeprecations.push('Warning: --math=strict-legacy has been removed. Defaulting to --math=strict.');
console.warn('--math=strict-legacy has been removed. Defaulting to --math=strict');
options.math = Constants.Math.PARENS;
}
}
@@ -652,7 +650,7 @@ function processPluginQueue() {
case 'disable-plugin-rule':
options.disablePluginRule = true;
break;
default:
queuePlugins.push({
name: arg,
@@ -663,16 +661,9 @@ function processPluginQueue() {
}
});
// Flush queued deprecation warnings (respects --silent, --quiet, --quiet-deprecations)
if (!silent && !quiet && !options.quietDeprecations) {
pendingDeprecations.forEach(function (msg) {
console.warn(msg);
});
}
if (queuePlugins.length > 0) {
processPluginQueue();
} else {
render();
}
})();
})();