Sameh Khamis
58504e370c
feat(ui): render the Cockpit signal rows from a store, keeping focus
...
The Cockpit controller no longer reconciles the live signal rows by hand.
publishCockpitSignals turns its signal items into rows, keyed by the
signal and its action target as before, with repeats of a key numbered,
and publishes them to the gev-cockpit store; a new CockpitSignalList
component renders them with a keyed v-for inside the briefing card.
Rows reorder several times a second, and a browser blurs any element it
moves. The new v-focus-safe-children directive turns Vue's move of the
row holding focus into moves of the rows around it, reaching the same
order while the focused row stays connected, and before the focused row
is removed it hands focus to the shown briefing page's tab, or the
collapse toggle, as the reconciler did. Selection stays with the
controller's click listener.
The focus test now runs the real components over happy-dom and counts
any move or removal of the focused row as a loss, including across 60
random reorders. The Cockpit QA script publishes and waits a frame
before reading the rows.
2026-10-31 16:39:08 -07:00
..
2026-10-20 14:02:09 +04:00
2026-10-23 14:51:42 -07:00
2026-10-16 11:01:25 +01:00
2026-09-28 19:07:57 -05:00
2026-10-20 13:56:44 +04:00
2026-09-28 19:07:57 -05:00
2026-10-20 13:56:44 +04:00
2026-10-02 18:29:42 -07:00
2026-08-24 17:02:16 -05:00
2026-10-25 17:21:41 -07:00
2026-09-24 16:25:55 +05:30
2026-10-30 17:23:45 -07:00
2026-09-10 23:01:51 -07:00
2026-10-16 17:09:03 +05:30
2026-09-14 07:35:38 -07:00
2026-10-19 23:23:52 +01:00
2026-08-24 17:02:16 -05:00
2026-09-15 07:26:32 -07:00
2026-10-30 17:47:52 -07:00
2026-10-30 16:11:48 -07:00
2026-10-13 18:54:58 -04:00
2026-09-11 15:08:23 -07:00
2026-10-30 18:13:11 -07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-09-14 21:12:01 -07:00
2026-09-24 16:25:55 +05:30
2026-09-14 07:35:38 -07:00
2026-10-31 16:39:08 -07:00
2026-10-16 17:09:03 +05:30
2026-10-16 15:28:39 -07:00
2026-08-31 17:49:45 -05:00
2026-08-31 17:49:45 -05:00
2026-08-31 17:49:45 -05:00
2026-09-14 19:34:23 -05:00
2026-10-19 17:02:06 +01:00
2026-09-14 07:35:38 -07:00
2026-10-21 15:22:00 +02:00
2026-09-28 19:07:57 -05:00
2026-10-02 15:12:37 -06:00
2026-09-28 19:07:57 -05:00
2026-10-21 14:21:14 +04:00
2026-09-11 17:03:35 -07:00
2026-09-10 23:08:26 -07:00
2026-10-07 22:41:29 +04:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-10-14 15:36:35 -07:00
2026-10-22 22:09:37 -07:00
2026-10-19 23:31:52 +01:00
2026-10-20 15:12:33 +01:00
2026-10-22 19:26:09 -07:00
2026-10-31 16:39:08 -07:00
2026-10-03 23:10:32 -07:00
2026-10-14 15:36:35 -07:00
2026-09-15 16:53:26 -07:00
2026-09-15 19:16:49 -07:00
2026-09-15 17:59:53 -07:00
2026-09-15 20:15:32 -07:00
2026-10-28 14:35:01 +00:00
2026-10-14 15:36:35 -07:00
2026-10-14 17:43:13 +02:00
2026-10-03 23:10:32 -07:00
2026-10-22 18:09:37 -07:00
2026-10-22 19:08:10 -07:00
2026-10-14 14:48:53 -07:00
2026-10-30 17:47:52 -07:00
2026-10-29 11:28:56 +00:00
2026-10-03 23:10:32 -07:00
2026-09-10 23:08:26 -07:00
2026-10-11 13:52:30 -07:00
2026-08-24 17:02:16 -05:00
2026-08-31 17:49:45 -05:00
2026-09-10 23:08:26 -07:00
2026-10-11 13:52:30 -07:00
2026-10-03 23:10:32 -07:00
2026-10-21 15:35:49 +02:00
2026-10-13 23:48:21 +02:00
2026-10-15 04:10:41 +02:00
2026-10-15 04:10:41 +02:00
2026-10-15 04:10:41 +02:00
2026-10-20 16:24:53 -04:00
2026-10-14 17:53:19 +02:00
2026-10-03 23:10:32 -07:00
2026-09-10 23:08:26 -07:00
2026-09-11 08:59:32 -07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-10-22 19:26:09 -07:00
2026-09-10 23:08:26 -07:00
2026-10-22 18:09:37 -07:00
2026-09-22 17:45:39 -05:00
2026-09-24 16:25:55 +05:30
2026-10-20 14:37:57 +01:00
2026-10-31 12:19:44 -07:00
2026-10-31 12:11:35 -07:00
2026-10-31 12:11:35 -07:00
2026-09-28 19:07:57 -05:00
2026-09-16 12:14:15 +05:30
2026-10-03 23:10:32 -07:00
2026-10-20 00:15:49 +01:00
2026-10-30 22:41:07 -07:00
2026-10-31 00:51:29 -07:00
2026-10-14 15:36:35 -07:00
2026-10-30 23:56:20 -07:00
2026-10-16 21:00:28 +04:00
2026-10-29 14:04:28 +00:00
2026-10-21 13:21:23 +02:00
2026-10-21 14:21:14 +04:00
2026-10-03 23:10:32 -07:00
2026-10-30 21:54:42 -07:00
2026-10-22 18:09:37 -07:00
2026-09-28 19:07:57 -05:00
2026-09-10 23:08:26 -07:00
2026-10-14 14:48:53 -07:00
2026-09-28 19:07:57 -05:00
2026-09-13 14:47:26 -07:00
2026-10-22 19:08:10 -07:00
2026-10-14 14:48:53 -07:00
2026-10-23 12:12:27 +01:00
2026-10-20 14:07:13 +01:00
2026-10-20 14:07:13 +01:00
2026-10-14 15:36:35 -07:00
2026-10-20 15:12:33 +01:00
2026-10-20 15:12:33 +01:00
2026-10-23 12:09:26 +01:00
2026-10-20 14:02:09 +04:00
2026-10-22 19:08:10 -07:00
2026-09-10 23:08:26 -07:00
2026-09-11 14:43:13 -07:00
2026-10-29 11:20:49 +00:00
2026-10-30 23:56:20 -07:00
2026-10-30 17:47:52 -07:00
2026-10-04 23:03:09 +05:00
2026-09-28 21:19:23 -05:00
2026-10-19 11:01:18 +05:30
2026-09-15 12:05:01 -07:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-10-22 18:09:37 -07:00
2026-10-20 14:37:05 +01:00
2026-09-22 17:45:39 -05:00
2026-08-24 17:02:16 -05:00
2026-10-30 17:47:52 -07:00
2026-10-24 08:25:42 -07:00
2026-10-30 23:13:37 -07:00
2026-10-20 15:12:32 +01:00
2026-09-28 21:19:23 -05:00