Livret PDF (export campagne) :
- refonte lisibilité façon livre de JdR : sommaire paginé, libellés de champs
en tête de ligne, encadrés « À lire aux joueurs » / secrets MJ / combat,
ligne de contexte des scènes, en-tête courant, tables zébrées
- reflète la fusion quête/conteneur : arc SYSTEM masqué, quêtes de hub
fusionnées dans leur chapitre, partie « Quêtes » sans doublon
- contenu complété : sorties de scènes, ennemis liés au bestiaire, pièces
explorables, partie « Tables aléatoires »
- polices DejaVu embarquées (couverture Unicode, licence incluse) et harness
visuel PdfExportPreviewTest (Mockito pur, tourne sans Postgres)
Graphe des liens :
- déplacé du Lore vers la campagne (les PNJ sont des entités de campagne) ;
endpoint /api/npcs/lore/{id} supprimé
- layout retravaillé (anti-chevauchement des libellés, éventail des feuilles
autour des hubs), scènes et quêtes ajoutées, libellés sur 2 lignes,
filtres de légende mémorisés, focus au survol
- positions drag & drop persistées sur la campagne (migration V23,
PUT /api/campaigns/{id}/graph-positions, bouton « Disposition auto »)
Divers :
- ImportService découpé en classes dédiées (parser d'archive, remapper d'ids,
inserters campagne/lore/état de jeu, conversion legacy des quêtes)
- fuites d'abonnements corrigées (takeUntilDestroyed sur paramMap) sur ~15 écrans
- garde-fou i18n fragments/consolidés branché sur npm run build (check-i18n.mjs),
budget SCSS anyComponentStyle relevé à 12 ko
52 lines
1.5 KiB
JSON
52 lines
1.5 KiB
JSON
{
|
|
"name": "loremind-web",
|
|
"version": "1.0.0-beta",
|
|
"description": "LoreMind Frontend - Angular",
|
|
"scripts": {
|
|
"ng": "ng",
|
|
"start": "ng serve",
|
|
"build": "npm run i18n:check && ng build",
|
|
"i18n:check": "node scripts/check-i18n.mjs",
|
|
"watch": "ng build --watch --configuration development",
|
|
"test": "ng test",
|
|
"test:unit": "vitest run",
|
|
"test:unit:watch": "vitest",
|
|
"test:unit:coverage": "vitest run --coverage",
|
|
"e2e": "playwright test",
|
|
"e2e:ui": "playwright test --ui",
|
|
"e2e:headed": "playwright test --headed",
|
|
"e2e:report": "playwright show-report"
|
|
},
|
|
"private": true,
|
|
"dependencies": {
|
|
"@angular/animations": "^21.2.16",
|
|
"@angular/cdk": "^21.2.14",
|
|
"@angular/common": "^21.2.16",
|
|
"@angular/compiler": "^21.2.16",
|
|
"@angular/core": "^21.2.16",
|
|
"@angular/forms": "^21.2.16",
|
|
"@angular/platform-browser": "^21.2.16",
|
|
"@angular/platform-browser-dynamic": "^21.2.16",
|
|
"@angular/router": "^21.2.16",
|
|
"@ngx-translate/core": "^18.0.0",
|
|
"@ngx-translate/http-loader": "^18.0.0",
|
|
"dompurify": "^3.4.1",
|
|
"lucide-angular": "^1.0.0",
|
|
"marked": "^18.0.2",
|
|
"rxjs": "~7.8.0",
|
|
"tslib": "^2.3.0",
|
|
"zone.js": "~0.15.1"
|
|
},
|
|
"devDependencies": {
|
|
"@angular-devkit/build-angular": "^21.2.14",
|
|
"@angular/cli": "^21.2.14",
|
|
"@angular/compiler-cli": "^21.2.16",
|
|
"@emnapi/core": "^1.11.0",
|
|
"@emnapi/runtime": "^1.11.0",
|
|
"@playwright/test": "^1.59.1",
|
|
"@vitest/coverage-v8": "^4.1.9",
|
|
"typescript": "~5.9.3",
|
|
"vitest": "^4.1.9"
|
|
}
|
|
}
|