Unify category autocomplete fields
All checks were successful
Deploy Sokko G / deploy (push) Successful in 17s

This commit is contained in:
Shinuwa 2026-09-04 14:09:08 +02:00
parent e3d823d0b1
commit 055fb78d60
21 changed files with 739 additions and 168 deletions

View file

@ -686,10 +686,13 @@ Type : `links`
```json
{
"categoryOrder": ["Builds", "Guides"],
"collapsedCategories": ["Guides"],
"links": [
{
"id": "link1",
"title": "Build rogue",
"category": "Builds",
"url": "https://example.com/build"
}
]
@ -700,7 +703,11 @@ Stockage compact :
- `title` est facultatif.
- `title` est omis si vide.
- `category` est facultatif et sert à l'autocomplete de création.
- `category` est omis si vide.
- `url` est obligatoire.
- `categoryOrder` stocke l'ordre d'affichage des catégories, y compris les catégories vides.
- `collapsedCategories` stocke les noms des catégories repliées.
## Outil Compteurs
@ -811,7 +818,11 @@ Type : `rngSimulator`
{
"id": "rate1",
"label": "Drop rare",
"rate": "2.500"
"rate": "2.500",
"multiplier": 50,
"perHour": 30,
"perDay": 120,
"perMonth": 3600
},
{
"id": "rate2",
@ -820,11 +831,7 @@ Type : `rngSimulator`
}
],
"settings": {
"multiplier": 50,
"simulationDraws": 1000,
"perHour": 30,
"perDay": 120,
"perMonth": 3600
"simulationDraws": 1000
}
}
```
@ -835,10 +842,11 @@ Stockage compact :
- `rate` est une chaîne en pourcentage afin de conserver la précision saisie, par exemple `"2.500"` ou `"0.000004"`.
- un taux doit être strictement supérieur à `0` et inférieur ou égal à `100`; les valeurs supérieures sont bornées à `"100"`.
- `activeRateId` référence un taux existant; sinon le premier taux est sélectionné.
- `settings.multiplier` est un bonus ou malus en pourcentage appliqué au taux actif pour les calculs et simulations, vaut 0 par défaut et le taux effectif est borné entre 0% et 100%.
- `rates[].multiplier` est un bonus ou malus en pourcentage associé au taux, vaut 0 par défaut et le taux effectif est borné entre 0% et 100%.
- `rates[].perHour`, `rates[].perDay` et `rates[].perMonth` sont numériques, positifs ou nuls, associés au taux, et valent 0 par défaut.
- `settings.simulationDraws` est borné de 1 à 1 000 000 et vaut 1000 par défaut.
- `settings.perHour`, `settings.perDay` et `settings.perMonth` sont numériques, positifs ou nuls, et valent 0 par défaut.
- `settings` est omis si tous ses champs ont leurs valeurs par défaut.
- `settings` est omis si `simulationDraws` vaut sa valeur par défaut.
- `rates[].multiplier`, `rates[].perHour`, `rates[].perDay` et `rates[].perMonth` sont omis si leur valeur vaut 0.
- l'historique des simulations n'est pas persisté en IndexedDB; il est limité aux 20 dernières entrées en `sessionStorage`.
## Outil Combos
@ -1026,7 +1034,7 @@ Formats :
- `notepad` : format structuré `@notepad`, blocs `@page: Titre`, `@html` / `@endhtml` pour le HTML riche nettoyé, meta `@drawingMode: permanent` et `@drawings: {...}` pour les dessins permanents. Un collage texte simple reste accepté et devient une page sans mise en forme.
- `memos` : une ligne par mémo, avec préfixe `-` optionnel et suffixe couleur `| color=#f6c453` ; les anciens préfixes `*` sont acceptés puis normalisés.
- `checklist` : sections `# Catégorie`, lignes `Item: quantité cible`.
- `links` : lignes `Titre: https://...` ou URL seule.
- `links` : sections `# Catégorie`, lignes `Titre: https://...` ou URL seule; le suffixe optionnel `| category=Catégorie` reste accepté à l'import.
- `counters` : lignes `Libellé: valeur`, valeurs négatives acceptées.
- `calculator` : lignes `Libellé: valeur | formula=base*5`, indentation de deux espaces pour les enfants, meta `@scrollResults: true`. Le suffixe `formula=...` est optionnel et les anciens exports `Libellé: valeur` restent acceptés.
- `table` : TSV pur accepté ; l'export peut ajouter `@size`, `@columns`, `@rows` puis `@tsv` pour préserver dimensions et intitulés.