feat(budget) : adopter le repli multi-niveaux sur la grille Budget #293
Open
maximus
wants to merge 1 commit from
issue-289-budget-collapse into issue-288-collapse-socle
pull from: issue-289-budget-collapse
merge into: maximus:issue-288-collapse-socle
maximus:main
maximus:issue-291-collapse-docs
maximus:issue-290-categories-unify
maximus:issue-288-collapse-socle
maximus:fix-database-locked-serialization
maximus:issue-228-v16-guard-convertible-scope
maximus:issue-187-balance-cleanup-post-184-185
maximus:issue-188-webkit-date-picker-7-inputs
maximus:issue-180-postcss-audit-fix
maximus:issue-190-restructure-settings-pages
maximus:issue-161-smoke-scaffold
maximus:issue-171-ci-drop-push-trigger
maximus:issue-169-asset-type-balance-categories
maximus:issue-67-feedback-widget
maximus:issue-97-cartes-page
maximus:issue-96-compare-refactor
maximus:issue-51-compte-maximus-oauth
maximus:issue-46-license-commands-entitlements
maximus:issue-48-gate-auto-updates
maximus:issue-47-license-ui-card
maximus:fix/simpl-resultat-54-argon2id-pin
maximus:fix/simpl-resultat-59-bump-vite
maximus:issue-43-update-picomatch
maximus:fix/simpl-resultat-41-category-time-report-filter
maximus:fix/simpl-resultat-31-dashboard-month-dropdown
maximus:fix/simpl-resultat-29-budget-visual-adjustments
maximus:fix/simpl-resultat-23-dashboard-category-ordering
maximus:fix/simpl-resultat-16-prev-year-budget
maximus:fix/simpl-resultat-19-tooltip-transparency
maximus:fix/simpl-resultat-17-remove-piechart-title
maximus:fix/simpl-resultat-16-budget-previous-year
1 commit
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9c325e274b |
feat(budget): adopt multi-level collapse on the Budget grid
Reverse #278's deliberate no-collapse decision for the budget grid: it now folds/unfolds at every category level like the hierarchical reports, opening fully collapsed with a one-click "Expand all". - BudgetTable: wire useCollapsibleGroups (defaultExpanded: false), inline BUDGET_COLLAPSE_ACCESSORS + BUDGET_EXPANDED_KEY (mirrors ComparePeriodTable / BudgetVsActualTable — no budgetTableModel.ts). Chevron + aria-expanded + aria-level on every parent row; groups.visible(group) before reorderRows. - BudgetTable: section subtotal now uses the tested sumLeavesForType on the RAW group (drop-in for the hand-rolled loop) so folding stays purely visual. - BudgetTable: rename STORAGE_KEY to "budget-subtotals-position", decoupling the subtotals-position preference from BudgetVsActualTable (they collided). - useBudget: extract the pure buildBudgetYearRows(); the grid's rows are level-order (BFS), not DFS — document the invariant and pin it in a test, since the #288 ancestor-walk collapse is order-independent (the v1 plan assumed DFS and would have broken here). - Tests: useBudget.test.ts locks the level-order emission, the DFS-killer, the end-to-end multi-level collapse on real builder output, and that subtotals sum raw rows regardless of collapse. 828 vitest pass. Resolves #289 Generated autonomously by /autopilot run of 2026-07-15 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |