From e5d9026b2a3d036471801cd89fdb68d3a5f28051 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 10 Oct 2026 11:03:12 -0400 Subject: [PATCH] [ADD] print: seating plan cut into pages, with cartouche and scale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The printed plan draws every table in seat mode with its name lists, whatever the zoom, and drops screen gestures: no selection, focus, grab handle or highlight reaches paper. Each page carries a cartouche (page p of n, column, row) and references to its neighbours; the cut uses the band measured under the footer. Print marks resolve their colour tokens from the printed document, so a dark screen theme leaves the paper light. Checked: node 3721, browser 720, node-long 101 from the index alone. --- FR --- [ADD] impression : plan découpé en pages, avec cartouche et échelle Le plan imprimé dessine chaque table en régime sièges, avec ses listes de noms, quel que soit le zoom, et laisse les gestes à l'écran : sélection, focus, poignée et mise en évidence n'atteignent pas le papier. Chaque page porte un cartouche (page p sur n, colonne, rangée) et ses renvois aux voisines ; la découpe prend la bande mesurée sous le pied. Les marques lisent leurs jetons dans le document imprimé : un thème sombre à l'écran laisse le papier clair. Vérifié : node 3721, navigateur 720, node-long 101 depuis l'index seul. Assisted-by: Claude Opus 5.5 --- doc/captures/07a-cibles-sieges.png | Bin 130034 -> 136347 bytes doc/captures/manifeste.json | 2 +- .../impression/PlanImprime.navigateur.test.js | 402 ++++++++++++++++++ src/interface/impression/PlanImprime.svelte | 188 ++++++-- src/interface/impression/plan.js | 162 +++++++ src/interface/impression/plan.test.js | 217 ++++++++++ src/interface/libelles/impression.js | 16 +- src/interface/plan/ListeNoms.svelte | 8 + src/interface/plan/PlanDessin.svelte | 7 +- src/interface/plan/TablePlan.svelte | 29 +- src/interface/plan/modele.js | 32 +- src/interface/plan/modele.test.js | 89 ++++ src/interface/transversal.navigateur.test.js | 20 + test/navigateur/captures.js | 14 +- test/navigateur/designations.js | 2 + 15 files changed, 1127 insertions(+), 61 deletions(-) create mode 100644 src/interface/impression/PlanImprime.navigateur.test.js create mode 100644 src/interface/impression/plan.js create mode 100644 src/interface/impression/plan.test.js diff --git a/doc/captures/07a-cibles-sieges.png b/doc/captures/07a-cibles-sieges.png index 06649047cd308718c3bb24ab376bd30f36c6e9e2..e2025f64e0ea2af51a37554c6b087b3ad978b844 100644 GIT binary patch literal 136347 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�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 V=;NxEdaiEv+xLKiMZS*ag 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 z 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 +{/snippet} + +{#if bandeMm === null} + + {#snippet bande()} + {@render bandeDe(CARTOUCHE_GABARIT, ECHELLE_GABARIT, MENTIONS_GABARIT)} + {/snippet} + {:else} - {#each decoupe.pages as page (page.rang)} - - {#snippet contenu()} -

{t('impression.plan.page', { page: page.cartouche.page, total: page.cartouche.total })}

- - {/snippet} -
- {/each} + + {#if pages !== null} + {#each pages as page (page.rang)} + + {#snippet contenu()} + + + + {/snippet} + {#snippet bande()} + {@render bandeDe(page.cartouche, page.echelle, page.mentions)} + {/snippet} + + {/each} + {/if} {/if} diff --git a/src/interface/impression/plan.js b/src/interface/impression/plan.js new file mode 100644 index 0000000..ebb063e --- /dev/null +++ b/src/interface/impression/plan.js @@ -0,0 +1,162 @@ +// © 2026 TechnoLibre (http://www.technolibre.ca) +// License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +// Le plan imprimé (§ 7.7, § 11.7), sans DOM : les pages du plan d'un tour, +// chacune la tuile que la découpe (decouperPlan) lui donne, sous le pied +// d'un seul tour, avec son cartouche de repérage, la mention « disposition +// relative », l'échelle graphique de son échelle et, quand les listes sont +// montrées et que la page porte une table, la mention qui dit les listes +// hors d'échelle. Les blocs de noms entrent dans la découpe à la largeur du +// registre, LARGEUR_BLOC_NOMS_CM, celle de l'écran, et à la hauteur que leur +// donne la hauteur de ligne mesurée au rendu (HAUTEUR_LIGNE). Le module ne +// rend que des nombres et des données ; PlanImprime les pose. +import { constante } from '../../geometrie/constantes.js'; +import { echelleGraphique } from '../../geometrie/echelle.js'; +import { decouperPlan } from '../../geometrie/pages.js'; +import { englobantImpression } from '../../geometrie/tables.js'; + +/** Largeur maximale de la barre de l'échelle graphique imprimée, en mm de + * papier. */ +export const LARGEUR_ECHELLE_MM = 40; + +/** Le cartouche de la feuille gabarit : chaque renvoi présent, des numéros + * et une lettre de colonne plus larges que ceux d'un plan réel. La bande + * mesurée sur lui majore celle de toute page du plan. */ +export const CARTOUCHE_GABARIT = Object.freeze({ + page: 888, + total: 888, + colonne: 'WW', + rangee: 888, + voisins: Object.freeze({ haut: 887, droite: 887, bas: 887, gauche: 887 }), +}); + +/** Les mentions de la feuille gabarit : toutes deux présentes. */ +export const MENTIONS_GABARIT = Object.freeze({ relative: true, listes: true }); + +/** L'échelle graphique de la feuille gabarit : une barre de largeur + * LARGEUR_ECHELLE_MM ; sa hauteur ne dépend pas de sa longueur. */ +export const ECHELLE_GABARIT = Object.freeze({ longueurCm: 50000, largeurMm: LARGEUR_ECHELLE_MM }); + +// Les renvois d'un cartouche, dans l'ordre de la lecture du plan : le sens, +// et la clé de son libellé. +const RENVOIS = Object.freeze([ + ['haut', 'impression.plan.renvoi.haut'], + ['droite', 'impression.plan.renvoi.droite'], + ['bas', 'impression.plan.renvoi.bas'], + ['gauche', 'impression.plan.renvoi.gauche'], +]); + +/** + * La hauteur du bloc de noms de chaque table, en cm de dessin : une ligne + * par siège, de 1 à la capacité, plus l'en-tête d'une table gelée, plus une + * ligne. La ligne de base de la rangée i, comptée de 1, tombe i hauteurs de + * ligne sous le haut du bloc (ordonneesLignes, plan/modele.js) ; la ligne + * de plus majore le jambage de la dernière, plus court que la hauteur + * d'encre du gabarit. + * + * @param {{tables: Array<{id: number, capacite: number, gelee: boolean}>}} etat EtatPlaces + * @param {number} hauteurLigne cm, HAUTEUR_LIGNE mesurée au rendu + * @returns {Map} + * @throws {RangeError} une hauteur de ligne non finie ou ≤ 0 + */ +export function hauteursListes(etat, hauteurLigne) { + if (typeof hauteurLigne !== 'number' || !Number.isFinite(hauteurLigne) || hauteurLigne <= 0) { + throw new RangeError(`hauteur de ligne : nombre fini > 0 attendu, reçu ${String(hauteurLigne)}`); + } + return new Map(etat.tables.map(({ id, capacite, gelee }) => [id, (capacite + (gelee ? 1 : 0) + 1) * hauteurLigne])); +} + +// Lève RangeError quand le pied n'est pas celui d'un seul tour : le plan +// s'imprime tour par tour, et son pied le nomme. +function exigerPiedDUnTour(pied) { + const tour = pied?.elements?.find(({ element }) => element === 'tour'); + if (tour?.libelle?.cle !== 'impression.pied.tour') { + throw new RangeError(`pied du plan : le tour imprimé attendu, reçu ${JSON.stringify(tour?.libelle ?? null)}`); + } +} + +/** + * Les pages du plan imprimé d'un tour (§ 11.7). + * + * La découpe est celle de decouperPlan, sur l'englobant d'impression des + * géométries (englobantImpression) ; les listes montrées l'étendent de + * leurs blocs, larges de LARGEUR_BLOC_NOMS_CM, hauts de hauteursListes. Une + * page par tuile, dans l'ordre de la découpe : + * - rang, cartouche, tables : ceux de la tuile ; + * - orientation : celle de la découpe ; + * - viewBox : le cadrage de la tuile, en cm de dessin ; + * - taille : la tuile sur le papier, en mm, le cadrage à l'échelle ; + * - mentions : relative, toujours ; listes, quand les listes sont montrées + * et que la page porte une table ; + * - echelle : la longueur ronde dont la barre tient dans largeurEchelleMm + * à l'échelle de la découpe (echelleGraphique), et sa largeur en mm ; + * - pied : le pied reçu, le même sur chaque page. + * + * @param {Object} etat EtatPlaces du tour imprimé + * @param {import('../../geometrie/tables.js').GeometrieTable[]} geometries celles des tables de etat + * @param {'auto'|'unePage'|'decoupe'} decoupe + * @param {{papier: string, bandeMm: number, listes?: boolean, hauteurLigne?: number|null, + * pied: {elements: Object[], filigrane: boolean}, largeurEchelleMm?: number}} options + * pied : la feuille de feuilleDe (modele.js), d'un seul tour + * @returns {Array<{rang: number, orientation: 'portrait'|'paysage', + * viewBox: {x: number, y: number, largeur: number, hauteur: number}, + * taille: {largeur: number, hauteur: number}, tables: number[], + * mentions: {relative: true, listes: boolean}, echelle: {longueurCm: number, largeurMm: number}, + * cartouche: Object, pied: Object}>} + * @throws {RangeError} un pied de la soirée ; des listes montrées sans hauteur de ligne ; ce que + * decouperPlan refuse + */ +export function pagesDuPlan( + etat, + geometries, + decoupe, + { papier, bandeMm, listes = false, hauteurLigne = null, pied, largeurEchelleMm = LARGEUR_ECHELLE_MM }, +) { + exigerPiedDUnTour(pied); + const blocs = listes ? { largeur: constante('LARGEUR_BLOC_NOMS_CM'), hauteurs: hauteursListes(etat, hauteurLigne) } : null; + const resultat = decouperPlan(englobantImpression(geometries, { listes: blocs }), { + papier, + bandeMm, + mode: decoupe, + geometries, + listes: blocs, + }); + const { longueurCm, largeurPx } = echelleGraphique(resultat.echelle, largeurEchelleMm); + return resultat.pages.map(({ rang, cadrage, cartouche, tables }) => ({ + rang, + orientation: resultat.orientation, + viewBox: { ...cadrage }, + taille: { largeur: cadrage.largeur * resultat.echelle, hauteur: cadrage.hauteur * resultat.echelle }, + tables, + mentions: { relative: true, listes: listes && tables.length > 0 }, + echelle: { longueurCm, largeurMm: largeurPx }, + cartouche, + pied, + })); +} + +/** + * Les renvois d'un cartouche vers les pages voisines, dans l'ordre haut, + * droite, bas, gauche : le sens, la clé de son libellé et le numéro de la + * page, de 1 ; un bord du plan, sans voisine, n'en a pas. + * + * @param {{voisins: {haut: number|null, droite: number|null, bas: number|null, gauche: number|null}}} cartouche + * voisins : le rang de chaque page voisine, de 0 + * @returns {Array<{sens: string, cle: string, page: number}>} + */ +export function renvois({ voisins }) { + return RENVOIS.filter(([sens]) => voisins[sens] !== null).map(([sens, cle]) => ({ sens, cle, page: voisins[sens] + 1 })); +} + +/** + * Le modèle de dessin d'une page : les tables du modèle que la page porte, + * dans l'ordre du modèle — celui de la peinture —, le reste du modèle tel + * quel. Une table hors de la tuile ne se dessine pas sur la page. + * + * @param {{tables: Array<{id: number}>}} modele ModeleDessin + * @param {{tables: number[]}} page + */ +export function modeleDeLaPage(modele, { tables }) { + const portees = new Set(tables); + return { ...modele, tables: modele.tables.filter(({ id }) => portees.has(id)) }; +} diff --git a/src/interface/impression/plan.test.js b/src/interface/impression/plan.test.js new file mode 100644 index 0000000..d08b368 --- /dev/null +++ b/src/interface/impression/plan.test.js @@ -0,0 +1,217 @@ +// © 2026 TechnoLibre (http://www.technolibre.ca) +// License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +// Épreuves du plan imprimé, sans DOM (§ 7.7, § 11.7) : les pages que rend +// pagesDuPlan sont celles de la découpe (decouperPlan), une par feuille, +// chacune sous le pied d'un seul tour, la mention « disposition relative » +// et l'échelle graphique de son échelle ; la mention des listes sur chaque +// page qui en porte, quand elles sont montrées. La découpe attendue se +// recalcule ici par decouperPlan et englobantImpression, appelées +// directement ; la hauteur des listes, de la hauteur de ligne reçue. +import assert from 'node:assert/strict'; +import { describe, test } from '../../../test/lanceur.js'; +import { TABLES_APPLICATION } from '../../application/libelles.js'; +import { etatPlaces } from '../../application/places.js'; +import { creerTraduction } from '../../application/traduction.js'; +import { texteLivre } from '../../demo/livrees.js'; +import { echelleGraphique } from '../../geometrie/echelle.js'; +import { decouperPlan } from '../../geometrie/pages.js'; +import { HAUTEUR_LIGNE_SUPPOSEE, englobantImpression, geometrieTable } from '../../geometrie/tables.js'; +import { analyser, creerCharge } from '../../stockage/document.js'; +import { constante } from '../../geometrie/constantes.js'; +import { TABLES_INTERFACE } from '../libelles.js'; +import { modeleDessin } from '../plan/modele.js'; +import { feuilleDe } from './modele.js'; +import { + CARTOUCHE_GABARIT, + ECHELLE_GABARIT, + LARGEUR_ECHELLE_MM, + MENTIONS_GABARIT, + hauteursListes, + modeleDeLaPage, + pagesDuPlan, + renvois, +} from './plan.js'; + +const H = HAUTEUR_LIGNE_SUPPOSEE; +const TABLES = [...TABLES_APPLICATION, ...TABLES_INTERFACE]; + +// Le pied d'une feuille au tour donné, ou de la soirée. +const piedAu = (tour) => + feuilleDe({ nom: 'Soirée des Merles', date: null, tour, horodatage: null, version: 'epreuve' }, false); + +const demonstration = (cle) => analyser(texteLivre(cle)).charge; + +// L'état des places du tour 1 d'une charge, ses géométries à leur capacité. +function plan(charge, tour = 1) { + const etat = etatPlaces(charge, { tour }); + const geometries = etat.tables.map((table) => geometrieTable(table, table.capacite)); + return { etat, geometries }; +} + +// Une charge de tables rondes de 6 places, aux positions données (cm). +function chargeDeTables(positions) { + const charge = creerCharge({ id: 'epreuve:plan-imprime', nom: 'Plan imprimé', siegesParDefaut: 6, tours: 2 }); + charge.tables = positions.map(([x, y], i) => ({ id: i + 1, numero: i + 1, sieges: null, forme: 'ronde', position: { x, y } })); + charge.prochainsIds = { participant: 1, table: positions.length + 1, proposition: 1 }; + return charge; +} + +// La découpe attendue, par decouperPlan appelée directement. +function decoupeAttendue(etat, geometries, mode, { papier = 'A4', bandeMm = 12, listes = false, hauteurLigne = H } = {}) { + const blocs = listes ? { largeur: constante('LARGEUR_BLOC_NOMS_CM'), hauteurs: hauteursListes(etat, hauteurLigne) } : null; + return decouperPlan(englobantImpression(geometries, { listes: blocs }), { papier, bandeMm, mode, geometries, listes: blocs }); +} + +describe('hauteursListes : la hauteur du bloc de noms de chaque table (§ 7.4, § 7.7)', () => { + test('une ligne par siège, l’en-tête d’une table gelée, et une ligne pour le jambage de la dernière', () => { + const etat = { tables: [{ id: 4, capacite: 6, gelee: false }, { id: 9, capacite: 3, gelee: true }] }; + const hauteurs = hauteursListes(etat, 20); + assert.deepEqual([...hauteurs], [[4, 7 * 20], [9, 5 * 20]]); + }); + + test('une hauteur de ligne non finie ou ≤ 0 se refuse', () => { + const etat = { tables: [{ id: 1, capacite: 2, gelee: false }] }; + for (const h of [0, -1, Number.NaN, Number.POSITIVE_INFINITY, null]) { + assert.throws(() => hauteursListes(etat, h), RangeError, String(h)); + } + }); +}); + +describe('pagesDuPlan : une page par feuille, chacune la tuile de la découpe (§ 11.7)', () => { + for (const [mode, listes] of [ + ['auto', false], + ['auto', true], + ['decoupe', true], + ['unePage', true], + ]) { + test(`grande démonstration, ${mode}, listes ${listes ? 'montrées' : 'masquées'} : N pages, celles de decouperPlan, tuile, cartouche et tables`, () => { + const { etat, geometries } = plan(demonstration('grande')); + const attendue = decoupeAttendue(etat, geometries, mode, { listes }); + const pages = pagesDuPlan(etat, geometries, mode, { papier: 'A4', bandeMm: 12, listes, hauteurLigne: H, pied: piedAu(1) }); + assert.equal(pages.length, attendue.pages.length); + for (const [rang, page] of pages.entries()) { + const tuile = attendue.pages[rang]; + assert.equal(page.rang, tuile.rang); + assert.equal(page.orientation, attendue.orientation); + assert.deepEqual(page.viewBox, tuile.cadrage); + assert.deepEqual(page.cartouche, tuile.cartouche); + assert.deepEqual(page.tables, tuile.tables); + assert.deepEqual(page.taille, { largeur: tuile.cadrage.largeur * attendue.echelle, hauteur: tuile.cadrage.hauteur * attendue.echelle }); + } + }); + } + + test('le pied de chaque page est celui d’un seul tour, le tour imprimé', () => { + const { etat, geometries } = plan(demonstration('grande')); + const pied = piedAu(3); + const pages = pagesDuPlan(etat, geometries, 'decoupe', { papier: 'A4', bandeMm: 12, listes: true, hauteurLigne: H, pied }); + assert.ok(pages.length > 1); + for (const page of pages) { + assert.equal(page.pied, pied); + const tour = page.pied.elements.find(({ element }) => element === 'tour'); + assert.deepEqual(tour.libelle, { cle: 'impression.pied.tour', details: { tour: 3 } }); + } + }); + + test('un pied de la soirée se refuse : le plan s’imprime à un tour', () => { + const { etat, geometries } = plan(demonstration('petite')); + assert.throws(() => pagesDuPlan(etat, geometries, 'auto', { papier: 'A4', bandeMm: 12, pied: piedAu('tous') }), RangeError); + }); + + test('chaque page porte la mention « disposition relative » ; celle des listes, si et seulement si les listes sont montrées et que la page porte une table', () => { + // Deux tables à 200 m l'une de l'autre : découpé, le plan a des pages + // sans table entre elles. + const { etat, geometries } = plan(chargeDeTables([[0, 0], [20000, 0]])); + for (const listes of [true, false]) { + const pages = pagesDuPlan(etat, geometries, 'decoupe', { papier: 'A4', bandeMm: 12, listes, hauteurLigne: H, pied: piedAu(1) }); + const vides = pages.filter(({ tables }) => tables.length === 0); + assert.ok(vides.length > 0 && vides.length < pages.length, `${vides.length} pages vides sur ${pages.length}`); + for (const page of pages) { + assert.equal(page.mentions.relative, true); + assert.equal(page.mentions.listes, listes && page.tables.length > 0, `page ${page.rang}, listes ${listes}`); + } + } + }); + + test('l’échelle graphique de chaque page : la longueur ronde qui tient dans LARGEUR_ECHELLE_MM à l’échelle de la découpe, et sa largeur en mm', () => { + for (const cle of ['petite', 'grande']) { + const { etat, geometries } = plan(demonstration(cle)); + for (const mode of ['auto', 'unePage']) { + const attendue = decoupeAttendue(etat, geometries, mode, { listes: true }); + const pages = pagesDuPlan(etat, geometries, mode, { papier: 'A4', bandeMm: 12, listes: true, hauteurLigne: H, pied: piedAu(1) }); + const { longueurCm, largeurPx } = echelleGraphique(attendue.echelle, LARGEUR_ECHELLE_MM); + for (const page of pages) { + assert.deepEqual(page.echelle, { longueurCm, largeurMm: largeurPx }); + assert.ok(page.echelle.largeurMm <= LARGEUR_ECHELLE_MM); + assert.equal(page.echelle.largeurMm, page.echelle.longueurCm * attendue.echelle); + } + } + } + }); + + test('grande démonstration, listes montrées, A4 : découpée par défaut, chaque table sur une page au moins', () => { + const { etat, geometries } = plan(demonstration('grande')); + const pages = pagesDuPlan(etat, geometries, 'auto', { papier: 'A4', bandeMm: 12, listes: true, hauteurLigne: H, pied: piedAu(1) }); + assert.ok(pages.length > 1, `${pages.length} page(s)`); + const portees = new Set(pages.flatMap(({ tables }) => tables)); + assert.deepEqual([...portees].sort((a, b) => a - b), etat.tables.map(({ id }) => id).sort((a, b) => a - b)); + }); + + test('les listes montrées étendent la découpe de leurs blocs : sans hauteur de ligne, elles se refusent', () => { + const { etat, geometries } = plan(demonstration('petite')); + assert.throws(() => pagesDuPlan(etat, geometries, 'auto', { papier: 'A4', bandeMm: 12, listes: true, pied: piedAu(1) }), RangeError); + const sans = pagesDuPlan(etat, geometries, 'unePage', { papier: 'A4', bandeMm: 12, listes: false, pied: piedAu(1) }); + const avec = pagesDuPlan(etat, geometries, 'unePage', { papier: 'A4', bandeMm: 12, listes: true, hauteurLigne: H, pied: piedAu(1) }); + // Sur une page, le plan avec ses listes couvre plus de dessin : son + // échelle est plus petite. + assert.ok(avec[0].taille.largeur / avec[0].viewBox.largeur < sans[0].taille.largeur / sans[0].viewBox.largeur); + }); + + test('un plan vide : une page, aucune table, une échelle graphique finie', () => { + const { etat, geometries } = plan(chargeDeTables([])); + const pages = pagesDuPlan(etat, geometries, 'auto', { papier: 'Lettre', bandeMm: 12, listes: true, hauteurLigne: H, pied: piedAu(1) }); + assert.equal(pages.length, 1); + assert.deepEqual(pages[0].tables, []); + assert.equal(pages[0].mentions.listes, false); + assert.ok(Number.isFinite(pages[0].echelle.largeurMm) && pages[0].echelle.largeurMm > 0); + }); +}); + +describe('renvois, modeleDeLaPage et le gabarit de la bande', () => { + test('renvois : les pages voisines, haut, droite, bas, gauche, numérotées de 1, les bords omis', () => { + const cartouche = { page: 5, total: 9, colonne: 'B', rangee: 2, voisins: { haut: 1, droite: 5, bas: null, gauche: 3 } }; + assert.deepEqual(renvois(cartouche), [ + { sens: 'haut', cle: 'impression.plan.renvoi.haut', page: 2 }, + { sens: 'droite', cle: 'impression.plan.renvoi.droite', page: 6 }, + { sens: 'gauche', cle: 'impression.plan.renvoi.gauche', page: 4 }, + ]); + assert.deepEqual(renvois({ ...cartouche, voisins: { haut: null, droite: null, bas: null, gauche: null } }), []); + }); + + test('modeleDeLaPage : les tables de la page, dans l’ordre du modèle ; le reste du modèle tel quel', () => { + const charge = demonstration('petite'); + const etat = etatPlaces(charge, { tour: 1 }); + const modele = modeleDessin(etat, { listes: true, nomDe: () => 'Iris Ombrelle', impression: true }); + const ids = modele.tables.map(({ id }) => id); + const page = { tables: [ids[2], ids[0]] }; + const reduit = modeleDeLaPage(modele, page); + assert.deepEqual(reduit.tables.map(({ id }) => id), [ids[0], ids[2]]); + assert.equal(reduit.tables[0], modele.tables[0]); + assert.deepEqual({ ...reduit, tables: null }, { ...modele, tables: null }); + }); + + test('chaque renvoi a son libellé, en français comme en langue témoin', () => { + for (const traduction of [creerTraduction(TABLES), creerTraduction(TABLES, { langue: 'temoin' })]) { + for (const { cle, page } of renvois(CARTOUCHE_GABARIT)) { + assert.match(traduction.t(cle, { page }), /888|887/u, cle); + } + } + }); + + test('le gabarit porte chaque élément que la bande peut porter : les quatre renvois, les deux mentions, l’échelle', () => { + assert.equal(renvois(CARTOUCHE_GABARIT).length, 4); + assert.deepEqual(MENTIONS_GABARIT, { relative: true, listes: true }); + assert.ok(ECHELLE_GABARIT.largeurMm > 0 && ECHELLE_GABARIT.largeurMm <= LARGEUR_ECHELLE_MM); + }); +}); diff --git a/src/interface/libelles/impression.js b/src/interface/libelles/impression.js index c590332..2300e4f 100644 --- a/src/interface/libelles/impression.js +++ b/src/interface/libelles/impression.js @@ -51,8 +51,22 @@ export const TABLE = new Map([ ['impression.pied.placementInconnu', 'Placement non daté'], ['impression.pied.version', 'Version'], - // --- Les vues, avant leur mise en page (§ 11.7) ------------------------------ + // --- Le plan imprimé (§ 7.7, § 11.7) --------------------------------------- ['impression.plan.page', ({ page, total }) => `Plan, page ${page} sur ${total}`], + [ + 'impression.plan.cartouche', + ({ page, total, colonne, rangee }) => `Page ${page} sur ${total} \u{2014} colonne ${colonne}, rangée ${rangee}`, + ], + ['impression.plan.renvoi.haut', ({ page }) => `au-dessus : page ${page}`], + ['impression.plan.renvoi.droite', ({ page }) => `à droite : page ${page}`], + ['impression.plan.renvoi.bas', ({ page }) => `au-dessous : page ${page}`], + ['impression.plan.renvoi.gauche', ({ page }) => `à gauche : page ${page}`], + [ + 'impression.plan.listes', + "listes de noms hors d'échelle \u{2014} le plan à l'échelle du bâtiment s'imprime listes masquées", + ], + + // --- Les vues, avant leur mise en page (§ 11.7) ------------------------------ ['impression.accueil.titre', "Liste d'accueil"], ['impression.tables.titre', 'Feuilles par table'], ]); diff --git a/src/interface/plan/ListeNoms.svelte b/src/interface/plan/ListeNoms.svelte index 30b96a1..1d34d77 100644 --- a/src/interface/plan/ListeNoms.svelte +++ b/src/interface/plan/ListeNoms.svelte @@ -17,6 +17,13 @@ // Le texte est en white-space: pre, pour que les espaces des parties // comptent comme elles ont été mesurées : le gabarit n'a aucun blanc entre // les balises du . + // + // Le texte se compose en text-rendering: geometricPrecision, comme la + // sonde qui le mesure (PlanDessin) : le moteur de rendu le met alors en + // page à son corps du dessin, sans le recomposer au corps qu'il prend à + // l'écran. Sans lui, la largeur mesurée suit l'échelle d'affichage — le + // zoom du plan, l'échelle d'une page imprimée —, et une même ligne + // s'abrège à des longueurs différentes à l'écran et sur le papier (§ 7.4). import { getContext } from 'svelte'; import { TAILLE_TEXTE_LISTE_CM } from '../../geometrie/texte.js'; import { ajusterLigne, ordonneesLignes, partiesLigne, textesLigne } from './modele.js'; @@ -52,6 +59,7 @@ .liste { fill: var(--couleur-liste-texte); font-family: var(--police-interface); + text-rendering: geometricPrecision; white-space: pre; pointer-events: none; } diff --git a/src/interface/plan/PlanDessin.svelte b/src/interface/plan/PlanDessin.svelte index 47bc14f..0078f19 100644 --- a/src/interface/plan/PlanDessin.svelte +++ b/src/interface/plan/PlanDessin.svelte @@ -23,6 +23,10 @@ // taille du qui porte le dessin, qu'un ResizeObserver signale : un // plan qui se cache perd ses mesures, et ses listes, et les reprend en se // montrant. + // + // Le modèle du plan imprimé (modele.impression, § 11.7) se dessine de + // même, chaque table sans poignée, ni cible, ni identifiant (TablePlan) ; + // ses listes ont la largeur et la troncature de l'écran (§ 7.4). import { untrack } from 'svelte'; import { constante } from '../../geometrie/constantes.js'; import { TAILLE_TEXTE_LISTE_CM } from '../../geometrie/texte.js'; @@ -60,7 +64,7 @@ {#each modele.tables as table (table.id)} - + {/each} de la page porte le + // sien, et son contenu est caché aux technologies d'assistance —, ni + // poignée, ni cible. Le plateau, les chaises, les marques, les trames et + // la pastille sont ceux de l'écran : le noir et blanc se lit par la forme. import { getContext } from 'svelte'; import { RAYON_POIGNEE } from '../../geometrie/tables.js'; import { @@ -56,7 +62,7 @@ texteLigne, } from './modele.js'; - let { table, signaler, prefixe } = $props(); + let { table, signaler, prefixe, impression = false } = $props(); const t = getContext('t'); @@ -78,7 +84,12 @@ } - + {#if table.regime === 'table'} {#if formes.ronde} @@ -116,10 +127,10 @@ {/if} {#each table.chaises as chaise (chaise.siege)} {/if} - + {#if !impression} + + {/if} {/each} - +{#if !impression} + +{/if} {#if table.pastille > 0} diff --git a/src/interface/plan/modele.js b/src/interface/plan/modele.js index 7dcb8ad..38db65f 100644 --- a/src/interface/plan/modele.js +++ b/src/interface/plan/modele.js @@ -314,12 +314,13 @@ function porteurDe(place, id, regime) { } // Le dessin d'une table de l'état des places au zoom k ; places, le nombre -// de sièges que la poignée montre, sinon sa capacité. -function tableDessin(etatTable, { k, miseEnEvidence, nomDe, selection = null, actif = null }, places = etatTable.capacite) { +// de sièges que la poignée montre, sinon sa capacité. Imprimée, la table +// est en régime sièges, quel que soit k. +function tableDessin(etatTable, { k, miseEnEvidence, nomDe, selection = null, actif = null, impression = false }, places = etatTable.capacite) { const { id, numero, gelee, surchargee, conflits } = etatTable; const geometrie = geometrieTable(etatTable, places); const trames = conflits === null ? [] : conflits.regles.map(({ regle }) => ({ ...SORTE_DE_REGLE.get(regle) })); - const regime = regimeCibles(k, geometrie); + const regime = impression ? 'sieges' : regimeCibles(k, geometrie); const pastille = conflits === null ? 0 : conflits.nombre; const etatChaises = chaisesA(etatTable, places); const selectionnee = porteurDe(selection, id, regime); @@ -390,24 +391,34 @@ function tableDessin(etatTable, { k, miseEnEvidence, nomDe, selection = null, ac * accessible —, ses chaises 1 à places, celles au-delà de sa capacité * libres ; l'état des places n'est pas touché, et rien ne s'écrit (§ 7.1). * + * L'option impression rend le plan imprimé (§ 11.7) : k n'y entre pas, + * chaque table est en régime sièges, ses chaises de 1 à sa capacité, et les + * listes se rendent dès qu'elles sont demandées. Le papier ne reçoit aucun + * geste : poignee, selection, actif et miseEnEvidence sont sans effet, et + * aucun porteur n'est marqué. Le modèle porte impression, que le dessin lit + * pour ne poser ni poignée, ni cible, ni identifiant, ni rôle. + * * @param {Object} etatPlaces EtatPlaces (A5) - * @param {{k: number, listes: boolean, miseEnEvidence: number|null, + * @param {{k?: number, listes: boolean, miseEnEvidence?: number|null, * nomDe: (id: number) => string, diagnostic?: Object|null, * poignee?: {table: number, places: number}|null, * selection?: {table: number, siege?: number|null}|null, - * actif?: {table: number, siege: number|null}|null}} options - * diagnostic : celui que rend diagnostiquer, compléments de M1 compris + * actif?: {table: number, siege: number|null}|null, + * impression?: boolean}} options + * diagnostic : celui que rend diagnostiquer, compléments de M1 compris ; + * k : exigé hors de l'impression ; miseEnEvidence : null par défaut * @returns {Object} ModeleDessin */ export function modeleDessin( etatPlaces, - { k, listes, miseEnEvidence, nomDe, diagnostic = null, poignee = null, selection = null, actif = null }, + { k, listes, miseEnEvidence = null, nomDe, diagnostic = null, poignee = null, selection = null, actif = null, impression = false }, ) { + const gestes = impression ? { miseEnEvidence: null, selection: null, actif: null } : { miseEnEvidence, selection, actif }; const tables = etatPlaces.tables.map((etatTable) => tableDessin( etatTable, - { k, miseEnEvidence, nomDe, selection, actif }, - poignee !== null && poignee.table === etatTable.id ? poignee.places : etatTable.capacite, + { k, nomDe, impression, ...gestes }, + !impression && poignee !== null && poignee.table === etatTable.id ? poignee.places : etatTable.capacite, ), ); const toutesEnConflit = tables.length > 0 && tables.every(({ conflit }) => conflit); @@ -415,7 +426,8 @@ export function modeleDessin( tables, signalerConflits: !toutesEnConflit, bandeau: bandeauDe(toutesEnConflit, diagnostic), - listesRendues: listes && k >= constante('K_LISTES'), + listesRendues: listes && (impression || k >= constante('K_LISTES')), + impression, }; } diff --git a/src/interface/plan/modele.test.js b/src/interface/plan/modele.test.js index 66a206d..5172bfd 100644 --- a/src/interface/plan/modele.test.js +++ b/src/interface/plan/modele.test.js @@ -1217,3 +1217,92 @@ describe('les clés que les panneaux composent existent (§ 14.6)', () => { } }); }); + +describe('modeleDessin, option impression : le plan imprimé (§ 11.7, § 13.5)', () => { + // La grande démonstration au tour 1, sa proposition montrée : des tables + // de toutes tailles, dont le régime à l'écran dépend de k. + const grande = () => analyser(texteLivre('grande')).charge; + + test('régime des sièges pour chaque table, quel que soit k ; chaque chaise dessinée, de 1 à la capacité', () => { + const charge = grande(); + const etat = etatPlaces(charge, { tour: 1 }); + // À l'écran, au plus petit zoom, aucune chaise ne se dessine. + const ecran = modeleDessin(etat, options(charge, { k: 0.01 })); + assert.ok(ecran.tables.every(({ regime }) => regime === 'table')); + for (const k of [undefined, 0.01, 5]) { + const modele = modeleDessin(etat, options(charge, { k, impression: true })); + assert.equal(modele.tables.length, etat.tables.length); + for (const [rang, table] of modele.tables.entries()) { + assert.equal(table.regime, 'sieges', `table ${table.id}, k = ${String(k)}`); + assert.deepEqual( + table.chaises.map(({ siege }) => siege), + etat.tables[rang].chaises.map(({ siege }) => siege), + ); + } + } + }); + + test('ni sélection, ni focus, ni mise en évidence : les options de l’écran sont sans effet', () => { + const charge = avecPropositions(petite()); + const etat = etatPlaces(charge, { tour: 1, proposition: charge.propositions[0].id }); + const [premiere, deuxieme] = etat.tables; + const occupant = premiere.chaises.find((chaise) => chaise.occupant !== null).occupant; + const ecran = { + selection: { table: premiere.id, siege: 1 }, + actif: { table: deuxieme.id, siege: null }, + miseEnEvidence: occupant, + poignee: { table: premiere.id, places: 1 }, + }; + // À l'écran, ces options marquent leur porteur. + const marque = modeleDessin(etat, options(charge, { k: 5, ...ecran })); + assert.ok(marque.tables.some((table) => table.focus || table.chaises.some((chaise) => chaise.selection || chaise.miseEnEvidence))); + const modele = modeleDessin(etat, options(charge, { impression: true, ...ecran })); + for (const table of modele.tables) { + assert.equal(table.selection, false); + assert.equal(table.focus, false); + for (const chaise of table.chaises) { + assert.deepEqual([chaise.selection, chaise.focus, chaise.miseEnEvidence], [false, false, false], `table ${table.id}`); + } + } + // La poignée ne retire aucune chaise au papier : la table tenue garde sa capacité. + assert.deepEqual( + modele.tables[0].chaises.map(({ siege }) => siege), + Array.from({ length: premiere.capacite }, (_, rang) => rang + 1), + ); + }); + + test('les listes se rendent quand elles sont demandées, sans égard à K_LISTES', () => { + const charge = avecPropositions(petite()); + const etat = etatPlaces(charge, { tour: 1 }); + assert.equal(modeleDessin(etat, options(charge, { k: K_LISTES - 0.01, impression: true })).listesRendues, true); + assert.equal(modeleDessin(etat, options(charge, { impression: true })).listesRendues, true); + assert.equal(modeleDessin(etat, options(charge, { impression: true, listes: false })).listesRendues, false); + }); + + test('le modèle se dit imprimé, et l’écran ne l’est pas : le dessin y lit l’absence de poignée, d’identifiant et de cible', () => { + const charge = avecPropositions(petite()); + const etat = etatPlaces(charge, { tour: 1 }); + assert.equal(modeleDessin(etat, options(charge, { impression: true })).impression, true); + assert.equal(modeleDessin(etat, options(charge)).impression, false); + }); + + test('les conflits, les pastilles, les marques et les lignes sont ceux de l’écran', () => { + const charge = avecPropositions(petite('petite-conflit')); + const etat = etatPlaces(charge, { tour: 1, proposition: charge.propositions[0].id }); + const ecran = modeleDessin(etat, options(charge, { k: 5 })); + const imprime = modeleDessin(etat, options(charge, { impression: true })); + assert.ok(imprime.tables.some(({ conflit }) => conflit), 'une table en conflit au moins'); + assert.equal(imprime.signalerConflits, ecran.signalerConflits); + for (const [rang, table] of imprime.tables.entries()) { + const voisine = ecran.tables[rang]; + assert.deepEqual( + [table.conflit, table.pastille, table.trames, table.lignes, table.enTete], + [voisine.conflit, voisine.pastille, voisine.trames, voisine.lignes, voisine.enTete], + ); + assert.deepEqual( + table.chaises.map(({ remplissage, marques }) => [remplissage, marques]), + voisine.chaises.map(({ remplissage, marques }) => [remplissage, marques]), + ); + } + }); +}); diff --git a/src/interface/transversal.navigateur.test.js b/src/interface/transversal.navigateur.test.js index cadc379..9cae75c 100644 --- a/src/interface/transversal.navigateur.test.js +++ b/src/interface/transversal.navigateur.test.js @@ -723,6 +723,26 @@ describe('les gardes relèvent la faute qu’un fragment porte (§ 14.2)', () => expect(noye.marques.fautes[0]).toContain('1.00:1'); }); + test('marques : sous le document imprimé, une marque se mesure au jeton du papier — celui du clair, dans les deux thèmes —, non à celui de la page', () => { + const racine = document.documentElement; + const theme = racine.getAttribute('data-theme'); + racine.setAttribute('data-theme', 'sombre'); + try { + const { vues, fautes, mesures } = avecFragment( + '
' + + '' + + '
', + (c) => releverMarques(c), + ); + expect(vues).toEqual(['contourTable']); + expect(fautes).toEqual([]); + expect(mesures).toBe(1); + } finally { + if (theme === null) racine.removeAttribute('data-theme'); + else racine.setAttribute('data-theme', theme); + } + }); + test('marques sous une fenêtre modale : une marque HTML de la page, qui ne s’y mesure pas, ne compte pas comme vue ; une marque dans la fenêtre, si', () => { const { vues } = avecFragment( '

dehors

' + diff --git a/test/navigateur/captures.js b/test/navigateur/captures.js index 73b7f46..2042a19 100644 --- a/test/navigateur/captures.js +++ b/test/navigateur/captures.js @@ -231,11 +231,13 @@ export function releverTextes(racine, { fenetre = false } = {}) { // --- Les marques ------------------------------------------------------------------- -/** La couleur résolue d'un jeton dans le thème courant. */ -export function couleurDeJeton(jeton) { +/** La couleur résolue d'un jeton dans le thème courant, ou sous hote : un + * élément qui redéclare les jetons — le document imprimé de l'aperçu, + * [data-impression], porte ceux du clair dans les deux thèmes (§ 11.7). */ +export function couleurDeJeton(jeton, hote = document.body) { const sonde = document.createElement('span'); sonde.style.color = `var(${jeton})`; - document.body.append(sonde); + hote.append(sonde); try { return composantes(getComputedStyle(sonde).color); } finally { @@ -363,7 +365,9 @@ function voisinage(element, jeton) { /** * Les marques rendues sous racine (§ 14.5, § 19.5) : chacune nommée au * registre, peinte de son jeton, à 3:1 de ce qui l'entoure, sans - * atténuation. → { vues: string[], fautes, attenuations, mesures, ratios }, + * atténuation. Sous le document imprimé de l'aperçu, le jeton se résout + * comme le papier le résout : au clair, dans les deux thèmes. + * → { vues: string[], fautes, attenuations, mesures, ratios }, * ratios : { marque, jeton, ratio } de chaque marque mesurée, contre ce qui * l'entoure de plus défavorable, dans l'ordre des mesures. fenetre vrai : * seules les marques que la fenêtre montre entières se lisent, sans rien @@ -397,7 +401,7 @@ export function releverMarques(racine, { fenetre = false } = {}) { if (modale !== null && !(element instanceof SVGElement) && !modale.contains(element)) continue; vues.add(nom); if (!fenetre) amener(element); - const jeton = couleurDeJeton(entree.jeton); + const jeton = couleurDeJeton(entree.jeton, element.closest('[data-impression]') ?? document.body); try { const { peinture, voisins } = voisinage(element, jeton); if (peinture === null) { diff --git a/test/navigateur/designations.js b/test/navigateur/designations.js index de6bf58..c7f2a62 100644 --- a/test/navigateur/designations.js +++ b/test/navigateur/designations.js @@ -29,6 +29,7 @@ const ENTREES = [ ['data-bandeau', 'le bandeau d’application', ['']], ['data-bandeau-plan', 'plan : le bandeau au-dessus de la surface', ['']], ['data-bloc', 'à propos : le bloc de version à copier', ['']], + ['data-cartouche', 'aperçu : le cartouche de repérage d’une page du plan imprimé', ['']], ['data-cellule', 'import : une cellule de l’aperçu, par son champ', null], ['data-champ', 'un champ de saisie ou un sélecteur, par son nom', null], ['data-chargement', 'accueil : le signe d’un calcul en cours', ['']], @@ -105,6 +106,7 @@ const ENTREES = [ ['data-meilleure-id', 'l’identifiant de la meilleure proposition', ['']], ['data-meilleure-libelle-id', 'génération : le libellé de l’identifiant de la meilleure', ['']], ['data-meilleure-vide', 'génération : la meilleure absente', ['']], + ['data-mention', 'aperçu : une mention d’une page du plan imprimé — disposition relative, listes hors d’échelle', ['listes', 'relative']], ['data-menu', 'plan : le menu d’une personne', null], ['data-mode', 'événement : le cadre de mode, par sa forme', null], ['data-mode-libelle', 'le libellé de mode', ['bandeau', 'cadre']],

iB4Q8uI0LMJE-=PygQiUDbkC>FckyHU-)A z8l&#jUm`t<(7@RRG##qgrX$VZtf?aws4)VHsUiJ!Fsvp9&F zqQDS)2#T}YwAtO^D%5QmSoktv@(G+my$OARtNS2w3FId{s^j>GrZ(HU=IrL0P+D4j z`pYj6BThbi7~Px;Z)Rqv4<}|4D0bgpa4oInWY={p7!I_i@g~ZCdx{y-V0aESfGiI`S6;x z0C8B>O;zL!&rA0HR*1!?bqZ6NnQ8`6isQ_w5&&=pAr0ME)n=!V@lT&pH(p)=+5J{+ zmSFRv!I44O#rA^2W6&d@a)rEQuj}Jr@CopL1y*|9XVuRiWr_s^C}`e%N;`Pq zSt`C%=#j{mM|vonZ}l6$+}oR*6Hv!78+kJcYX8t#>FDUxh&eeqGZsFA2m?kARTY)k zn3Cm!0n`hd3I4YywcfA=c!1^QhzMj~K_{bA!XLdi0)C}ZPuFA6sL*_KZ^+S9WY{QQ z8lRwdCwUDYjQBN1s;j-su~hu`sO@FZUQQ0R^z`&Xo#SB%VuT9Sy{|<&5QayQhWuX$iZn7jk{Z?!HTG%0o&|zSN&!k5_<11VSzz{UGLTb0b%XpOo-!?<3(Bm=|&+y zY9u-hL4?C35m!*?kN=T&y3v<)T^Lich`}fax~m7^90Zn#@$i&%0D02y&|ERQ?Fdp^ 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 literal 130034 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 de page dans sa zone de contenu, et hors +// d'elle le cartouche, l'échelle graphique et les mentions. Chaque mesure se +// lit sur la boîte rendue et les attributs, jamais sur une classe : le +// cadrage de chaque contre la découpe recalculée de la bande et de la +// hauteur de ligne mesurées comme l'aperçu les mesure, la troncature des +// listes contre celle du plan à l'écran, la barre d'échelle, les mentions, +// la bande qui compte le cartouche, l'absence d'identifiant, de poignée et +// de tabulation, et les marques qui se lisent en noir et blanc. +// +// App est montée par test/navigateur/ecrans.js sur le système de fichiers +// simulé, au cadre de 1 366 × 700. Le projet navigateur emploie expect, et +// test et describe de Vitest (§ 14.8). +import { afterEach, beforeEach, describe, expect, test } from 'vitest'; +import { TABLES_APPLICATION } from '../../application/libelles.js'; +import { creerTraduction } from '../../application/traduction.js'; +import { texteLivre } from '../../demo/livrees.js'; +import { constante } from '../../geometrie/constantes.js'; +import { echelleGraphique } from '../../geometrie/echelle.js'; +import { TAILLE_TEXTE_LISTE_CM } from '../../geometrie/texte.js'; +import { analyser } from '../../stockage/document.js'; +import { fixerCadre } from '../../../test/navigateur/entrees.js'; +import { + attendre, + chargePrincipale, + cliquer, + creerContexte, + fichierReglages, + ouvrirApercu, + ouvrirEvenement, +} from '../../../test/navigateur/ecrans.js'; +import { TABLES_INTERFACE } from '../libelles.js'; +import { CONFLITS } from '../marques.js'; +import { hauteurLigne } from '../plan/mesure_texte.js'; +import { libelleLongueur, modeleDessin } from '../plan/modele.js'; +import { nomDeCharge } from '../plan/vue_plan.js'; +import { MM_PAR_PX, bandeDeFeuille, feuilleDe, optionsApercu, sortieApercu } from './modele.js'; +import { LARGEUR_ECHELLE_MM, pagesDuPlan, renvois } from './plan.js'; + +const { t } = creerTraduction([...TABLES_APPLICATION, ...TABLES_INTERFACE]); + +// Images attendues au plus par étape. +const IMAGES = 300; + +// Une barre d'échelle se mesure au vingtième de millimètre (§ 7.7). +const TOLERANCE_BARRE_MM = 0.05; +const TOLERANCE_MM = 0.1; + +const SVG = 'http://www.w3.org/2000/svg'; + +let contexte = null; +beforeEach(async () => { + await fixerCadre(1366, 700); + contexte = creerContexte(); +}); +afterEach(async () => { + const erreurs = contexte.erreurs(); + await contexte.defaire(); + expect(erreurs, 'erreurs reçues par le collecteur').toEqual([]); +}); + +const dans = (m, selecteur) => m.racine.querySelector(selecteur); +const tous = (m, selecteur) => [...m.racine.querySelectorAll(selecteur)]; +const feuilles = (m) => tous(m, '[data-impression][data-vue-impression="plan"] [data-feuille]'); +const tuileDe = (feuille) => feuille.querySelector(':scope [data-contenu] > svg'); +const mm = (px) => px * MM_PAR_PX; +const plat = (chaine) => chaine.replace(/\s+/g, ' ').trim(); + +// Le viewBox d'un , lu de son attribut : les nombres tels que la vue +// les a écrits, sans l'arrondi de viewBox.baseVal. +function viewBoxDe(svg) { + const [x, y, largeur, hauteur] = svg.getAttribute('viewBox').trim().split(/\s+/).map(Number); + return { x, y, largeur, hauteur }; +} + +// Les lignes de chaque liste de noms sous racine, par table : le texte de +// chaque rangée, l'en-tête compris. +function listesSous(racine) { + return [...racine.querySelectorAll('text[data-liste]')].map((liste) => ({ + table: liste.dataset.liste, + lignes: [...liste.children].map((rangee) => rangee.textContent), + })); +} + +// La bande que l'aperçu a mesurée, relue comme il la mesure : sur la feuille +// gabarit, la seule feuille hors du document imprimé. +function bandeDuGabarit(m) { + const contenus = tous(m, '[data-ecran="apercu"] [data-contenu]').filter((contenu) => contenu.closest('[data-impression]') === null); + expect(contenus, 'la feuille gabarit').toHaveLength(1); + return bandeDeFeuille({ + feuillePx: contenus[0].parentElement.getBoundingClientRect().height, + contenuPx: contenus[0].getBoundingClientRect().height, + margeMm: constante('MARGE_PAGE_MM'), + }); +} + +// La hauteur de ligne des listes, mesurée comme la vue la mesure : une +// sonde au style des listes, sous le document imprimé. +function hauteurDesListes(m) { + const svg = document.createElementNS(SVG, 'svg'); + const texte = document.createElementNS(SVG, 'text'); + texte.setAttribute('font-size', String(TAILLE_TEXTE_LISTE_CM)); + texte.style.fontFamily = 'var(--police-interface)'; + svg.append(texte); + dans(m, '[data-impression]').append(svg); + try { + return hauteurLigne(texte); + } finally { + svg.remove(); + } +} + +// Les pages attendues du plan que l'aperçu montre, recalculées par +// pagesDuPlan sur la même sortie, la même bande et la même hauteur de ligne. +function pagesAttendues(m, charge) { + const options = optionsApercu(m.ui.etat().apercu, 'A4'); + const { etat, tour } = sortieApercu(charge, options, m.ui.etat().proposition); + const modele = modeleDessin(etat, { listes: options.listes, nomDe: nomDeCharge(charge), impression: true }); + const pied = feuilleDe({ nom: charge.evenement.nom, date: null, tour, horodatage: null, version: 'epreuve' }, false); + return pagesDuPlan( + etat, + modele.tables.map((table) => table.geometrie), + options.decoupe, + { papier: 'A4', bandeMm: bandeDuGabarit(m), listes: options.listes, hauteurLigne: hauteurDesListes(m), pied }, + ); +} + +// Change la découpe du plan par son sélecteur, et attend le document. +async function decouper(m, decoupe) { + const choix = dans(m, '[data-ecran="apercu"] [data-champ="decoupe"]'); + choix.value = decoupe; + choix.dispatchEvent(new Event('change', { bubbles: true })); + await attendre(`la découpe ${decoupe}`, () => m.ui.etat().apercu.decoupe === decoupe && feuilles(m).length > 0, IMAGES); +} + +// La principale, trois personnes d'une même table renommées des noms qui +// cassent une liste : de larges capitales, une ligature, deux cents +// caractères. +const NOMS_LONGS = ['W'.repeat(40), '\u{00C6}'.repeat(40), `Ondine ${'Lacasse'.repeat(28)}`.slice(0, 200)]; +function chargeAuxNomsLongs() { + const charge = chargePrincipale(); + for (const [rang, nom] of NOMS_LONGS.entries()) { + const personne = charge.participants[rang]; + personne.prenom = null; + personne.nom = nom; + } + return charge; +} + +describe('les pages du plan imprimé (§ 11.7)', () => { + test('un de page par feuille, autant que de pages ; le viewBox de chacun est le cadrage de sa page, à 1e-9 près', async () => { + for (const decoupe of ['auto', 'decoupe']) { + const charge = analyser(texteLivre('grande')).charge; + const m = await ouvrirApercu(contexte, charge, { section: 'participants' }); + await decouper(m, decoupe); + const attendues = pagesAttendues(m, charge); + const lues = feuilles(m); + expect(lues).toHaveLength(attendues.length); + expect(tous(m, '[data-impression] [data-contenu] > svg')).toHaveLength(attendues.length); + for (const [rang, feuille] of lues.entries()) { + const tuile = tuileDe(feuille); + expect(tuile, `la tuile de la feuille ${rang}`).not.toBeNull(); + const lu = viewBoxDe(tuile); + for (const cote of ['x', 'y', 'largeur', 'hauteur']) { + expect(Math.abs(lu[cote] - attendues[rang].viewBox[cote]), `${decoupe}, page ${rang}, ${cote}`).toBeLessThanOrEqual(1e-9); + } + expect(tuile.getAttribute('role')).toBe('img'); + expect(tuile.getAttribute('aria-label')).toBe(t('impression.plan.page', { page: rang + 1, total: attendues.length })); + expect(tuile.querySelector(':scope > g').getAttribute('aria-hidden')).toBe('true'); + } + await contexte.defaire(); + } + }); + + test('le cartouche rendu de chaque page, découpée : son repérage, puis un renvoi par page voisine, dans l’ordre haut, droite, bas, gauche, et rien d’autre', async () => { + const charge = analyser(texteLivre('grande')).charge; + const m = await ouvrirApercu(contexte, charge, { section: 'participants' }); + await decouper(m, 'decoupe'); + const attendues = pagesAttendues(m, charge); + const lues = feuilles(m); + expect(lues).toHaveLength(attendues.length); + // La découpe porte des pages voisines de deux côtés au moins : sans + // elles, un renvoi omis ou mal numéroté passerait inaperçu. + expect(Math.max(...attendues.map(({ cartouche }) => renvois(cartouche).length)), 'des voisines sur deux côtés au moins').toBeGreaterThanOrEqual(2); + for (const [rang, feuille] of lues.entries()) { + const cartouches = [...feuille.querySelectorAll('[data-cartouche]')]; + expect(cartouches, `le cartouche de la feuille ${rang}`).toHaveLength(1); + const { cartouche } = attendues[rang]; + const reperage = t('impression.plan.cartouche', cartouche); + const textes = renvois(cartouche).map(({ cle, page }) => t(cle, { page })); + expect(plat(cartouches[0].textContent), `feuille ${rang}`).toContain(reperage); + expect([...cartouches[0].children].map((partie) => plat(partie.textContent)), `feuille ${rang}`).toEqual([reperage, ...textes]); + } + }); + + test('grande démonstration, listes montrées, A4 : découpée par défaut, chaque table sur une page au moins', async () => { + const charge = analyser(texteLivre('grande')).charge; + const depart = performance.now(); + const m = await ouvrirApercu(contexte, charge, { section: 'participants' }); + await attendre('les listes de chaque page', () => tous(m, '[data-impression] [data-liste] tspan').length > 0, IMAGES); + const duree = performance.now() - depart; + console.info(`[IM3] ouverture de l'aperçu, grande démonstration, listes montrées, A4 : ${Math.round(duree)} ms`); + expect(m.ui.etat().apercu.listes).toBe(true); + expect(m.ui.etat().apercu.decoupe).toBe('auto'); + expect(feuilles(m).length).toBeGreaterThan(1); + const portees = new Set(tous(m, '[data-impression] [data-table]').map((table) => Number(table.dataset.table))); + expect([...portees].sort((a, b) => a - b)).toEqual(charge.tables.map(({ id }) => id).sort((a, b) => a - b)); + }); +}); + +describe('la troncature des listes, celle de l’écran (§ 7.4)', () => { + test('les noms « WWW… », « ÆÆÆ… » et de deux cents caractères s’abrègent sur le papier comme à l’écran, ligne pour ligne', async () => { + const m = await ouvrirEvenement(contexte, chargeAuxNomsLongs(), { section: 'plan', options: { fichiers: [fichierReglages('A4')] } }); + await attendre('les listes du plan', () => tous(m, '[data-plan] [data-liste] tspan').length > 0, IMAGES); + const ecran = new Map(listesSous(dans(m, '[data-plan]')).map(({ table, lignes }) => [table, lignes])); + const marque = t('plan.liste.abreviation'); + expect([...ecran.values()].flat().filter((ligne) => ligne.includes(marque)).length, 'des lignes abrégées').toBeGreaterThanOrEqual(NOMS_LONGS.length); + await cliquer(m, '[data-ecran="evenement"] [data-commande="apercu"]'); + await attendre('les listes imprimées', () => tous(m, '[data-impression] [data-liste] tspan').length > 0, IMAGES); + const imprimees = listesSous(dans(m, '[data-impression]')); + expect(new Set(imprimees.map(({ table }) => table))).toEqual(new Set(ecran.keys())); + for (const { table, lignes } of imprimees) { + expect(lignes, `table ${table}`).toEqual(ecran.get(table)); + } + }); +}); + +describe('l’échelle graphique et les mentions de chaque page (§ 7.7)', () => { + test('la barre de chaque page mesure sa longueur à l’échelle de la page, au vingtième de mm ; sa longueur affichée est celle de libelleLongueur', async () => { + for (const decoupe of ['auto', 'unePage', 'decoupe']) { + const m = await ouvrirApercu(contexte, analyser(texteLivre('grande')).charge, { section: 'participants' }); + await decouper(m, decoupe); + for (const feuille of feuilles(m)) { + const tuile = tuileDe(feuille); + const echelle = mm(tuile.getBoundingClientRect().width) / viewBoxDe(tuile).largeur; + const { longueurCm } = echelleGraphique(echelle, LARGEUR_ECHELLE_MM); + const barres = [...feuille.querySelectorAll('[data-marque="echelle"]')]; + expect(barres).toHaveLength(1); + const barre = barres[0]; + expect(barre.closest('[data-contenu]')).toBeNull(); + const largeur = mm(barre.getBoundingClientRect().width); + expect(Math.abs(largeur - longueurCm * echelle), `${decoupe} : ${largeur} mm pour ${longueurCm} cm`).toBeLessThanOrEqual(TOLERANCE_BARRE_MM); + const longueur = libelleLongueur(longueurCm); + const attendu = `${longueur.valeur.toFixed(longueur.decimales).replace('.', ',')} ${t(longueur.cle)}`; + expect(plat(barre.parentElement.textContent)).toBe(attendu); + } + await contexte.defaire(); + } + }); + + test('chaque feuille porte la mention « disposition relative » ; celle des listes, sur chaque page qui en porte, tant que les listes sont montrées', async () => { + const m = await ouvrirApercu(contexte, analyser(texteLivre('grande')).charge, { section: 'participants' }); + const relatives = tous(m, '[data-impression] [data-mention="relative"]'); + expect(relatives.length).toBeGreaterThan(0); + expect(relatives).toHaveLength(feuilles(m).length); + for (const feuille of feuilles(m)) { + const mentions = feuille.querySelectorAll('[data-mention="relative"]'); + expect(mentions).toHaveLength(1); + expect(plat(mentions[0].textContent)).toBe(t('plan.echelle.mention')); + const listes = feuille.querySelectorAll('[data-mention="listes"]'); + const portees = feuille.querySelectorAll('[data-table]').length > 0; + expect(listes.length, `feuille ${feuille.dataset.feuille}`).toBe(portees ? 1 : 0); + if (portees) expect(plat(listes[0].textContent)).toBe(t('impression.plan.listes')); + } + await cliquer(m, '[data-ecran="apercu"] [data-commande="listes"]'); + await attendre('les listes masquées', () => m.ui.etat().apercu.listes === false && feuilles(m).length > 0, IMAGES); + await attendre('les mentions des listes retirées', () => tous(m, '[data-impression] [data-mention="listes"]').length === 0, IMAGES); + expect(tous(m, '[data-impression] [data-liste]')).toHaveLength(0); + expect(tous(m, '[data-impression] [data-mention="relative"]')).toHaveLength(feuilles(m).length); + }); +}); + +describe('la bande du plan (HAUTEUR_BANDE_IMPRESSION, § 14.1)', () => { + // La bande d'une feuille rendue, en mm : la feuille, moins sa zone de + // contenu, moins une marge à chaque bord. + const bandeDe = (feuille) => + mm(feuille.getBoundingClientRect().height) - + mm(feuille.querySelector('[data-contenu]').getBoundingClientRect().height) - + 2 * constante('MARGE_PAGE_MM'); + + test('la bande compte cartouche, mentions et barre, hors de la zone de contenu : elle dépasse le pied, et tout ce qu’elle porte tient dans la feuille', async () => { + const m = await ouvrirApercu(contexte, analyser(texteLivre('grande')).charge, { section: 'participants' }); + const marge = constante('MARGE_PAGE_MM'); + for (const feuille of feuilles(m)) { + for (const selecteur of ['[data-cartouche]', '[data-mention="relative"]', '[data-marque="echelle"]']) { + const element = feuille.querySelector(selecteur); + expect(element, selecteur).not.toBeNull(); + expect(element.closest('[data-contenu]'), selecteur).toBeNull(); + } + const pied = feuille.querySelector('[data-pied]'); + const cartouche = feuille.querySelector('[data-cartouche]'); + const hors = mm(pied.getBoundingClientRect().height) + mm(cartouche.getBoundingClientRect().height); + expect(bandeDe(feuille), `feuille ${feuille.dataset.feuille}`).toBeGreaterThan(hors); + // Le pied, dernier de la bande, finit dans la feuille, au-dessus de + // sa marge. + const bas = feuille.getBoundingClientRect().bottom; + expect(mm(bas - pied.getBoundingClientRect().bottom)).toBeGreaterThanOrEqual(marge - TOLERANCE_MM); + } + }); + + test('un pied grandi de 20 mm grandit la bande d’autant ; la tuile de chaque page a la hauteur de sa zone de contenu, avant comme après : la découpe reçoit la bande mesurée', async () => { + const charge = analyser(texteLivre('grande')).charge; + const m = await ouvrirApercu(contexte, charge, { section: 'participants' }); + // Chaque feuille : la hauteur de sa tuile, celle de sa zone de contenu, + // et sa bande. La bande se mesure en portrait, sur la feuille gabarit : + // elle ne dépend pas de l'orientation que la découpe choisit. + const mesurer = () => + feuilles(m).map((feuille) => ({ + tuile: mm(tuileDe(feuille).getBoundingClientRect().height), + contenu: mm(feuille.querySelector('[data-contenu]').getBoundingClientRect().height), + bande: bandeDe(feuille), + })); + const avant = mesurer(); + const feuilleDeStyle = document.createElement('style'); + feuilleDeStyle.textContent = '[data-pied] { padding-bottom: 20mm !important; }'; + document.head.append(feuilleDeStyle); + try { + await cliquer(m, '[data-ecran="apercu"] [data-commande="fermerApercu"]'); + await cliquer(m, '[data-ecran="evenement"] [data-commande="apercu"]'); + await attendre('le plan', () => feuilles(m).length > 0, IMAGES); + const apres = mesurer(); + for (const [quand, pages] of [['avant', avant], ['après', apres]]) { + for (const [rang, page] of pages.entries()) { + expect(Math.abs(page.tuile - page.contenu), `${quand}, page ${rang} : ${JSON.stringify(page)}`).toBeLessThanOrEqual(TOLERANCE_MM); + } + } + for (const [rang, page] of apres.entries()) { + expect(Math.abs(page.bande - avant[0].bande - 20), `page ${rang} : ${page.bande} − ${avant[0].bande}`).toBeLessThanOrEqual(TOLERANCE_MM); + } + } finally { + feuilleDeStyle.remove(); + } + }); +}); + +describe('le papier ne reçoit aucun geste (§ 11.7, § 13.5)', () => { + test('aucun identifiant en double dans le document ; sous [data-impression], aucun id hors des motifs, ni tabindex, ni [data-poignee], ni [data-plan]', async () => { + const m = await ouvrirApercu(contexte, analyser(texteLivre('grande')).charge, { section: 'participants' }); + await attendre('les sièges imprimés', () => tous(m, '[data-impression] [data-siege]').length > 0, IMAGES); + expect(feuilles(m).length).toBeGreaterThan(1); + const ids = [...document.querySelectorAll('[id]')].map((e) => e.id); + expect(ids.filter((id, rang) => ids.indexOf(id) !== rang)).toEqual([]); + // Les motifs se référencent par leur identifiant (url(#…)) : chaque page + // a les siens, dans ses . + const horsMotifs = tous(m, '[data-impression] [id]').filter((element) => element.closest('defs') === null); + expect(horsMotifs.map((element) => element.id)).toEqual([]); + for (const selecteur of ['[tabindex]', '[data-poignee]', '[data-plan]', '[data-table][role]', '[data-siege][role]', '[aria-activedescendant]']) { + expect(tous(m, `[data-impression] ${selecteur}`), selecteur).toEqual([]); + } + }); + + test('régime des sièges : chaque chaise de chaque table imprimée, quel que soit le zoom de l’écran', async () => { + const charge = analyser(texteLivre('grande')).charge; + const m = await ouvrirApercu(contexte, charge, { section: 'participants' }); + await decouper(m, 'unePage'); + const sieges = new Set(tous(m, '[data-impression] [data-siege]').map((siege) => siege.dataset.siege)); + const attendus = charge.tables.flatMap(({ id }) => { + const places = tous(m, `[data-impression] [data-table="${id}"] [data-siege]`).length; + expect(places, `table ${id}`).toBeGreaterThan(0); + return Array.from({ length: places }, (_, rang) => `${id}:${rang + 1}`); + }); + expect(sieges).toEqual(new Set(attendus)); + }); + + test('les trames de conflit, les cadenas, l’anneau et la hachure se peignent : le noir et blanc se lit par la forme', async () => { + // La principale, sa proposition : des tables en conflit, une + // désignation (anneau, cadenas fermé), un titre non pourvu (hachure, + // cadenas ouvert). + const m = await ouvrirApercu(contexte, chargePrincipale()); + await attendre('les sièges imprimés', () => tous(m, '[data-impression] [data-siege]').length > 0, IMAGES); + const peintes = (marque) => + tous(m, `[data-impression] [data-marque="${marque}"]`).filter((forme) => { + const boite = forme.getBoundingClientRect(); + return boite.width > 0 && boite.height > 0 && getComputedStyle(forme).visibility === 'visible'; + }); + const trames = CONFLITS.flatMap(({ marque }) => peintes(marque)); + expect(trames.length, 'trames de conflit').toBeGreaterThan(0); + for (const trame of trames) expect(getComputedStyle(trame).fill).toMatch(/^url\(/); + for (const marque of ['cadenasFerme', 'cadenasOuvert', 'anneau', 'hachure', 'contourConflit', 'pastille']) { + expect(peintes(marque).length, marque).toBeGreaterThan(0); + } + }); +}); + +describe('la commande de la vue', () => { + test('le plan imprimé reprend le tour de l’écran, et le pied le nomme', async () => { + const charge = chargePrincipale(); + expect(charge.evenement.tours).toBeGreaterThan(1); + const m = await ouvrirApercu(contexte, charge); + const choix = dans(m, '[data-ecran="apercu"] [data-champ="tour"]'); + choix.value = '2'; + choix.dispatchEvent(new Event('change', { bubbles: true })); + await attendre('le tour 2', () => m.ui.etat().apercu.tour === 2 && feuilles(m).length > 0, IMAGES); + for (const feuille of feuilles(m)) { + expect(plat(feuille.querySelector('[data-pied]').textContent)).toContain(t('impression.pied.tour', { tour: 2 })); + } + }); +}); diff --git a/src/interface/impression/PlanImprime.svelte b/src/interface/impression/PlanImprime.svelte index 1bc4a8e..15e08b0 100644 --- a/src/interface/impression/PlanImprime.svelte +++ b/src/interface/impression/PlanImprime.svelte @@ -2,61 +2,177 @@ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) --> -{#if decoupe === null} - +{#snippet bandeDe(cartouche, echelle, mentions)} + {@const longueur = libelleLongueur(echelle.longueurCm)} +