mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
e59432cf07
The main goal of this change is to remove `categoryOrder` which effectively hard-codes the supported length of `panels`. Adding another item to `panels` is not rendered unless that is added to `categoryOrder`. My solution to this is to make the set of categories a signal, with each category able to produce the data inside it. This allow `CdkDragDrop` to rearrange categories but then still produce the correct data in the template without needing a separate array to track order. Also removed `hidden` and inlined it in the template, since the logic was the same for every panel. `moveItemInArray` is unfortunately an in-place move, so I needed to manually clone the array to ensure `panels` observes an immutable update which works better with signals and change detection. PR Close #60286