All checks were successful
Corrections fonctionnelles - order initialisé à la création des pages et dossiers de lore (nextOrderFor) : un nouvel élément se place désormais en dernier de sa fratrie au lieu de 0 - storePortrait : type MIME canonique dérivé de l'extension du fichier (un data URL "image/jpg" n'est plus rejeté silencieusement) - takeUntilDestroyed ajouté sur les abonnements paramMap de arc-view, folder-view et campaign-detail (fuites mémoire) Factorisation (suppression de duplication) - shared/folder-grouping.util.ts : groupByFolder + byOrder + byFolderName mutualisés entre npc-list, enemy-list, campaign-detail et la sidebar (folderChildren). Le tri des dossiers est désormais cohérent entre la sidebar et les vues cartes (insensible casse/accents partout) - DataSyncService.onChange()/persist() remplacent le câblage changed$ + reorder recopié dans 5 vues - campaign-detail : loadCampaignBundle()/applyCampaignBundle() éliminent le forkJoin dupliqué entre ngOnInit et reload - ReorderSupport (domain/shared) : squelette générique remplaçant les 8 boucles de réordonnancement copiées dans les services - FoundryExportService : GameSystem résolu une seule fois dans buildBundle - module Foundry : walkScalars mutualise la récursion de flattenStats et flattenStructure (comportements préservés) ; esc() de l'importer aligné sur foundry.utils.escapeHTML Suppression de code mort - characterService/characters retirés de loadCampaignTreeData et de ses 16 appelants (arguments, injections, imports et littéraux CampaignTreeData) - CSS orphelin : .tree-row.cdk-drop-list-receiving et .btn-back - BottomPanel.initiallyOpen (jamais lu) retiré de l'interface et de l'appelant - commentaire trompeur du PDF corrigé Tests - mise à jour de 3 tests obsolètes de campaign-tree.helper.spec qui vérifiaient encore l'ancien comportement (tri alphabétique, non-classés en enfants directs) → alignés sur le modèle actuel (tri par order + pseudo-dossier "Sans dossier")
51 lines
1.5 KiB
JSON
51 lines
1.5 KiB
JSON
{
|
|
"name": "loremind-web",
|
|
"version": "1.0.0-beta",
|
|
"description": "LoreMind Frontend - Angular",
|
|
"scripts": {
|
|
"ng": "ng",
|
|
"start": "ng serve",
|
|
"build": "ng build",
|
|
"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"
|
|
}
|
|
}
|