feat(treecomponentsTools): Sort by name/id, Search by id/name, filter…#336
feat(treecomponentsTools): Sort by name/id, Search by id/name, filter…#336
Conversation
|
🎉 This PR is included in version 10.7.0-rc.4 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
…b-Front into feat/treecomponent_utils
…olutions/OpenGeodeWeb-Front into feat/treecomponent_utils
Capture.video.du.2026-03-25.10-31-06.mp4 |
…b-Front into feat/treecomponent_utils
…b-Front into feat/treecomponent_utils
…olutions/OpenGeodeWeb-Front into feat/treecomponent_utils
…olutions/OpenGeodeWeb-Front into feat/treecomponent_utils
There was a problem hiding this comment.
logique de la visibilité des model_components centralisé ici
There was a problem hiding this comment.
Correction d'une erreur Dexie quand on essayait d'accéder aux model_components :
DexieError2 {name: 'DataError', message: "Failed to execute 'bound' on 'IDBKeyRange': The pa… 'IDBKeyRange': The parameter is not a valid key.", inner: DataError: Failed to execute 'bound' on 'IDBKeyRange': The parameter is not a valid key.
at mak…}
Utilisation de compound indice comme [id+geode_id]
| const MESH_CONFIG = [ | ||
| { type: "Corner", group: "corners" }, | ||
| { type: "Line", group: "lines" }, | ||
| { type: "Surface", group: "surfaces" }, | ||
| { type: "Block", group: "blocks" }, | ||
| ]; | ||
|
|
||
| const MESH_TYPES = MESH_CONFIG.map((config) => config.type); | ||
|
|
There was a problem hiding this comment.
Mapping entre geode types (Corners) et leur groupe de style (Corner) un "s" en moin
| function buildSelection(components, modelStyle, stylesMap) { | ||
| const componentsByType = Object.fromEntries(MESH_TYPES.map((type) => [type, []])); | ||
| for (const component of components) { | ||
| if (componentsByType[component.type]) { | ||
| componentsByType[component.type].push(component); | ||
| } | ||
| } | ||
|
|
||
| const selection = []; | ||
| for (const { type, group } of MESH_CONFIG) { | ||
| const groupComponents = componentsByType[type]; | ||
| const groupVisible = modelStyle[group]?.visibility ?? true; | ||
| let allVisible = true; | ||
|
|
||
| for (const component of groupComponents) { | ||
| const componentStyle = stylesMap[component.geode_id]; | ||
| const isVisible = componentStyle?.visibility ?? groupVisible; | ||
| if (isVisible) { | ||
| selection.push(component.geode_id); | ||
| } else { | ||
| allVisible = false; | ||
| } | ||
| } | ||
| if (allVisible) { | ||
| selection.push(type); | ||
| } | ||
| } | ||
| return selection; | ||
| } | ||
|
|
There was a problem hiding this comment.
groupe les model_components par type
Il a la responsabilité de dire si un component doit être visible ou pas pour le statut "sélectionné"
…b-Front into feat/treecomponent_utils
…olutions/OpenGeodeWeb-Front into feat/treecomponent_utils
…olutions/OpenGeodeWeb-Front into feat/treecomponent_utils
|
🎉 This PR is included in version 10.9.0-rc.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version 10.9.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
… model_components