angular/packages/core/test
Jessica Janiuk a4001c440f fix(core): Prevent leave animations on a move operation (#63745)
When a user has `animate.leave` on a list of items in a `@for`, but are only showing a subset using a computed, removing the second to last item results in a move operation on the last item. There's no native atomic move API in the browser. So this results in the element being detached and attached at its new index. The detaching of the node resulted in leave animations firing.
This fix addresses this by adding a flag in the `LView[ANIMATIONS]` `AnimationLViewData` interface to allow for skipping animations. During list reconciliation, we set this flag so that the animations are skipped over. The flag is flipped back after the move operation is complete.

There is one complication that results from this. The index adjustment of elements in the list happens synchronously while the leave animation is asynchronous. This results in the leaving item getting shifted to the end of the list. This is not ideal but likely can be addressed in a future refactor.

fixes: #63544

PR Close #63745
2025-09-12 15:21:24 +00:00
..
acceptance fix(core): Prevent leave animations on a move operation (#63745) 2025-09-12 15:21:24 +00:00
animation_utils refactor(core): dispatch enter and leave animations at the right times (#63450) 2025-09-10 22:24:00 +00:00
authoring build: rename defaults2.bzl to defaults.bzl (#63383) 2025-08-25 15:45:01 -07:00
bundling refactor(router): update error checks extending error (#63487) 2025-09-11 16:55:58 +00:00
change_detection refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
compiler build: rename defaults2.bzl to defaults.bzl (#63383) 2025-08-25 15:45:01 -07:00
debug refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
di refactor(core): include DI path into cyclic dependency error message (#50902) 2025-07-10 10:35:12 -07:00
dom build: migrate all ts_library in packages/core/test (#61472) 2025-05-20 10:00:43 +00:00
hydration fix(core): catch hydration marker with implicit body tag (#60429) 2025-03-19 15:51:36 +01:00
i18n refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
legacy_animation refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
linker refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
metadata fix(core): properly recognize failed fetch responses when loading external resources in JIT (#62992) 2025-08-05 10:10:56 +02:00
reflection refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
render3 refactor(core): dispatch enter and leave animations at the right times (#63450) 2025-09-10 22:24:00 +00:00
resource build: rename defaults2.bzl to defaults.bzl (#63383) 2025-08-25 15:45:01 -07:00
sanitization build: migrate all ts_library in packages/core/test (#61472) 2025-05-20 10:00:43 +00:00
signals build: rename defaults2.bzl to defaults.bzl (#63383) 2025-08-25 15:45:01 -07:00
strict_types build: rename defaults2.bzl to defaults.bzl (#63383) 2025-08-25 15:45:01 -07:00
testability refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
util refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
zone build: migrate all ts_library in packages/core/test (#61472) 2025-05-20 10:00:43 +00:00
application_config_spec.ts refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
application_init_spec.ts refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
application_module_spec.ts refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
application_ref_integration_spec.ts refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
application_ref_spec.ts refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
BUILD.bazel build: rename defaults2.bzl to defaults.bzl (#63383) 2025-08-25 15:45:01 -07:00
change_detection_scheduler_spec.ts refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
component_fixture_spec.ts refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
defer_fixture_spec.ts fix(core): Explicit Zone CD in TestBed providers should not override TestBed error handler (#63404) 2025-09-02 09:26:44 -07:00
dev_mode_spec.ts refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
directive_lifecycle_integration_spec.ts refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
error_handler_spec.ts build: migrate to use web test runner rules (#62292) 2025-06-26 17:19:10 +00:00
event_emitter_spec.ts refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
fake_async_spec.ts refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
forward_ref_integration_spec.ts build: migrate all ts_library in packages/core/test (#61472) 2025-05-20 10:00:43 +00:00
runtime_error_spec.ts refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
test_bed_effect_spec.ts refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
test_bed_spec.ts refactor(core): Update tests for zoneless by default (#63668) 2025-09-09 14:41:56 -07:00
transfer_state_spec.ts refactor(core): convert scripts within packages/core/test to relative imports (#60227) 2025-03-25 10:58:00 -07:00
util_spec.ts refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00