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
+94 -94
View File
@@ -1,7 +1,7 @@
/*
@license
Rollup.js v4.59.0
Sun, 22 Feb 2026 07:31:53 GMT - commit ae846957f109690a866cc3e4c073613c338d3476
Rollup.js v4.52.3
Sat, 27 Sep 2025 07:05:38 GMT - commit 74c555c8e9ef7b62c2f57925bb2a5c0627ef8ae1
https://github.com/rollup/rollup
@@ -11,8 +11,8 @@
const rollup = require('./rollup.js');
const require$$0$1 = require('path');
const require$$0$2 = require('fs');
const require$$2 = require('util');
const require$$0$2 = require('fs');
const require$$1 = require('stream');
const require$$2$1 = require('os');
const fseventsImporter = require('./fsevents-importer.js');
@@ -214,7 +214,7 @@ var hasRequiredUtils$2;
function requireUtils$2 () {
if (hasRequiredUtils$2) return utils$2;
hasRequiredUtils$2 = 1;
(function (exports$1) {
(function (exports) {
const path = require$$0$1;
const win32 = process.platform === 'win32';
@@ -225,19 +225,19 @@ function requireUtils$2 () {
REGEX_SPECIAL_CHARS_GLOBAL
} = /*@__PURE__*/ requireConstants$3();
exports$1.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
exports$1.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
exports$1.isRegexChar = str => str.length === 1 && exports$1.hasRegexChars(str);
exports$1.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1');
exports$1.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');
exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);
exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1');
exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');
exports$1.removeBackslashes = str => {
exports.removeBackslashes = str => {
return str.replace(REGEX_REMOVE_BACKSLASH, match => {
return match === '\\' ? '' : match;
});
};
exports$1.supportsLookbehinds = () => {
exports.supportsLookbehinds = () => {
const segs = process.version.slice(1).split('.').map(Number);
if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {
return true;
@@ -245,21 +245,21 @@ function requireUtils$2 () {
return false;
};
exports$1.isWindows = options => {
exports.isWindows = options => {
if (options && typeof options.windows === 'boolean') {
return options.windows;
}
return win32 === true || path.sep === '\\';
};
exports$1.escapeLast = (input, char, lastIdx) => {
exports.escapeLast = (input, char, lastIdx) => {
const idx = input.lastIndexOf(char, lastIdx);
if (idx === -1) return input;
if (input[idx - 1] === '\\') return exports$1.escapeLast(input, char, idx - 1);
if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1);
return `${input.slice(0, idx)}\\${input.slice(idx)}`;
};
exports$1.removePrefix = (input, state = {}) => {
exports.removePrefix = (input, state = {}) => {
let output = input;
if (output.startsWith('./')) {
output = output.slice(2);
@@ -268,7 +268,7 @@ function requireUtils$2 () {
return output;
};
exports$1.wrapOutput = (input, state = {}, options = {}) => {
exports.wrapOutput = (input, state = {}, options = {}) => {
const prepend = options.contains ? '' : '^';
const append = options.contains ? '' : '$';
@@ -2625,7 +2625,7 @@ var hasRequiredUtils$1;
function requireUtils$1 () {
if (hasRequiredUtils$1) return utils$1;
hasRequiredUtils$1 = 1;
(function (exports$1) {
(function (exports) {
const path = require$$0$1;
const win32 = process.platform === 'win32';
@@ -2636,19 +2636,19 @@ function requireUtils$1 () {
REGEX_SPECIAL_CHARS_GLOBAL
} = /*@__PURE__*/ requireConstants$2();
exports$1.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
exports$1.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
exports$1.isRegexChar = str => str.length === 1 && exports$1.hasRegexChars(str);
exports$1.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1');
exports$1.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');
exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);
exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1');
exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');
exports$1.removeBackslashes = str => {
exports.removeBackslashes = str => {
return str.replace(REGEX_REMOVE_BACKSLASH, match => {
return match === '\\' ? '' : match;
});
};
exports$1.supportsLookbehinds = () => {
exports.supportsLookbehinds = () => {
const segs = process.version.slice(1).split('.').map(Number);
if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {
return true;
@@ -2656,21 +2656,21 @@ function requireUtils$1 () {
return false;
};
exports$1.isWindows = options => {
exports.isWindows = options => {
if (options && typeof options.windows === 'boolean') {
return options.windows;
}
return win32 === true || path.sep === '\\';
};
exports$1.escapeLast = (input, char, lastIdx) => {
exports.escapeLast = (input, char, lastIdx) => {
const idx = input.lastIndexOf(char, lastIdx);
if (idx === -1) return input;
if (input[idx - 1] === '\\') return exports$1.escapeLast(input, char, idx - 1);
if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1);
return `${input.slice(0, idx)}\\${input.slice(idx)}`;
};
exports$1.removePrefix = (input, state = {}) => {
exports.removePrefix = (input, state = {}) => {
let output = input;
if (output.startsWith('./')) {
output = output.slice(2);
@@ -2679,7 +2679,7 @@ function requireUtils$1 () {
return output;
};
exports$1.wrapOutput = (input, state = {}, options = {}) => {
exports.wrapOutput = (input, state = {}, options = {}) => {
const prepend = options.contains ? '' : '^';
const append = options.contains ? '' : '$';
@@ -4947,9 +4947,9 @@ var hasRequiredUtils;
function requireUtils () {
if (hasRequiredUtils) return utils;
hasRequiredUtils = 1;
(function (exports$1) {
(function (exports) {
exports$1.isInteger = num => {
exports.isInteger = num => {
if (typeof num === 'number') {
return Number.isInteger(num);
}
@@ -4963,15 +4963,15 @@ function requireUtils () {
* Find a node of the given type
*/
exports$1.find = (node, type) => node.nodes.find(node => node.type === type);
exports.find = (node, type) => node.nodes.find(node => node.type === type);
/**
* Find a node of the given type
*/
exports$1.exceedsLimit = (min, max, step = 1, limit) => {
exports.exceedsLimit = (min, max, step = 1, limit) => {
if (limit === false) return false;
if (!exports$1.isInteger(min) || !exports$1.isInteger(max)) return false;
if (!exports.isInteger(min) || !exports.isInteger(max)) return false;
return ((Number(max) - Number(min)) / Number(step)) >= limit;
};
@@ -4979,7 +4979,7 @@ function requireUtils () {
* Escape the given node with '\\' before node.value
*/
exports$1.escapeNode = (block, n = 0, type) => {
exports.escapeNode = (block, n = 0, type) => {
const node = block.nodes[n];
if (!node) return;
@@ -4995,7 +4995,7 @@ function requireUtils () {
* Returns true if the given brace node should be enclosed in literal braces
*/
exports$1.encloseBrace = node => {
exports.encloseBrace = node => {
if (node.type !== 'brace') return false;
if ((node.commas >> 0 + node.ranges >> 0) === 0) {
node.invalid = true;
@@ -5008,7 +5008,7 @@ function requireUtils () {
* Returns true if a brace node is invalid.
*/
exports$1.isInvalidBrace = block => {
exports.isInvalidBrace = block => {
if (block.type !== 'brace') return false;
if (block.invalid === true || block.dollar) return true;
if ((block.commas >> 0 + block.ranges >> 0) === 0) {
@@ -5026,7 +5026,7 @@ function requireUtils () {
* Returns true if a node is an open or close node
*/
exports$1.isOpenOrClose = node => {
exports.isOpenOrClose = node => {
if (node.type === 'open' || node.type === 'close') {
return true;
}
@@ -5037,7 +5037,7 @@ function requireUtils () {
* Reduce an array of text nodes.
*/
exports$1.reduce = nodes => nodes.reduce((acc, node) => {
exports.reduce = nodes => nodes.reduce((acc, node) => {
if (node.type === 'text') acc.push(node.value);
if (node.type === 'range') node.type = 'text';
return acc;
@@ -5047,7 +5047,7 @@ function requireUtils () {
* Flatten an array
*/
exports$1.flatten = (...args) => {
exports.flatten = (...args) => {
const result = [];
const flat = arr => {
@@ -6757,72 +6757,72 @@ var hasRequiredConstants;
function requireConstants () {
if (hasRequiredConstants) return constants;
hasRequiredConstants = 1;
(function (exports$1) {
(function (exports) {
const {sep} = require$$0$1;
const {platform} = process;
const os = require$$2$1;
exports$1.EV_ALL = 'all';
exports$1.EV_READY = 'ready';
exports$1.EV_ADD = 'add';
exports$1.EV_CHANGE = 'change';
exports$1.EV_ADD_DIR = 'addDir';
exports$1.EV_UNLINK = 'unlink';
exports$1.EV_UNLINK_DIR = 'unlinkDir';
exports$1.EV_RAW = 'raw';
exports$1.EV_ERROR = 'error';
exports.EV_ALL = 'all';
exports.EV_READY = 'ready';
exports.EV_ADD = 'add';
exports.EV_CHANGE = 'change';
exports.EV_ADD_DIR = 'addDir';
exports.EV_UNLINK = 'unlink';
exports.EV_UNLINK_DIR = 'unlinkDir';
exports.EV_RAW = 'raw';
exports.EV_ERROR = 'error';
exports$1.STR_DATA = 'data';
exports$1.STR_END = 'end';
exports$1.STR_CLOSE = 'close';
exports.STR_DATA = 'data';
exports.STR_END = 'end';
exports.STR_CLOSE = 'close';
exports$1.FSEVENT_CREATED = 'created';
exports$1.FSEVENT_MODIFIED = 'modified';
exports$1.FSEVENT_DELETED = 'deleted';
exports$1.FSEVENT_MOVED = 'moved';
exports$1.FSEVENT_CLONED = 'cloned';
exports$1.FSEVENT_UNKNOWN = 'unknown';
exports$1.FSEVENT_FLAG_MUST_SCAN_SUBDIRS = 1;
exports$1.FSEVENT_TYPE_FILE = 'file';
exports$1.FSEVENT_TYPE_DIRECTORY = 'directory';
exports$1.FSEVENT_TYPE_SYMLINK = 'symlink';
exports.FSEVENT_CREATED = 'created';
exports.FSEVENT_MODIFIED = 'modified';
exports.FSEVENT_DELETED = 'deleted';
exports.FSEVENT_MOVED = 'moved';
exports.FSEVENT_CLONED = 'cloned';
exports.FSEVENT_UNKNOWN = 'unknown';
exports.FSEVENT_FLAG_MUST_SCAN_SUBDIRS = 1;
exports.FSEVENT_TYPE_FILE = 'file';
exports.FSEVENT_TYPE_DIRECTORY = 'directory';
exports.FSEVENT_TYPE_SYMLINK = 'symlink';
exports$1.KEY_LISTENERS = 'listeners';
exports$1.KEY_ERR = 'errHandlers';
exports$1.KEY_RAW = 'rawEmitters';
exports$1.HANDLER_KEYS = [exports$1.KEY_LISTENERS, exports$1.KEY_ERR, exports$1.KEY_RAW];
exports.KEY_LISTENERS = 'listeners';
exports.KEY_ERR = 'errHandlers';
exports.KEY_RAW = 'rawEmitters';
exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW];
exports$1.DOT_SLASH = `.${sep}`;
exports.DOT_SLASH = `.${sep}`;
exports$1.BACK_SLASH_RE = /\\/g;
exports$1.DOUBLE_SLASH_RE = /\/\//;
exports$1.SLASH_OR_BACK_SLASH_RE = /[/\\]/;
exports$1.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/;
exports$1.REPLACER_RE = /^\.[/\\]/;
exports.BACK_SLASH_RE = /\\/g;
exports.DOUBLE_SLASH_RE = /\/\//;
exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/;
exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/;
exports.REPLACER_RE = /^\.[/\\]/;
exports$1.SLASH = '/';
exports$1.SLASH_SLASH = '//';
exports$1.BRACE_START = '{';
exports$1.BANG = '!';
exports$1.ONE_DOT = '.';
exports$1.TWO_DOTS = '..';
exports$1.STAR = '*';
exports$1.GLOBSTAR = '**';
exports$1.ROOT_GLOBSTAR = '/**/*';
exports$1.SLASH_GLOBSTAR = '/**';
exports$1.DIR_SUFFIX = 'Dir';
exports$1.ANYMATCH_OPTS = {dot: true};
exports$1.STRING_TYPE = 'string';
exports$1.FUNCTION_TYPE = 'function';
exports$1.EMPTY_STR = '';
exports$1.EMPTY_FN = () => {};
exports$1.IDENTITY_FN = val => val;
exports.SLASH = '/';
exports.SLASH_SLASH = '//';
exports.BRACE_START = '{';
exports.BANG = '!';
exports.ONE_DOT = '.';
exports.TWO_DOTS = '..';
exports.STAR = '*';
exports.GLOBSTAR = '**';
exports.ROOT_GLOBSTAR = '/**/*';
exports.SLASH_GLOBSTAR = '/**';
exports.DIR_SUFFIX = 'Dir';
exports.ANYMATCH_OPTS = {dot: true};
exports.STRING_TYPE = 'string';
exports.FUNCTION_TYPE = 'function';
exports.EMPTY_STR = '';
exports.EMPTY_FN = () => {};
exports.IDENTITY_FN = val => val;
exports$1.isWindows = platform === 'win32';
exports$1.isMacos = platform === 'darwin';
exports$1.isLinux = platform === 'linux';
exports$1.isIBMi = os.type() === 'OS400';
exports.isWindows = platform === 'win32';
exports.isMacos = platform === 'darwin';
exports.isLinux = platform === 'linux';
exports.isIBMi = os.type() === 'OS400';
} (constants));
return constants;
}