{"version":1,"updatedAt":"2026-10-16T14:32:55.487Z","retentionDays":30,"capBytes":2097152,"slowTestMs":3000,"budget":{"windowDays":30,"from":"2026-10-14T13:09:48.887Z","to":"2026-10-16T14:21:50.253Z","legs":{"classic":{"runs":4,"wallMs":{"p50":386849,"p90":401991},"tests":{"p50":2426,"p90":2432},"excluded":11,"shards":2,"workers":4},"classic-min":{"runs":4,"wallMs":{"p50":102429,"p90":138164},"tests":{"p50":524,"p90":524},"excluded":11,"shards":1,"workers":4},"engines":{"runs":15,"wallMs":{"p50":174929,"p90":267024},"tests":{"p50":244,"p90":350},"excluded":0,"shards":1,"workers":2},"horizon":{"runs":4,"wallMs":{"p50":369565,"p90":393806},"tests":{"p50":2426,"p90":2432},"excluded":11,"shards":2,"workers":4},"horizon-min":{"runs":4,"wallMs":{"p50":129767,"p90":135469},"tests":{"p50":524,"p90":524},"excluded":11,"shards":1,"workers":4},"main":{"runs":4,"wallMs":{"p50":365324,"p90":390868},"tests":{"p50":3440,"p90":3450},"excluded":11,"shards":3,"workers":4},"main-min":{"runs":4,"wallMs":{"p50":129954,"p90":183137},"tests":{"p50":734,"p90":734},"excluded":11,"shards":1,"workers":4}}},
"runs":[
{"runId":"38914335407","workflow":"Develop","event":"push","branch":"develop","headSha":"be5afb4a4760f0c12db2538144070500ac03595f","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38914335407","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-16T14:21:41.878Z","workers":4,"wallMs":386849,"summedMs":2631089,"tests":2432,"skipped":0,"flaky":0,"unexpected":0,"shards":2,"spanMs":386849,"parts":[[1,1,386849,1216],[2,1,306809,1216]]},{"leg":"classic-min","runAttempt":1,"at":"2026-10-16T14:21:50.253Z","workers":4,"wallMs":108395,"summedMs":389775,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-16T14:21:38.623Z","workers":2,"wallMs":267024,"summedMs":506090,"tests":350,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-16T14:21:36.346Z","workers":4,"wallMs":381899,"summedMs":2863133,"tests":2432,"skipped":0,"flaky":0,"unexpected":0,"shards":2,"spanMs":381899,"parts":[[1,1,374222,1216],[2,1,381899,1216]]},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-16T14:21:41.850Z","workers":4,"wallMs":97049,"summedMs":350411,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-16T14:21:36.860Z","workers":4,"wallMs":390868,"summedMs":4081393,"tests":3450,"skipped":0,"flaky":0,"unexpected":0,"shards":3,"spanMs":396533,"parts":[[1,1,327826,1150],[2,1,359618,1150],[3,1,390868,1150]]},{"leg":"main-min","runAttempt":1,"at":"2026-10-16T14:21:37.478Z","workers":4,"wallMs":183137,"summedMs":673082,"tests":734,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38908960333","workflow":"Develop","event":"push","branch":"develop","headSha":"ed415d7237d14a6ef4d7d4f5f3c20a58c7ccc828","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38908960333","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-16T13:43:32.926Z","workers":4,"wallMs":401991,"summedMs":2884446,"tests":2432,"skipped":0,"flaky":0,"unexpected":0,"shards":2,"spanMs":401991,"parts":[[1,1,359111,1216],[2,1,401991,1216]]},{"leg":"classic-min","runAttempt":1,"at":"2026-10-16T13:43:31.802Z","workers":4,"wallMs":138164,"summedMs":499008,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-16T13:43:29.440Z","workers":2,"wallMs":271955,"summedMs":515836,"tests":350,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-16T13:43:30.874Z","workers":4,"wallMs":369565,"summedMs":2341328,"tests":2432,"skipped":0,"flaky":0,"unexpected":0,"shards":2,"spanMs":369565,"parts":[[1,1,369565,1216],[2,1,246319,1216]]},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-16T13:43:29.199Z","workers":4,"wallMs":135469,"summedMs":488740,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-16T13:43:29.719Z","workers":4,"wallMs":365796,"summedMs":3184299,"tests":3446,"skipped":0,"flaky":0,"unexpected":0,"shards":3,"spanMs":366030,"parts":[[1,1,236436,1149],[2,1,237358,1149],[3,1,365796,1148]]},{"leg":"main-min","runAttempt":1,"at":"2026-10-16T13:43:35.831Z","workers":4,"wallMs":129954,"summedMs":478655,"tests":734,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38899089788","workflow":"Develop","event":"push","branch":"develop","headSha":"53b5ea2f1bd4d056a3ceb6144591887c0754fe9c","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38899089788","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-16T12:23:19.613Z","workers":4,"wallMs":379861,"summedMs":2337081,"tests":2426,"skipped":0,"flaky":0,"unexpected":0,"shards":2,"spanMs":379861,"parts":[[1,1,238486,1213],[2,1,379861,1213]]},{"leg":"classic-min","runAttempt":1,"at":"2026-10-16T12:23:25.757Z","workers":4,"wallMs":94912,"summedMs":344061,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-16T12:23:23.207Z","workers":2,"wallMs":252331,"summedMs":476593,"tests":338,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-16T12:23:18.033Z","workers":4,"wallMs":393806,"summedMs":2871780,"tests":2426,"skipped":0,"flaky":0,"unexpected":0,"shards":2,"spanMs":393806,"parts":[[1,1,364634,1213],[2,1,393806,1213]]},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-16T12:23:18.950Z","workers":4,"wallMs":134780,"summedMs":485465,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-16T12:23:19.927Z","workers":4,"wallMs":340563,"summedMs":3391899,"tests":3440,"skipped":0,"flaky":0,"unexpected":0,"shards":3,"spanMs":340563,"parts":[[1,1,262184,1147],[2,1,340563,1147],[3,1,293001,1146]]},{"leg":"main-min","runAttempt":1,"at":"2026-10-16T12:23:21.282Z","workers":4,"wallMs":178714,"summedMs":658476,"tests":734,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38894595034","workflow":"Develop","event":"push","branch":"develop","headSha":"7801196e17f7d03eb8bf4ef89c2e082309b26cb6","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38894595034","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-16T11:42:34.863Z","workers":4,"wallMs":391382,"summedMs":2890772,"tests":2424,"skipped":0,"flaky":0,"unexpected":0,"shards":2,"spanMs":417259,"parts":[[1,1,372289,1212],[2,1,391382,1212]]},{"leg":"classic-min","runAttempt":1,"at":"2026-10-16T11:42:48.181Z","workers":4,"wallMs":102429,"summedMs":370267,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-16T11:42:47.391Z","workers":2,"wallMs":199792,"summedMs":377483,"tests":338,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-16T11:42:42.048Z","workers":4,"wallMs":369132,"summedMs":2332041,"tests":2424,"skipped":0,"flaky":0,"unexpected":0,"shards":2,"spanMs":381902,"parts":[[1,1,246381,1212],[2,1,369132,1212]]},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-16T11:42:49.358Z","workers":4,"wallMs":129767,"summedMs":469097,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-16T11:42:35.575Z","workers":4,"wallMs":365324,"summedMs":3483730,"tests":3438,"skipped":0,"flaky":0,"unexpected":0,"shards":3,"spanMs":381232,"parts":[[1,1,349695,1146],[2,1,205647,1146],[3,1,365324,1146]]},{"leg":"main-min","runAttempt":1,"at":"2026-10-16T11:42:40.650Z","workers":4,"wallMs":119295,"summedMs":441555,"tests":734,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38874856449","workflow":"Develop","event":"push","branch":"develop","headSha":"7e99df700ac5aba4e438fcc796d1bee7d00671b8","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38874856449","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-16T08:46:19.118Z","workers":2,"wallMs":923842,"summedMs":1786582,"tests":2418,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-16T08:45:26.199Z","workers":2,"wallMs":145390,"summedMs":270625,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-16T08:44:49.116Z","workers":2,"wallMs":205307,"summedMs":385285,"tests":300,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-16T08:44:41.498Z","workers":2,"wallMs":953300,"summedMs":1842975,"tests":2418,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-16T08:44:35.793Z","workers":2,"wallMs":175303,"summedMs":325159,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-16T08:44:42.204Z","workers":2,"wallMs":1008909,"summedMs":1959170,"tests":3405,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-16T08:44:45.430Z","workers":2,"wallMs":218374,"summedMs":410260,"tests":727,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38871020411","workflow":"Develop","event":"push","branch":"develop","headSha":"dcd6e3b436e614fa798eed8ac643a5347b7deffe","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38871020411","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-16T08:11:20.522Z","workers":2,"wallMs":936213,"summedMs":1810611,"tests":2418,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-16T08:11:28.520Z","workers":2,"wallMs":145827,"summedMs":271573,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-16T08:11:19.552Z","workers":2,"wallMs":205742,"summedMs":385584,"tests":300,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-16T08:11:17.960Z","workers":2,"wallMs":954394,"summedMs":1845010,"tests":2418,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-16T08:11:17.276Z","workers":2,"wallMs":168112,"summedMs":311268,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-16T08:11:19.788Z","workers":2,"wallMs":1267608,"summedMs":2457298,"tests":3405,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-16T08:11:24.826Z","workers":2,"wallMs":185498,"summedMs":349613,"tests":727,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38755940345","workflow":"Develop","event":"push","branch":"develop","headSha":"7ef4a04e292bcdc3393d7fa69c00152a9b2d8185","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38755940345","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-15T15:04:09.701Z","workers":2,"wallMs":936963,"summedMs":1811348,"tests":2393,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-15T15:03:57.133Z","workers":2,"wallMs":165851,"summedMs":307667,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-15T15:04:10.029Z","workers":2,"wallMs":141350,"summedMs":261981,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-15T15:04:09.098Z","workers":2,"wallMs":729274,"summedMs":1412764,"tests":2393,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-15T15:03:57.759Z","workers":2,"wallMs":164676,"summedMs":305574,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-15T15:04:06.753Z","workers":2,"wallMs":835301,"summedMs":1625188,"tests":3377,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-15T15:03:55.442Z","workers":2,"wallMs":216523,"summedMs":406947,"tests":727,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38751176210","workflow":"Develop","event":"push","branch":"develop","headSha":"6f69147763fc5124df7a6bd036ae7821a131c333","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38751176210","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-15T14:31:22.825Z","workers":2,"wallMs":909518,"summedMs":1758884,"tests":2393,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-15T14:31:42.089Z","workers":2,"wallMs":159724,"summedMs":296157,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-15T14:31:27.019Z","workers":2,"wallMs":120178,"summedMs":223345,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-15T14:31:26.115Z","workers":2,"wallMs":949579,"summedMs":1835840,"tests":2393,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-15T14:31:22.808Z","workers":2,"wallMs":168327,"summedMs":312319,"tests":524,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-15T14:31:25.364Z","workers":2,"wallMs":1228107,"summedMs":2380344,"tests":3377,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-15T14:31:26.768Z","workers":2,"wallMs":180764,"summedMs":340122,"tests":727,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38740935513","workflow":"Develop","event":"push","branch":"develop","headSha":"959b6f5950b0954952dcb875f5975606d8bea7ec","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38740935513","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-15T13:20:43.093Z","workers":2,"wallMs":1271865,"summedMs":2468437,"tests":3373,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-15T13:20:41.573Z","workers":2,"wallMs":1032846,"summedMs":1996817,"tests":3373,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-15T13:20:43.831Z","workers":2,"wallMs":172143,"summedMs":319940,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-15T13:20:52.111Z","workers":2,"wallMs":1004122,"summedMs":1951979,"tests":3373,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-15T13:20:56.006Z","workers":2,"wallMs":911218,"summedMs":1764274,"tests":3373,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-15T13:20:42.845Z","workers":2,"wallMs":1212024,"summedMs":2353940,"tests":3373,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-15T13:20:42.925Z","workers":2,"wallMs":1102845,"summedMs":2130587,"tests":3373,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38733003235","workflow":"Develop","event":"push","branch":"develop","headSha":"ed2314c488d51113efd546557c2cc24629175940","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38733003235","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-15T12:18:51.240Z","workers":2,"wallMs":1255392,"summedMs":2435196,"tests":3328,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-15T12:18:52.362Z","workers":2,"wallMs":1040574,"summedMs":2008904,"tests":3328,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-15T12:19:09.862Z","workers":2,"wallMs":139179,"summedMs":259426,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-15T12:18:57.374Z","workers":2,"wallMs":902718,"summedMs":1755412,"tests":3328,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-15T12:18:52.547Z","workers":2,"wallMs":1038694,"summedMs":2008085,"tests":3328,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-15T12:18:50.799Z","workers":2,"wallMs":1153460,"summedMs":2239649,"tests":3328,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-15T12:19:02.299Z","workers":2,"wallMs":884893,"summedMs":1713406,"tests":3328,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38728530539","workflow":"Develop","event":"push","branch":"develop","headSha":"0b0a5f5a5e4a8aea56d5c6179afe61656722f649","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38728530539","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-15T11:42:36.183Z","workers":2,"wallMs":965599,"summedMs":1876913,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-15T11:42:32.228Z","workers":2,"wallMs":852327,"summedMs":1650097,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-15T11:42:34.897Z","workers":2,"wallMs":166830,"summedMs":311154,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-15T11:42:40.311Z","workers":2,"wallMs":1187309,"summedMs":2306662,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-15T11:42:23.254Z","workers":2,"wallMs":1048681,"summedMs":2024070,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-15T11:42:28.225Z","workers":2,"wallMs":1218087,"summedMs":2362684,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-15T11:42:35.123Z","workers":2,"wallMs":1002529,"summedMs":1940456,"tests":3279,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38712894896","workflow":"Develop","event":"push","branch":"develop","headSha":"2e8567743672c38fbb0a61058100511b4ba22485","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38712894896","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-15T09:33:23.844Z","workers":2,"wallMs":847928,"summedMs":1651432,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-15T09:33:23.892Z","workers":2,"wallMs":1031985,"summedMs":1992291,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-15T09:33:21.893Z","workers":2,"wallMs":174929,"summedMs":325352,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-15T09:33:23.144Z","workers":2,"wallMs":1218274,"summedMs":2363649,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-15T09:33:17.964Z","workers":2,"wallMs":1065225,"summedMs":2055308,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-15T09:33:23.568Z","workers":2,"wallMs":1237974,"summedMs":2400969,"tests":3279,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-15T09:33:23.082Z","workers":2,"wallMs":1029585,"summedMs":1987178,"tests":3279,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38703010808","workflow":"Develop","event":"push","branch":"develop","headSha":"6d138b4b493cf6d6855a2b9075dc4528f77edb74","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38703010808","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-15T08:11:23.941Z","workers":2,"wallMs":1189562,"summedMs":2307241,"tests":3260,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-15T08:11:30.002Z","workers":2,"wallMs":734020,"summedMs":1422314,"tests":3260,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-15T08:11:34.481Z","workers":2,"wallMs":137317,"summedMs":254131,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-15T08:11:25.274Z","workers":2,"wallMs":1180119,"summedMs":2288712,"tests":3260,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-15T08:11:18.472Z","workers":2,"wallMs":986539,"summedMs":1906117,"tests":3260,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-15T08:11:21.692Z","workers":2,"wallMs":1210656,"summedMs":2348817,"tests":3260,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-15T08:11:31.333Z","workers":2,"wallMs":824304,"summedMs":1595865,"tests":3260,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38585768072","workflow":"Develop","event":"push","branch":"develop","headSha":"fa6f901a17ea7293b97e4147486f58a171c8b58a","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38585768072","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-14T15:09:15.790Z","workers":2,"wallMs":1203534,"summedMs":2332500,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-14T15:09:28.960Z","workers":2,"wallMs":1000519,"summedMs":1936198,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-14T15:09:24.919Z","workers":2,"wallMs":140702,"summedMs":261277,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-14T15:09:13.528Z","workers":2,"wallMs":1134475,"summedMs":2201783,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-14T15:09:16.616Z","workers":2,"wallMs":1012963,"summedMs":1954719,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-14T15:09:21.196Z","workers":2,"wallMs":838003,"summedMs":1630311,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-14T15:09:26.680Z","workers":2,"wallMs":987845,"summedMs":1911781,"tests":3156,"skipped":0,"flaky":0,"unexpected":0}]},
{"runId":"38568694543","workflow":"Develop","event":"push","branch":"develop","headSha":"0d28bc0d4f97f06c6b68609fe767c0c7dc15d5d7","runUrl":"https://github.com/handsontable/handsontable/actions/runs/38568694543","legs":[{"leg":"classic","runAttempt":1,"at":"2026-10-14T13:09:59.883Z","workers":2,"wallMs":922082,"summedMs":1790979,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"classic-min","runAttempt":1,"at":"2026-10-14T13:09:49.770Z","workers":2,"wallMs":1034057,"summedMs":1999609,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"engines","runAttempt":1,"at":"2026-10-14T13:09:54.598Z","workers":2,"wallMs":178952,"summedMs":332808,"tests":244,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon","runAttempt":1,"at":"2026-10-14T13:09:48.887Z","workers":2,"wallMs":1156049,"summedMs":2244092,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"horizon-min","runAttempt":1,"at":"2026-10-14T13:09:53.060Z","workers":2,"wallMs":780386,"summedMs":1513543,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main","runAttempt":1,"at":"2026-10-14T13:09:51.414Z","workers":2,"wallMs":1145123,"summedMs":2220298,"tests":3156,"skipped":0,"flaky":0,"unexpected":0},{"leg":"main-min","runAttempt":1,"at":"2026-10-14T13:10:01.127Z","workers":2,"wallMs":1014594,"summedMs":1963616,"tests":3156,"skipped":0,"flaky":0,"unexpected":0}]}
],
"latest":{"sources":[{"leg":"classic","projects":["e2e-classic"],"runId":"38914335407","runAttempt":1,"runUrl":"https://github.com/handsontable/handsontable/actions/runs/38914335407","workflow":"Develop","event":"push","branch":"develop","headSha":"be5afb4a4760f0c12db2538144070500ac03595f","at":"2026-10-16T14:21:41.878Z","wallMs":386849,"workers":4,"tests":2432,"shards":2,"spanMs":386849,"parts":[[1,1,386849,1216],[2,1,306809,1216]]},{"leg":"classic-min","projects":["e2e-classic-min"],"runId":"38914335407","runAttempt":1,"runUrl":"https://github.com/handsontable/handsontable/actions/runs/38914335407","workflow":"Develop","event":"push","branch":"develop","headSha":"be5afb4a4760f0c12db2538144070500ac03595f","at":"2026-10-16T14:21:50.253Z","wallMs":108395,"workers":4,"tests":524},{"leg":"engines","projects":["e2e-firefox","e2e-webkit"],"runId":"38914335407","runAttempt":1,"runUrl":"https://github.com/handsontable/handsontable/actions/runs/38914335407","workflow":"Develop","event":"push","branch":"develop","headSha":"be5afb4a4760f0c12db2538144070500ac03595f","at":"2026-10-16T14:21:38.623Z","wallMs":267024,"workers":2,"tests":350},{"leg":"horizon","projects":["e2e-horizon"],"runId":"38914335407","runAttempt":1,"runUrl":"https://github.com/handsontable/handsontable/actions/runs/38914335407","workflow":"Develop","event":"push","branch":"develop","headSha":"be5afb4a4760f0c12db2538144070500ac03595f","at":"2026-10-16T14:21:36.346Z","wallMs":381899,"workers":4,"tests":2432,"shards":2,"spanMs":381899,"parts":[[1,1,374222,1216],[2,1,381899,1216]]},{"leg":"horizon-min","projects":["e2e-horizon-min"],"runId":"38914335407","runAttempt":1,"runUrl":"https://github.com/handsontable/handsontable/actions/runs/38914335407","workflow":"Develop","event":"push","branch":"develop","headSha":"be5afb4a4760f0c12db2538144070500ac03595f","at":"2026-10-16T14:21:41.850Z","wallMs":97049,"workers":4,"tests":524},{"leg":"main","projects":["e2e-main"],"runId":"38914335407","runAttempt":1,"runUrl":"https://github.com/handsontable/handsontable/actions/runs/38914335407","workflow":"Develop","event":"push","branch":"develop","headSha":"be5afb4a4760f0c12db2538144070500ac03595f","at":"2026-10-16T14:21:36.860Z","wallMs":390868,"workers":4,"tests":3450,"shards":3,"spanMs":396533,"parts":[[1,1,327826,1150],[2,1,359618,1150],[3,1,390868,1150]]},{"leg":"main-min","projects":["e2e-main-min"],"runId":"38914335407","runAttempt":1,"runUrl":"https://github.com/handsontable/handsontable/actions/runs/38914335407","workflow":"Develop","event":"push","branch":"develop","headSha":"be5afb4a4760f0c12db2538144070500ac03595f","at":"2026-10-16T14:21:37.478Z","wallMs":183137,"workers":4,"tests":734}],"columns":[{"leg":"classic","project":"e2e-classic"},{"leg":"classic-min","project":"e2e-classic-min"},{"leg":"engines","project":"e2e-firefox"},{"leg":"engines","project":"e2e-webkit"},{"leg":"horizon","project":"e2e-horizon"},{"leg":"horizon-min","project":"e2e-horizon-min"},{"leg":"main","project":"e2e-main"},{"leg":"main-min","project":"e2e-main-min"}],"files":{
"e2e/amd-loader.spec.ts":[["bundle on a page with an AMD loader › loads and renders while a global define.amd is present",null,null,null,null,null,null,893,751]],
"e2e/async-image-frozen-columns.spec.ts":[["Async image in a scrolling column beside frozen columns › aligns and settles with autoRowSize enabled",1522,null,null,null,1515,null,1568,null],["Async image in a scrolling column beside frozen columns › aligns rows scrolled in later when every row shares one failing URL",1080,null,null,null,1101,null,1275,null],["Async image in a scrolling column beside frozen columns › aligns the frozen end overlay when the image sits in a column frozen at the end",764,null,null,null,616,null,655,null],["Async image in a scrolling column beside frozen columns › aligns the overlays when the renderer keeps a failing image",2097,null,null,null,2046,null,2028,null],["Async image in a scrolling column beside frozen columns › bounds the redraws of a renderer that recreates a failing image on every render",3921,null,null,null,3909,null,3824,null],["Async image in a scrolling column beside frozen columns › does not redraw in a loop although the renderer recreates its images on every render",2145,null,null,null,2045,null,2053,null],["Async image in a scrolling column beside frozen columns › keeps the frozen overlay rows as tall as the master rows once the images load",1150,null,null,null,1054,null,942,null],["Async image in a scrolling column beside frozen columns › settles when a short image sits in a frozen column of a grid without column headers",2462,null,null,null,2534,null,2133,null],["Async image in a scrolling column beside frozen columns › settles without column headers when a short image makes the first row 1px taller",2506,null,null,null,2465,null,2369,null]],
"e2e/auto-height-scrollbar-zoom.spec.ts":[["auto-height grid below 100% zoom › 67% zoom with 40 rows scrolls in neither direction",1061,null,null,null,913,null,1054,null],["auto-height grid below 100% zoom › 67% zoom with 5 rows scrolls in neither direction",890,null,null,null,916,null,1143,null],["auto-height grid below 100% zoom › 75% zoom with 40 rows scrolls in neither direction",956,null,null,null,850,null,1263,null],["auto-height grid below 100% zoom › 75% zoom with 5 rows scrolls in neither direction",747,null,null,null,682,null,1009,null],["auto-height grid below 100% zoom › 80% zoom with 40 rows scrolls in neither direction",806,null,null,null,866,null,1043,null],["auto-height grid below 100% zoom › 80% zoom with 5 rows scrolls in neither direction",766,null,null,null,798,null,860,null],["auto-height grid below 100% zoom › 90% zoom with 40 rows scrolls in neither direction",813,null,null,null,858,null,1050,null],["auto-height grid below 100% zoom › 90% zoom with 5 rows scrolls in neither direction",763,null,null,null,681,null,1111,null],["auto-height grid below 100% zoom › a grid at 100% has no scrollbars — the control",811,null,null,null,722,null,1001,null],["auto-height grid below 100% zoom › the leg really runs the theme it claims",1151,null,null,null,1105,null,995,null],["auto-height grid below 100% zoom › the zoom really inflated the cell border",807,null,null,null,787,null,721,null]],
"e2e/auto-link.spec.ts":[["autoLink › applies `target`, `schemes` and `className` from the object form",1259,711,null,null,1606,732,1209,1009],["autoLink › applies a cell-level object override, without affecting other cells",1162,730,null,null,1322,628,1055,837],["autoLink › applies the grid-level object form of `inline`",1322,752,null,null,1524,614,1143,907],["autoLink › applies the grid-level object form of `strict`",1351,809,null,null,1753,634,1277,959],["autoLink › converges on one anchor when Formulas is re-enabled after AutoLink",1564,862,null,null,1748,910,1338,993],["autoLink › does not read a bare `tel:` word glued to a preceding word as a scheme",1166,779,null,null,1151,599,1183,847],["autoLink › does not split a URL whose path merely contains a scheme word",1206,791,null,null,1275,614,1087,867],["autoLink › does not split an embedded `https://` immediately preceded by a `/`",1210,787,null,null,1135,632,1113,817],["autoLink › drops the anchors when the option is turned off, even under a memoizing renderer",1287,775,null,null,1570,651,1155,975],["autoLink › drops the anchors when the plugin is disabled without a redraw",1303,706,null,null,1602,547,1115,875],["autoLink › follows a link on click and still selects the cell",1440,894,null,null,1830,752,1377,1102],["autoLink › keeps Alt+Enter working for autoLink cells when Formulas is disabled",1286,781,null,null,1419,619,1298,936],["autoLink › leaves Alt+Enter to the host application on a cell with no link",1270,761,null,null,1649,660,1177,840],["autoLink › leaves the cell value untouched",1262,690,null,null,1163,575,1026,847],["autoLink › links `mailto:` and `tel:` values, hiding the scheme prefix from view",1243,1094,null,null,1183,721,1165,1028],["autoLink › links a URL inside prose and keeps the surrounding text",1231,1323,null,null,1294,643,1125,860],["autoLink › links inside a custom renderer's own element",1204,645,null,null,1464,534,1172,811],["autoLink › links only a whole-cell URL when `inline` is `false`",1170,715,null,null,1372,693,1091,841],["autoLink › links the freed URL text under `renderMode: \"onChange\"` when Formulas is disabled without a render",1369,808,null,null,1518,727,1141,937],["autoLink › never links a `javascript:` value or plain text",1261,634,null,null,1159,541,1095,864],["autoLink › opens the editor with the raw value on double click",1346,788,null,null,1708,728,1261,976],["autoLink › opens the first link of the selected cell with Alt+Enter, honouring `target`",1404,881,null,null,1770,738,1142,1105],["autoLink › paints anchors after `enablePlugin()` alone under `renderMode: \"onChange\"`",1363,807,null,null,1732,721,1179,1032],["autoLink › removes and re-adds anchors under `renderMode: \"onChange\"`",1356,796,null,null,1666,724,1270,1029],["autoLink › renders exactly one anchor on a HYPERLINK cell with both features on",1224,735,null,null,1477,596,1154,897],["autoLink › respects a column-level and a cell-level opt-out",1140,668,null,null,1362,580,1205,853],["autoLink › skips an `html` cell that already holds a user anchor",1188,692,null,null,1306,525,1065,805],["autoLink › splits a `https://` URL glued to a `mailto:` URL by a comma into two anchors",1302,688,null,null,1140,596,1151,835],["autoLink › splits two URLs glued together with no delimiter into two anchors",1232,902,null,null,1180,617,1041,838],["autoLink › survives repeated renders and rebuilds from the current value",1354,770,null,null,1659,684,1213,981],["autoLink › trims the punctuation that wraps a URL in prose",1168,1425,null,null,1259,730,1152,814],["autoLink › wraps a whole-cell URL in an anchor with the shared classes and safe attributes",1321,1227,null,null,1228,749,1258,1046],["autoLink.strict › does not link a bare domain preceded by a backslash, Windows-path-style (regression)",1224,634,null,null,1245,627,1109,786],["autoLink.strict › does not link a bare domain whose port is out of range, even when dropping a leading label would otherwise yield a valid-looking host (regression)",1159,625,null,null,1187,584,1139,819],["autoLink.strict › does not link a bare domain whose top-level domain is unknown",1175,688,null,null,1269,644,1137,895],["autoLink.strict › leaves column A (strict default) unaffected by another column's `strict: false`",1158,677,null,null,1168,605,1093,873],["autoLink.strict › links a bare domain as `https`",1234,695,null,null,1708,591,1057,893],["autoLink.strict › links a bare domain inside prose and keeps the surrounding sentence",1264,695,null,null,1299,653,1093,857],["autoLink.strict › links a bare domain whose top-level domain is a country code (documented trade-off)",1222,737,null,null,1562,601,1031,819],["autoLink.strict › links a bare domain whose top-level domain is also a common file extension (documented trade-off, no exclusion list)",1188,625,null,null,1240,689,987,807],["autoLink.strict › links a bare domain with a `www` label and a path",1141,720,null,null,1444,595,1068,913],["autoLink.strict › links a bare email address as `mailto`, with no scheme prefix to hide",1161,685,null,null,1386,634,1131,843],["autoLink.strict › never mistakes a version-like string for a bare domain",1162,708,null,null,1190,632,1065,772]],
"e2e/auto-row-header-size.spec.ts":[["AutoRowHeaderSize geometry › applies a width the idle sweep finds after the first paint",1288,null,null,null,1052,null,1108,null],["AutoRowHeaderSize geometry › leaves room around a label a custom renderer draws with no padding of its own",1184,null,null,null,1074,null,1065,null],["AutoRowHeaderSize geometry › measures a level the hook starts drawing on a plain re-render",1156,null,null,null,1161,null,1062,null],["AutoRowHeaderSize geometry › shows the longest label of every level in full",1134,null,null,null,1101,null,1027,null],["AutoRowHeaderSize geometry › sizes each level to its own labels, not to the widest of them all",1118,null,null,null,1202,null,1012,null],["AutoRowHeaderSize geometry › widens a data-derived header after the cell behind it is edited",1230,null,null,null,1091,null,1207,null]],
"e2e/auto-row-size-clear-cache.spec.ts":[["AutoRowSize after clearCache() › keeps the row headers aligned with their rows when scrolled sideways",1293,null,null,null,1016,null,997,null],["AutoRowSize after clearCache() › measures the rows it renders after the cache is dropped",1041,null,null,null,1000,null,993,null],["AutoRowSize after clearCache() › re-measures rows that clearCache(rows) dropped below the fold",1022,null,null,null,1063,null,867,null],["AutoRowSize after clearCache() › re-measures rows that clearCacheByRange() dropped below the fold",1084,null,null,null,962,null,912,null],["AutoRowSize after clearCache() › still lines up on a grid whose cache was never touched",929,null,null,null,960,null,795,null]],
"e2e/auto-size-sampling-settings.spec.ts":[["Auto-size sampling settings through updateSettings() › applies a samplingRatio raised at runtime",903,null,null,null,977,null,920,null],["Auto-size sampling settings through updateSettings() › keeps the raised samplingRatio when an unrelated setting changes",1034,null,null,null,1023,null,921,null],["Auto-size sampling settings through updateSettings() › lines the row headers up with their rows once the ratio covers every column",1017,null,null,null,995,null,857,null]],
"e2e/auto-size-value-formatter.spec.ts":[["renderer valueFormatter static and the auto-size plugins › keeps the row header the same height as the multiline data cell",930,null,null,null,925,null,786,null],["renderer valueFormatter static and the auto-size plugins › measures the currency-formatted column against its formatted string",916,null,null,null,896,null,847,null],["renderer valueFormatter static and the auto-size plugins › measures the row against the multiline string the renderer static produces",868,null,null,null,865,null,848,null]],
"e2e/autocomplete-async-source.spec.ts":[["autocomplete editor asked for choices with no edit in progress › does not reach the source",null,null,null,null,null,null,988,null],["autocomplete editor closed by scrolling its cell out of view › ignores a source response that arrives after the scroll closed the editor",null,null,null,null,null,null,1056,null],["autocomplete editor closed by scrolling its cell out of view › starts no new query when a timeout scheduled before the close fires after it",null,null,null,null,null,null,899,null],["autocomplete editor closed just after its list scrolled › does not refocus itself after the close",null,null,null,null,null,null,1317,null],["autocomplete editor destroyed with a query in flight › swallows a source response that arrives after the grid was destroyed",null,null,null,null,null,null,892,null],["autocomplete editor with an async validator in flight › ignores a response from the validation window once the editor finally closes",null,null,null,null,null,null,1104,null],["autocomplete editor with an async validator in flight › still refreshes the list while the editor waits on validation",null,null,null,null,null,null,1046,null],["autocomplete editor with an asynchronous source › ignores a source response from a previous edit after the editor reopened elsewhere",null,null,null,null,null,null,1074,null],["autocomplete editor with an asynchronous source › ignores a source response that arrives after an outside click closed the editor",null,null,null,null,null,null,1053,null],["autocomplete editor with an asynchronous source › ignores a source response that arrives after Escape closed the editor",null,null,null,null,null,null,1051,null],["autocomplete editor with two overlapping queries in one edit › keeps the newest answer when an older one arrives after it",null,null,null,null,null,null,899,null],["dropdown editor asked for choices with no edit in progress › does not reach the source",null,null,null,null,null,null,930,null],["dropdown editor closed by scrolling its cell out of view › ignores a source response that arrives after the scroll closed the editor",null,null,null,null,null,null,1002,null],["dropdown editor closed by scrolling its cell out of view › starts no new query when a timeout scheduled before the close fires after it",null,null,null,null,null,null,945,null],["dropdown editor closed just after its list scrolled › does not refocus itself after the close",null,null,null,null,null,null,1290,null],["dropdown editor destroyed with a query in flight › swallows a source response that arrives after the grid was destroyed",null,null,null,null,null,null,861,null],["dropdown editor with an async validator in flight › ignores a response from the validation window once the editor finally closes",null,null,null,null,null,null,1143,null],["dropdown editor with an async validator in flight › still refreshes the list while the editor waits on validation",null,null,null,null,null,null,1080,null],["dropdown editor with an asynchronous source › ignores a source response from a previous edit after the editor reopened elsewhere",null,null,null,null,null,null,1039,null],["dropdown editor with an asynchronous source › ignores a source response that arrives after an outside click closed the editor",null,null,null,null,null,null,972,null],["dropdown editor with an asynchronous source › ignores a source response that arrives after Escape closed the editor",null,null,null,null,null,null,1017,null],["dropdown editor with two overlapping queries in one edit › keeps the newest answer when an older one arrives after it",null,null,null,null,null,null,909,null]],
"e2e/autocomplete-choices-list.spec.ts":[["autocomplete choices list › highlighting the typed phrase › does not read the typed text as a regular expression when it highlights",null,null,null,null,null,null,1066,1053],["autocomplete choices list › highlighting the typed phrase › marks the matching phrase in the listed entries",null,null,null,null,null,null,1150,843],["autocomplete choices list › HTML entries (allowHtml) › lists, narrows and commits HTML entries",null,null,null,null,null,null,1099,977],["autocomplete choices list › HTML entries (allowHtml) › renders HTML entries without sanitizing their content",null,null,null,null,null,null,883,785],["autocomplete choices list › lists the choices alphabetically when sortByRelevance is false",null,null,null,null,null,null,889,839],["autocomplete choices list › lists the choices in source order when sortByRelevance is true",null,null,null,null,null,null,864,834],["autocomplete choices list › opens the editor and draws the list when the choice list is very long",null,null,null,null,null,null,1309,1168]],
"e2e/autocomplete-key-value-paste.spec.ts":[["pasting a label into a key/value source (DEV-57) › does not resolve labels that arrive by loading data",null,null,null,null,null,null,879,null],["pasting a label into a key/value source (DEV-57) › keeps preserving the entry through a copy and a plain paste",null,null,null,null,null,null,977,null],["pasting a label into a key/value source (DEV-57) › keeps the source entry's own key when the autocomplete cell already held one",null,null,null,null,null,null,944,null],["pasting a label into a key/value source (DEV-57) › keeps the source entry's own key when the dropdown cell already held one",null,null,null,null,null,null,913,null],["pasting a label into a key/value source (DEV-57) › leaves a pasted dropdown cell valid instead of marking it invalid",null,null,null,null,null,null,852,null],["pasting a label into a key/value source (DEV-57) › leaves a plain-string source column storing the bare label",null,null,null,null,null,null,928,null],["pasting a label into a key/value source (DEV-57) › leaves an emptied editor empty rather than resolving it to a blank entry",null,null,null,null,null,null,1050,null],["pasting a label into a key/value source (DEV-57) › pastes the same value a typed label produces in a autocomplete column",null,null,null,null,null,null,893,null],["pasting a label into a key/value source (DEV-57) › pastes the same value a typed label produces in a dropdown column",null,null,null,null,null,null,894,null],["pasting a label into a key/value source (DEV-57) › resolves a pasted label into the source entry in a autocomplete column",null,null,null,null,null,null,816,null],["pasting a label into a key/value source (DEV-57) › resolves a pasted label into the source entry in a dropdown column",null,null,null,null,null,null,838,null],["pasting a label into a key/value source (DEV-57) › restores a plain label verbatim on undo",null,null,null,null,null,null,913,null],["pasting a label into a key/value source (DEV-57) › still marks a dropdown cell invalid when the label is not in the source",null,null,null,null,null,null,868,null],["pasting a label into a key/value source (DEV-57) › stores a label the source does not contain unchanged in a autocomplete column",null,null,null,null,null,null,902,null],["pasting a label into a key/value source (DEV-57) › stores a label the source does not contain unchanged in a dropdown column",null,null,null,null,null,null,928,null]],
"e2e/autocomplete-stale-highlight.spec.ts":[["committing a filtering autocomplete whose choice list is out of date › commits the match the current value would produce, not the one on screen",null,null,null,null,null,null,1041,null],["committing a non-strict autocomplete after a pick › lets later text supersede the pick",null,null,null,null,null,null,976,null],["committing an autocomplete whose choice list is out of date › commits the typed value when the list has not caught up with it",null,null,null,null,null,null,1059,null],["committing an autocomplete whose choice list is out of date › keeps a choice the user picked with the arrow keys",null,null,null,null,null,null,933,null],["committing an autocomplete whose choice list is out of date › lets typing supersede a pick made with the arrow keys",null,null,null,null,null,null,1046,null],["committing an autocomplete whose choice list is out of date › normalizes to a highlight that is stale but still the right match",null,null,null,null,null,null,1116,null],["committing an autocomplete whose choice list is out of date › still normalizes the typed value to its match once the list is current",null,null,null,null,null,null,936,null],["committing an autocomplete with a query still only scheduled › normalizes to the match the current value would produce",null,null,null,null,null,null,1065,null],["reopening an autocomplete on another cell › does not commit a choice left over from the previous cell",null,null,null,null,null,null,1118,null]],
"e2e/autofill-merge-undo.spec.ts":[["undo of an autofill of merged cells › an undo leaves only the merge the autofill started from",null,null,null,null,null,null,1131,null],["undo of an autofill of merged cells › an undo removes the merges an autofill of a merged area created",null,null,null,null,null,null,1195,null]],
"e2e/bottom-slot-sizing.spec.ts":[["pagination bar in a grid without a height option › follows the last row inside a fixed CSS box instead of covering a data row",1016,null,null,null,982,null,933,null],["pagination bar in a grid without a height option › follows the last row inside a flex-filled parent",1032,null,null,null,1040,null,825,null],["pagination bar in a grid without a height option › follows the last row with `height: \"auto\"` inside a fixed CSS box",1079,null,null,null,1030,null,973,null],["pagination bar in a grid without a height option › is never wider than its container (stretch)",1007,null,null,null,1123,null,898,null],["pagination bar in a grid without a height option › is never wider than its container (tiny)",1080,null,null,null,1007,null,909,null],["pagination bar in a grid without a height option › is never wider than its container in RTL (stretch)",1183,null,null,null,1046,null,1063,null],["pagination bar in a grid without a height option › is never wider than its container in RTL (tiny)",1252,null,null,null,1281,null,1026,null],["pagination bar in a grid without a height option › is usable inside a scrollable ancestor without scrolling it",1123,null,null,null,950,null,995,null],["pagination bar in a grid without a height option › keeps the grid plus its bar inside an explicit `height` (control)",972,null,null,null,984,null,907,null],["pagination bar in a grid without a height option › stays inside a scrollable ancestor without scrolling it",962,null,null,null,905,null,870,null],["regression guards around the wrapper and slot sizing › a grid with no plugin keeps window scroll and virtualization inside a fixed CSS box",1027,null,null,null,981,null,915,null],["regression guards around the wrapper and slot sizing › grows the grid box with inserted rows without a resize loop or console error",1203,null,null,null,1182,null,962,null],["regression guards around the wrapper and slot sizing › keeps a `height: \"100%\"` grid filling its CSS-sized container",1140,null,null,null,1011,null,1052,null],["regression guards around the wrapper and slot sizing › keeps the bar as wide as an explicit `width` that overflows its container",1341,null,null,null,1219,null,1140,null],["regression guards around the wrapper and slot sizing › keeps the overlays layer at the container height while the grid overflows it",1155,null,null,null,1181,null,1011,null],["regression guards around the wrapper and slot sizing › keeps the slot tracking the table width inside a shrink-to-fit host",1092,null,null,null,1176,null,1023,null],["regression guards around the wrapper and slot sizing › reserves room for a bar that mounts after the first draw inside a scrollable ancestor",1268,null,null,null,1158,null,1038,null],["sheetsBar bar in a grid without a height option › follows the last row inside a fixed CSS box instead of covering a data row",999,null,null,null,989,null,856,null],["sheetsBar bar in a grid without a height option › follows the last row inside a flex-filled parent",1126,null,null,null,990,null,961,null],["sheetsBar bar in a grid without a height option › follows the last row with `height: \"auto\"` inside a fixed CSS box",1066,null,null,null,995,null,991,null],["sheetsBar bar in a grid without a height option › is never wider than its container (stretch)",1055,null,null,null,1020,null,931,null],["sheetsBar bar in a grid without a height option › is never wider than its container (tiny)",1064,null,null,null,971,null,873,null],["sheetsBar bar in a grid without a height option › is never wider than its container in RTL (stretch)",1169,null,null,null,1190,null,1104,null],["sheetsBar bar in a grid without a height option › is never wider than its container in RTL (tiny)",1282,null,null,null,1081,null,1152,null],["sheetsBar bar in a grid without a height option › is usable inside a scrollable ancestor without scrolling it",1165,null,null,null,1147,null,1028,null],["sheetsBar bar in a grid without a height option › keeps the grid plus its bar inside an explicit `height` (control)",1062,null,null,null,948,null,854,null],["sheetsBar bar in a grid without a height option › stays inside a scrollable ancestor without scrolling it",1036,null,null,null,997,null,935,null]],
"e2e/cell-dropdown-arrow-button.spec.ts":[["autocomplete cell dropdown arrow › leaves the editor closed when the arrow is pressed with the right button",978,null,null,null,935,null,861,null],["autocomplete cell dropdown arrow › leaves the editor closed when the cell body is clicked",949,null,null,null,925,null,907,null],["autocomplete cell dropdown arrow › opens the editor when the arrow is pressed with the left button",1074,null,null,null,1039,null,934,null],["autocomplete cell dropdown arrow › renders the indicator in an empty cell",900,null,null,null,846,null,792,null],["dropdown cell dropdown arrow › leaves the editor closed when the arrow is pressed with the right button",1024,null,null,null,944,null,846,null],["dropdown cell dropdown arrow › leaves the editor closed when the cell body is clicked",934,null,null,null,863,null,829,null],["dropdown cell dropdown arrow › opens the editor when the arrow is pressed with the left button",1018,null,null,null,979,null,977,null],["dropdown cell dropdown arrow › renders the indicator in an empty cell",895,null,null,null,806,null,796,null],["handsontable cell dropdown arrow › leaves the editor closed when the arrow is pressed with the right button",958,null,null,null,889,null,944,null],["handsontable cell dropdown arrow › leaves the editor closed when the cell body is clicked",862,null,null,null,947,null,840,null],["handsontable cell dropdown arrow › opens the editor when the arrow is pressed with the left button",989,null,null,null,1017,null,889,null],["handsontable cell dropdown arrow › renders the indicator in an empty cell",879,null,null,null,829,null,854,null],["multiselect cell dropdown arrow › leaves the editor closed when the arrow is pressed with the right button",981,null,null,null,867,null,966,null],["multiselect cell dropdown arrow › leaves the editor closed when the cell body is clicked",1023,null,null,null,965,null,833,null],["multiselect cell dropdown arrow › opens the editor when the arrow is pressed with the left button",958,null,null,null,938,null,863,null],["multiselect cell dropdown arrow › renders the indicator in an empty cell",877,null,null,null,881,null,709,null],["multiselect chips overflowing next to the indicator › keeps chips and the +N badge inside the cell at every column width",1422,null,null,null,1369,null,1232,null],["multiselect indicator on a frozen column › opens the editor when the frozen clone is the only rendered copy",908,null,null,null,881,null,930,null]],
"e2e/cells-read-only.spec.ts":[["cells() read-only lock › hands cells() physical indexes after a row was moved",1159,null,null,null,1144,null,1026,null],["cells() read-only lock › keeps the item for a selection made only of cells() read-only cells",1211,null,null,null,1240,null,1113,null],["cells() read-only lock › makes a column read-only around a cells()-owned read-only cell, and back",1310,null,null,null,1313,null,1209,null],["cells() read-only lock › recognizes a readOnly that cells() assigns to this",1152,null,null,null,1092,null,974,null],["cells() read-only lock › restores the other cells on undo, and toggles them again on redo",1250,null,null,null,1109,null,1052,null],["cells() read-only lock › stores nothing for a cell that cells() pins writable",1069,null,null,null,1042,null,989,null],["cells() read-only lock › works the same from the column menu",1102,null,null,null,1160,null,1053,null]],
"e2e/checkbox-custom-renderer.spec.ts":[["Checkbox column overwritten by a custom renderer › renders a truthy cell as checked after the initial draw",null,null,null,null,null,null,813,null],["Checkbox column overwritten by a custom renderer › shows the box checked after clicking an unchecked cell",null,null,null,null,null,null,872,null]],
"e2e/checkbox-header.spec.ts":[["Checkbox column header › centers the header checkbox vertically",983,null,null,null,875,null,838,null],["Checkbox column header › checks every editable cell from the mixed state, and unchecks them from checked",1048,null,null,null,1076,null,1036,null],["Checkbox column header › follows the cells, and undoes a \"check all\" in one step",1111,null,null,null,1103,null,1126,null],["Checkbox column header › on a touch screen › a second tap on the header checkbox unchecks the column",1139,null,null,null,1095,null,1004,null],["Checkbox column header › on a touch screen › a tap on the header checkbox checks the column",938,null,null,null,976,null,909,null],["Checkbox column header › toggles the column with Space on its focused header",1018,null,null,null,1082,null,970,null],["Checkbox column header › undoes a \"check all\" in one step with the keyboard shortcut",1115,null,null,null,1026,null,952,null],["Checkbox column header › used as the row selection › selects every row with the header checkbox, writing the column",978,null,null,null,975,null,964,null],["Checkbox column header › used as the row selection › selects rows through the cell checkboxes, with one checkbox per cell",1090,null,null,null,1028,null,904,null]],
"e2e/clipboard-between-grids.spec.ts":[["clipboard between two grids › pastes a value copied in one grid into the other grid, but not into a read-only column",null,null,2944,null,null,null,1520,null]],
"e2e/clipboard-scrolled-range.spec.ts":[["copy and cut of a range selected across a scroll › copies the whole range and pastes it at the top-left cell",5419,null,6288,null,5250,null,4908,null],["copy and cut of a range selected across a scroll › cuts the whole range and pastes it at the top-left cell",5773,null,4994,null,5628,null,5362,null]],
"e2e/clipboard.spec.ts":[["clipboard › copies the selected cell through the context menu",null,null,null,null,null,null,728,null],["clipboard › copies the selected cell with the keyboard shortcut",null,null,null,null,null,null,788,null],["clipboard › cuts the selected cell through the context menu",null,null,null,null,null,null,617,null],["clipboard › cuts the selected cell with the keyboard shortcut",null,null,null,null,null,null,573,null],["clipboard › handles one paste exactly once",null,null,null,null,null,null,712,null],["clipboard › pastes a copied cell back over the value that replaced it",null,null,null,null,null,null,719,null],["clipboard › ragged clipboard › keeps pasting a clipboard whose first row is the widest",null,null,null,null,null,null,569,null],["clipboard › ragged clipboard › pastes every column of a ragged HTML table",null,null,null,null,null,null,560,null],["clipboard › ragged clipboard › pastes every column of ragged plain text",null,null,null,null,null,null,755,null]],
"e2e/clone-holder-host-scrollbar-css.spec.ts":[["Clone holders under a page-wide scrollbar rule › keep no scrollbar under `.handsontable .wtHolder { scrollbar-width: thin !important; }`",1170,null,null,null,1079,null,1282,null],["Clone holders under a page-wide scrollbar rule › keep no scrollbar under `.handsontable .wtHolder { scrollbar-width: thin; }`",1194,null,null,null,1130,null,1185,null]],
"e2e/clone-holder-scroll.spec.ts":[["Clone holders as composited scroll containers › element-scrolled › hands a scroll of a clone holder to the master and realigns the clone",884,null,null,null,703,null,1255,null],["Clone holders as composited scroll containers › element-scrolled › judges a clone scroll event against the engine ledger, not the master offset",775,null,null,null,639,null,950,null],["Clone holders as composited scroll containers › element-scrolled › keeps the scroll containers out of the tab order and leaves the corner alone",997,null,null,null,902,null,711,null],["Clone holders as composited scroll containers › element-scrolled › makes each scroll-mirrored clone holder a scroll container on the axis the engine writes, with no scrollbar",1073,null,null,null,1089,null,733,null],["Clone holders as composited scroll containers › element-scrolled › mirrors the master offset onto the clone holders",693,null,null,null,649,null,979,null],["Clone holders as composited scroll containers › element-scrolled › scrolls the master back when a clone holder is scrolled back",851,null,null,null,825,null,1053,null],["Clone holders as composited scroll containers › right-to-left › hands a scroll of an RTL clone holder to the master",973,null,null,null,824,null,978,null],["Clone holders as composited scroll containers › right-to-left › mirrors the master offset onto the horizontal clones, into negative scrollLeft",691,null,null,null,667,null,865,null],["Clone holders as composited scroll containers › right-to-left › scrolls the grid when a finger pans across the frozen column headers",1590,null,null,null,1419,null,1359,null],["Clone holders as composited scroll containers › touch › scrolls the grid when a finger pans across the frozen column headers",997,null,null,null,994,null,1313,null],["Clone holders as composited scroll containers › touch › scrolls the grid when a finger pans over the frozen row headers",1068,null,null,null,1116,null,1415,null],["Clone holders as composited scroll containers › window-scrolled › keeps the frozen column in step with its rows under a page scroll",1315,null,null,null,1219,null,1182,null],["Clone holders as composited scroll containers › window-scrolled › really lets the window own the vertical axis",1233,null,null,null,1048,null,964,null]],
"e2e/col-headers-insert-after-move.spec.ts":[["array colHeaders after a column move › keeps the headers on their columns when a column is inserted to the right of a moved column",null,null,null,null,null,null,987,null]],
"e2e/col-widths-physical.spec.ts":[["colWidths by physical column index › keeps a array width with its column after the column is moved",992,null,null,null,984,null,850,null],["colWidths by physical column index › keeps a function width with its column after the column is moved",985,null,null,null,973,null,901,null]],
"e2e/collapsible-indicator-dropdown-menu.spec.ts":[["collapsible indicator pressed while a menu or editor is open › collapsing the group closes the menu",1195,767,null,null,1152,690,1008,905],["collapsible indicator pressed while a menu or editor is open › expanding the group closes the menu",1129,790,null,null,1137,773,1060,995],["collapsible indicator pressed while a menu or editor is open › pressing the indicator closes an open context menu too",1095,735,null,null,1095,619,997,826],["collapsible indicator pressed while a menu or editor is open › pressing the indicator leaves an open cell editor open",1065,685,null,null,1102,583,974,806],["collapsible indicator pressed while a menu or editor is open › the press keeps the text typed into an open comment",1095,699,null,null,1160,659,980,838],["collapsible indicator pressed while a menu or editor is open › the press still does not move the selection",1230,714,null,null,1117,679,1045,870],["collapsible indicator pressed while a menu or editor is open › the press with no menu open keeps a range selection",1052,729,null,null,1119,688,1052,861]],
"e2e/color-scheme-density.spec.ts":[["colorScheme and density options › applies colorScheme set at construction time",null,null,null,null,null,null,974,828],["colorScheme and density options › applies density set at construction time",null,null,null,null,null,null,1158,820],["colorScheme and density options › applies the colorScheme to menus rendered in the grid portal",null,null,null,null,null,null,1170,1198],["colorScheme and density options › can change an override that was set at construction time",null,null,null,null,null,null,1003,958],["colorScheme and density options › clears an override that was set at construction time",null,null,null,null,null,null,1225,941],["colorScheme and density options › clears an override when the option is set back to undefined",null,null,null,null,null,null,1187,984],["colorScheme and density options › does not leak an override to another grid sharing the same theme",null,null,null,null,null,null,1152,1033],["colorScheme and density options › does not let a torn-down theme engine re-inject its rules",null,null,null,null,null,null,1223,1054],["colorScheme and density options › keeps the overrides when the theme engine is rebuilt",null,null,null,null,null,null,1247,1116],["colorScheme and density options › leaves one theme style node per grid",null,null,null,null,null,null,903,765],["colorScheme and density options › survives a listener that switches theme during the same update",null,null,null,null,null,null,1005,900],["colorScheme and density options › switches colorScheme at runtime through updateSettings",null,null,null,null,null,null,1187,994],["colorScheme and density options › switches density at runtime through updateSettings",null,null,null,null,null,null,1109,977],["colorScheme and density options › warns once, and only for a real value, when the theme engine is not active",null,null,null,null,null,null,1143,1023]],
"e2e/column-autosize-viewport-refill.spec.ts":[["viewport refill after the rendered rows shrink › double-click autosize of a narrow wrapped column fills the viewport with rows",2089,null,null,null,2060,null,1984,null],["viewport refill after the rendered rows shrink › replacing the long values with short ones fills the viewport with rows",1132,null,null,null,1019,null,922,null]],
"e2e/column-header-border-ownership.spec.ts":[["Column header border ownership › accents every corner cell when the grid has more than one row header",1754,null,null,null,1888,null,1528,null],["Column header border ownership › accents the corner cells when the first body row is the active header",1748,null,null,null,1903,null,1467,null],["Column header border ownership › gives every body row the same height when column headers are enabled",1620,null,null,null,1281,null,1229,null],["Column header border ownership › holds the same geometry in every configuration that renders a column header",2224,null,null,null,2067,null,1895,null],["Column header border ownership › keeps every body row the same height after a vertical scroll",1785,null,null,null,1587,null,1441,null],["Column header border ownership › keeps the first row 1px taller on a grid with no column headers",1530,null,null,null,1515,null,1395,null],["Column header border ownership › keeps the header height and the scroll range unchanged by a vertical scroll",1882,null,null,null,1273,null,1331,null],["Column header border ownership › keeps the header height unchanged at the very end of the scroll range",1740,null,null,null,1558,null,1544,null],["Column header border ownership › keeps the top-frozen row flush under the header, which does render one above it",1696,null,null,null,1572,null,1323,null],["Column header border ownership › keeps the whole selection top edge clear of the column header",1599,null,null,null,1612,null,1393,null],["Column header border ownership › leaves the bottom-freeze seam on the frozen row, which renders no head row above it",1543,null,null,null,1433,null,1341,null],["Column header border ownership › leaves the corner cells untagged for a row that is not the first rendered one",1655,null,null,null,1792,null,1408,null],["Column header border ownership › lets the column header own the gridline between itself and the first body row",1426,null,null,null,1248,null,1159,null],["Column header border ownership › reads the rendered head rows, not the colHeaders setting, when deciding the compensation",1505,null,null,null,1594,null,1375,null],["Column header border ownership › records no oversized rows in any configuration",1649,null,null,null,1455,null,1409,null],["Column header border ownership › still compensates the first row on a grid that renders no head row at all",1455,null,null,null,1566,null,1419,null],["Column header border ownership › still straddles the gridline for a row with another row above it",1627,null,null,null,1696,null,1493,null]],
"e2e/column-header-window-scroll.spec.ts":[["Column header border ownership, window-scrolled › gives the header its own bottom border and takes it off the first body row",981,null,null,null,984,null,954,null],["Column header border ownership, window-scrolled › leaves the header height untouched by a window scroll",1127,null,null,null,1041,null,901,null],["Column header border ownership, window-scrolled › reaches the very last row and leaves it fully visible",1058,null,null,null,942,null,988,null],["Column header border ownership, window-scrolled › really lets the window own the vertical axis",882,null,null,null,1038,null,842,null],["Column header border ownership, window-scrolled › reveals a row snapped to the bottom edge instead of clipping it",1380,null,null,null,1351,null,1217,null]],
"e2e/column-move-sorting.spec.ts":[["column move with sorting enabled › does not move the column when a press on the header is released without moving",1074,null,1109,1302,1023,null,922,null],["column move with sorting enabled › does not sort a drag released outside the grid, whatever order the plugins listen in",1499,null,1465,1297,1352,null,1292,null],["column move with sorting enabled › keeps the header label clickable for sorting",1043,null,983,2110,936,null,827,null],["column move with sorting enabled › moves a sorted column when the drag starts at the header centre",1292,null,1218,2033,1267,null,1184,null],["column move with sorting enabled › moves the column when the drag starts on the sorting label itself",1342,null,1480,1324,1179,null,1148,null],["column move with sorting enabled › selects the column without sorting when the bare header area is pressed",1245,null,1637,1252,1268,null,1141,null],["column move with sorting enabled › sorts a dragged header when no move plugin can consume the drag",939,null,1066,1010,1051,null,882,null],["column move with sorting enabled › sorts on a header click made while a validated cell is being edited",976,null,1138,1473,923,null,897,null]],
"e2e/column-summary-move.spec.ts":[["columnSummary across manualColumnMove and manualRowMove › a column move relocates its summary and does not duplicate it",1015,null,null,null,933,null,924,null],["columnSummary across manualColumnMove and manualRowMove › a row move recalculates without corrupting the summary range on a second move",1038,null,null,null,998,null,968,null],["columnSummary across manualColumnMove and manualRowMove › moving the summary row itself after a data row move keeps the summary live at its new position",1091,null,null,null,1025,null,945,null],["columnSummary across manualColumnMove and manualRowMove › undo restores the pre-move summary position, and redo relocates it again",1122,null,null,null,1050,null,978,null]],
"e2e/column-summary-read-only.spec.ts":[["column summary read-only lock › hides \"Read only\" in the context menu of a summary cell",1143,null,null,null,1134,null,1062,null],["column summary read-only lock › keeps the lock on the summary after a row is inserted above it",1186,null,null,null,1146,null,1085,null],["column summary read-only lock › keeps the summary read-only through undo and redo of a column toggle",1241,null,null,null,1123,null,1143,null],["column summary read-only lock › leaves a summary configured with `readOnly: false` toggleable",1306,null,null,null,1211,null,1156,null],["column summary read-only lock › refuses to unlock a summary cell through setCellMeta",894,null,null,null,774,null,755,null],["column summary read-only lock › toggles a whole column from its header without unlocking the summary",1291,null,null,null,1271,null,1237,null],["column summary read-only lock › toggles a whole column from the column menu without unlocking the summary",1311,null,null,null,1398,null,1224,null]],
"e2e/column-summary-undo.spec.ts":[["undo with a column summary › nothing is undoable after a \"custom\" summary is calculated",null,null,null,null,null,null,910,null],["undo with a column summary › nothing is undoable after a \"min\" summary is calculated",null,null,null,null,null,null,878,null],["undo with a column summary › one undo brings back a removed row",null,null,null,null,null,null,884,null],["undo with a column summary › one undo reverts an edit of a cell with a custom validator and its summary",null,null,null,null,null,null,997,null],["undo with a column summary › one undo reverts an edit of a numeric cell and its summary",null,null,null,null,null,null,923,null]],
"e2e/column-width-equals-grid-width.spec.ts":[["column width equal to the grid width › renders the column at the configured width instead of the default width",812,null,null,null,777,null,694,null]],
"e2e/comments-editor-position.spec.ts":[["Comment editor position - RTL grid scrolled by the window › on an LTR page › flips to the cell right side when the page is scrolled part of the way",953,null,1036,1052,1007,null,916,null],["Comment editor position - RTL grid scrolled by the window › on an RTL page › flips to the cell right side when the page is scrolled part of the way",1040,null,1025,1029,1020,null,951,null],["Comment editor position - RTL grid scrolled by the window › on an RTL page › flips to the cell right side when the page overflows but is not scrolled yet",993,null,952,1035,947,null,895,null],["Comment editor position - RTL grid scrolled by the window › on an RTL page › keeps the editor on the cell left side when it fits inside the viewport",1017,null,1027,1113,1054,null,935,null]],
"e2e/comments-editor-resize.spec.ts":[["Comment editor resizing — persisted size › writes the dragged size to the comment cell meta",1171,null,null,null,1225,null,1124,null],["Comment editor resizing › does not swap to another cell comment when the pointer rests on the editor",997,null,null,null,989,null,904,null],["Comment editor resizing › hides the editor when the pointer returns to the same cell it left the editor for",1053,null,null,null,1078,null,924,null],["Comment editor resizing › keeps the editor open when the drag is released outside the textarea",983,null,null,null,949,null,924,null],["Comment editor resizing › keeps the editor open when the pointer leaves it and comes straight back",1053,null,null,null,969,null,860,null],["Comment editor resizing › keeps the editor open while the grip is held, without focusing it",973,null,null,null,959,null,928,null],["Comment editor resizing › keeps the editor open while the resize drag outruns the textarea edge",1042,null,null,null,963,null,914,null],["Comment editor resizing › still hides the editor after a drag released over a cell",1008,null,null,null,984,null,1050,null],["Comment editor resizing › still hides the editor after a resize once the pointer moves away",981,null,null,null,1014,null,919,null],["Comment editor resizing › still hides the editor when the pointer moves to a cell without a comment",1037,null,null,null,1003,null,949,null],["Comment editor resizing › still opens the editor on hover after a resize drag",1042,null,null,null,1021,null,947,null]],
"e2e/complex-demo-states.spec.ts":[["complex demo states › collapsing the \"I\" group hides Password and leaves Name under a collapsed indicator",2204,null,null,null,1769,null,2027,null],["complex demo states › in an RTL grid a drag across three rows and three columns selects that range",1933,null,null,null,1727,null,1922,null],["complex demo states › in an RTL grid the dropdown and context menus are laid out right to left",2308,null,null,null,2070,null,2210,null],["complex demo states › in an RTL grid the select editor opens over an Interest cell, holding that cell's value",1928,null,null,null,1803,null,1948,null],["complex demo states › sorting Age descending, then Interest ascending as the second key, marks both headers in order",2712,null,null,null,2503,null,3213,null],["complex demo states › the dropdown menu opens under Age with its filters components, and the context menu opens on a cell",2380,null,null,null,1956,null,2071,null],["complex demo states › typing \"to\" into a City dropdown bolds the match in each option that holds it and highlights the first",2130,null,null,null,2049,null,2453,null]],
"e2e/context-menu-checked-items.spec.ts":[["context menu items that draw a check mark › a selection that is only partly on (DEV-124) › clears the \"Read-only comment\" dash with one click",1246,null,null,null,1276,null,1470,null],["context menu items that draw a check mark › a selection that is only partly on (DEV-124) › draws and announces both read-only items as mixed, not checked",1063,null,null,null,1058,null,1189,null],["context menu items that draw a check mark › a selection that is only partly on (DEV-124) › judges the comment item only by the cells that hold a comment",1245,null,null,null,1089,null,1298,null],["context menu items that draw a check mark › a selection that is only partly on (DEV-124) › keeps a selection whose every cell is on checked, not mixed",1182,null,null,null,1114,null,1468,null],["context menu items that draw a check mark › a selection that is only partly on (DEV-124) › paints the mixed state with its own glyph, not the check mark",1357,null,null,null,1339,null,1768,null],["context menu items that draw a check mark › a selection that is only partly on (DEV-124) › reads a merged cell by its top-left cell, so it stays checked",1067,null,null,null,1151,null,1308,null],["context menu items that draw a check mark › announces the unchecked state rather than dropping it",1512,null,null,null,1438,null,1688,null],["context menu items that draw a check mark › keeps the label free of markup, so no item needs a sanitizer",1018,null,null,null,994,null,1150,null],["context menu items that draw a check mark › marks and announces \"Read only\" once the selection is read-only",1113,null,null,null,1078,null,1328,null],["context menu items that draw a check mark › marks and announces \"Read-only comment\" once the comment is read-only",1201,null,null,null,1118,null,1420,null],["context menu items that draw a check mark › marks and announces the bordered side in the Borders submenu",1643,null,null,null,1578,null,2058,null]],
"e2e/context-menu-item-override.spec.ts":[["overriding the Comments plugin item in the context menu › disables the item when the user disabled() returns true",null,null,null,null,null,null,1175,null],["overriding the Comments plugin item in the context menu › leaves the item enabled when the user disabled() returns false",null,null,null,null,null,null,976,null],["overriding the Comments plugin item in the context menu › re-evaluates the override on every open of the menu",null,null,null,null,null,null,1034,null],["overriding the Comments plugin item in the context menu › still hides the item when the user hidden() returns true",null,null,null,null,null,null,1137,null]],
"e2e/css-transform-rotate.spec.ts":[["a grid rotated by its host element › keeps the frozen columns above a promoted master scroll layer",906,null,null,null,948,null,892,null]],
"e2e/css-transform-scale.spec.ts":[["a grid built under a CSS scale › lays out at 0.5 exactly as it does unscaled",1696,null,1910,2041,1650,null,1473,null],["a grid built under a CSS scale › lays out at 0.75 exactly as it does unscaled",1670,null,1891,1784,1651,null,1491,null]],
"e2e/ctrl-click-highlight.spec.ts":[["Ctrl+click inside a multiple selection › deselects the only selected cell whether the two clicks are fast or slow",1163,null,null,null,1152,null,1077,null],["Ctrl+click inside a multiple selection › follows every click when the user alternates between two adjacent cells",1355,null,null,null,1361,null,1334,null],["Ctrl+click inside a multiple selection › keeps the highlight on a selected cell the user re-clicks, instead of jumping back",1221,null,null,null,1267,null,1114,null],["Ctrl+click inside a multiple selection › moves the highlight inside a row selection without breaking the selected rows",1260,null,null,null,1246,null,1172,null],["Ctrl+click inside a multiple selection › reads the focus from the active layer, not the last one",1086,null,null,null,1086,null,1003,null],["Ctrl+click inside a multiple selection › still deselects a cell that already holds the highlight",1153,null,null,null,1165,null,1009,null],["Ctrl+click inside a multiple selection › treats a ctrl+double-click as the two ctrl+clicks it is",1182,null,null,null,1205,null,1062,null],["Ctrl+click inside a multiple selection › two ctrl+clicks on the same unfocused cell still deselect it",1330,null,null,null,1217,null,1142,null]],
"e2e/customBorders.spec.ts":[["CustomBorders and UndoRedo › restores a border removed together with its row when the removal is undone",1341,null,null,null,1199,null,1182,null],["CustomBorders and vetoed cell-meta writes › keeps the border in the model when the meta removal is blocked",973,null,null,null,957,null,761,null],["CustomBorders and vetoed cell-meta writes › keeps the border out of the model when the meta write is blocked",896,null,null,null,841,null,838,null],["CustomBorders and vetoed cell-meta writes › keeps the border out of the model when the veto listener removes itself after firing",913,null,null,null,856,null,820,null],["CustomBorders and vetoed cell-meta writes › removes borders even when a `borders` key cascades from the grid settings",867,null,null,null,854,null,856,null],["CustomBorders and vetoed cell-meta writes › removes borders past a benign beforeRemoveCellMeta listener when a `borders` key cascades from the grid settings",939,null,null,null,873,null,856,null],["CustomBorders and vetoed cell-meta writes › replaces the configuration on updateSettings even when a `borders` key cascades from a column",883,null,null,null,920,null,799,null],["CustomBorders border DOM working set › does not materialize custom border DOM in header-only overlays",884,null,null,null,915,null,885,null],["CustomBorders border DOM working set › materializes a border again when its hidden row is shown",861,null,null,null,856,null,820,null],["CustomBorders cascaded and partial borders meta › keeps a column-cascaded side when setBorders merges another side onto the same cell",924,null,null,null,934,null,847,null],["CustomBorders explicit zero width (DEV-1137) › does not paint a 1px edge when a side is configured with width 0",920,null,null,null,835,null,776,null],["CustomBorders external cell-meta writes › clears the model entry when a meta write leaves no visible side",906,null,null,null,874,null,816,null],["CustomBorders external cell-meta writes › replaces the cell borders with the written value (meta write semantics)",811,null,null,null,850,null,844,null],["CustomBorders external cell-meta writes › syncs a user-authored partial borders meta write into the model and renders it",797,null,null,null,871,null,871,null],["CustomBorders initialization render timing › does not leak dropdown-menu buttons into upper nested-header rows on init",899,null,null,null,828,null,869,null],["CustomBorders progressive application (customBordersProgressive) › applies a customBordersProgressive-only settings change",1053,null,null,null,1033,null,949,null],["CustomBorders progressive application (customBordersProgressive) › cancels an in-flight progressive load when the configuration is replaced",887,null,null,null,875,null,778,null],["CustomBorders progressive application (customBordersProgressive) › cancels an in-flight progressive load without firing the hook when the instance is destroyed",884,null,null,null,833,null,741,null],["CustomBorders progressive application (customBordersProgressive) › cancels an in-flight progressive load without firing the hook when the plugin is disabled",863,null,null,null,798,null,835,null],["CustomBorders progressive application (customBordersProgressive) › defers border application and applies it in the background when enabled",1063,null,null,null,1023,null,897,null],["CustomBorders progressive application (customBordersProgressive) › defers border application with the plain boolean `true` form",982,null,null,null,841,null,796,null],["CustomBorders progressive application (customBordersProgressive) › fires afterCustomBordersUpdate synchronously when progressive is disabled (default)",857,null,null,null,815,null,744,null],["CustomBorders progressive application (customBordersProgressive) › flushes an in-flight progressive load even when the structural change is vetoed",832,null,null,null,891,null,787,null],["CustomBorders progressive application (customBordersProgressive) › flushes an in-flight progressive load synchronously when a structural change arrives",875,null,null,null,822,null,835,null],["CustomBorders progressive application (customBordersProgressive) › keeps meta and model in step when a removal arrives mid-load",919,null,null,null,859,null,773,null],["CustomBorders range borders in RTL (issue #6679) › aligns edges and stacks deterministically where ranges of different widths overlap",883,null,null,null,863,null,886,null],["CustomBorders range borders in RTL (issue #6679) › does not leave a border edge sticking out into a column inserted inside a range",1064,null,null,null,1000,null,936,null],["CustomBorders range with a `border` object (issue #6679) › aligns edges and stacks deterministically where ranges of different widths overlap",915,null,null,null,885,null,788,null],["CustomBorders range with a `border` object (issue #6679) › applies the range-level `border` style to empty sides instead of the default",908,null,null,null,798,null,839,null],["CustomBorders range with a `border` object (issue #6679) › does not leave a border edge sticking out into a column inserted inside a range",1040,null,null,null,908,null,814,null],["CustomBorders range with a `border` object (issue #6679) › keeps the borders from both ranges where two ranges overlap",827,null,null,null,808,null,782,null],["CustomBorders row index maintenance › keeps the rendered set correct across repeated add, restyle and remove",921,null,null,null,1007,null,850,null],["CustomBorders selection ownership › clearBorders() keeps custom selections the plugin does not own",1059,null,null,null,1123,null,981,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › drops a border when its own column is removed",863,null,null,null,807,null,823,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › drops a border when its own row is removed",818,null,null,null,826,null,839,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps a border in place when a column is inserted after it at its own index",876,null,null,null,884,null,798,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps a border in place when a row is inserted below it at its own index",874,null,null,null,861,null,769,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps a border on its cell when the column is moved with manualColumnMove",769,null,null,null,776,null,717,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps a border on its cell when the row is moved with manualRowMove",877,null,null,null,819,null,732,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps a border on its data cell when a row is inserted with hidden rows active",838,null,null,null,896,null,814,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps a border on its data cell when a row is inserted with trimmed rows active",776,null,null,null,732,null,645,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps a border on its data cell when a row is removed with trimmed rows active",905,null,null,null,856,null,763,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps borders on their data cells when multiple rows are moved in one batch",838,null,null,null,812,null,676,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › keeps the range border edges aligned across corner and middle cells after an insert",800,null,null,null,780,null,693,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › lets the context menu remove a border after it was shifted by a row insert (orphaned id)",1901,null,null,null,1912,null,1867,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › moves a border back on undo of a row insert and forward again on redo",648,null,null,null,714,null,692,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › moves a border down by the inserted amount for a multi-row insert",853,null,null,null,763,null,776,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › moves a border down when a row is inserted above it",913,null,null,null,952,null,852,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › moves a border right by the inserted amount for a multi-column insert",890,null,null,null,835,null,750,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › moves a border right when a column is inserted before it",877,null,null,null,918,null,823,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › moves a border up when a row above it is removed",905,null,null,null,905,null,811,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › repaints the column headers after a column insert",920,null,null,null,990,null,815,null],["CustomBorders structural changes (issues #11031, #6063, #3296) › repaints the column headers after a column removal",945,null,null,null,883,null,826,null],["CustomBorders viewport sync timing › draws an externally written border without waiting for a further render",870,null,null,null,891,null,891,null],["CustomBorders viewport sync timing › redraws a frozen-column border that scrolls back into the rendered range",1110,null,null,null,983,null,936,null],["CustomBorders viewport sync timing › renders a batch of external border meta writes once",967,null,null,null,869,null,826,null],["CustomBorders with frozen rows and columns › keeps the frozen column border rendered after scrolling far right",1098,null,null,null,1122,null,996,null],["CustomBorders with frozen rows and columns › keeps the frozen row border rendered after scrolling far down",1082,null,null,null,1107,null,992,null],["CustomBorders with frozen rows and columns › renders borders located in the frozen areas",1064,null,null,null,1034,null,878,null]],
"e2e/data-provider-external-mode.spec.ts":[["a dataProvider blocked by a conflicting option › leaves Pagination and Filters working on the local rows (manualColumnMove)",null,null,null,null,null,null,845,null],["a dataProvider blocked by a conflicting option › leaves Pagination and Filters working on the local rows (manualRowMove)",null,null,null,null,null,null,873,null],["a dataProvider blocked by a conflicting option › leaves Pagination and Filters working on the local rows (multiColumnSorting)",null,null,null,null,null,null,858,null],["a dataProvider blocked by a conflicting option › leaves Pagination and Filters working on the local rows (trimRows)",null,null,null,null,null,null,967,null],["Pagination follows a dataProvider enabled after init › the pager switches to the server total and back, and a dataProvider added again does not reuse the old total",null,null,null,null,null,null,919,null]],
"e2e/data-provider-refetch-after-create.spec.ts":[["dataProvider.refetchAfterCreate: false on a sorted grid › a context-menu insert keeps the sort, skips the refetch, and shows the applied row",1454,null,null,null,1293,null,1189,null],["dataProvider.refetchAfterCreate: false on a sorted grid › cell meta stays on its record across the insert",1335,null,null,null,1322,null,1207,null]],
"e2e/data-provider-refetch-failed-query.spec.ts":[["dataProvider Refetch after a failed fetch › a Refetch that fails again keeps the pager and offers the same retry",1182,null,null,null,1535,null,1524,null],["dataProvider Refetch after a failed fetch › after a later failed filter, an old toast's Refetch loads the newer filter instead of rolling it back",1239,null,null,null,1241,null,1166,null],["dataProvider Refetch after a failed fetch › after a later failed sort, an old toast's Refetch loads the newer sort instead of rolling it back",1255,null,null,null,1208,null,1182,null],["dataProvider Refetch after a failed fetch › after a later successful fetch, an old toast's Refetch reloads the current state",1531,null,null,null,1352,null,1198,null],["dataProvider Refetch after a failed fetch › Refetch after a failed filter loads the filtered rows and keeps the filter",1071,null,null,null,1157,null,1121,null],["dataProvider Refetch after a failed fetch › Refetch after a failed page change loads the requested page",1136,null,null,null,1373,null,1251,null],["dataProvider Refetch after a failed fetch › Refetch after a failed page-size change loads the requested page size",1162,null,null,null,1292,null,1285,null],["dataProvider Refetch after a failed fetch › Refetch after a failed sort loads the sorted rows and keeps the sort indicator",1328,null,null,null,1371,null,1336,null]],
"e2e/data-provider-sheets-bar.spec.ts":[["dataProvider with sheetsBar › a grid without sheets › a grid without columns maps the first response's sort through the loaded rows",1086,null,null,null,1092,null,940,null],["dataProvider with sheetsBar › a grid without sheets › a save refetches with the dataProvider set while it was pending",1356,null,null,null,1243,null,1069,null],["dataProvider with sheetsBar › a grid without sheets › destroying a plain grid mid-fetch aborts silently",1106,null,null,null,1017,null,1003,null],["dataProvider with sheetsBar › a grid-level dataProvider set later › is blocked on a local sheet the workbook opened on, without emptying it",1294,null,null,null,1480,null,1190,null],["dataProvider with sheetsBar › a grid-level dataProvider set later › is blocked on a local sheet without touching its rows, sort, or filters",1501,null,null,null,1420,null,1465,null],["dataProvider with sheetsBar › a grid-level dataProvider set later › is blocked on a sheet that declares `dataProvider: null`",1201,null,null,null,1272,null,1075,null],["dataProvider with sheetsBar › a grid-level dataProvider set later › sent again on a server sheet keeps the sheet's own dataProvider, rows, and query",1434,null,null,null,1466,null,1238,null],["dataProvider with sheetsBar › a grid-level dataProvider set later › sent again while the server sheet fetches leaves that fetch running",1213,null,null,null,1169,null,1176,null],["dataProvider with sheetsBar › a save of a grid without sheets still pending when the sheets bar is enabled › fails without reverting into, refetching for, or toasting on the new workbook",1312,null,null,null,1164,null,985,null],["dataProvider with sheetsBar › a sheet data array the host declared › is replaced, not written into, when an off-screen response lands",1263,null,null,null,1175,null,1172,null],["dataProvider with sheetsBar › an off-screen failure and user error listeners › an off-screen fetch failure is kept as a fetch failure: Refetch on return, no automatic refetch",1395,null,null,null,1626,null,1527,null],["dataProvider with sheetsBar › an off-screen failure and user error listeners › an off-screen update failure is kept as an update failure, shown once on return",1420,null,null,null,1295,null,1210,null],["dataProvider with sheetsBar › an off-screen fetch failure and the visible sheet › a failed fetch after a switch rolls back to the arriving sheet's own conditions",1415,null,null,null,1671,null,1335,null],["dataProvider with sheetsBar › an off-screen fetch failure and the visible sheet › a failed filter on a visited unfiltered sheet rolls back to its own empty conditions",1643,null,null,null,1687,null,1504,null],["dataProvider with sheetsBar › an off-screen fetch failure and the visible sheet › leaves a filtered local sheet's conditions alone",1317,null,null,null,1517,null,1113,null],["dataProvider with sheetsBar › an off-screen fetch failure and the visible sheet › leaves a filtered server sheet's conditions and its loading overlay alone",1630,null,null,null,1796,null,1533,null],["dataProvider with sheetsBar › moving between sheets › a canceled switch leaves the fetch running on the current sheet",1261,null,null,null,1276,null,1077,null],["dataProvider with sheetsBar › moving between sheets › a memoized fetchRows that returns the same array does not empty the sheet it lands in",1749,null,null,null,1792,null,1663,null],["dataProvider with sheetsBar › moving between sheets › a response that lands off-screen drops the cell meta the sheet kept for its old rows",1545,null,null,null,1357,null,1305,null],["dataProvider with sheetsBar › moving between sheets › an off-screen page clamp refetches with the query of the fetch it corrects",1485,null,null,null,1465,null,1264,null],["dataProvider with sheetsBar › moving between sheets › fetchData() fetches the visible sheet",1251,null,null,null,1144,null,1129,null],["dataProvider with sheetsBar › moving between sheets › first visit to a server sheet fetches it",1174,null,null,null,1081,null,990,null],["dataProvider with sheetsBar › moving between sheets › leaving mid-fetch stores the rows in the sheet it was started for",1414,null,null,null,1422,null,1330,null],["dataProvider with sheetsBar › moving between sheets › local sheet after a paged server sheet shows its own rows",1322,null,null,null,1200,null,1169,null],["dataProvider with sheetsBar › moving between sheets › returning restores rows, sort, filters, page and total without fetching",1473,null,null,null,1605,null,1412,null],["dataProvider with sheetsBar › moving between sheets › returning to a filtered server sheet keeps the server result instead of filtering locally",1977,null,null,null,1984,null,1779,null],["dataProvider with sheetsBar › moving between sheets › returning to a sorted server sheet keeps the server order instead of sorting locally",1804,null,null,null,1859,null,1704,null],["dataProvider with sheetsBar › moving between sheets › returning while the fetch is still running waits for it",1371,null,null,null,1433,null,1231,null],["dataProvider with sheetsBar › moving between sheets › sort after returning to a pending sheet supersedes the pending fetch",1362,null,null,null,1357,null,1218,null],["dataProvider with sheetsBar › off-screen failures and in-flight saves › a create in flight refetches the sheet it was made on",1234,null,null,null,1142,null,1114,null],["dataProvider with sheetsBar › off-screen failures and in-flight saves › a remove in flight refetches the page of the sheet it was made on",1403,null,null,null,1317,null,1258,null],["dataProvider with sheetsBar › off-screen failures and in-flight saves › a save that fails off-screen leaves the visible sheet alone and reloads its own sheet",1564,null,null,null,1722,null,1494,null],["dataProvider with sheetsBar › off-screen failures and in-flight saves › an edit queued behind a slow save sends the rows of the sheet it was made on",1289,null,null,null,1134,null,1022,null],["dataProvider with sheetsBar › off-screen failures and in-flight saves › an off-screen failure fires the hook now and shows the toast on return",1697,null,null,null,1768,null,1701,null],["dataProvider with sheetsBar › off-screen failures and in-flight saves › an on-screen save failure's notification leaves with its sheet and comes back on return",1452,null,null,null,1274,null,1248,null],["dataProvider with sheetsBar › off-screen failures and in-flight saves › Refetch from the deferred toast loads the sheet",1728,null,null,null,1669,null,1660,null],["dataProvider with sheetsBar › off-screen failures and in-flight saves › the deferred toast brings back the sheet's sort and page",1528,null,null,null,1346,null,1300,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › a rebuild drops the fetch of the workbook it replaces",1334,null,null,null,1267,null,1157,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › a rebuild hides the fetch error notification of the sheet it replaces",1245,null,null,null,1311,null,1097,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › a rebuild keeps a grid-level dataProvider blocked without fetching it",1309,null,null,null,1240,null,1098,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › a rebuilt workbook fetches a server sheet on its first visit",1761,null,null,null,1579,null,1485,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › a save queued before a rebuild that fails afterwards leaves the new workbook alone",1354,null,null,null,1218,null,1256,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › leaving a rebuilt workbook's first fetch keeps its rows out of the local sheet",1332,null,null,null,1258,null,1238,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › turning the sheets bar off after rebuilds leaves no server sheet's dataProvider on the grid",1350,null,null,null,1369,null,1227,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › turning the sheets bar off gives the grid its own dataProvider back",1364,null,null,null,1263,null,1167,null],["dataProvider with sheetsBar › rebuilding, enabling, and disabling the sheets bar › turning the sheets bar off hides the fetch error notification of the sheet it showed",1195,null,null,null,1103,null,1093,null],["dataProvider with sheetsBar › remove and duplicate › a duplicate starts with a full snapshot and fetches nothing on its first visit",1341,null,null,null,1354,null,1361,null],["dataProvider with sheetsBar › remove and duplicate › destroy aborts every fetch",1268,null,null,null,1136,null,1140,null],["dataProvider with sheetsBar › remove and duplicate › duplicate while the original is fetching",1251,null,null,null,1270,null,1240,null],["dataProvider with sheetsBar › remove and duplicate › remove a background sheet with a detached fetch",1250,null,null,null,1261,null,1147,null],["dataProvider with sheetsBar › remove and duplicate › removing a server sheet mid-fetch aborts silently",1094,null,null,null,994,null,964,null],["dataProvider with sheetsBar › returning while a save's refetch of the sheet is still running › replays the saved response first, then the refetch lands",1388,null,null,null,1258,null,1277,null],["dataProvider with sheetsBar › setup › a grid-level dataProvider is disabled with one warning",1358,null,null,null,1174,null,1085,null],["dataProvider with sheetsBar › sheets with different columns › a response that lands off-screen restores sort and filters through its own sheet's columns",1745,null,null,null,1697,null,1477,null],["dataProvider with sheetsBar › the loading overlay and the selection across a switch › an overlay hidden by the switch leaves the arriving sheet's own selection",1435,null,null,null,1310,null,1322,null],["dataProvider with sheetsBar › the loading overlay and the selection across a switch › an overlay kept across the switch restores the arriving sheet's own selection when its fetch lands",1440,null,null,null,1452,null,1281,null],["dataProvider with sheetsBar › the loading overlay when the sheets bar is enabled on a fetching grid › hides once the grid's fetch is dropped",1418,null,null,null,1105,null,1144,null],["dataProvider with sheetsBar › the pager › a page fetch that lands after returning from a sheet with another page size keeps its page",1880,null,null,null,1777,null,1741,null],["dataProvider with sheetsBar › the pager › a server sheet fetching for the first time does not show another sheet's total",1167,null,null,null,1201,null,1198,null],["dataProvider with sheetsBar › the pager › a server sheet whose first fetch failed off-screen does not show another sheet's total",1509,null,null,null,1326,null,1298,null],["dataProvider with sheetsBar › the pager › returning to a sheet with another page size shows its saved page without a refetch",1520,null,null,null,1565,null,1488,null],["dataProvider with sheetsBar › the view state DataProvider brings in line on a switch › a dataProvider the user sets on the visible server sheet stays with that sheet",1758,null,null,null,1448,null,1210,null],["dataProvider with sheetsBar › the view state DataProvider brings in line on a switch › a sheet without a stored response refetches with its own query, not the previous sheet's",1621,null,null,null,1677,null,1627,null],["dataProvider with sheetsBar › the view state DataProvider brings in line on a switch › a successful fetch hides the sheet's fetch error notification, which then does not come back",1642,null,null,null,1181,null,1080,null],["dataProvider with sheetsBar › the view state DataProvider brings in line on a switch › every fetch error notification of a sheet leaves with it, and only the latest failure comes back",1636,null,null,null,1781,null,1595,null],["dataProvider with sheetsBar › the view state DataProvider brings in line on a switch › returning to a sheet whose fetch still runs works without the EmptyDataState plugin",1191,null,null,null,1122,null,1100,null],["dataProvider with sheetsBar › the visible sheet after an on-screen load › a failed save queued behind a landed refetch reverts on screen and shows its toast now",1323,null,null,null,1263,null,1106,null],["dataProvider with sheetsBar › the visible sheet after an on-screen load › a save's refetch lands on screen after a sort replaced the rows",1205,null,null,null,1262,null,1216,null],["dataProvider with sheetsBar › what the sheets bar keeps for a sheet › does not pass through afterDataProviderFetch listeners",1725,null,null,null,1302,null,1201,null],["dataProvider with sheetsBar › work queued for a sheet › a create that fails off-screen shows its toast on return, not before",1351,null,null,null,1264,null,1323,null],["dataProvider with sheetsBar › work queued for a sheet › a failed save for a removed sheet neither reloads it nor shows a toast",1271,null,null,null,1169,null,1121,null],["dataProvider with sheetsBar › work queued for a sheet › a remove that fails off-screen shows its toast on return, not before",1309,null,null,null,1188,null,1144,null],["dataProvider with sheetsBar › work queued for a sheet › a save for a removed sheet does not refetch it",1235,null,null,null,1170,null,1126,null],["dataProvider with sheetsBar › work queued for a sheet › re-configuring the visible sheet leaves another sheet's fetch running",1581,null,null,null,1467,null,1430,null],["dataProvider with sheetsBar › working on a sheet › a local sheet sorts and filters client-side and is never overwritten",1187,null,null,null,977,null,890,null]],
"e2e/data-schema-update.spec.ts":[["Data schema update through updateSettings() › applies the hidden columns declared in the settings again",null,null,null,null,null,null,859,null],["Data schema update through updateSettings() › keeps the column order when a new function returns the same columns",null,null,null,null,null,null,902,null],["Data schema update through updateSettings() › keeps the column order when an equal schema is sent again",null,null,null,null,null,null,886,null],["Data schema update through updateSettings() › keeps the column order when data and an equal schema arrive together",null,null,null,null,null,null,800,null],["Data schema update through updateSettings() › keeps the column order when new data arrives without a schema",null,null,null,null,null,null,921,null],["Data schema update through updateSettings() › keeps the column order when only the default value of a property changes",null,null,null,null,null,null,841,null],["Data schema update through updateSettings() › keeps the column order when the update does not mention the schema",null,null,null,null,null,null,789,null],["Data schema update through updateSettings() › leaves the state alone when `columns` decides the column count",null,null,null,null,null,null,891,null],["Data schema update through updateSettings() › reads the properties in the key order of a reordered schema",null,null,null,null,null,null,780,null],["Data schema update through updateSettings() › resets columns hidden through the API",null,null,null,null,null,null,935,null],["Data schema update through updateSettings() › resets filtering",null,null,null,null,null,null,891,null],["Data schema update through updateSettings() › resets manual column widths",null,null,null,null,null,null,880,null],["Data schema update through updateSettings() › resets sorting",null,null,null,null,null,null,912,null],["Data schema update through updateSettings() › resets the column order when a new function returns other columns",null,null,null,null,null,null,824,null],["Data schema update through updateSettings() › resets the column order when data and a schema with other columns arrive together",null,null,null,null,null,null,880,null],["Data schema update through updateSettings() › resets the column order when the schema is cleared and the data decides the columns",null,null,null,null,null,null,861,null],["Data schema update through updateSettings() › resets the column order when the schema keeps its size but renames the properties",null,null,null,null,null,null,845,null],["Data schema update through updateSettings() › resolves the column count of a narrower schema and resets the column order",null,null,null,null,null,null,923,null],["Data schema update through updateSettings() › resolves the column count of a wider schema and resets the column order",null,null,null,null,null,null,867,null],["Data schema update through updateSettings() › starts with the control state the other tests rely on",null,null,null,null,null,null,832,null]],
"e2e/date-editor-incomplete-input.spec.ts":[["the date editor and a segment cleared from the open input › keeps every selected cell's date when Ctrl+Enter would fill the selection",null,null,null,null,null,null,891,null],["the date editor and a segment cleared from the open input › keeps the cell's date in a column that rejects the empty value but allows the invalid one",null,null,null,null,null,null,962,null],["the date editor and a segment cleared from the open input › keeps the cell's date when another cell is clicked",null,null,null,null,null,null,991,null],["the date editor and a segment cleared from the open input › keeps the cell's date when Enter commits it",null,null,null,null,null,null,912,null],["the date editor and a segment cleared from the open input › keeps the cell's date when Tab leaves the editor",null,null,null,null,null,null,951,null],["the date editor and a segment cleared from the open input › keeps the editor open in a column that rejects the empty value and the invalid one",null,null,null,null,null,null,959,null],["the date editor and a segment cleared from the open input › leaves the fill from an empty cell to the validator in a column that rejects the empty value",null,null,null,null,null,null,914,null],["the date editor and a segment cleared from the open input › still fills the selection from an empty cell whose input was left untouched",null,null,null,null,null,null,978,null],["the date editor and an incomplete date › does not carry a seeded date into the next session on the same cell",null,null,1039,1069,null,null,984,null],["the date editor and an incomplete date › keeps the cell's date after a typed digit and a switch to full edit mode, without badInput",null,null,1178,1088,null,null,961,null],["the date editor and an incomplete date › keeps the cell's date when a typed digit opens the editor and Enter commits it",null,null,1057,1213,null,null,886,null],["the date editor and an incomplete date › keeps the cell's date when a typed letter opens the editor and another cell is clicked",null,null,1951,1169,null,null,995,null],["the date editor and an incomplete date › keeps the cell's date when a typed letter opens the editor and Enter commits it",null,null,1890,1026,null,null,872,null],["the date editor and an incomplete date › keeps the cell's date when a typed letter opens the editor and Tab leaves it",null,null,1103,1087,null,null,937,null],["the date editor and an incomplete date › still clears the cell when the input is cleared on purpose",null,null,1083,1123,null,null,948,null],["the date editor and an incomplete date › still commits a complete date entered into the input",null,null,1063,1072,null,null,1013,null]],
"e2e/date-editor-keyboard-focus.spec.ts":[["the date editor opened with the keyboard › closes on Escape",null,null,1076,1076,null,null,901,null],["the date editor opened with the keyboard › closes the picker and keeps the focus on the page when Enter commits",null,null,1160,1124,null,null,1119,null],["the date editor opened with the keyboard › focuses its input",null,null,979,1046,null,null,891,null],["the date editor opened with the keyboard › takes the digits typed after Enter",null,null,1012,1033,null,null,915,null]],
"e2e/date-editor-native-input.spec.ts":[["the native date editor › asks the browser for its picker when a double-click opens the editor",1151,null,null,null,1168,null,972,null],["the native date editor › commits a date entered into the input and renders it in the column's format",1200,null,null,null,1235,null,1122,null],["the native date editor › keeps the cell's date when Enter commits a date left incomplete",1172,null,null,null,1098,null,1012,null],["the native date editor › opens a native date input on the cell's ISO date, without the picker",1178,null,null,null,1087,null,991,null]],
"e2e/datetime-cell-type.spec.ts":[["intl-datetime cell type › commits an edited datetime and renders it formatted",null,null,null,null,null,null,997,null],["intl-datetime cell type › filters with the datetime \"Today\" condition regardless of the time part",null,null,null,null,null,null,1412,null],["intl-datetime cell type › opens a native datetime-local editor seeded with the raw ISO source value",null,null,null,null,null,null,976,null],["intl-datetime cell type › renders ISO source data formatted via Intl.DateTimeFormat",null,null,null,null,null,null,827,null],["intl-datetime cell type › sorts the column chronologically on header click",null,null,null,null,null,null,1016,null]],
"e2e/dialog-states.spec.ts":[["dialog states › a semi-transparent backdrop lets the grid show through, under a filled content box",944,null,null,null,880,null,775,null],["dialog states › a solid backdrop covers the grid opaquely, with the content box centered and unfilled",891,null,null,null,859,null,815,null],["dialog states › in an RTL grid the dialog is laid out right to left over the root",1457,null,null,null,1291,null,1326,null],["dialog states › Tab and Shift+Tab move around a dialog that holds inputs, and its afterDialogFocus listener takes the focus to \"Input 1\"",980,null,null,null,978,null,1020,null],["dialog states › Tab onto a dialog draws its border in the accent color while its focus catcher holds the focus",928,null,null,null,912,null,865,null],["dialog states › the confirm template fills its title, description and buttons, and Enter on OK hides it",1208,null,null,null,1262,null,1262,null]],
"e2e/disable-visual-selection-current-row-class.spec.ts":[["disableVisualSelection vs currentRow/ColClassName (DEV-228) › disableVisualSelection: 'header' › keeps currentRowClassName across the selected row and currentColClassName down the column",null,null,null,null,null,null,1198,null],["disableVisualSelection vs currentRow/ColClassName (DEV-228) › disableVisualSelection: 'header' › marks the row and column HEADER cells with the classes but not the header-selection highlight",null,null,null,null,null,null,1200,null],["disableVisualSelection vs currentRow/ColClassName (DEV-228) › the other values behave as before › ['area', 'header'] keeps the classes (its blast radius includes 'header')",null,null,null,null,null,null,1242,null],["disableVisualSelection vs currentRow/ColClassName (DEV-228) › the other values behave as before › ['current', 'area', 'header'] hides the classes (array branch - the case the new gate introduces)",null,null,null,null,null,null,1173,null],["disableVisualSelection vs currentRow/ColClassName (DEV-228) › the other values behave as before › ['current', 'header'] keeps the classes (the other changed-behavior value)",null,null,null,null,null,null,1233,null],["disableVisualSelection vs currentRow/ColClassName (DEV-228) › the other values behave as before › area keeps the classes",null,null,null,null,null,null,1182,null],["disableVisualSelection vs currentRow/ColClassName (DEV-228) › the other values behave as before › current keeps the classes (only the focus cell highlight is suppressed)",null,null,null,null,null,null,1141,null],["disableVisualSelection vs currentRow/ColClassName (DEV-228) › the other values behave as before › false shows the classes on body AND header cells, plus the header highlight",null,null,null,null,null,null,1138,null],["disableVisualSelection vs currentRow/ColClassName (DEV-228) › the other values behave as before › true hides the classes (boolean branch)",null,null,null,null,null,null,1203,null]],
"e2e/drag-selection-range.spec.ts":[["a selection dragged with the mouse › spans from the cell the drag starts in to the cell it ends over",1169,null,1161,1271,1112,null,1050,null]],
"e2e/dropdown-editor-clip.spec.ts":[["dropdown editor list escapes the grid clip (#8688) › an ancestor that is NOT the containing block for a fixed box › places the list on its cell inside a container-query ancestor",947,null,null,null,944,null,845,null],["dropdown editor list escapes the grid clip (#8688) › an ancestor that is the containing block for a fixed box › places the list on its cell inside a `contained` ancestor",952,null,null,null,899,null,917,null],["dropdown editor list escapes the grid clip (#8688) › an ancestor that is the containing block for a fixed box › places the list on its cell inside a `modal` ancestor",956,null,null,null,922,null,876,null],["dropdown editor list escapes the grid clip (#8688) › following the cell › does not re-write a list height it has already applied",1246,null,null,null,1210,null,1140,null],["dropdown editor list escapes the grid clip (#8688) › following the cell › flips a `multiselect` list back below the cell once a scroll gives it room again",1161,null,null,null,1197,null,1026,null],["dropdown editor list escapes the grid clip (#8688) › following the cell › grows a trimmed list back when the cell gains room again",1107,null,null,null,1129,null,999,null],["dropdown editor list escapes the grid clip (#8688) › following the cell › hides a `multiselect` list without throwing when a page scroll unrenders its row",1121,null,null,null,948,null,933,null],["dropdown editor list escapes the grid clip (#8688) › following the cell › keeps a `multiselect` list's own scroll position when the grid scrolls",1091,null,null,null,1221,null,972,null],["dropdown editor list escapes the grid clip (#8688) › following the cell › re-clamps a `multiselect` list when the grid's own scroll moves the cell",1066,null,null,null,1085,null,1104,null],["dropdown editor list escapes the grid clip (#8688) › following the cell › re-decides the flip on scroll instead of riding off the viewport",1089,null,null,null,1025,null,980,null],["dropdown editor list escapes the grid clip (#8688) › following the cell › stays on the cell when the page scrolls",988,null,null,null,977,null,973,null],["dropdown editor list escapes the grid clip (#8688) › the list is no longer bounded by the grid › keeps a `handsontable` list inside the viewport so its last options stay reachable",1169,null,null,null,1156,null,1073,null],["dropdown editor list escapes the grid clip (#8688) › the list is no longer bounded by the grid › shows every option of a `multiselect` editor",1022,null,null,null,1037,null,894,null],["dropdown editor list escapes the grid clip (#8688) › the list is no longer bounded by the grid › shows every option on a `height: \"auto\"` grid shorter than the list (the reported shape)",1066,null,null,null,926,null,868,null],["dropdown editor list escapes the grid clip (#8688) › the list is no longer bounded by the grid › shows every option on a grid inside a scrolling parent",1071,null,null,null,976,null,980,null],["dropdown editor list escapes the grid clip (#8688) › the list is no longer bounded by the grid › shows every option on a grid with a fixed `height` that clips its root",927,null,null,null,997,null,939,null]],
"e2e/dropdown-height.spec.ts":[["autocomplete dropdown height › flex-squeezed grid — every option is rendered and the last one is reachable from the keyboard",1145,null,null,null,1053,null,993,null],["autocomplete dropdown height › flex-squeezed grid — the editor no longer sizes the list to zero",1041,null,null,null,1008,null,941,null],["autocomplete dropdown height › flex-squeezed grid — the first option is really on screen",994,null,null,null,946,null,920,null],["autocomplete dropdown height › normal-height grid — the untrimmed list keeps showing all options",1101,null,null,null,1018,null,982,null]],
"e2e/dropdown-menu-freeze-column.spec.ts":[["freeze_column / unfreeze_column as dropdown menu keys › a command registered under a whole `parent:child` key › is executed without rebuilding the item list",null,null,null,null,null,null,1152,null],["freeze_column / unfreeze_column as dropdown menu keys › a command registered under a whole `parent:child` key › runs without throwing",null,null,null,null,null,null,1094,null],["freeze_column / unfreeze_column as dropdown menu keys › a custom list that does not name the keys › is left exactly as the developer wrote it",null,null,null,null,null,null,1236,null],["freeze_column / unfreeze_column as dropdown menu keys › alongside the Filters interface › puts the entry after the filter items",null,null,null,null,null,null,1296,null],["freeze_column / unfreeze_column as dropdown menu keys › dropdownMenu: true › freezes the picked column",null,null,null,null,null,null,1351,null],["freeze_column / unfreeze_column as dropdown menu keys › dropdownMenu: true › offers the entry alongside the built-in items",null,null,null,null,null,null,1147,null],["freeze_column / unfreeze_column as dropdown menu keys › manualColumnFreeze disabled › reports the key as an unknown command through the API",null,null,null,null,null,null,1107,null],["freeze_column / unfreeze_column as dropdown menu keys › manualColumnFreeze disabled › skips the unresolvable keys instead of rendering raw-key rows",null,null,null,null,null,null,1242,null],["freeze_column / unfreeze_column as dropdown menu keys › manualColumnFreeze disabled › warns on the console so the developer can find the key",null,null,null,null,null,null,1924,null],["freeze_column / unfreeze_column as dropdown menu keys › the contextMenu path › still freezes the column",null,null,null,null,null,null,1234,null],["freeze_column / unfreeze_column as dropdown menu keys › the keys listed explicitly in dropdownMenu › freezes the picked column",null,null,null,null,null,null,1284,null],["freeze_column / unfreeze_column as dropdown menu keys › the keys listed explicitly in dropdownMenu › leaves the columns past the freeze point where they were",null,null,null,null,null,null,1260,null],["freeze_column / unfreeze_column as dropdown menu keys › the keys listed explicitly in dropdownMenu › offers the entry exactly once",null,null,null,null,null,null,1132,null],["freeze_column / unfreeze_column as dropdown menu keys › the keys listed explicitly in dropdownMenu › offers unfreeze only once the column is frozen",null,null,null,null,null,null,1217,null],["freeze_column / unfreeze_column as dropdown menu keys › the keys listed explicitly in dropdownMenu › renders the translated label, not the raw key",null,null,null,null,null,null,1173,null],["freeze_column / unfreeze_column as dropdown menu keys › the keys listed explicitly in dropdownMenu › stays at one entry after the menu is reopened",null,null,null,null,null,null,1331,null],["freeze_column / unfreeze_column as dropdown menu keys › the keys listed explicitly in dropdownMenu › unfreezes the column again from the frozen area",null,null,null,null,null,null,1596,null],["freeze_column / unfreeze_column as dropdown menu keys › toggling manualColumnFreeze after the menu was built › drops the entry when the plugin is turned off",null,null,null,null,null,null,1382,null],["freeze_column / unfreeze_column as dropdown menu keys › toggling manualColumnFreeze after the menu was built › leaves an already open menu alone",null,null,null,null,null,null,1349,null],["freeze_column / unfreeze_column as dropdown menu keys › toggling manualColumnFreeze after the menu was built › picks the entry up when a plugin that started off is turned on",null,null,null,null,null,null,1483,null],["freeze_column / unfreeze_column as dropdown menu keys › toggling manualColumnFreeze after the menu was built › refuses the command through the API once the plugin is off",null,null,null,null,null,null,1179,null],["freeze_column / unfreeze_column as dropdown menu keys › toggling manualColumnFreeze after the menu was built › runs the command through the API without the menu ever being opened",null,null,null,null,null,null,1201,null],["freeze_column / unfreeze_column as dropdown menu keys › toggling manualColumnFreeze after the menu was built › still runs the command through the API while the plugin is on",null,null,null,null,null,null,1183,null]],
"e2e/dropdown-object-values.spec.ts":[["key/value source with object values (sourceLabel) › copies the label `sourceLabel` derives, not `[object Object]`",null,null,null,null,null,null,1103,1083],["key/value source with object values (sourceLabel) › exports the label `sourceLabel` derives as the cell value",null,null,null,null,null,null,1151,1091],["key/value source with object values (sourceLabel) › hands the formula engine the label `sourceLabel` derives",null,null,null,null,null,null,1129,997],["key/value source with object values (sourceLabel) › keeps the list order of a key/value column without `sourceLabel` unchanged",null,null,null,null,null,null,1335,1208],["key/value source with object values (sourceLabel) › keeps the source order of an alphabetical string key/value list under `sourceLabel`",null,null,null,null,null,null,1198,1025],["key/value source with object values (sourceLabel) › leaves out an entry whose label resolves to nothing",null,null,null,null,null,null,1262,1073],["key/value source with object values (sourceLabel) › lists a string-valued entry of a mixed source by its text and stores the entry",null,null,null,null,null,null,1340,1118],["key/value source with object values (sourceLabel) › lists every option by its label in the dropdown",null,null,null,null,null,null,1308,975],["key/value source with object values (sourceLabel) › lists key/value entries of a mixed source by their labels and stores the one picked",null,null,null,null,null,null,1458,1232],["key/value source with object values (sourceLabel) › lists labels in the Filters value list and filters by one of them",null,null,null,null,null,null,1655,1391],["key/value source with object values (sourceLabel) › orders an alphabetical list (`sortByRelevance: false`) by the label",null,null,null,null,null,null,1213,1261],["key/value source with object values (sourceLabel) › renders the cell with the label `sourceLabel` derives",null,null,null,null,null,null,1276,832],["key/value source with object values (sourceLabel) › resolves a pasted plain-text label into the source entry",null,null,null,null,null,null,1237,999],["key/value source with object values (sourceLabel) › sorts the column by the label, keeping each object entry whole",null,null,null,null,null,null,1321,1118],["key/value source with object values (sourceLabel) › stores the source entry picked with the mouse, nested object intact",null,null,null,null,null,null,1584,1088],["key/value source with object values (sourceLabel) › stores the source entry when the label is typed and committed with Enter",null,null,null,null,null,null,1442,1195]],
"e2e/dropdown-scroll-round-trip.spec.ts":[["layered editor — scroll round-trip (DEV-26) › autocomplete list returns and re-queries on keystroke after a scroll round-trip",1244,null,null,null,1197,null,1137,null],["layered editor — scroll round-trip (DEV-26) › dropdown list returns, populated and navigable, after a scroll round-trip",1284,null,null,null,1187,null,1105,null],["layered editor — scroll round-trip (DEV-26) › plain text editor round-trip is unchanged (negative control)",1109,null,null,null,1075,null,1129,null]],
"e2e/dropdown-strict-validation.spec.ts":[["dropdown validation with `strict: false` (DEV-2911) › keeps a flexible autocomplete value and an in-source dropdown value valid",null,null,null,null,null,null,842,null],["dropdown validation with `strict: false` (DEV-2911) › keeps validating strictly after updateSettings() rebuilds the cell meta",null,null,null,null,null,null,971,null],["dropdown validation with `strict: false` (DEV-2911) › marks a loaded value outside the source invalid on validateCells()",null,null,null,null,null,null,759,null],["dropdown validation with `strict: false` (DEV-2911) › marks a pasted value outside the source invalid in a cell that was never selected",null,null,null,null,null,null,944,null],["dropdown validation with `strict: false` (DEV-2911) › marks a value filled by autofill invalid in cells that were never selected",null,null,null,null,null,null,1137,null],["dropdown validation with `strict: false` (DEV-2911) › rejects a pasted value outside the source when allowInvalid is false",null,null,null,null,null,null,925,null],["dropdown validation with `strict: false` (DEV-2911) › validates strictly when `strict: false` comes from the `cells` option",null,null,null,null,null,null,851,null]],
"e2e/dropdown-width.spec.ts":[["dropdown list width › trimDropdown default — list keeps matching the edited cell width",963,null,null,null,1071,null,914,null],["dropdown list width › trimDropdown:false — long options: list still grows wider than the edited cell",1067,null,null,null,975,null,1015,null],["dropdown list width › trimDropdown:false — short options: list rows are at least as wide as the edited cell",1122,null,null,null,1053,null,1007,null]],
"e2e/editor-disabled.spec.ts":[["editor: false – disabled checkbox › clicking a disabled checkbox selects its cell",null,null,1191,1299,null,null,997,null],["editor: false › a \"type\" set on a single cell does not re-enable editing disabled at grid level",null,null,null,null,null,null,1056,null],["editor: false › a `cell` entry opts back in with `editor: true`, also after a cache reset",null,null,null,null,null,null,1135,null],["editor: false › a `cells()` opt-in on one cell leaves the other cells of a column with `editor: false` disabled",null,null,null,null,null,null,1116,null],["editor: false › a checkbox change writes nothing when the grid has no editor",null,null,null,null,null,null,956,null],["editor: false › a checkbox click is cancelled when the grid has no editor, even without `disabled`",null,null,null,null,null,null,1002,null],["editor: false › a checkbox repaints as enabled under renderMode \"onChange\" once `cells()` opts it in",null,null,null,null,null,null,973,null],["editor: false › a checkbox with no editor is rendered disabled",null,null,null,null,null,null,907,null],["editor: false › a column \"type\" does not re-enable editing disabled at grid level",null,null,null,null,null,null,1043,null],["editor: false › a column \"type\" still applies its renderer under a grid-level editor: false",null,null,null,null,null,null,867,null],["editor: false › a column with `editor: true` stays editable under a grid-level editor: false",null,null,null,null,null,null,1083,null],["editor: false › a single cell opts back in with `editor: true` through setCellMeta()",null,null,null,null,null,null,1137,null],["editor: false › Backspace leaves a checkbox with no editor unchanged",null,null,null,null,null,null,962,null],["editor: false › Delete clears the text cells of a selection that holds a checkbox with no editor",null,null,null,null,null,null,1133,null],["editor: false › Delete leaves a checkbox with no editor unchanged",null,null,null,null,null,null,983,null],["editor: false › Delete leaves a checkbox with no editor unchanged while its column is not rendered",null,null,null,null,null,null,1217,null],["editor: false › Delete writes a checkbox-free selection once in a grid with a checkbox column",null,null,null,null,null,null,1089,null],["editor: false › Enter moves the selection on a readOnly cell",null,null,null,null,null,null,1046,null],["editor: false › Enter opens no editor and the selection stays put — column",null,null,null,null,null,null,991,null],["editor: false › Enter opens no editor and the selection stays put — grid level",null,null,null,null,null,null,1070,null],["editor: false › Enter opens no editor and the selection stays put — hook",null,null,null,null,null,null,1061,null],["editor: false › Enter opens no editor and the selection stays put — single cell",null,null,null,null,null,null,1024,null],["editor: false › Enter opens no editor and the selection stays put — single row",null,null,null,null,null,null,1025,null],["editor: false › Enter opens the editor on an editable cell",null,null,null,null,null,null,1018,null],["editor: false › readOnlyStyling: false renders a checkbox with no editor enabled, and a click still changes nothing",null,null,null,null,null,null,980,null],["editor: false › setCellMeta() `editor: true` keeps a named editor the cell inherits from its column",null,null,null,null,null,null,1103,null],["editor: false › setCellMeta() `editor: true` opts in a cell whose `type` comes from its column",null,null,null,null,null,null,1209,null],["editor: false › Space does not toggle a checkbox when the grid has no editor",null,null,null,null,null,null,993,null],["editor: false › typing does not start an edit on a cell with no editor",null,null,null,null,null,null,1031,null],["editor: false › undo of an `editor` write brings back an earlier `editor: true` opt-in",null,null,null,null,null,null,1251,null],["editor: false › undo takes back an `editor: true` opt-in made through setCellMeta()",null,null,null,null,null,null,1245,null],["editor: false › updateSettings({ editor: false }) disables an untyped column",null,null,null,null,null,null,1062,null],["editor: false › updateSettings({ editor: false }) without `columns` leaves a typed column editable",null,null,null,null,null,null,1060,null],["editor: false › updateSettings({ editor: false, columns }) disables a typed column",null,null,null,null,null,null,1024,null]],
"e2e/editor-factory-portal.spec.ts":[["An editorFactory editor with position \"portal\" › opens on the cell under LTR",939,null,null,null,842,null,844,null],["An editorFactory editor with position \"portal\" › opens on the cell under LTR on a scrolled page that is offset from the viewport origin",932,null,null,null,872,null,887,null],["An editorFactory editor with position \"portal\" › opens on the cell under RTL",1003,null,null,null,997,null,807,null],["An editorFactory editor with position \"portal\" › opens on the cell under RTL grid on an LTR page",1040,null,null,null,784,null,818,null],["An editorFactory editor with position \"portal\" › opens on the cell under RTL grid on an LTR page on a scrolled page that is offset from the viewport origin",1012,null,null,null,878,null,874,null],["An editorFactory editor with position \"portal\" › opens on the cell under RTL on a scrolled page that is offset from the viewport origin",1023,null,null,null,927,null,947,null]],
"e2e/editor-focused-input-listening.spec.ts":[["An editor whose own input takes the browser focus › does not unlisten the grid",1037,607,null,null,960,505,931,813],["An editor whose own input takes the browser focus › keeps the editor's own Escape working after a right click in the field",1037,698,null,null,935,525,907,808]],
"e2e/editor-hidden-cell.spec.ts":[["editor whose cell is hidden by a hiding index map › finishes the edit when a pagination button click hides the edited cell",1145,null,null,null,1065,null,962,null],["editor whose cell is hidden by a hiding index map › finishes the edit when a programmatic page change hides the edited cell",1046,null,null,null,1056,null,994,null],["editor whose cell is hidden by a hiding index map › finishes the edit when hiddenColumns hides the edited cell",1069,null,null,null,985,null,929,null],["editor whose cell is hidden by a hiding index map › finishes the edit when hiddenRows hides the edited cell",1022,null,null,null,1037,null,943,null],["editor whose cell is hidden by a hiding index map › leaves the editor open when an index-map change keeps the edited cell rendered",1013,null,null,null,982,null,908,null],["editor whose cell is only scrolled out of view › leaves the edit pending",950,null,null,null,914,null,879,null],["editor whose commit is rejected while its cell is hidden › closes when a synchronous validator rejects the value",1030,null,null,null,1009,null,891,null],["editor whose commit is rejected while its cell is hidden › closes when an async validator is still in flight as the cell is hidden",1917,null,null,null,1854,null,1807,null],["editor with a hiding map and a sorted index mapping › commits to the record being edited, not the one at the same visual index",1177,null,null,null,1025,null,945,null],["editor with a hiding map and a sorted index mapping › leaves a visible cell alone when the row at its physical index is the hidden one",988,null,null,null,1051,null,1045,null],["non-text editors whose cell is hidden › closes the multiselect editor when a page change hides the edited cell",1041,null,null,null,951,null,903,null],["non-text editors whose cell is hidden › finishes the dropdown edit when a page change hides the edited cell",1091,null,null,null,1031,null,1139,null],["non-text editors whose cell is hidden › finishes the dropdown edit when hiddenRows hides the edited cell",1234,null,null,null,1032,null,1018,null],["non-text editors whose cell is hidden › finishes the select edit when a page change hides the edited cell",1000,null,null,null,1076,null,903,null]],
"e2e/editor-open-checkbox-focus.spec.ts":[["A checkbox taking the focus while a cell is being edited › has no open editor left by the time the mouseup verdict runs",959,null,null,null,790,null,887,null],["A checkbox taking the focus while a cell is being edited › still unlistens the grid when no cell is being edited",730,null,null,null,738,null,734,null]],
"e2e/editor-prevent-close-element.spec.ts":[["An editor with a preventCloseElement outside the grid › commits the value the panel reported",1060,709,null,null,1010,676,933,880],["An editor with a preventCloseElement outside the grid › ignores a grid-containing surface across a shadow boundary too",1017,620,null,null,962,554,862,760],["An editor with a preventCloseElement outside the grid › ignores a surface that contains the grid, and says so once",1037,680,null,null,983,543,983,741],["An editor with a preventCloseElement outside the grid › still ends the edit on a click outside both the grid and the panel",1070,615,null,null,1008,546,909,736],["An editor with a preventCloseElement outside the grid › survives a press inside the surface released outside it",1047,669,null,null,1009,557,913,814],["An editor with a preventCloseElement outside the grid › survives a press on a surface that was assigned in afterOpen",928,609,null,null,924,511,871,748],["An editor with a preventCloseElement outside the grid › survives the browser focus moving into that element",947,664,null,null,898,583,777,824],["An editor with a preventCloseElement outside the grid › survives the focus move with outsideClickDeselects disabled",1068,633,null,null,955,538,838,716],["An editor with a preventCloseElement outside the grid › survives the focus moving into an input inside that element",876,584,null,null,956,526,765,777]],
"e2e/editor-trimmed-row.spec.ts":[["a data replacement whose selection repair throws › ends the selection source it began, so the grid still takes typing",null,null,null,null,null,null,975,822],["a data swap that strands the editor › discards when the filter lands in the same task as the swap",null,null,null,null,null,null,881,792],["a data swap under an open editor › keeps the edit against the new data set",null,null,null,null,null,null,986,844],["a data swap under an open editor › keeps the edit when the swap does not change the row count",null,null,null,null,null,null,961,818],["a grid-tracking extent through a restore › does not grow a shrunk select-all back over the row it excluded",null,null,null,null,null,null,953,799],["a grid-tracking extent through a restore › does not re-pin a drag-selected range that merely reached both ends of the grid",null,null,null,null,null,null,918,801],["a grid-tracking extent through a restore › grows a whole-column selection with an open editor when an untrim is batched with a sort",null,null,null,null,null,null,892,814],["a grid-tracking extent through a restore › grows it no further than maxRows lets the grid show, with an open editor",null,null,null,null,null,null,914,804],["a grid-tracking extent through a restore › keeps a shrunk column layer shrunk when the same update drops an earlier layer and untrims rows",null,null,null,null,null,null,1387,1365],["a grid-tracking extent through a restore › re-pins a select-all onto the rows an untrim brought back",null,null,null,null,null,null,929,797],["a nested alter inside a context-menu removal › keeps the selection on the column after the removed one",null,null,null,null,null,null,884,736],["a nested alter inside a context-menu removal › keeps the selection on the record after the removed row",null,null,null,null,null,null,864,746],["a nested alter inside batch() › lands on the record after both removals",null,null,null,null,null,null,846,719],["a removal that strands the editor › discards rather than appending when a later filter would commit through it",null,null,null,null,null,null,989,811],["a removal that strands the editor › discards when the filter lands in the same task as the removal",null,null,null,null,null,null,947,812],["a selection made while a shift is held › stays where it was made",null,null,null,null,null,null,873,711],["a sequence change under an open editor › follows the record through a row move",null,null,null,null,null,null,1004,908],["a sequence change under an open editor › follows the record through a sort",null,null,null,null,null,null,1011,837],["a sorted index mapping under the trim › commits to the record being edited, not the one at the same visual index",null,null,null,null,null,null,990,861],["a structural change after select all › does not re-select the grid for a vetoed removal",null,null,null,null,null,null,921,708],["a structural change after select all › re-selects the grid once for a vetoed insert",null,null,null,null,null,null,807,713],["a structural change after select all › re-selects the grid once for an insert",null,null,null,null,null,null,879,742],["a structural change that gets vetoed › leaves the reconciliation working for the rest of the edit",null,null,null,null,null,null,987,874],["a structural change while an editor is open › commits to the right record when a row is inserted",null,null,null,null,null,null,998,886],["a structural change while an editor is open › keeps a valid edit when an unrelated row is removed",null,null,null,null,null,null,994,861],["a throwing alter with a held shift › reports its own error, not one a selection hook throws",null,null,null,null,null,null,797,679],["a trimming update that reveals records › does not widen the active range onto a record an untrim revealed between its corners",null,null,null,null,null,null,978,747],["a trimming-map write that moves nothing › leaves the open edit untouched",null,null,null,null,null,null,991,826],["a vetoed alter between a strand and a filter › closes its scope so the filter still discards",null,null,null,null,null,null,967,784],["a vetoed alter between a strand and a filter › closes its scope when the alter throws instead of returning",null,null,null,null,null,null,914,833],["an index-map change nested inside a removal › commits to the record it was typed into when the nested alter is on the column axis",null,null,null,null,null,null,980,826],["an index-map change nested inside a removal › commits to the record it was typed into when the nested alter removes nothing",null,null,null,null,null,null,993,849],["an index-map change nested inside a removal › composes both removals when the nested alter removes a row too",null,null,null,null,null,null,981,849],["an index-map change nested inside a removal › follows the data order when the nested change lands first",null,null,null,null,null,null,853,731],["an index-map change nested inside a removal › keeps an edit that the pending re-prepare is about to rescue",null,null,null,null,null,null,1009,815],["an index-map change nested inside a removal › keeps both shifts when the edited record is not the last one",null,null,null,null,null,null,973,871],["an index-map change nested inside a removal › lands on the same record when a trim follows the nested alter",null,null,null,null,null,null,960,843],["an index-map change on the column axis › follows the record through a column move",null,null,null,null,null,null,955,857],["an index-map change on the column axis › keeps a valid edit when another column is removed",null,null,null,null,null,null,1026,853],["commit paths that read the selection after trimming › a Ctrl+Enter commit writes to its record after a trim",null,null,null,null,null,null,945,841],["commit paths that read the selection after trimming › a dropdown edit commits to its record after a trim moves it",null,null,null,null,null,null,1000,915],["commit paths that read the selection after trimming › collapses a fully trimmed active range onto one parked cell",null,null,null,null,null,null,906,744],["commit paths that read the selection after trimming › commits to the surviving selected records when the active range loses a corner",null,null,null,null,null,null,888,766],["commit paths that read the selection after trimming › does not widen a multi-cell selection when a moved row crosses it",null,null,null,null,null,null,909,735],["commit paths that read the selection after trimming › does not widen the active range onto records the trim slid in behind it",null,null,null,null,null,null,901,762],["commit paths that read the selection after trimming › drops a fully trimmed active range whose own slot the trim left out of range",null,null,null,null,null,null,933,772],["commit paths that read the selection after trimming › drops unresolved layers without changing the source or firing selection hooks",null,null,null,null,null,null,889,781],["commit paths that read the selection after trimming › keeps the active range on its survivors when the trim removes its focus and rows above it",null,null,null,null,null,null,937,812],["commit paths that read the selection after trimming › preserves a whole-column selection when rows are trimmed",null,null,null,null,null,null,923,782],["commit paths that read the selection after trimming › repaints a surviving multi-cell layer when the active layer is a single cell",null,null,null,null,null,null,877,798],["commit paths that read the selection after trimming › shrinks the active range onto its surviving records rather than dropping it",null,null,null,null,null,null,940,805],["edges of the repair › deselects when a trim removes every row while an editor is open",null,null,null,null,null,null,959,787],["edges of the repair › re-prepares a prepared-but-untyped editor when a trim moves its cell",null,null,null,null,null,null,871,767],["edges of the repair › survives the public hook being fired without a payload",null,null,null,null,null,null,956,788],["Filters keeps the edited record but moves it › commits the edit to the record it was typed into",null,null,null,null,null,null,998,869],["Filters trims the edited record away › discards the edit instead of appending rows to reach a stale coordinate",null,null,null,null,null,null,943,829],["Filters trims the edited record away › discards the edit instead of writing it onto the record that took the slot",null,null,null,null,null,null,967,798],["states the captured record has to survive › discards an edit whose cell was scrolled out of view before the filter ran",null,null,null,null,null,null,1016,881],["states the captured record has to survive › leaves an edit alone when a row above it is removed",null,null,null,null,null,null,978,878],["the order held shifts are folded in › keeps a held column shift when the outer row shift is written",null,null,null,null,null,null,884,729],["the order held shifts are folded in › keeps the landing order for a call nested before the second of two groups",null,null,null,null,null,null,878,755],["the order held shifts are folded in › keeps the landing order when a spare row is appended after the nested removal",null,null,null,null,null,null,883,791],["the order held shifts are folded in › keeps the landing order when a spare row is appended before the nested removal",null,null,null,null,null,null,865,738],["the order held shifts are folded in › keeps the landing order when a write past the last row adds one after the nested removal",null,null,null,null,null,null,930,721],["the order held shifts are folded in › keeps the selection on its record when the nested removal is below the outer one",null,null,null,null,null,null,854,678],["the order held shifts are folded in › lets an alter fired from a spare-row append repair the selection at once",null,null,null,null,null,null,913,780],["trimRows removes or moves the edited record › closes the editor and leaves a later click unable to commit",null,null,null,null,null,null,1046,865],["trimRows removes or moves the edited record › re-prepares from post-trim state when the user keeps typing after the discard",null,null,null,null,null,null,1022,839],["trimRows removes or moves the edited record › rebinds the open editor so Enter commits to the record it was typed into",null,null,null,null,null,null,885,842]],
"e2e/editor-window-scroll.spec.ts":[["editor position on window scroll › tracks a frozen-corner cell while the window scrolls",1344,null,null,null,1170,null,1135,null],["editor position on window scroll › tracks a regular cell while the window scrolls",1189,null,null,null,1117,null,1182,null]],
"e2e/empty-data-state-clipped-container-scrollbar.spec.ts":[["empty data state over a space-taking scrollbar in a container that clips its overflow › with `height: auto` the overlay ends above the horizontal scrollbar",1056,null,null,null,946,null,1090,null]],
"e2e/empty-data-state-clipped-container.spec.ts":[["empty data state in a container that clips its overflow › with `height: auto` the overlay leaves the pagination bar uncovered",956,null,866,931,973,null,795,null],["empty data state in a container that clips its overflow › with `height: auto` the overlay stays inside the grid with columns and no rows",982,null,882,879,954,null,910,null],["empty data state in a container that clips its overflow › with `height: auto` the overlay stays inside the grid with no columns",925,null,877,909,909,null,834,null],["empty data state in a container that clips its overflow › with a fixed height the overlay still fills the grid body with columns and no rows",957,null,834,974,926,null,832,null],["empty data state in a container that clips its overflow › with a fixed height the overlay still fills the grid body with no columns",969,null,822,937,783,null,764,null]],
"e2e/empty-data-state-layout.spec.ts":[["empty data state layout › filtering every value out from the keyboard shows the no-results message, and Reset filters clears it",1379,null,null,null,1293,null,1367,null],["empty data state layout › in an RTL grid the message and its no-results state are mirrored under the headers",985,null,null,null,952,null,846,null],["empty data state layout › with `height: auto`, and with no height, the grid shrinks to the headers plus the message",2064,null,null,null,1919,null,1650,null],["empty data state layout › with a fixed height the message fills the grid body under the column headers",963,null,null,null,912,null,854,null],["empty data state layout › with no columns the message covers the whole root, the header corner included",948,null,null,null,904,null,795,null]],
"e2e/empty-data-state-loading-size.spec.ts":[["emptyDataState loading overlay shown between renders › fits a grid that became narrower since the overlay was last shown",1575,null,null,null,1339,null,1320,null],["emptyDataState loading overlay shown between renders › fits a grid that became wider since the overlay was last shown",1534,null,null,null,1437,null,1469,null],["emptyDataState loading overlay shown between renders › leaves the pager uncovered on a grid that became shorter since the overlay was last shown",1450,null,null,null,1425,null,1288,null]],
"e2e/empty-data-state-shortcuts.spec.ts":[["emptyDataState keyboard shortcuts › does not let Ctrl+Enter overwrite the data it cannot show",null,null,null,null,null,null,1273,null],["emptyDataState keyboard shortcuts › does not let Ctrl+M merge the cells it cannot show",null,null,null,null,null,null,1364,null],["emptyDataState keyboard shortcuts › does not let Delete clear the data it cannot show",null,null,null,null,null,null,1380,null],["emptyDataState keyboard shortcuts › does not let Delete clear the data the loading overlay covers",null,null,null,null,null,null,1192,null],["emptyDataState keyboard shortcuts › does not let Space toggle the checkboxes it cannot show",null,null,null,null,null,null,1249,null],["emptyDataState keyboard shortcuts › does not move a selection hidden under the loading overlay with Home, End or Ctrl+Shift+arrows",null,null,null,null,null,null,965,null],["emptyDataState keyboard shortcuts › does not select the covered cells while a data provider fetch is in flight",null,null,null,null,null,null,1025,null],["emptyDataState keyboard shortcuts › does not take the keyboard from an open dialog when settings change",null,null,null,null,null,null,1105,null],["emptyDataState keyboard shortcuts › keeps an arrow key from walking the selection under the overlay",null,null,null,null,null,null,1000,null],["emptyDataState keyboard shortcuts › keeps the keyboard through a settings change when it already had it",null,null,null,null,null,null,1116,null],["emptyDataState keyboard shortcuts › leaves the chord unclaimed when there is nothing to select",null,null,null,null,null,null,1054,null],["emptyDataState keyboard shortcuts › lets Tab out of the loading overlay it covers the grid with",null,null,null,null,null,null,844,null],["emptyDataState keyboard shortcuts › lets Tab out of the overlay instead of swallowing it",null,null,null,null,null,null,1093,null],["emptyDataState keyboard shortcuts › lets Tab out of the overlay with navigable headers too",null,null,null,null,null,null,1223,null],["emptyDataState keyboard shortcuts › moves between the headers above the overlay with navigable headers",null,null,null,null,null,null,852,null],["emptyDataState keyboard shortcuts › redoes with both bindings, back into the overlay",null,null,null,null,null,null,1359,null],["emptyDataState keyboard shortcuts › restores the grid shortcut context once the overlay hides",null,null,null,null,null,null,1428,null],["emptyDataState keyboard shortcuts › selects all cells with the keyboard while every column is hidden",null,null,null,null,null,null,1208,null],["emptyDataState keyboard shortcuts › still lets Tab off the headers it keeps the selection on",null,null,null,null,null,null,998,null],["emptyDataState keyboard shortcuts › undoes a full row removal with the keyboard while the overlay is shown",null,null,null,null,null,null,1124,null]],
"e2e/empty-value.spec.ts":[["empty cell values › `emptyValue: null` › applies to a date column too",null,null,null,null,null,null,862,null],["empty cell values › `emptyValue: null` › does not touch a zero, which is a real value and not an empty cell",null,null,null,null,null,null,863,null],["empty cell values › `emptyValue: null` › leaves a real pasted value alone, and lets the column type parse it",null,null,null,null,null,null,835,null],["empty cell values › `emptyValue: null` › restores a real `''` when a removed row is undone",null,null,null,null,null,null,856,null],["empty cell values › `emptyValue: null` › still preserves `null` on a confirm that changed nothing",null,null,null,null,null,null,893,null],["empty cell values › `emptyValue: null` › stores `null` for a blank pasted cell (#6380)",null,null,null,null,null,null,833,null],["empty cell values › `emptyValue: null` › stores `null` when the user empties a numeric cell",null,null,null,null,null,null,943,null],["empty cell values › `emptyValue: null` › stores `null` when the user empties a text cell",null,null,null,null,null,null,883,null],["empty cell values › `emptyValue` defaults › stores an empty string, so existing grids are unchanged",null,null,null,null,null,null,934,null],["empty cell values › a confirm that changed nothing (#3927) › does not stringify a boolean confirmed unchanged in a text column",null,null,null,null,null,null,967,null],["empty cell values › a confirm that changed nothing (#3927) › does not stringify a number confirmed unchanged in a text column",null,null,null,null,null,null,825,null],["empty cell values › a confirm that changed nothing (#3927) › fires no change event on a cell without a validator",null,null,null,null,null,null,973,null],["empty cell values › a confirm that changed nothing (#3927) › fires no change event on a validated cell either",null,null,null,null,null,null,1006,null],["empty cell values › a confirm that changed nothing (#3927) › keeps `null` in a numeric cell",null,null,null,null,null,null,804,null],["empty cell values › a confirm that changed nothing (#3927) › keeps `null` in a text cell",null,null,null,null,null,null,789,null],["empty cell values › a confirm that changed nothing (#3927) › keeps `null` on a Ctrl+Enter over a single cell",null,null,null,null,null,null,795,null],["empty cell values › a confirm that changed nothing (#3927) › keeps `null` on a Ctrl+Enter with no selection range",null,null,null,null,null,null,887,null],["empty cell values › a confirm that changed nothing (#3927) › leaves a populated cell untouched, and still fires no change event",null,null,null,null,null,null,878,null],["empty cell values › an editor that `allowInvalid: false` reopens › keeps `null` on the second confirm, not just the first",null,null,null,null,null,null,868,null],["empty cell values › the guard must not swallow a real edit › saves a fast edit, where typing opens the editor",null,null,null,null,null,null,919,null],["empty cell values › the guard must not swallow a real edit › saves a typed value into a `null` cell",null,null,null,null,null,null,876,null],["empty cell values › the guard must not swallow a real edit › saves a typed value over a populated cell",null,null,null,null,null,null,881,null],["empty cell values › the guard must not swallow a real edit › saves when the user genuinely empties a populated cell",null,null,null,null,null,null,892,null]],
"e2e/fill-handle-aborted-init.spec.ts":[["autofill after an aborted grid init › does not throw on a pointer move after an init aborted before the view existed",null,null,null,null,null,null,1025,null],["autofill after an aborted grid init › measures the table only while the fill handle is actually held",null,null,null,null,null,null,1231,null]],
"e2e/fill-handle-diagonal-drag.spec.ts":[["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › counts the rows of a diagonal drag across a hidden row",1197,null,1227,1339,1223,null,1098,null],["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › fills down after a slow diagonal drag",1371,null,1334,1371,1330,null,980,null],["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › fills down along the dominant axis after a single diagonal jump",1193,null,1184,1195,1047,null,888,null],["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › fills down when the pointer is as many rows below as columns beside the selection",1099,null,2230,1238,1132,null,1028,null],["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › fills sideways when the pointer is more columns beside than rows below the selection",1140,null,1990,1259,1021,null,1048,null],["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › fills up after a diagonal jump up and to the inline end",1194,null,1240,1242,1076,null,1043,null],["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › fills up after a diagonal jump up and to the inline start",1210,null,1220,1281,1066,null,977,null],["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › ignores the forbidden axis when `direction` is `horizontal`",1193,null,1249,1315,1151,null,1035,null],["fill handle drag direction (DEV-140) › a drag that leaves the selection on both axes › ignores the forbidden axis when `direction` is `vertical`",1245,null,1199,1325,1128,null,1106,null],["fill handle drag direction (DEV-140) › auto-inserted rows › fills down into a new row when the pointer rests below the last row, one column to the side",1118,null,1150,1317,1106,null,1002,null],["fill handle drag direction (DEV-140) › auto-inserted rows › fills the inserted row after a drag down and to the inline start (ticket case 2)",1130,null,1188,1271,1065,null,1046,null],["fill handle drag direction (DEV-140) › auto-inserted rows › fills the row inserted under a pointer that rests below the grid",1174,null,1149,1242,1136,null,993,null],["fill handle drag direction (DEV-140) › auto-inserted rows › fills the row it inserts below the visible part of a fixed-height grid",1238,null,1100,1480,1106,null,1088,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts a row for a drag locked vertically, however far past the inline-end edge it goes",1307,null,1261,1367,1262,null,1119,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts a row when both axes are allowed and the pointer is further below than beside the grid",1257,null,1157,1272,1178,null,1033,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts and fills a row when the pointer drifts past the inline-end edge (ticket case 1)",1220,null,1208,1234,1131,null,931,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts no row at the end of a long fixed-height grid while its last row is not rendered",1160,null,1273,1418,1112,null,1062,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts no row for a mostly sideways drag past the inline-end edge of an RTL grid",1208,null,1242,1309,1081,null,1189,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts no row once the button is released after a drag onto the last row",1422,null,2391,1474,1298,null,1254,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts no row once the button is released before the insertion is due",1183,null,1209,1347,1224,null,1130,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts no row while the drag extends the selection sideways",1185,null,1166,1321,1159,null,1030,null],["fill handle drag direction (DEV-140) › auto-inserted rows › inserts no row, and fills nothing, when only the page scrolls under a resting pointer",1411,null,1353,1560,1407,null,1130,null],["fill handle drag direction (DEV-140) › auto-inserted rows › keeps the preview on the selection when `maxRows` refuses the insertion",1135,null,1097,1185,1053,null,929,null],["fill handle drag direction (DEV-140) › auto-inserted rows › stops the fill at the rendered rows of a long fixed-height grid",1134,null,1265,1452,1161,null,1103,null],["fill handle drag direction (DEV-140) › auto-inserted rows › undoes the fill of an inserted row and then the insertion",1124,null,2240,1336,1120,null,1022,null]],
"e2e/fill-handle-disable-mid-drag.spec.ts":[["fill handle disabled mid-drag › ends the drag state when the fill handle is disabled between mousedown and mouseup",1178,null,null,null,1211,null,1140,null],["fill handle disabled mid-drag › ends the drag when updateSettings narrows the allowed direction mid-drag",1042,null,null,null,988,null,914,null],["fill handle disabled mid-drag › keeps a drag alive when updateSettings re-sends the same fillHandle value mid-drag",1141,null,null,null,1103,null,1001,null],["fill handle disabled mid-drag › keeps the fill handle usable for a drag after it was disabled mid-gesture and re-enabled",1296,null,null,null,1301,null,1151,null]],
"e2e/fill-handle-double-click.spec.ts":[["fill handle double-click › ends the drag state once the double-click fill-down is applied",1205,null,null,null,1105,null,1044,null],["fill handle double-click › keeps the fill handle usable for a drag after a double-click fill-down",1326,null,null,null,1295,null,1207,null]],
"e2e/fill-handle-formulas.spec.ts":[["fill handle over a formulas range › populates dates and formulas from a range dragged below the viewport",2942,2321,null,null,3106,2286,2797,2413]],
"e2e/fill-handle-frozen-panes.spec.ts":[["fill handle and frozen panes › hides the fill handle behind the bottom frozen rows when the cell scrolls under them",1061,null,null,null,947,null,922,null],["fill handle and frozen panes › hides the fill handle behind the frozen columns when the cell scrolls under them",1012,null,null,null,1013,null,921,null],["fill handle and frozen panes › keeps the fill handle between the move bands and the frozen panes in the stack",1040,null,null,null,969,null,951,null],["fill handle and frozen panes › keeps the resize pills under the frozen panes in the stack",1050,null,null,null,879,null,820,null],["fill handle and frozen panes › leaves the frozen-column handle flush with the pane edge instead of lifting it",907,null,null,null,909,null,782,null],["fill handle and frozen panes › leaves the frozen-top-row handle flush with the pane edge instead of lifting it",835,null,null,null,938,null,747,null],["fill handle and frozen panes › lifts the fill handle above the bottom freeze seam so it stays whole",940,null,null,null,900,null,849,null],["fill handle and frozen panes › the fill handle of a frozen top row › keeps the handle of the last column when it is wider than the viewport and scrolled to the end",1089,null,null,null,1106,null,957,null],["fill handle and frozen panes › the fill handle of a frozen top row › leaves a frozen column's handle to the frozen corner when the grid scrolls",1338,null,null,null,1552,null,1351,null],["fill handle and frozen panes › the fill handle of a frozen top row › leaves an inline-end frozen column's handle to the frozen corner",1144,null,null,null,1116,null,1082,null],["fill handle and frozen panes › the fill handle of a frozen top row › stays off the inline-end frozen columns in RTL",1327,null,null,null,1382,null,1276,null],["fill handle and frozen panes › the fill handle of a frozen top row › stays off the inline-end frozen columns when its column scrolls under them",1315,null,null,null,1342,null,1333,null],["fill handle and frozen panes › the fill handle of a frozen top row › stays off the row headers in RTL",1399,null,null,null,1322,null,1264,null],["fill handle and frozen panes › the fill handle of a frozen top row › stays off the row headers when its column scrolls behind them",1187,null,null,null,1240,null,1192,null]],
"e2e/fill-handle-merged-cells.spec.ts":[["fill-handle double click over merged cells › fills the whole column down when merging is off",null,null,1209,1556,null,null,1010,null],["fill-handle double click over merged cells › refuses a fill-down that would cut a merged area",null,null,1153,1296,null,null,995,null]],
"e2e/filters-available-conditions.spec.ts":[["filters.availableConditions › drops only the excluded operator on a numeric column that inherits the grid rule",null,null,null,null,null,null,1163,null],["filters.availableConditions › filters by a condition picked from a column allow-list",null,null,null,null,null,null,1292,null],["filters.availableConditions › gives the second condition select the same column list",null,null,null,null,null,null,1320,null],["filters.availableConditions › keeps showing, and applying, a condition the list no longer offers",null,null,null,null,null,null,1211,null],["filters.availableConditions › shows a column allow-list in its own order",null,null,null,null,null,null,1137,null],["filters.availableConditions › shows the stock list on a text column with no rule",null,null,null,null,null,null,1207,null],["filters.availableConditions › shows the stock numeric list once the grid rule is removed",null,null,null,null,null,null,1237,null]],
"e2e/filters-data-replace-cycle.spec.ts":[["Filters — replacing data with an active filter › does not crash when a cell in a filtered column is edited after a data replace",null,null,null,null,null,null,953,null],["Filters — replacing data with an active filter › does not crash when data is replaced twice with an active filter",null,null,null,null,null,null,911,null],["keeps filter-menu keyboard focus navigation working after a data replace",null,null,null,null,null,null,1367,null]],
"e2e/filters-date-between.spec.ts":[["Filters - \"Is between\" input type › carries a date from \"Is equal to\" over to the first bound of \"Is between\"",null,null,1826,2181,null,null,1626,null],["Filters - \"Is between\" input type › drops text the time input cannot hold when the condition changes to \"Is between\"",null,null,2090,2237,null,null,1681,null],["Filters - \"Is between\" input type › filters a date column by ISO values entered in the date inputs",null,null,1648,2515,null,null,1487,null],["Filters - \"Is between\" input type › keeps text inputs on a numeric column",null,null,1469,1663,null,null,1334,null],["Filters - \"Is between\" input type › keeps the condition key \"between\" on a date column",null,null,1678,1936,null,null,1556,null],["Filters - \"Is between\" input type › renders date inputs on a date column",null,null,1499,2605,null,null,1436,null],["Filters - \"Is between\" input type › restores date inputs when the menu reopens on a condition set through the API",null,null,1326,1458,null,null,1222,null],["Filters - \"Is between\" input type › switches the shared inputs back to text when the next column is numeric",null,null,1900,2141,null,null,1606,null]],
"e2e/filters-date-equal.spec.ts":[["Filters - \"Is equal to\" input type › drops the matching row for \"Is not equal to\" on the \"Delivery\" column",null,null,1593,2104,null,null,1414,null],["Filters - \"Is equal to\" input type › drops the matching row for \"Is not equal to\" on the \"Sell date\" column",null,null,1630,2116,null,null,1548,null],["Filters - \"Is equal to\" input type › keeps a text input for \"Is equal to\" on the \"Meets\" column",null,null,2692,2159,null,null,1278,null],["Filters - \"Is equal to\" input type › keeps a text input for \"Is equal to\" on the \"Name\" column",null,null,1468,1805,null,null,1211,null],["Filters - \"Is equal to\" input type › keeps a text input for \"Is equal to\" on the \"Qty\" column",null,null,1443,1778,null,null,1372,null],["Filters - \"Is equal to\" input type › keeps a text input for \"Is equal to\" on the \"Starts\" column",null,null,1487,1831,null,null,1272,null],["Filters - \"Is equal to\" input type › keeps the condition key \"eq\" on a date column",null,null,1582,2040,null,null,1382,null],["Filters - \"Is equal to\" input type › keeps the matching row for \"Is equal to\" on the \"Delivery\" column",null,null,1645,2020,null,null,1308,null],["Filters - \"Is equal to\" input type › keeps the matching row for \"Is equal to\" on the \"Sell date\" column",null,null,2564,2026,null,null,1433,null],["Filters - \"Is equal to\" input type › renders a date input for \"Is equal to\" on the \"Delivery\" column",null,null,1440,2009,null,null,1246,null],["Filters - \"Is equal to\" input type › renders a date input for \"Is equal to\" on the \"Sell date\" column",null,null,1479,1994,null,null,1268,null],["Filters - \"Is equal to\" input type › renders a date input for \"Is not equal to\" on the \"Delivery\" column",null,null,1454,1880,null,null,1266,null],["Filters - \"Is equal to\" input type › renders a date input for \"Is not equal to\" on the \"Sell date\" column",null,null,1458,2147,null,null,1320,null],["Filters - \"Is equal to\" input type › restores the date input for a \"Is not equal to\" condition set through the API",null,null,1339,1480,null,null,1138,null],["Filters - \"Is equal to\" input type › restores the date input when the menu reopens on a condition set through the API",null,null,1240,1598,null,null,1062,null],["Filters - \"Is equal to\" input type › switches the shared input back to text when the next column is not a date column",null,null,1934,2356,null,null,1651,null]],
"e2e/filters-date-value-list-rerender.spec.ts":[["Filters — date Filter-by-value display after a settings update › keeps an application listener running after the formatter once the filters option is re-sent",null,null,null,null,null,null,1229,null],["Filters — date Filter-by-value display after a settings update › keeps the formatted dates after the filters option is re-sent",null,null,null,null,null,null,1197,null],["Filters — date Filter-by-value display after a settings update › keeps the formatted dates when the locale changes after the filters option is re-sent",null,null,null,null,null,null,1074,null],["Filters — date Filter-by-value display after a settings update › lists the formatted dates on the first opening",null,null,null,null,null,null,1001,null]],
"e2e/filters-edit-in-filtered-column.spec.ts":[["Filters — editing a cell in a column filtered by value › confirming the menu afterwards keeps the filter instead of dropping it",null,null,null,null,null,null,1522,null],["Filters — editing a cell in a column filtered by value › drops a selected value once the edit removes it from the column",null,null,null,null,null,null,1641,null],["Filters — editing a cell in a column filtered by value › leaves the edited row on screen until the filter is applied again",null,null,null,null,null,null,1232,null],["Filters — editing a cell in a column filtered by value › lists the typed value without checking it",null,null,null,null,null,null,1471,null]],
"e2e/filters-fixed-rows.spec.ts":[["filtering with fixedRowsTop / fixedRowsBottom › drops the pinned rows' values from the list when filterFixedRows is false",null,null,null,null,null,null,1111,null],["filtering with fixedRowsTop / fixedRowsBottom › filters the pinned rows away by default",null,null,null,null,null,null,1262,null],["filtering with fixedRowsTop / fixedRowsBottom › hides the row that an insert pushes out of the frozen pane",null,null,null,null,null,null,1436,null],["filtering with fixedRowsTop / fixedRowsBottom › keeps its own filtered value checked when the menu is reopened",null,null,null,null,null,null,1482,null],["filtering with fixedRowsTop / fixedRowsBottom › keeps the pinned rows on screen when filterFixedRows is false",null,null,null,null,null,null,1362,null],["filtering with fixedRowsTop / fixedRowsBottom › keeps the pinned rows when nothing else matches",null,null,null,null,null,null,1220,null],["filtering with fixedRowsTop / fixedRowsBottom › keeps the selection where it was when an insert re-applies the exemption",null,null,null,null,null,null,1339,null],["filtering with fixedRowsTop / fixedRowsBottom › offers the pinned rows' values in the list by default",null,null,null,null,null,null,1049,null],["filtering with fixedRowsTop / fixedRowsBottom › still filters normally when only fixedRowsTop is set",null,null,null,null,null,null,1382,null],["turning filtering off for one column › hides the filter UI in that column's menu",null,null,null,null,null,null,967,null],["turning filtering off for one column › keeps the Tab focus inside a menu that has no filter controls",null,null,null,null,null,null,1044,null],["turning filtering off for one column › leaves the other columns filterable",null,null,null,null,null,null,1095,null],["turning filtering off for one column › still filters the other columns",null,null,null,null,null,null,1330,null]],
"e2e/filters-menu-focus-order.spec.ts":[["filters menu — keyboard focus order › a condition with two inputs makes both of them Tab stops",2007,null,null,null,2000,null,1658,null],["filters menu — keyboard focus order › a value the list shows only in part scrolls fully into view when the focus reaches it",1382,null,null,null,1280,null,1222,null],["filters menu — keyboard focus order › ArrowDown from the search input enters the value list, and Tab or Shift+Tab leaves it",1394,null,null,null,1398,null,1166,null],["filters menu — keyboard focus order › Enter on a component keeps the menu open; Enter on \"OK\" applies the filter",1582,null,null,null,1684,null,1450,null],["filters menu — keyboard focus order › Escape from any component closes the menu and keeps the column selection the open made",2383,null,null,null,2256,null,2223,null],["filters menu — keyboard focus order › hovering a plain menu row moves neither the focus nor the next Tab stop",1586,null,null,null,1479,null,1378,null],["filters menu — keyboard focus order › hovering a submenu row opens the submenu, which takes the focus",1618,null,null,null,1620,null,1501,null],["filters menu — keyboard focus order › Shift+Tab from an opened submenu closes it and lands on the last component",1290,null,null,null,1128,null,1146,null],["filters menu — keyboard focus order › Shift+Tab walks the same order backwards",1437,null,null,null,1318,null,1150,null],["filters menu — keyboard focus order › Tab from an opened submenu closes it and lands on the first component",1324,null,null,null,1402,null,1245,null],["filters menu — keyboard focus order › Tab walks every component in order, and the loop restores the menu item it left",1886,null,null,null,1745,null,1640,null],["filters menu — keyboard focus order › while a component is focused, the arrow keys are its own and move no menu highlight",1142,null,null,null,1287,null,1112,null],["filters menu — keyboard focus order › with navigable headers, Enter on \"OK\" returns the focus to the filtered column's header",1515,null,null,null,1437,null,1353,null]],
"e2e/filters-password-value-list.spec.ts":[["Filters — password Filter-by-value display › Contains matches the source password, not the hash",null,null,null,null,null,null,1352,null],["Filters — password Filter-by-value display › lists hashed password values, not the source plaintext",null,null,null,null,null,null,1110,null],["Filters — password Filter-by-value display › respects hashLength and hashSymbol on the Filter-by-value list",null,null,null,null,null,null,991,null],["Filters — password Filter-by-value display › still formats a numeric column in the same menu",null,null,null,null,null,null,988,null],["Filters — password Filter-by-value display › unchecking a unique hash hides the matching source row",null,null,null,null,null,null,1197,null]],
"e2e/filters-search-then-condition.spec.ts":[["a searched value list and a date condition › keeps the searched values, then the rows inside the date range",null,null,2215,2954,null,null,1855,null]],
"e2e/filters-value-list-locale.spec.ts":[["Filters — \"filter by value\" locale-aware search › follows the column locale when it changes while the filter is applied",null,null,null,null,null,null,1406,null],["Filters — \"filter by value\" locale-aware search › keeps searching with the column locale after the list was confirmed",null,null,null,null,null,null,1349,null],["Filters — \"filter by value\" locale-aware search › searches with the column locale on the first opening",null,null,null,null,null,null,1066,null]],
"e2e/filters-value-list-scroll-range.spec.ts":[["filters by-value list › scroll range matches the number of items it holds",1163,null,null,null,1102,null,1027,null]],
"e2e/filters-value-list.spec.ts":[["Filters — \"filter by value\" list › \"Clear\" also clears the selected values the list cannot show",null,null,null,null,null,null,2184,null],["Filters — \"filter by value\" list › \"Select all\" clears the column even when the list cannot show every selected value",null,null,null,null,null,null,2397,null],["Filters — \"filter by value\" list › a value the condition filters out can still be unchecked",null,null,null,null,null,null,2017,null],["Filters — \"filter by value\" list › an already visible value can be unchecked to narrow the result further",null,null,null,null,null,null,1587,null],["Filters — \"filter by value\" list › an emptied list with nothing to show still excludes everything after a reopen",null,null,null,null,null,null,1700,null],["Filters — \"filter by value\" list › another column's list follows the filtered column even after it was confirmed once",null,null,null,null,null,null,1694,null],["Filters — \"filter by value\" list › another column's list stays narrowed down by the filtered column",null,null,null,null,null,null,1440,null],["Filters — \"filter by value\" list › confirming a list whose every shown value is ticked keeps the rest of the filter",null,null,null,null,null,null,2346,null],["Filters — \"filter by value\" list › confirming a narrowed list keeps the values it cannot show",null,null,null,null,null,null,2200,null],["Filters — \"filter by value\" list › confirming an empty list on a column that was never filtered adds no condition",null,null,null,null,null,null,1557,null],["Filters — \"filter by value\" list › confirming that list without a change does not alter the filtering",null,null,null,null,null,null,1538,null],["Filters — \"filter by value\" list › keeps every value of a column that is filtered by a condition",null,null,null,null,null,null,1454,null],["Filters — \"filter by value\" list › re-ticking everything after \"Clear\" releases the column again",null,null,null,null,null,null,1499,null],["Filters — a row added to a grid filtered on two columns › editing the new row in one column leaves the other column's filter intact",null,null,null,null,null,null,1797,null],["leaves no focus highlight in the value list after the menu is reopened",null,null,null,null,null,null,1139,null]],
"e2e/filters-value-order.spec.ts":[["Filters — \"filter by value\" list order › a comparator that ranks everything equal still lists every value",null,null,null,null,null,null,1060,null],["Filters — \"filter by value\" list order › applies the grid-level order to a column without its own",null,null,null,null,null,null,1014,null],["Filters — \"filter by value\" list order › applies the grid-level order to a numeric column too, keeping every value",null,null,null,null,null,null,1011,null],["Filters — \"filter by value\" list order › keeps the order and the selection after a confirmed change",null,null,null,null,null,null,1408,null],["Filters — \"filter by value\" list order › orders a dependent column's narrowed list the same way",null,null,null,null,null,null,1457,null],["Filters — \"filter by value\" list order › shows the column's own order on the first opening",null,null,null,null,null,null,1014,null]],
"e2e/fixed-columns-end-core.spec.ts":[["fixedColumnsEnd editor rectangle (ltr) › puts the editor on the cell in the end clones when the grid is scrolled both ways",1213,null,null,null,1158,null,1221,null],["fixedColumnsEnd editor rectangle (ltr) › puts the editor on the cell in the end clones when the window scrolls the grid both ways",1462,null,null,null,1277,null,1514,null],["fixedColumnsEnd editor rectangle (ltr) › puts the editor on the cell in the end column, the top corner and the bottom corner",1307,null,null,null,1270,null,1492,null],["fixedColumnsEnd editor rectangle (rtl) › puts the editor on the cell in the end clones when the grid is scrolled both ways",1328,null,null,null,1344,null,1238,null],["fixedColumnsEnd editor rectangle (rtl) › puts the editor on the cell in the end clones when the window scrolls the grid both ways",1813,null,null,null,1410,null,1404,null],["fixedColumnsEnd editor rectangle (rtl) › puts the editor on the cell in the end column, the top corner and the bottom corner",1535,null,null,null,1333,null,1185,null],["fixedColumnsEnd End and Home on a partly drawn main table › moves with End and Home from both ends of a narrow grid (ltr)",1414,null,null,null,1154,null,1032,null],["fixedColumnsEnd End and Home on a partly drawn main table › moves with End and Home from both ends of a narrow grid (rtl)",1169,null,null,null,1185,null,1054,null],["fixedColumnsEnd End and Home on a partly drawn main table › reaches the last scrolling column from the scrolled end and goes back (ltr)",1342,null,null,null,1146,null,983,null],["fixedColumnsEnd End and Home on a partly drawn main table › reaches the last scrolling column from the scrolled end and goes back (rtl)",1272,null,null,null,1145,null,1114,null],["fixedColumnsEnd with minSpareCols (ltr) › keeps the typed-in end column frozen and appends no column",1725,null,null,null,1621,null,1499,null],["fixedColumnsEnd with minSpareCols (ltr) › treats a fixedColumnsEnd below 1 as no end columns, like the control",1078,null,null,null,1122,null,997,null],["fixedColumnsEnd with minSpareCols (rtl) › keeps the typed-in end column frozen and appends no column",1986,null,null,null,1565,null,1490,null],["fixedColumnsEnd with minSpareCols (rtl) › treats a fixedColumnsEnd below 1 as no end columns, like the control",1232,null,null,null,1036,null,999,null]],
"e2e/fixed-columns-end-drag-scroll.spec.ts":[["DragToScroll with row headers (ltr) › does not scroll when the pointer is near the opposite edge, inside the grid",2025,null,null,null,2073,null,1945,null],["DragToScroll with row headers (ltr) › scrolls towards the inline start when the pointer is over the row header strip",1168,null,null,null,1046,null,1088,null],["DragToScroll with row headers (rtl) › does not scroll when the pointer is near the opposite edge, inside the grid",1981,null,null,null,1898,null,1875,null],["DragToScroll with row headers (rtl) › scrolls towards the inline start when the pointer is over the row header strip",1155,null,null,null,1075,null,1007,null]],
"e2e/fixed-columns-end-headers.spec.ts":[["fixedColumnsEnd and CollapsibleColumns (ltr) › draws no toggle on the end clone, not even on the continuation cell of a crossing group",919,null,null,null,912,null,799,null],["fixedColumnsEnd and CollapsibleColumns (ltr) › gives every collapsible group a toggle when no column is frozen at the end",839,null,null,null,917,null,899,null],["fixedColumnsEnd and CollapsibleColumns (ltr) › gives no toggle to a group that crosses the line or lies inside the band",1026,null,null,null,939,null,966,null],["fixedColumnsEnd and CollapsibleColumns (ltr) › keeps the toggle of a group that ends right before the band",1115,null,null,null,951,null,939,null],["fixedColumnsEnd and CollapsibleColumns (rtl) › draws no toggle on the end clone, not even on the continuation cell of a crossing group",955,null,null,null,885,null,864,null],["fixedColumnsEnd and CollapsibleColumns (rtl) › gives every collapsible group a toggle when no column is frozen at the end",932,null,null,null,961,null,888,null],["fixedColumnsEnd and CollapsibleColumns (rtl) › gives no toggle to a group that crosses the line or lies inside the band",1053,null,null,null,977,null,910,null],["fixedColumnsEnd and CollapsibleColumns (rtl) › keeps the toggle of a group that ends right before the band",1049,null,null,null,961,null,912,null],["fixedColumnsEnd and MergeCells, virtualized off (ltr) › keeps the master drawing the merge from its anchor when the master shows it",1004,null,null,null,907,null,936,null],["fixedColumnsEnd and MergeCells, virtualized off (ltr) › renders a merge that lies inside the band as one cell with its own spans",1047,null,null,null,1041,null,826,null],["fixedColumnsEnd and MergeCells, virtualized off (ltr) › renders the part of a merge that crosses the line from the first end column",1025,null,null,null,933,null,932,null],["fixedColumnsEnd and MergeCells, virtualized off (rtl) › keeps the master drawing the merge from its anchor when the master shows it",1043,null,null,null,960,null,899,null],["fixedColumnsEnd and MergeCells, virtualized off (rtl) › renders a merge that lies inside the band as one cell with its own spans",1109,null,null,null,951,null,839,null],["fixedColumnsEnd and MergeCells, virtualized off (rtl) › renders the part of a merge that crosses the line from the first end column",945,null,null,null,909,null,951,null],["fixedColumnsEnd and MergeCells, virtualized on (ltr) › keeps the master drawing the merge from its anchor when the master shows it",1011,null,null,null,940,null,999,null],["fixedColumnsEnd and MergeCells, virtualized on (ltr) › renders a merge that lies inside the band as one cell with its own spans",960,null,null,null,947,null,895,null],["fixedColumnsEnd and MergeCells, virtualized on (ltr) › renders the part of a merge that crosses the line from the first end column",984,null,null,null,952,null,861,null],["fixedColumnsEnd and MergeCells, virtualized on (rtl) › keeps the master drawing the merge from its anchor when the master shows it",977,null,null,null,996,null,922,null],["fixedColumnsEnd and MergeCells, virtualized on (rtl) › renders a merge that lies inside the band as one cell with its own spans",931,null,null,null,937,null,914,null],["fixedColumnsEnd and MergeCells, virtualized on (rtl) › renders the part of a merge that crosses the line from the first end column",1052,null,null,null,966,null,950,null],["fixedColumnsEnd and NestedHeaders (ltr) › continues a group that crosses the line on the end clone, with the columns left in the band",813,null,null,null,698,null,656,null],["fixedColumnsEnd and NestedHeaders (ltr) › continues a group that crosses the line with a single column when one column is in the band",581,null,null,null,588,null,601,null],["fixedColumnsEnd and NestedHeaders (ltr) › hides no label on the top clone without frozen end columns",896,null,null,null,859,null,872,null],["fixedColumnsEnd and NestedHeaders (ltr) › leaves a group that stays out of the band untouched on the top clone",740,null,null,null,629,null,621,null],["fixedColumnsEnd and NestedHeaders (ltr) › shows the label of a group that crosses the line on the end clone only",691,null,null,null,667,null,692,null],["fixedColumnsEnd and NestedHeaders (rtl) › continues a group that crosses the line on the end clone, with the columns left in the band",1011,null,null,null,864,null,836,null],["fixedColumnsEnd and NestedHeaders (rtl) › continues a group that crosses the line with a single column when one column is in the band",897,null,null,null,855,null,839,null],["fixedColumnsEnd and NestedHeaders (rtl) › hides no label on the top clone without frozen end columns",1007,null,null,null,942,null,879,null],["fixedColumnsEnd and NestedHeaders (rtl) › leaves a group that stays out of the band untouched on the top clone",949,null,null,null,920,null,818,null],["fixedColumnsEnd and NestedHeaders (rtl) › shows the label of a group that crosses the line on the end clone only",1012,null,null,null,954,null,935,null]],
"e2e/fixed-columns-end-line.spec.ts":[["fixedColumnsEnd freeze line in every scroll state (LTR) › is one border wide at horizontal scroll 0, where the clone cuts through a column",946,null,null,null,840,null,826,null],["fixedColumnsEnd freeze line in every scroll state (LTR) › is one border wide at the maximum scroll, drawn by the last scrolling column",1057,null,null,null,1098,null,901,null],["fixedColumnsEnd freeze line in every scroll state (LTR) › is one border wide mid-scroll, where the clone cuts through a column",994,null,null,null,957,null,883,null],["fixedColumnsEnd freeze line in every scroll state (LTR) › is one border wide without a horizontal scroll, where the clone rests against the last column",929,null,null,null,1053,null,861,null],["fixedColumnsEnd freeze line in every scroll state (LTR) › keeps the grid frame line when the end band covers every column of a grid without row headers",867,null,null,null,1007,null,818,null],["fixedColumnsEnd freeze line in every scroll state (LTR) › leaves the line to the row header when the band covers every column",875,null,null,null,986,null,844,null],["fixedColumnsEnd freeze line in every scroll state (LTR) › matches the width of the start freeze line in every scroll state",1110,null,null,null,1224,null,973,null],["fixedColumnsEnd freeze line in every scroll state (LTR) › toggles the state class on all three end clones together and leaves it again",1015,null,null,null,1318,null,1037,null],["fixedColumnsEnd freeze line in every scroll state (RTL) › is one border wide at horizontal scroll 0, where the clone cuts through a column",912,null,null,null,956,null,880,null],["fixedColumnsEnd freeze line in every scroll state (RTL) › is one border wide at the maximum scroll, drawn by the last scrolling column",1000,null,null,null,972,null,897,null],["fixedColumnsEnd freeze line in every scroll state (RTL) › is one border wide mid-scroll, where the clone cuts through a column",1039,null,null,null,1030,null,967,null],["fixedColumnsEnd freeze line in every scroll state (RTL) › is one border wide without a horizontal scroll, where the clone rests against the last column",899,null,null,null,893,null,832,null],["fixedColumnsEnd freeze line in every scroll state (RTL) › keeps the grid frame line when the end band covers every column of a grid without row headers",873,null,null,null,859,null,845,null],["fixedColumnsEnd freeze line in every scroll state (RTL) › leaves the line to the row header when the band covers every column",929,null,null,null,878,null,745,null],["fixedColumnsEnd freeze line in every scroll state (RTL) › matches the width of the start freeze line in every scroll state",1090,null,null,null,1074,null,964,null],["fixedColumnsEnd freeze line in every scroll state (RTL) › toggles the state class on all three end clones together and leaves it again",1020,null,null,null,1036,null,985,null]],
"e2e/fixed-columns-end-plugins.spec.ts":[["fixedColumnsEnd and CustomBorders (ltr) › draws the border of an end column although the main table renders no column near it",907,null,null,null,975,null,848,null],["fixedColumnsEnd and CustomBorders (ltr) › keeps the border of an end column while the grid scrolls",1094,null,null,null,1019,null,873,null],["fixedColumnsEnd and CustomBorders (rtl) › draws the border of an end column although the main table renders no column near it",920,null,null,null,833,null,800,null],["fixedColumnsEnd and CustomBorders (rtl) › keeps the border of an end column while the grid scrolls",1002,null,null,null,996,null,901,null],["fixedColumnsEnd and ManualColumnMove (ltr) › does not move a scrolling column into the end columns",1045,null,null,null,1014,null,930,null],["fixedColumnsEnd and ManualColumnMove (ltr) › does not move an end column out of the end columns",1053,null,null,null,1030,null,953,null],["fixedColumnsEnd and ManualColumnMove (ltr) › moves a scrolling column among the scrolling columns",1134,null,null,null,1109,null,1010,null],["fixedColumnsEnd and ManualColumnMove (ltr) › moves an end column inside the end columns, with the guideline on the edge it drops at",1204,null,null,null,1144,null,1107,null],["fixedColumnsEnd and ManualColumnMove (rtl) › does not move a scrolling column into the end columns",1181,null,null,null,1036,null,948,null],["fixedColumnsEnd and ManualColumnMove (rtl) › does not move an end column out of the end columns",1029,null,null,null,1003,null,1001,null],["fixedColumnsEnd and ManualColumnMove (rtl) › moves a scrolling column among the scrolling columns",1156,null,null,null,1117,null,1101,null],["fixedColumnsEnd and ManualColumnMove (rtl) › moves an end column inside the end columns, with the guideline on the edge it drops at",1228,null,null,null,1128,null,1081,null],["fixedColumnsEnd and ManualColumnMove, window scroll (ltr) › puts the guideline on the drop edge when the page scrolls and the grid has an offset in it",1375,null,null,null,1266,null,1262,null],["fixedColumnsEnd and ManualColumnMove, window scroll (rtl) › puts the guideline on the drop edge when the page scrolls and the grid has an offset in it",1418,null,null,null,1297,null,1283,null],["fixedColumnsEnd and ManualColumnResize (ltr) › narrows an end column by dragging towards the end",1043,null,null,null,1034,null,985,null],["fixedColumnsEnd and ManualColumnResize (ltr) › puts the handle of an end column on its inline-start edge and widens it by dragging towards the start",1159,null,null,null,1013,null,966,null],["fixedColumnsEnd and ManualColumnResize (ltr) › resizes a scrolling column by the distance the handle travels",1129,null,null,null,1076,null,960,null],["fixedColumnsEnd and ManualColumnResize (rtl) › narrows an end column by dragging towards the end",1048,null,null,null,974,null,1006,null],["fixedColumnsEnd and ManualColumnResize (rtl) › puts the handle of an end column on its inline-start edge and widens it by dragging towards the start",1198,null,null,null,1095,null,1121,null],["fixedColumnsEnd and ManualColumnResize (rtl) › resizes a scrolling column by the distance the handle travels",1072,null,null,null,1037,null,1052,null],["fixedColumnsEnd and UndoRedo (ltr) › gives the end columns back when it undoes the removal of some of them",989,null,null,null,867,null,865,null],["fixedColumnsEnd and UndoRedo (rtl) › gives the end columns back when it undoes the removal of some of them",1132,null,null,null,994,null,919,null]],
"e2e/fixed-columns-end-review-plugins.spec.ts":[["fixedColumnsEnd and a NestedHeaders group continuation (ltr) › applies the headerClassName of the group to its continuation cell",929,null,null,null,814,null,795,null],["fixedColumnsEnd and a NestedHeaders group continuation (ltr) › keeps the hidden-column indicator on a continuation cell of a group with a rowspan",978,null,null,null,897,null,837,null],["fixedColumnsEnd and a NestedHeaders group continuation (rtl) › applies the headerClassName of the group to its continuation cell",950,null,null,null,961,null,848,null],["fixedColumnsEnd and a NestedHeaders group continuation (rtl) › keeps the hidden-column indicator on a continuation cell of a group with a rowspan",1031,null,null,null,833,null,834,null],["fixedColumnsEnd and ManualColumnFreeze › freezes a scrolling column from the menu and keeps the end band",1185,null,null,null,1137,null,1092,null],["fixedColumnsEnd and ManualColumnFreeze › offers no \"Freeze column\" entry on a column of the end band",1019,null,null,null,1012,null,958,null],["fixedColumnsEnd and ManualColumnFreeze › refuses to freeze a column of the end band through the API",1106,null,null,null,893,null,842,null],["fixedColumnsEnd and ManualColumnFreeze › still freezes a scrolling column and leaves the columns of the end band where they are",917,null,null,null,896,null,900,null]],
"e2e/fixed-columns-end-review.spec.ts":[["fixedColumnsEnd and maxCols › does not move a column of the drawn band out of it",982,null,null,null,1063,null,1063,null],["fixedColumnsEnd and maxCols › does not move a scrolling column into the drawn band",1152,null,null,null,1051,null,948,null],["fixedColumnsEnd and maxCols › draws the band from the capped columns",917,null,null,null,795,null,853,null],["fixedColumnsEnd and maxCols › still moves a scrolling column among the scrolling columns",1122,null,null,null,1052,null,938,null],["fixedColumnsEnd and minCols › fills the grid up to minCols after a removed column while no column is frozen at the end",846,null,null,null,869,null,808,null],["fixedColumnsEnd and minCols › keeps the last column in the band when a removed column would drop the grid under minCols",924,null,null,null,912,null,842,null]],
"e2e/fixed-columns-end-review3.spec.ts":[["fixedColumnsEnd and a virtualized merge (LTR) › extends the merge to its last column on the end clone when the master is scrolled to the start",884,null,null,null,840,null,789,null],["fixedColumnsEnd and a virtualized merge (LTR) › puts the fill handle of a merge reaching into the band on its last column",1019,null,null,null,898,null,902,null],["fixedColumnsEnd and a virtualized merge (RTL) › extends the merge to its last column on the end clone when the master is scrolled to the start",877,null,null,null,829,null,872,null],["fixedColumnsEnd and a virtualized merge (RTL) › puts the fill handle of a merge reaching into the band on its last column",1047,null,null,null,935,null,1042,null],["fixedColumnsEnd editor next to the end band (LTR) › does not grow the editor of a scrolling cell under the end band",1011,null,null,null,952,null,918,null],["fixedColumnsEnd editor next to the end band (LTR) › does not narrow the editor when no column is frozen at the end",1154,null,null,null,888,null,877,null],["fixedColumnsEnd editor next to the end band (RTL) › does not grow the editor of a scrolling cell under the end band",1094,null,null,null,992,null,961,null],["fixedColumnsEnd editor next to the end band (RTL) › does not narrow the editor when no column is frozen at the end",977,null,null,null,978,null,896,null],["fixedColumnsEnd freeze line (LTR) › draws the freeze line at the inline end as one border, as at the inline start",902,null,null,null,976,null,900,null],["fixedColumnsEnd freeze line (LTR) › draws the header freeze line at the inline end as one border too",941,null,null,null,913,null,896,null],["fixedColumnsEnd freeze line (RTL) › draws the freeze line at the inline end as one border, as at the inline start",1005,null,null,null,899,null,868,null],["fixedColumnsEnd freeze line (RTL) › draws the header freeze line at the inline end as one border too",1015,null,null,null,965,null,857,null],["fixedColumnsEnd resize handle without a horizontal scroll (LTR) › does not stack the handle of the last header on the handle of the previous one",922,null,null,null,937,null,922,null],["fixedColumnsEnd resize handle without a horizontal scroll (LTR) › puts the handle of the last header on its own inline-end edge",1002,null,null,null,908,null,878,null],["fixedColumnsEnd resize handle without a horizontal scroll (LTR) › still anchors the last header to the grid edge when the columns overflow it",1150,null,null,null,1075,null,980,null],["fixedColumnsEnd resize handle without a horizontal scroll (LTR) › widens the last column when the handle is dragged towards the inline end",1189,null,null,null,1143,null,1094,null],["fixedColumnsEnd resize handle without a horizontal scroll (RTL) › does not stack the handle of the last header on the handle of the previous one",1103,null,null,null,990,null,1007,null],["fixedColumnsEnd resize handle without a horizontal scroll (RTL) › puts the handle of the last header on its own inline-end edge",1023,null,null,null,940,null,866,null],["fixedColumnsEnd resize handle without a horizontal scroll (RTL) › still anchors the last header to the grid edge when the columns overflow it",1105,null,null,null,1094,null,1029,null],["fixedColumnsEnd resize handle without a horizontal scroll (RTL) › widens the last column when the handle is dragged towards the inline end",1239,null,null,null,1131,null,1056,null]],
"e2e/fixed-columns-end-review4.spec.ts":[["fixedColumnsEnd collapsible group toggle (LTR) › gives a group that reaches the band no toggle, expanded or collapsed through the API",985,null,null,null,921,null,859,null],["fixedColumnsEnd collapsible group toggle (LTR) › keeps the toggle of a group that is clear of the band, expanded or collapsed",1014,null,null,null,981,null,997,null],["fixedColumnsEnd collapsible group toggle (RTL) › gives a group that reaches the band no toggle, expanded or collapsed through the API",1020,null,null,null,1018,null,989,null],["fixedColumnsEnd collapsible group toggle (RTL) › keeps the toggle of a group that is clear of the band, expanded or collapsed",1089,null,null,null,892,null,869,null],["fixedColumnsEnd header cell lookup (LTR) › answers like the full walk of every overlay and costs less, with the end option at 0",1293,null,null,null,1201,null,1183,null],["fixedColumnsEnd header cell lookup (LTR) › resolves every header cell to the clone that renders it, in every frozen area",934,null,null,null,946,null,856,null],["fixedColumnsEnd header cell lookup (LTR) › resolves the header cells of a grid with no end columns, where the end clones are idle",1039,null,null,null,906,null,862,null],["fixedColumnsEnd header cell lookup (RTL) › answers like the full walk of every overlay and costs less, with the end option at 0",1381,null,null,null,1118,null,1307,null],["fixedColumnsEnd header cell lookup (RTL) › resolves every header cell to the clone that renders it, in every frozen area",924,null,null,null,864,null,871,null],["fixedColumnsEnd header cell lookup (RTL) › resolves the header cells of a grid with no end columns, where the end clones are idle",951,null,null,null,925,null,830,null],["fixedColumnsEnd overlay clones in the DOM (LTR) › adds the end clones after the start ones, so the first five keep their places",863,null,null,null,832,null,813,null],["fixedColumnsEnd overlay clones in the DOM (LTR) › keeps the list of the overlays in the order of the clones in the DOM",948,null,null,null,904,null,871,null],["fixedColumnsEnd overlay clones in the DOM (RTL) › adds the end clones after the start ones, so the first five keep their places",871,null,null,null,899,null,785,null],["fixedColumnsEnd overlay clones in the DOM (RTL) › keeps the list of the overlays in the order of the clones in the DOM",966,null,null,null,932,null,819,null]],
"e2e/fixed-columns-end.spec.ts":[["fixedColumnsEnd editor position (ltr) › keeps the editor of an end column inside the grid while a long text is typed",1297,806,null,null,1210,682,1183,913],["fixedColumnsEnd editor position (ltr) › opens the editor over a cell next to the end columns when the grid is scrolled to its end",1077,688,null,null,1051,580,991,793],["fixedColumnsEnd editor position (ltr) › opens the editor over a cell of the end columns",966,738,null,null,1046,628,914,866],["fixedColumnsEnd editor position (ltr) › opens the editor over a cell of the end corner when the window is scrolled both ways",1318,798,null,null,1203,606,1072,1083],["fixedColumnsEnd editor position (ltr) › opens the editor over an end-column cell when the window scrolls the grid",1061,689,null,null,1030,521,1023,833],["fixedColumnsEnd editor position (ltr) › opens the editor over an end-column cell while the grid is scrolled both ways",1103,692,null,null,1022,631,990,893],["fixedColumnsEnd editor position (ltr) › opens the editor over the cells of every band when the start and end columns are frozen together",1974,1247,null,null,1777,995,1856,1296],["fixedColumnsEnd editor position (ltr) › opens the editor over the cells of the end corners",1220,790,null,null,1223,689,1223,875],["fixedColumnsEnd editor position (ltr) › opens the editor over the end cells when the window is scrolled both ways",1273,807,null,null,1216,634,1163,974],["fixedColumnsEnd editor position (rtl) › keeps the editor of an end column inside the grid while a long text is typed",1253,888,null,null,1251,750,1131,1048],["fixedColumnsEnd editor position (rtl) › opens the editor over a cell next to the end columns when the grid is scrolled to its end",1071,704,null,null,1126,614,987,864],["fixedColumnsEnd editor position (rtl) › opens the editor over a cell of the end columns",1085,719,null,null,1016,651,989,864],["fixedColumnsEnd editor position (rtl) › opens the editor over a cell of the end corner when the window is scrolled both ways",1246,836,null,null,1193,717,1189,1010],["fixedColumnsEnd editor position (rtl) › opens the editor over an end-column cell when the window scrolls the grid",1128,738,null,null,1022,618,1056,901],["fixedColumnsEnd editor position (rtl) › opens the editor over an end-column cell while the grid is scrolled both ways",1181,705,null,null,1105,701,1012,896],["fixedColumnsEnd editor position (rtl) › opens the editor over the cells of every band when the start and end columns are frozen together",1949,1290,null,null,1918,1081,1710,1602],["fixedColumnsEnd editor position (rtl) › opens the editor over the cells of the end corners",1307,877,null,null,1196,795,1275,1031],["fixedColumnsEnd editor position (rtl) › opens the editor over the end cells when the window is scrolled both ways",1311,775,null,null,1164,709,1168,1032],["fixedColumnsEnd keyboard navigation (ltr) › adds no column when Enter leaves the last column and the end columns are frozen",1658,1079,null,null,1526,953,1393,1258],["fixedColumnsEnd keyboard navigation (ltr) › Ctrl+End goes to the last scrolling cell, and Ctrl+Home goes back to the first one",1219,754,null,null,1127,666,1139,985],["fixedColumnsEnd keyboard navigation (ltr) › End goes to the last column that scrolls, and Home goes back to the first one",1177,748,null,null,1015,651,998,909],["fixedColumnsEnd keyboard navigation (ltr) › keeps Shift+End extending to the last column when only start columns cover the grid",1065,593,null,null,938,501,800,742],["fixedColumnsEnd keyboard navigation (ltr) › keeps the cell reached with arrow presses that arrive together visible beside the end columns",1671,1063,null,null,1392,855,1453,1305],["fixedColumnsEnd keyboard navigation (ltr) › keeps the cell reached with the arrow key visible beside the end columns",1613,1044,null,null,1545,861,1353,1342],["fixedColumnsEnd keyboard navigation (ltr) › leaves End and Home alone when the start and end columns cover every column",965,624,null,null,891,565,811,735],["fixedColumnsEnd keyboard navigation (ltr) › leaves Shift+End alone when the start and end columns cover every column",910,607,null,null,919,522,878,728],["fixedColumnsEnd keyboard navigation (ltr) › moves the selection across the start, master and end bands in order",976,707,null,null,927,575,975,854],["fixedColumnsEnd keyboard navigation (ltr) › moves the selection down through the end corners",1169,700,null,null,1072,640,956,763],["fixedColumnsEnd keyboard navigation (ltr) › moves the selection from the master into the end columns and back",1164,777,null,null,1076,622,1034,860],["fixedColumnsEnd keyboard navigation (ltr) › moves to the very last column with Ctrl and the arrow key, end columns included",987,601,null,null,982,525,898,754],["fixedColumnsEnd keyboard navigation (ltr) › Shift+End extends the selection up to the last column that scrolls",1059,635,null,null,977,583,978,782],["fixedColumnsEnd keyboard navigation (rtl) › adds no column when Enter leaves the last column and the end columns are frozen",1597,1013,null,null,1508,947,1809,1227],["fixedColumnsEnd keyboard navigation (rtl) › Ctrl+End goes to the last scrolling cell, and Ctrl+Home goes back to the first one",1138,735,null,null,1114,789,1314,992],["fixedColumnsEnd keyboard navigation (rtl) › End goes to the last column that scrolls, and Home goes back to the first one",987,685,null,null,979,681,1392,889],["fixedColumnsEnd keyboard navigation (rtl) › keeps Shift+End extending to the last column when only start columns cover the grid",877,586,null,null,821,594,969,688],["fixedColumnsEnd keyboard navigation (rtl) › keeps the cell reached with arrow presses that arrive together visible beside the end columns",1707,1087,null,null,1665,994,1002,1287],["fixedColumnsEnd keyboard navigation (rtl) › keeps the cell reached with the arrow key visible beside the end columns",1660,1121,null,null,1475,944,1090,1318],["fixedColumnsEnd keyboard navigation (rtl) › leaves End and Home alone when the start and end columns cover every column",1067,625,null,null,930,555,1144,744],["fixedColumnsEnd keyboard navigation (rtl) › leaves Shift+End alone when the start and end columns cover every column",947,613,null,null,1009,546,968,750],["fixedColumnsEnd keyboard navigation (rtl) › moves the selection across the start, master and end bands in order",982,732,null,null,1053,607,968,855],["fixedColumnsEnd keyboard navigation (rtl) › moves the selection down through the end corners",1173,784,null,null,1084,631,884,892],["fixedColumnsEnd keyboard navigation (rtl) › moves the selection from the master into the end columns and back",1163,740,null,null,1071,611,1000,880],["fixedColumnsEnd keyboard navigation (rtl) › moves to the very last column with Ctrl and the arrow key, end columns included",958,614,null,null,996,581,1136,743],["fixedColumnsEnd keyboard navigation (rtl) › Shift+End extends the selection up to the last column that scrolls",1055,709,null,null,1060,590,1344,807],["fixedColumnsEnd mouse selection (ltr) › keeps the horizontal scroll when an end-column cell is clicked",1128,793,null,null,1069,727,1124,947],["fixedColumnsEnd mouse selection (ltr) › selects a range by dragging across all bands when the start and end columns are frozen together",996,622,null,null,866,536,948,765],["fixedColumnsEnd mouse selection (ltr) › selects a range by dragging from the end columns into the master",869,608,null,null,896,498,726,740],["fixedColumnsEnd mouse selection (ltr) › selects a range by dragging from the master into the end columns",951,563,null,null,1009,537,862,713],["fixedColumnsEnd mouse selection (ltr) › selects a range by dragging onto the last end column",1057,623,null,null,945,545,893,730],["fixedColumnsEnd mouse selection (ltr) › selects the clicked cell of the end columns",988,605,null,null,883,492,957,693],["fixedColumnsEnd mouse selection (rtl) › keeps the horizontal scroll when an end-column cell is clicked",1232,772,null,null,1157,756,1368,926],["fixedColumnsEnd mouse selection (rtl) › selects a range by dragging across all bands when the start and end columns are frozen together",1084,629,null,null,994,578,1007,766],["fixedColumnsEnd mouse selection (rtl) › selects a range by dragging from the end columns into the master",839,556,null,null,893,520,967,753],["fixedColumnsEnd mouse selection (rtl) › selects a range by dragging from the master into the end columns",958,572,null,null,893,534,987,682],["fixedColumnsEnd mouse selection (rtl) › selects a range by dragging onto the last end column",983,625,null,null,988,567,1042,719],["fixedColumnsEnd mouse selection (rtl) › selects the clicked cell of the end columns",994,571,null,null,907,511,985,699],["fixedColumnsEnd settings changes › moves the editor along when the end columns are frozen with updateSettings",1030,683,null,null,948,608,1068,791]],
"e2e/focus-reentry-after-leaving-page.spec.ts":[["Tab re-entry after the focus left the page › Shift+Tab selects the remembered cell again",null,null,1046,1111,null,null,1074,null],["Tab re-entry after the focus left the page › Tab selects the remembered cell again",null,null,1011,1166,null,null,1115,null]],
"e2e/formulas-before-autofill-precedence.spec.ts":[["beforeAutofill precedence with the Formulas plugin › a global hook added before init loses to Formulas",1619,1013,null,null,1546,937,1736,1186],["beforeAutofill precedence with the Formulas plugin › a global hook returning false does not cancel what Formulas fills",1526,1024,null,null,1548,914,1663,1176],["beforeAutofill precedence with the Formulas plugin › a global hook runs before the option, and the option wins",1563,997,null,null,1565,933,1817,1176],["beforeAutofill precedence with the Formulas plugin › addHook with orderIndex 1 added before Formulas is enabled wins",1604,949,null,null,1465,875,1674,1181],["beforeAutofill precedence with the Formulas plugin › addHook with orderIndex 1 after init wins",1539,952,null,null,1538,917,1549,1174],["beforeAutofill precedence with the Formulas plugin › addHook with orderIndex 1 still wins after Formulas is disabled and enabled again",1655,1075,null,null,1551,979,1710,1313],["beforeAutofill precedence with the Formulas plugin › baseline: Formulas alone fills with shifted formulas",1619,1051,null,null,1555,945,1707,1258],["beforeAutofill precedence with the Formulas plugin › hot.addHook after init with Formulas already enabled wins",1568,966,null,null,1616,901,1718,1171],["beforeAutofill precedence with the Formulas plugin › hot.addHook before Formulas is enabled loses to Formulas",1515,975,null,null,1637,928,1591,1140],["beforeAutofill precedence with the Formulas plugin › hot.addHook returning false after init cancels the fill",1523,967,null,null,1455,913,1606,1146],["beforeAutofill precedence with the Formulas plugin › option at init loses once Formulas is disabled and enabled again",1568,1016,null,null,1523,949,1643,1199],["beforeAutofill precedence with the Formulas plugin › option at init loses when Formulas is enabled later with updateSettings",1640,987,null,null,1559,925,1612,1155],["beforeAutofill precedence with the Formulas plugin › option at init returning false cancels the fill",1534,1026,null,null,1497,898,1686,1190],["beforeAutofill precedence with the Formulas plugin › option at init returning values wins over Formulas",1615,1031,null,null,1479,954,1739,1173],["beforeAutofill precedence with the Formulas plugin › option at init still wins after a later updateSettings of formulas",1567,988,null,null,1512,939,1660,1161],["beforeAutofill precedence with the Formulas plugin › re-passing the option through updateSettings keeps its place before Formulas",1589,972,null,null,1470,899,1626,1220]],
"e2e/formulas-hyperlink.spec.ts":[["formulas: HYPERLINK rendering › carries the shared `ht-link` class next to `ht-hyperlink`",1079,498,null,null,1026,419,1020,608],["formulas: HYPERLINK rendering › deprecates registerShortcuts()/unregisterShortcuts() as two separate no-op shims, each warning once through deprecatedWarnOnce, and Alt+Enter still works",1254,702,null,null,1188,629,1219,915],["formulas: HYPERLINK rendering › does not warn when `hyperlinks.schemes` narrows out an otherwise-linkable URL",1239,714,null,null,1214,677,1442,863],["formulas: HYPERLINK rendering › does nothing on Alt+Enter when the selected cell holds no link",1133,560,null,null,1079,517,1021,672],["formulas: HYPERLINK rendering › drops a memoizing renderer's anchor when the option is turned off",1209,645,null,null,1148,576,1326,801],["formulas: HYPERLINK rendering › drops a memoizing renderer's anchor when the plugin is disabled",1065,610,null,null,1113,586,1211,722],["formulas: HYPERLINK rendering › drops the anchor when the formula is replaced by a plain value",1287,657,null,null,1128,600,1149,783],["formulas: HYPERLINK rendering › drops the anchor when the plugin is disabled, keeping the renderer",1292,633,null,null,1162,560,1241,793],["formulas: HYPERLINK rendering › enablePlugin() marks every cell changed, so a bare re-enable repaints links under renderMode: \"onChange\"",1257,767,null,null,1225,694,1290,930],["formulas: HYPERLINK rendering › falls back to the full allowlist when `hyperlinks.schemes` has no recognized entry, and warns that the default is used",1325,729,null,null,1244,673,1301,863],["formulas: HYPERLINK rendering › follows a link on click and still selects the cell",1346,804,null,null,1304,691,1374,973],["formulas: HYPERLINK rendering › keeps a cell type's renderer on a hyperlink cell",1412,635,null,null,1064,552,1094,721],["formulas: HYPERLINK rendering › keeps a column's custom renderer and wraps its output",1272,600,null,null,1141,561,1123,812],["formulas: HYPERLINK rendering › leaves a `checkbox` cell type untouched",1407,629,null,null,1134,515,1171,748],["formulas: HYPERLINK rendering › leaves Alt+Enter to the host application on a cell with no link",1120,706,null,null,1107,646,1267,885],["formulas: HYPERLINK rendering › opens in the current tab when `hyperlinks.target` is `_self`",1383,599,null,null,1174,525,1305,695],["formulas: HYPERLINK rendering › opens the editor with the raw formula on double click",2101,1530,null,null,2068,1449,2198,1735],["formulas: HYPERLINK rendering › opens the selected cell's link with Alt+Enter",1108,681,null,null,1116,580,1272,858],["formulas: HYPERLINK rendering › rebuilds a stale href when only the URL behind the formula changes",992,541,null,null,970,486,1071,683],["formulas: HYPERLINK rendering › refuses a `javascript:` URL, keeps the label as text, and warns once",1307,641,null,null,1138,551,1088,738],["formulas: HYPERLINK rendering › refuses a scheme left out of `hyperlinks.schemes`",1203,690,null,null,1259,532,1353,818],["formulas: HYPERLINK rendering › renders a label containing markup as text",1413,595,null,null,1073,521,1135,757],["formulas: HYPERLINK rendering › renders an anchor with the label as text and the URL as href",1078,485,null,null,1024,439,1161,677],["formulas: HYPERLINK rendering › renders no anchor for a plain, non-formula value",1216,585,null,null,1116,539,1103,734],["formulas: HYPERLINK rendering › renders no anchor when HYPERLINK is not the root expression",1133,607,null,null,1009,569,1156,752],["formulas: HYPERLINK rendering › renders no anchor while the option is off, and again once it is on",1285,674,null,null,1237,568,1230,832],["formulas: HYPERLINK rendering › survives a renderer that wraps the anchor it produced",1343,656,null,null,1190,530,1310,822],["formulas: HYPERLINK rendering › treats an array as \"not the object form\", unlike a plain object",1228,657,null,null,1186,490,1403,843],["formulas: HYPERLINK rendering › uses the URL as the label when the second argument is omitted",1125,597,null,null,1099,515,1195,740],["formulas: HYPERLINK rendering › warns once on an invalid `hyperlinks` object-form setting, and not again once fixed",1215,736,null,null,1196,613,1223,873]],
"e2e/formulas-move-cells-undo.spec.ts":[["Formulas: moveCells undo/redo integration › preserves the source formula string in source data after undo",null,null,null,null,null,null,1213,945],["Formulas: moveCells undo/redo integration › redo re-applies the move after undo",null,null,null,null,null,null,1427,934],["Formulas: moveCells undo/redo integration › redoes the move when a global listener returns a truthy non-action",null,null,null,null,null,null,1365,929],["Formulas: moveCells undo/redo integration › restores a dependent formula in the passed data array after undo",null,null,null,null,null,null,1487,1013],["Formulas: moveCells undo/redo integration › undo of a copy keeps the source and restores the overwritten target",null,null,null,null,null,null,1247,880],["Formulas: moveCells undo/redo integration › undo restores a moved formula cell: source recomputes and target is cleared",null,null,null,null,null,null,1302,972]],
"e2e/formulas-move-cells.spec.ts":[["Formulas: moveCells integration › copies a formula cell with adjusted relative references",null,null,null,null,null,null,1401,887],["Formulas: moveCells integration › keeps moved values when the target range overlaps the source range",null,null,null,null,null,null,1429,852],["Formulas: moveCells integration › moves a formula cell and keeps it computing with adjusted references",null,null,null,null,null,null,1258,895],["Formulas: moveCells integration › moves a multi-cell range of formulas keeping references intact",null,null,null,null,null,null,1358,953],["Formulas: moveCells integration › moves a plain-value cell when the Formulas plugin is active",null,null,null,null,null,null,1200,880],["Formulas: moveCells integration › propagates a preceding veto without crashing Formulas or UndoRedo listeners",null,null,null,null,null,null,1169,837],["Formulas: moveCells integration › selects the target only after the engine sync, so listeners never read a stale value",null,null,null,null,null,null,1366,836],["Formulas: moveCells integration › still moves a range that sits entirely above a trimmed row",null,null,null,null,null,null,1273,901],["Formulas: moveCells integration › updates a dependent formula when the referenced cell is moved",null,null,null,null,null,null,1258,894],["Formulas: moveCells integration › vetoes a copy onto an array formula before mutating the grid",null,null,null,null,null,null,1260,954],["Formulas: moveCells integration › vetoes a move whose visual range spans a trimmed row",null,null,null,null,null,null,1200,816],["Formulas: moveCells integration › vetoes the HF move when the source holds an array formula",null,null,null,null,null,null,1228,881],["Formulas: moveCells integration › vetoes the move without crashing when a global listener returns a truthy non-range",null,null,null,null,null,null,1197,851]],
"e2e/formulas-nested-rows-remove-parent.spec.ts":[["Formulas across a nested parent removal › re-registering NestedRows through updateSettings() keeps a host beforeRemoveRow in step",null,null,null,null,null,null,1252,843],["Formulas across a nested parent removal › removing a parent whose child is collapsed removes the collapsed descendants too",null,null,null,null,null,null,1254,902],["Formulas across a nested parent removal › removing a three-level parent removes every descendant from the engine",null,null,null,null,null,null,1144,853],["Formulas across a nested parent removal › removing two collapsed parents in one call expands both subtrees",null,null,null,null,null,null,1267,832],["Formulas across a nested parent removal › undo then redo keeps the engine in step with the restored and re-removed subtree",null,null,null,null,null,null,1297,972]],
"e2e/formulas-nested-rows-toggle.spec.ts":[["Formulas across a nestedRows runtime toggle › computes every formula against the row it now sits on",null,null,null,null,null,null,1107,787],["Formulas across a nestedRows runtime toggle › does not write the grid back into a sheet it just switched to",null,null,null,null,null,null,1063,735],["Formulas across a nestedRows runtime toggle › follows the grid back down when the plugin is turned off again",null,null,null,null,null,null,1340,795],["Formulas across a nestedRows runtime toggle › keeps the engine sheet the same height as the flattened grid",null,null,null,null,null,null,1110,836],["Formulas across a nestedRows runtime toggle › leaves the sheet alone when the row count did not change",null,null,null,null,null,null,1181,823],["Formulas across a nestedRows runtime toggle › matches a grid built with both settings at construction",null,null,null,null,null,null,1801,1141],["Formulas across a nestedRows runtime toggle › re-evaluates a later edit against the new layout",null,null,null,null,null,null,1229,797],["Formulas across a nestedRows runtime toggle › rebuilds the sheet once per toggle",null,null,null,null,null,null,1231,894]],
"e2e/formulas-object-columns.spec.ts":[["Formulas: fill handle over object rows read through `columns` › fills the value of the source cell when the source column lies past the keys of the first row",1364,920,null,null,1407,800,1567,1149],["Formulas: fill handle over object rows read through `columns` › fills the value of the source cell, not of its neighbor, when the source sits just after the column without data",1463,887,null,null,1440,793,1445,1065],["Formulas: fill handle over object rows read through `columns` › hands the engine a column for every declared column",1231,670,null,null,1148,595,1204,810]],
"e2e/formulas-preserve-text-value.spec.ts":[["Formulas: preserveTextValue rendered output › renders a preserved text value with no leading apostrophe after a moveCells relocation",null,null,null,null,null,null,1247,893],["Formulas: preserveTextValue rendered output › renders a preserved text value with no leading apostrophe after an edit",null,null,null,null,null,null,1453,1061],["Formulas: preserveTextValue rendered output › renders a preserved text value with no leading apostrophe after initial load",null,null,null,null,null,null,1152,794]],
"e2e/formulas-sheet-reload.spec.ts":[["Formulas: reloading the engine sheet after a cut › keeps the grid as it is when it re-renders with no edit",1287,714,null,null,1225,586,1271,857],["Formulas: reloading the engine sheet after a cut › keeps the last column when its first-row cell is cut and the grid re-renders",1432,886,null,null,1365,711,1436,1013]],
"e2e/formulas-show-formulas.spec.ts":[["Formulas: showFormulas() / hideFormulas() › cuts the formula text, and pasting it elsewhere creates a real, working formula",null,null,null,null,null,null,1561,972],["Formulas: showFormulas() / hideFormulas() › does not let AutoLink re-linkify the URL inside the painted formula text",null,null,null,null,null,null,1162,807],["Formulas: showFormulas() / hideFormulas() › repaints the formula cell with its formula text under renderMode: onChange",null,null,null,null,null,null,1115,822],["Formulas: showFormulas() / hideFormulas() › stops rendering a HYPERLINK cell as a link while its formula text is shown",null,null,null,null,null,null,1307,763],["Formulas: showFormulas() / hideFormulas() › toggles with a real Ctrl+` keypress",null,null,null,null,null,null,1284,807]],
"e2e/fragment-selection-frozen.spec.ts":[["fragmentSelection in frozen areas › clears the selection when a drag leaves the area it started in",1106,null,null,null,1077,null,1255,null],["fragmentSelection in frozen areas › does not make header text selectable, frozen or not",1077,null,null,null,1076,null,1058,null],["fragmentSelection in frozen areas › keeps a selection that stops short of the frozen boundary",1117,null,null,null,1080,null,1236,null],["fragmentSelection in frozen areas › selects a fragment inside a frozen column when fragmentSelection is 'cell'",1279,null,null,null,1112,null,1137,null],["fragmentSelection in frozen areas › selects a fragment of a cell's text in the bottom-start corner",1193,null,null,null,1089,null,1214,null],["fragmentSelection in frozen areas › selects a fragment of a cell's text in the frozen bottom rows",1126,null,null,null,1063,null,1135,null],["fragmentSelection in frozen areas › selects a fragment of a cell's text in the frozen columns",1190,null,null,null,1147,null,1165,null],["fragmentSelection in frozen areas › selects a fragment of a cell's text in the frozen top rows",1214,null,null,null,1141,null,1174,null],["fragmentSelection in frozen areas › selects a fragment of a cell's text in the master table",1192,null,null,null,1174,null,1234,null],["fragmentSelection in frozen areas › selects a fragment of a cell's text in the top-start corner",1276,null,null,null,1070,null,1116,null],["fragmentSelection in frozen areas › selects across three cells inside the frozen columns",1678,null,null,null,1474,null,1590,null],["fragmentSelection in frozen areas › selects across two cells in the master table",1553,null,null,null,1516,null,1636,null],["fragmentSelection in frozen areas › selects nothing in a frozen column when fragmentSelection is off",1142,null,null,null,1026,null,1091,null]],
"e2e/fragment-selection-release-outside.spec.ts":[["fragmentSelection after a drag released off the grid › keeps the selected text when the pointer then hovers a row header",1834,null,null,null,1906,null,1837,null],["fragmentSelection after a drag released off the grid › keeps the selected text when the pointer then hovers the column header row",1875,null,null,null,1986,null,1830,null]],
"e2e/freeze-bar-touch.spec.ts":[["freezeBar with a finger › dragging the column bar changes the count and does not scroll the grid",940,null,null,null,1152,null,894,null],["freezeBar with a finger › dragging the handle of an empty edge with a finger freezes columns",999,null,null,null,985,null,922,null],["freezeBar with a finger › dragging the row bar changes the count and does not scroll the grid",967,null,null,null,1084,null,951,null]],
"e2e/freeze-bar.spec.ts":[["freezeBar › a bar next to the column and row resizers › keeps its distance from the last column when the resizers are on",928,null,null,null,909,null,826,null],["freezeBar › a bar that holds the focus › an arrow on the top bar freezes a row",1051,null,null,null,1041,null,1025,null],["freezeBar › a bar that holds the focus › F6 does not scroll the page to the hidden separator",1175,null,null,null,1113,null,1114,null],["freezeBar › a bar that holds the focus › F6 moves on to the next bar, so the top, end and bottom bars can be reached",1131,null,null,null,929,null,1045,null],["freezeBar › a bar that holds the focus › keeps Delete and Enter from reaching the grid",912,null,null,null,978,null,1141,null],["freezeBar › a grid in a scrolling ancestor › keeps the empty top handle on the header corner while the ancestor scrolls",976,null,null,null,894,null,1036,null],["freezeBar › a grid smaller than its container › the bars do not reach past the rendered table",893,null,null,null,815,null,907,null],["freezeBar › a grid smaller than its container › the bottom bar snaps to whole rows measured from the table edge",1094,null,null,null,1163,null,1054,null],["freezeBar › a grid smaller than its container › the end bar snaps to whole columns measured from the table edge, not the container edge",1051,null,null,null,1091,null,1086,null],["freezeBar › a grid smaller than its container › the handle of an empty end edge sits on the table edge and starts the freezing",1183,null,null,null,1023,null,1076,null],["freezeBar › a grid without headers › has handles on an empty edge that stay inside the grid",1170,null,null,null,1103,null,1159,null],["freezeBar › a press on the part of a bar in a corner overlay › updates the maximum on the bar itself, and no ARIA on the piece",954,null,null,null,1007,null,932,null],["freezeBar › a press that follows an undo › does not write the count read at the press back",1197,null,null,null,1227,null,1307,null],["freezeBar › a press that only wobbles › does not lower a count that no longer fits",972,null,null,null,989,null,1023,null],["freezeBar › a press that only wobbles › does not scroll the grid or change the count when the bar is pressed and released",1072,null,null,null,1070,null,1080,null],["freezeBar › a step over a hidden column › down skips the column that would be unfrozen",989,null,null,null,1025,null,1074,null],["freezeBar › a wheel over a bar › scrolls the grid, as it does over a cell",1024,null,null,null,1060,null,1039,null],["freezeBar › accessibility tree › a cut and a paste on a focused separator leave the selected cell alone",1019,null,null,null,984,null,1060,null],["freezeBar › accessibility tree › a keyboard focus shows a ring on the bar, and a pointer press does not",1090,null,null,null,1060,null,1037,null],["freezeBar › accessibility tree › Escape gives the focus back to the grid and still reaches the page",1011,null,null,null,1033,null,970,null],["freezeBar › accessibility tree › the separators are outside the treegrid, and the bars in it are hidden from assistive technology",864,null,null,null,1015,null,968,null],["freezeBar › accessibility tree › the value range stays valid when the count is above what fits",1001,null,null,null,970,null,993,null],["freezeBar › colors › a bar and the drawn piece of an empty edge have square corners",1449,null,null,null,1271,null,1390,null],["freezeBar › colors › a bar keeps its gray while it is held, the indicators of the drag show where it lands",1176,null,null,null,1030,null,1138,null],["freezeBar › colors › a bar shows an open hand, which closes while the bar is held",1129,null,null,null,1107,null,1170,null],["freezeBar › colors › the drawn piece of an empty edge keeps its gray while it is held",1209,null,null,null,1066,null,1077,null],["freezeBar › colors › the handle of an empty edge shows an open hand",933,null,null,null,914,null,907,null],["freezeBar › configuration › a grid configured with the legacy fixedColumnsLeft option changes the count without throwing",1133,null,null,null,1153,null,1144,null],["freezeBar › configuration › a wrapper that re-sends the original option does not revert the change",1225,null,null,null,1075,null,1111,null],["freezeBar › configuration › one undo reverts the whole drag",1142,null,null,null,1111,null,1075,null],["freezeBar › configuration › with hidden tracks the stored count matches the visual indexes",1098,null,null,null,1096,null,1122,null],["freezeBar › drag indicators › a shadow follows the pointer, a shadow marks where the bar lands, and no header is highlighted",1170,null,null,null,1106,null,1148,null],["freezeBar › drag indicators › Escape removes the indicators and keeps the count",1093,null,null,null,1053,null,1156,null],["freezeBar › drag indicators › the indicators of a row bar lie across the rows in RTL",1229,null,null,null,1163,null,1193,null],["freezeBar › dragging › a count too large for the viewport is clamped",1152,null,null,null,1024,null,1113,null],["freezeBar › dragging › a drag stores nothing until the pointer is released",1131,null,null,null,1130,null,1081,null],["freezeBar › dragging › an empty bottom handle stays on the corner while the grid is scrolled, and the drag scrolls to the end",1231,null,null,null,1123,null,1192,null],["freezeBar › dragging › an empty top handle stays on the corner while the grid is scrolled, and the drag scrolls to the top",1148,null,null,null,1146,null,1132,null],["freezeBar › dragging › dragging the bar back freezes fewer columns",1066,null,null,null,935,null,1126,null],["freezeBar › dragging › Escape cancels the drag and stores nothing",1119,null,null,null,1034,null,1081,null],["freezeBar › dragging › the bottom bar freezes the last rows",1147,null,null,null,1133,null,1164,null],["freezeBar › dragging › the column bar freezes more columns without reordering them",1029,null,null,null,965,null,978,null],["freezeBar › dragging › the end bar follows the right to left layout",1206,null,null,null,1084,null,1159,null],["freezeBar › dragging › the end bar freezes the last columns",1253,null,null,null,1185,null,1113,null],["freezeBar › dragging › the handle of an empty edge starts the freezing",1167,null,null,null,1122,null,1009,null],["freezeBar › dragging › the handle of an empty end edge starts the freezing, and the grid scrolls to the last columns",1224,null,null,null,1104,null,1167,null],["freezeBar › dragging › the row bar freezes more rows",1180,null,null,null,927,null,1009,null],["freezeBar › edges with nothing frozen › a drag started in the middle of the empty start edge freezes columns",1159,null,null,null,1058,null,1089,null],["freezeBar › edges with nothing frozen › a drag started in the middle of the empty top edge freezes rows",1192,null,null,null,1153,null,1162,null],["freezeBar › edges with nothing frozen › a frozen edge has a bar along the whole freeze line, through the other frozen rows and columns",943,null,null,null,891,null,898,null],["freezeBar › edges with nothing frozen › draw only a short piece on a header corner, but can be grabbed along the whole edge",1042,null,null,null,1007,null,951,null],["freezeBar › edges with nothing frozen › every edge has a handle by default",941,null,null,null,831,null,958,null],["freezeBar › edges with nothing frozen › every piece of a bar starts the drag",1190,null,null,null,994,null,1097,null],["freezeBar › edges with nothing frozen › Home leaves the bar in place, so the area can grow again",1095,null,null,null,1036,null,990,null],["freezeBar › edges with nothing frozen › setFreezeCount() freezes an edge, and its bar moves onto the freeze line",1000,null,null,null,956,null,989,null],["freezeBar › Filters with filterFixedRows set to false › exempts a row from the filter as soon as it is frozen",1081,null,null,null,977,null,1140,null],["freezeBar › hooks › returning false from beforeFreezeChange leaves the grid unchanged and fires no afterFreezeChange",1049,null,null,null,1074,null,1152,null],["freezeBar › hover and the resize handles › a bar is drawn in the freeze bar color, not in the resize indicator color",980,null,null,null,930,null,911,null],["freezeBar › hover and the resize handles › a grid without the bars keeps the pills of the resize handle where they are",926,null,null,null,875,null,987,null],["freezeBar › hover and the resize handles › a hovered bar follows the column headers when their height changes under the pointer",1040,null,null,null,985,null,1044,null],["freezeBar › hover and the resize handles › a hovered bar turns gray over the column headers, and only there",973,null,null,null,984,null,1061,null],["freezeBar › hover and the resize handles › a pressed bar takes the highlight color over the column headers, and its plain color once it is dragged",1090,null,null,null,1102,null,1180,null],["freezeBar › hover and the resize handles › the pills lie symmetrically around the start bar in RTL",987,null,null,null,927,null,922,null],["freezeBar › hover and the resize handles › the pills of the column resize handle lie symmetrically around the end bar",1133,null,null,null,996,null,975,null],["freezeBar › hover and the resize handles › the pills of the column resize handle lie symmetrically around the start bar",943,null,null,null,872,null,942,null],["freezeBar › hover and the resize handles › the pills of the row resize handle lie symmetrically around the top bar",1053,null,null,null,957,null,915,null],["freezeBar › keyboard › exposes a separator that reports the count",971,null,null,null,1046,null,968,null],["freezeBar › keyboard › the arrow keys change the count by one and Home sets 0",1089,null,null,null,1049,null,1053,null],["freezeBar › keyboard reach and focus › ariaTags: false leaves the bars without ARIA attributes",950,null,null,null,961,null,862,null],["freezeBar › keyboard reach and focus › Ctrl+ArrowRight is left to the browser and screen readers",1039,null,null,null,1078,null,990,null],["freezeBar › keyboard reach and focus › End freezes as many columns as fit",1052,null,null,null,971,null,976,null],["freezeBar › keyboard reach and focus › F6 moves the focus from the grid to a bar",995,null,null,null,848,null,862,null],["freezeBar › keyboard reach and focus › the focus stays on the bar when the application updates the settings",1132,null,null,null,977,null,1009,null],["freezeBar › keyboard reach and focus › the focus stays on the bar when the first column gets frozen",1007,null,null,null,950,null,1018,null],["freezeBar › language › the bars announce the new language after it changes",941,null,null,null,928,null,973,null],["freezeBar › layout direction › the column bar follows the right to left layout",1118,null,null,null,1033,null,1182,null],["freezeBar › pagination › the API does not freeze rows next to Pagination",942,null,null,null,867,null,928,null],["freezeBar › pagination › the row bars are not shown and the column bars keep working",1079,null,null,null,1012,null,1051,null],["freezeBar › scrolling to the edge › a drag cancelled with Escape still leaves the count alone",1068,null,null,null,1113,null,1077,null],["freezeBar › scrolling to the edge › a drag of the bottom bar scrolls the grid down to the last rows",1222,null,null,null,1107,null,1221,null],["freezeBar › scrolling to the edge › a drag of the end bar scrolls the grid to the last columns",1101,null,null,null,1086,null,1226,null],["freezeBar › scrolling to the edge › a drag of the start bar scrolls the grid back to the first column",1156,null,null,null,1126,null,1141,null],["freezeBar › scrolling to the edge › a drag of the top bar scrolls the grid up, so the rows that get frozen are in view",1221,null,null,null,1119,null,1131,null],["freezeBar › scrolling to the edge › a scroll while the end bar is held keeps the grid on the last columns",1272,null,null,null,1237,null,1184,null],["freezeBar › scrolling to the edge › a scroll while the start bar is held keeps the grid on the first columns and the guide on a column edge",1294,null,null,null,1228,null,1306,null],["freezeBar › scrolling to the edge › a scroll while the top bar is held keeps a grid of an automatic height in a scrolling div on the first rows",1237,null,null,null,1159,null,1186,null],["freezeBar › scrolling to the edge › a scroll while the top bar is held keeps the grid on the first rows",1228,null,null,null,1212,null,1182,null],["freezeBar › teardown › a grid without the option has no bar at all",926,null,null,null,877,null,892,null],["freezeBar › teardown › destroy() removes every bar",979,null,null,null,955,null,976,null],["freezeBar › teardown › updateSettings({ freezeBar: false }) removes every bar",1013,null,null,null,948,null,995,null],["freezeBar › window scroll › the row bar stays on the freeze line while the page scrolls, and still drags",1355,null,null,null,1297,null,1337,null],["freezeBar › with the sheets bar › a freeze made on one sheet does not follow the user onto a sheet that was never visited",1323,null,null,null,1337,null,1384,null],["freezeBar and the rest of the page › a bar sits above the selection borders and below the fill handle",909,null,null,null,994,null,951,null],["freezeBar and the rest of the page › a drag under a filter is one undo step, and an undo puts the frozen rows back under the filter",1353,null,null,null,1259,null,1270,null],["freezeBar and the rest of the page › a keyboard step does not stop on a hidden column before the opposite band",1097,null,null,null,961,null,1055,null],["freezeBar and the rest of the page › a press on a bar saves the editor that is open",1159,null,null,null,1078,null,1120,null],["freezeBar and the rest of the page › Escape on a bar reached with the focus alone gives the keys back to the grid",1008,null,null,null,992,null,1038,null],["freezeBar and the rest of the page › only one bar is a Tab stop, and F6 reaches the others",924,null,null,null,914,null,996,null],["freezeBar and the rest of the page › the bars stay inside the layout when the grid is scaled",982,null,null,null,898,null,939,null],["freezeBar and the rest of the page › the counts follow the visual rows when rows are trimmed",981,null,null,null,1070,null,1033,null],["freezeBar and the rest of the page › the focus goes back to the grid when the bar that holds it is removed",1088,null,null,null,1035,null,1064,null],["freezeBar and the rest of the page › the four bars announce four different names",988,null,null,null,954,null,925,null],["freezeBar and the rest of the page › the guide of a drag lies on the new freeze line when the grid is scaled",1159,null,null,null,1109,null,1180,null],["freezeBar and the rest of the page › the hover does not stay on a bar that moved to another host",952,null,null,null,993,null,974,null],["freezeBar and the rest of the page › the ring of a focused bar is drawn inside the bar",978,null,null,null,1010,null,996,null]],
"e2e/ghost-table-cell-class.spec.ts":[["per-cell className and the auto-size plugins › includes the classed cell in the auto column width",916,null,null,null,907,null,919,null],["per-cell className and the auto-size plugins › keeps the row header the same height as the data cells",940,null,null,null,1021,null,881,null],["per-cell className and the auto-size plugins › keeps the rows below the tall one aligned between the two tables",881,null,null,null,1002,null,951,null],["per-cell className and the auto-size plugins › records the classed cell in the measured row height",877,null,null,null,893,null,800,null]],
"e2e/grid.spec.ts":[["grid demo › adds a row",null,null,null,null,null,null,888,null],["grid demo › edits a cell through the editor",null,null,null,null,null,null,1010,null],["grid demo › renders the seeded data",null,null,null,null,null,null,838,null]],
"e2e/handsontable-editor-list-position.spec.ts":[["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, in a sized grid that scrolls itself (an LTR grid on an RTL page)",1971,null,null,null,1816,null,1881,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, in a sized grid that scrolls itself (an RTL grid on an LTR page)",1959,null,null,null,1778,null,1766,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, in a sized grid that scrolls itself (LTR)",1989,null,null,null,1687,null,1859,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, in a sized grid that scrolls itself (RTL)",2061,null,null,null,1789,null,1851,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, on a page the window scrolls (LTR)",1872,null,null,null,1732,null,1822,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, on a page the window scrolls (RTL)",1744,null,null,null,1657,null,1853,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, on a page the window scrolls, 600 px from its inline-start edge (LTR)",1618,null,null,null,1612,null,1724,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, on a page the window scrolls, 600 px from its inline-start edge (RTL)",1767,null,null,null,1655,null,1839,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, on a page the window scrolls, in a transformed container (LTR)",1745,null,null,null,1657,null,1716,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, on a page the window scrolls, in a transformed container (RTL)",1845,null,null,null,1717,null,1827,null],["autocomplete editor list position (not trimmed to the cell) › opens toward the room it has, on a page the window scrolls, in a translated container (LTR)",1597,null,null,null,1633,null,1659,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, in a sized grid that scrolls itself (an LTR grid on an RTL page)",1641,null,null,null,1679,null,1778,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, in a sized grid that scrolls itself (an RTL grid on an LTR page)",1565,null,null,null,1613,null,1867,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, in a sized grid that scrolls itself (LTR)",1650,null,null,null,1611,null,1694,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, in a sized grid that scrolls itself (RTL)",1747,null,null,null,1698,null,1798,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, on a page the window scrolls (LTR)",1689,null,null,null,1649,null,1908,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, on a page the window scrolls (RTL)",1701,null,null,null,1612,null,1764,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, on a page the window scrolls, 600 px from its inline-start edge (LTR)",1616,null,null,null,1653,null,1690,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, on a page the window scrolls, 600 px from its inline-start edge (RTL)",1700,null,null,null,1737,null,1755,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, on a page the window scrolls, in a transformed container (LTR)",1865,null,null,null,1789,null,1770,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, on a page the window scrolls, in a transformed container (RTL)",1758,null,null,null,1665,null,1649,null],["dropdown editor list position › keeps its list on the cell and opens it toward the room it has, on a page the window scrolls, in a translated container (LTR)",1744,null,null,null,1602,null,1682,null],["editor list position in a transformed container, with the page scrolled partway › the autocomplete editor's list opens above a cell near the viewport's bottom (LTR)",1453,null,null,null,1345,null,1418,null],["editor list position in a transformed container, with the page scrolled partway › the autocomplete editor's list opens above a cell near the viewport's bottom (RTL)",1519,null,null,null,1333,null,1457,null],["editor list position in a transformed container, with the page scrolled partway › the dropdown editor's list opens above a cell near the viewport's bottom (LTR)",1262,null,null,null,1377,null,1270,null],["editor list position in a transformed container, with the page scrolled partway › the dropdown editor's list opens above a cell near the viewport's bottom (RTL)",1446,null,null,null,1354,null,1518,null],["editor list position in a transformed container, with the page scrolled partway › the handsontable editor's list opens above a cell near the viewport's bottom (LTR)",1391,null,null,null,1335,null,1404,null],["editor list position in a transformed container, with the page scrolled partway › the handsontable editor's list opens above a cell near the viewport's bottom (RTL)",1541,null,null,null,1261,null,1444,null],["editor list position in a transformed container, with the page scrolled partway › the multiselect editor's list opens above a cell near the viewport's bottom (LTR)",1330,null,null,null,1346,null,1254,null],["editor list position in a transformed container, with the page scrolled partway › the multiselect editor's list opens above a cell near the viewport's bottom (RTL)",1292,null,null,null,1159,null,1272,null],["editor list position when the cell scrolls out of the viewport › keeps the handsontable editor list pinned to the viewport top edge",1083,null,null,null,1323,null,1201,null],["editor list position while the page scrolls › the handsontable editor's list moves to the side with room as the window scrolls (LTR)",1384,null,null,null,1262,null,1436,null],["editor list position while the page scrolls › the handsontable editor's list moves to the side with room as the window scrolls (RTL)",1458,null,null,null,1327,null,1406,null],["editor list position while the page scrolls › the multiselect editor's list moves to the side with room as the window scrolls (LTR)",1369,null,null,null,1358,null,1394,null],["editor list position while the page scrolls › the multiselect editor's list moves to the side with room as the window scrolls (RTL)",1354,null,null,null,1274,null,1281,null],["editor list position with a left border on the html element › keeps the list on its cell, in a sized grid that scrolls itself (LTR)",2018,null,null,null,2341,null,2102,null],["editor list position with a left border on the html element › keeps the list on its cell, in a sized grid that scrolls itself (RTL)",2125,null,null,null,2122,null,1994,null],["editor list position with a left border on the html element › keeps the list on its cell, on a page the window scrolls (LTR)",2028,null,null,null,2141,null,2133,null],["editor list position with a left border on the html element › keeps the list on its cell, on a page the window scrolls (RTL)",1971,null,null,null,1963,null,1972,null],["handsontable editor list position › opens toward the room it has from every point, in a sized grid that scrolls itself (an LTR grid on an RTL page)",2156,null,null,null,2161,null,2029,null],["handsontable editor list position › opens toward the room it has from every point, in a sized grid that scrolls itself (an RTL grid on an LTR page)",1819,null,null,null,2067,null,2051,null],["handsontable editor list position › opens toward the room it has from every point, in a sized grid that scrolls itself (LTR)",1886,null,null,null,1995,null,2079,null],["handsontable editor list position › opens toward the room it has from every point, in a sized grid that scrolls itself (RTL)",1907,null,null,null,1844,null,2117,null],["handsontable editor list position › opens toward the room it has from every point, on a page the window scrolls (LTR)",1956,null,null,null,1803,null,1900,null],["handsontable editor list position › opens toward the room it has from every point, on a page the window scrolls (RTL)",2068,null,null,null,2014,null,1847,null],["handsontable editor list position › opens toward the room it has from every point, on a page the window scrolls, 600 px from its inline-start edge (LTR)",2257,null,null,null,1822,null,1931,null],["handsontable editor list position › opens toward the room it has from every point, on a page the window scrolls, 600 px from its inline-start edge (RTL)",2203,null,null,null,2148,null,2084,null],["handsontable editor list position › opens toward the room it has from every point, on a page the window scrolls, in a transformed container (LTR)",1907,null,null,null,1851,null,2083,null],["handsontable editor list position › opens toward the room it has from every point, on a page the window scrolls, in a transformed container (RTL)",2041,null,null,null,1912,null,2099,null],["handsontable editor list position › opens toward the room it has from every point, on a page the window scrolls, in a translated container (LTR)",2020,null,null,null,1850,null,1896,null],["multiselect editor list position › opens toward the room it has, in a sized grid that scrolls itself (an LTR grid on an RTL page)",1308,null,null,null,1331,null,1408,null],["multiselect editor list position › opens toward the room it has, in a sized grid that scrolls itself (an RTL grid on an LTR page)",1252,null,null,null,1291,null,1524,null],["multiselect editor list position › opens toward the room it has, in a sized grid that scrolls itself (LTR)",1406,null,null,null,1325,null,1366,null],["multiselect editor list position › opens toward the room it has, in a sized grid that scrolls itself (RTL)",1341,null,null,null,1438,null,1412,null],["multiselect editor list position › opens toward the room it has, on a page the window scrolls (LTR)",1563,null,null,null,1304,null,1505,null],["multiselect editor list position › opens toward the room it has, on a page the window scrolls (RTL)",1571,null,null,null,1369,null,1597,null],["multiselect editor list position › opens toward the room it has, on a page the window scrolls, 600 px from its inline-start edge (LTR)",1460,null,null,null,1321,null,1506,null],["multiselect editor list position › opens toward the room it has, on a page the window scrolls, 600 px from its inline-start edge (RTL)",1373,null,null,null,1339,null,1449,null],["multiselect editor list position › opens toward the room it has, on a page the window scrolls, in a transformed container (LTR)",1375,null,null,null,1329,null,1395,null],["multiselect editor list position › opens toward the room it has, on a page the window scrolls, in a transformed container (RTL)",1395,null,null,null,1253,null,1375,null],["multiselect editor list position › opens toward the room it has, on a page the window scrolls, in a translated container (LTR)",1409,null,null,null,1331,null,1456,null],["multiselect editor list side does not depend on the source length › opens a long source where a short one opens, visibleRows 10 (LTR)",4187,null,null,null,3950,null,4483,null],["multiselect editor list side does not depend on the source length › opens a long source where a short one opens, visibleRows 10 (RTL)",4587,null,null,null,4226,null,5053,null],["multiselect editor list side does not depend on the source length › opens a long source where a short one opens, visibleRows 5 (LTR)",4126,null,null,null,3755,null,4353,null],["multiselect editor list side does not depend on the source length › opens a long source where a short one opens, visibleRows 5 (RTL)",4442,null,null,null,4096,null,4634,null],["multiselect editor list stays in the viewport at every cell position › keeps the whole list on screen as the cell moves down the viewport (LTR)",2916,null,null,null,2839,null,2855,null],["multiselect editor list stays in the viewport at every cell position › keeps the whole list on screen as the cell moves down the viewport (RTL)",2943,null,null,null,2790,null,3087,null]],
"e2e/header-markup-gate.spec.ts":[["header markup gate › keeps a prose nested-header label away from a configured sanitizer",null,null,null,null,null,null,895,null],["header markup gate › renders a prose header holding `&` and `;` as text",null,null,null,null,null,null,979,null],["header markup gate › renders a prose header holding `<` and `>` as text",null,null,null,null,null,null,851,null],["header markup gate › still routes a nested-header label holding markup to the sanitizer",null,null,null,null,null,null,934,null],["header markup gate › still writes a header holding a real character reference through the HTML path",null,null,null,null,null,null,817,null],["header markup gate › still writes a header holding real markup through the HTML path",null,null,null,null,null,null,919,null]],
"e2e/header-range-merge-keyboard.spec.ts":[["Shift+Arrow on a header selection ignores the merged cells it crosses › extends a bottom-to-top row range past a merge on its start side by one row",1499,null,1385,1650,1419,null,1492,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › extends a column range made with Shift+click by one column on Shift+ArrowRight",1453,null,1374,1641,1330,null,1478,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › extends a column selection by one column on Shift+ArrowLeft",1466,null,1258,1579,1333,null,1383,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › extends a column selection by one column on Shift+ArrowRight",1469,null,1347,1481,1387,null,1283,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › extends a header layer by one column when Enter moved the focus back to it from a cell layer",1586,null,1388,1753,1500,null,1484,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › extends a right-to-left column range past a merge on its start side by one column",1579,null,1371,1639,1368,null,1457,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › extends a row selection by one row on Shift+ArrowDown",1370,null,1273,1527,1329,null,1364,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › extends a row selection by one row on Shift+ArrowUp",1440,null,1303,1512,1426,null,1385,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › leaves the perpendicular arrows of a header selection as they are",1471,null,2353,1619,1386,null,1381,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › skips the hidden column when it extends a column selection on the nested-rows shape",1201,null,1190,1470,1226,null,1135,null],["Shift+Arrow on a header selection ignores the merged cells it crosses › skips the hidden rows when it extends a row selection on the nested-rows shape",1147,null,2218,1436,1102,null,1142,null]],
"e2e/header-range-selection.spec.ts":[["a header click and a Shift+click select the range between them › keeps the range and the focus on the anchor of a Shift+click back past the start, then past the other side of it on the /nested-headers-demo shape",null,null,1169,1444,null,null,1085,null],["a header click and a Shift+click select the range between them › keeps the range and the focus on the anchor of a Shift+click from a cell on the /nested-headers-demo shape",null,null,2162,1317,null,null,1059,null],["a header click and a Shift+click select the range between them › keeps the range and the focus on the anchor of a Shift+click onto a group header from a leaf header on the /nested-headers-demo shape",null,null,1188,1380,null,null,1071,null],["a header click and a Shift+click select the range between them › keeps the range and the focus on the anchor of a Shift+click to the left of a group header without navigableHeaders on the /nested-headers-demo shape",null,null,1254,1593,null,null,1266,null],["a header click and a Shift+click select the range between them › keeps the range and the focus on the anchor of a Shift+click to the left of a leaf header on the /nested-headers-demo shape",null,null,1078,1330,null,null,1041,null],["a header click and a Shift+click select the range between them › keeps the range and the focus on the anchor of a Shift+click to the left, then to the right of a group header without navigableHeaders on the /nested-headers-demo shape",null,null,1309,1720,null,null,1303,null],["a header click and a Shift+click select the range between them › keeps the range and the focus on the anchor of a Shift+click to the right of a group header, then to the left of it on the /nested-headers-demo shape",null,null,1240,1565,null,null,1149,null],["a header click and a Shift+click select the range between them › keeps the range and the focus on the anchor of a Shift+click to the right of a leaf header on the /nested-headers-demo shape",null,null,1076,1374,null,null,1084,null],["a header click and a Shift+click select the range between them › selects the columns between two column headers on the /arabic-rtl-demo shape",null,null,1072,1300,null,null,1080,null],["a header click and a Shift+click select the range between them › selects the columns between two column headers on the /cell-types-demo shape",null,null,1147,1396,null,null,1120,null],["a header click and a Shift+click select the range between them › selects the columns between two column headers on the /merged-cells-demo shape",null,null,1186,1517,null,null,1260,null],["a header click and a Shift+click select the range between them › selects the columns between two column headers on the /nested-headers-demo shape",null,null,1175,1337,null,null,1089,null],["a header click and a Shift+click select the range between them › selects the columns between two column headers on the /nested-rows-demo shape",null,null,1246,1478,null,null,1284,null],["a header click and a Shift+click select the range between them › selects the rows between two row headers on the /arabic-rtl-demo shape",null,null,1139,1275,null,null,1047,null],["a header click and a Shift+click select the range between them › selects the rows between two row headers on the /cell-types-demo shape",null,null,1107,1372,null,null,1216,null],["a header click and a Shift+click select the range between them › selects the rows between two row headers on the /merged-cells-demo shape",null,null,1112,1428,null,null,1241,null],["a header click and a Shift+click select the range between them › selects the rows between two row headers on the /nested-headers-demo shape",null,null,1125,1307,null,null,1101,null],["a header click and a Shift+click select the range between them › selects the rows between two row headers on the /nested-rows-demo shape",null,null,1154,1454,null,null,1220,null]],
"e2e/header-size-string-values.spec.ts":[["Header size options given as strings › applies a column header height written with the px unit",1468,null,null,null,1409,null,1491,null],["Header size options given as strings › applies a per-level column header height given as strings",1530,null,null,null,1454,null,1484,null],["Header size options given as strings › applies a per-level row header width given as strings",1490,null,null,null,1365,null,1412,null],["Header size options given as strings › applies a per-level width that mixes a number and a pixel string",1442,null,null,null,1439,null,1574,null],["Header size options given as strings › applies a row header width written as a bare numeric string",1592,null,null,null,1451,null,1416,null],["Header size options given as strings › applies a row header width written with the px unit",1523,null,null,null,1361,null,1411,null],["Header size options given as strings › applies the default to an unreadable entry that is not the last one",1504,null,null,null,1394,null,1436,null],["Header size options given as strings › holds a column header height given as a string across repeated draws",1540,null,null,null,1498,null,1590,null],["Header size options given as strings › ignores sizes that state no pixel count and keeps the default instead",1490,null,null,null,1446,null,1496,null],["Header size options given as strings › leaves a row header width given as a number exactly as it was",1505,null,null,null,1390,null,1563,null],["Warning for a size that states no pixel count › names the option and the value, once per grid",1572,null,null,null,1405,null,1538,null],["Warning for a size that states no pixel count › stays silent for sizes it can read",1570,null,null,null,1327,null,1591,null]],
"e2e/hidden-columns-context-menu.spec.ts":[["hiding and showing columns from the header context menu › hides two columns one by one and shows both from a range that spans them",null,null,2938,2860,null,null,2083,null]],
"e2e/hidden-hide-item-all-hidden.spec.ts":[["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › both items are hidden on an empty grid",null,null,null,null,null,null,1013,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide columns › is hidden when every column is already hidden",null,null,null,null,null,null,1041,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide columns › still appears on a column-header selection with some columns hidden",null,null,null,null,null,null,1003,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide columns › still appears when no columns are hidden",null,null,null,null,null,null,1035,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide columns › still appears when only some columns are hidden",null,null,null,null,null,null,969,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide rows › is hidden when every row is already hidden",null,null,null,null,null,null,1143,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide rows › is hidden when every row is trimmed away",null,null,null,null,null,null,990,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide rows › still appears on a row-header selection with some rows hidden",null,null,null,null,null,null,1078,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide rows › still appears when no rows are hidden",null,null,null,null,null,null,1029,null],["Hide rows / Hide columns context-menu item on a corner select-all (DEV-164) › Hide rows › still appears when only some rows are hidden",null,null,null,null,null,null,1024,null]],
"e2e/hidden-indicator-overhang.spec.ts":[["hidden indicators paint where 18.1.0 painted them › every arrow paints the same pixels as in 18.1.0 (LTR)",2161,null,null,null,2222,null,2244,null],["hidden indicators paint where 18.1.0 painted them › every arrow paints the same pixels as in 18.1.0 (RTL)",2150,null,null,null,2184,null,2226,null],["hidden-column indicator on a stretched grid › indicators off behaves identically — the control",1071,null,null,null,885,null,996,null],["hidden-column indicator on a stretched grid › no phantom horizontal scrollbar when the stretched columns already fit",936,null,null,null,952,null,865,null],["hidden-column indicator on a stretched grid › rows stay aligned across the frozen boundary at the bottom",1027,null,null,null,1013,null,991,null],["hidden-column indicator on a stretched grid › RTL puts the indicator on the other edge and still does not overflow",965,null,null,null,964,null,1014,null],["hidden-column indicator on a stretched grid › the indicators mark exactly the columns either side of each hidden band",967,null,null,null,926,null,973,null],["hidden-column indicator on a stretched grid › the leg really runs the theme it claims",876,null,null,null,892,null,948,null],["hidden-row indicator on an auto-height grid › an auto-height grid grows no scrollbar of its own",948,null,null,null,865,null,912,null],["hidden-row indicator on an auto-height grid › indicators off behaves identically — the control",973,null,null,null,946,null,878,null],["hidden-row indicator on an auto-height grid › the column-header clone keeps the same width as the master pane",899,null,null,null,911,null,871,null],["hidden-row indicator on an auto-height grid › the indicators mark exactly the rows either side of each hidden band",949,null,null,null,935,null,1006,null],["hidden-row indicator on an auto-height grid › the leg really runs the theme it claims",987,null,null,null,875,null,953,null]],
"e2e/hidden-init-destroy.spec.ts":[["grid initialized in a hidden container › destroying it inside the visibility-observer delivery window throws nothing",null,null,null,null,null,null,859,null]],
"e2e/hidden-init-rerender.spec.ts":[["a grid initialized inside a hidden container rerenders on reveal › when the parent was hidden by a stylesheet rule",795,null,null,null,771,null,866,null],["a grid initialized inside a hidden container rerenders on reveal › when the parent was hidden with an inline style",823,null,null,null,774,null,760,null],["a grid initialized inside a hidden container rerenders on reveal › when the root element was hidden by a stylesheet rule",751,null,null,null,719,null,728,null],["a grid initialized inside a hidden container rerenders on reveal › when the root element was hidden with an inline style",896,null,null,null,863,null,811,null],["the observeVisibilityChangeOnce helper behind the mechanism › disconnects the observer after the first delivery instead of unobserving",806,null,null,null,887,null,766,null],["the observeVisibilityChangeOnce helper behind the mechanism › does not leak observers when the document body has zero height",676,null,null,null,707,null,835,null],["the observeVisibilityChangeOnce helper behind the mechanism › fires exactly once when the element becomes visible, despite same-frame flickers",856,null,null,null,649,null,858,null]],
"e2e/hidden-rows-fixed-bottom.spec.ts":[["Hiding the row next to the fixedRowsBottom band › \"Hide row\" on the last row above the band hides it without throwing",null,null,null,null,null,null,1374,null],["Hiding the row next to the fixedRowsBottom band › \"Hide rows\" on the two rows above the band hides both without throwing",null,null,null,null,null,null,1384,null]],
"e2e/hiding-array-classname.spec.ts":[["hiding plugins with an array className › a grid-level array className › leaves the cascade and the array shape intact on rows it does not mark",null,null,null,null,null,null,1210,null],["hiding plugins with an array className › a grid-level array className › never has the marker pushed into the array the user passed in",null,null,null,null,null,null,1184,null],["hiding plugins with an array className › a grid-level array className › still marks the row after the hidden one",null,null,null,null,null,null,1200,null],["hiding plugins with an array className › a plain string className › leaves the cascade intact on rows it does not mark",null,null,null,null,null,null,1162,null],["hiding plugins with an array className › a plain string className › renders the same classes it always did",null,null,null,null,null,null,1156,null],["hiding plugins with an array className › a user class containing the marker name › keeps the lookalike class when the row is shown again",null,null,null,null,null,null,1260,null],["hiding plugins with an array className › a user class containing the marker name › still gets the marker added",null,null,null,null,null,null,1176,null],["hiding plugins with an array className › both hiding plugins on one grid › carries both markers alongside the user classes",null,null,null,null,null,null,1100,null],["hiding plugins with an array className › both hiding plugins on one grid › strips only its own marker when the row is shown again",null,null,null,null,null,null,1120,null],["hiding plugins with an array className › hiddenColumns › builds the grid when nothing is hidden",null,null,null,null,null,null,1242,null],["hiding plugins with an array className › hiddenColumns › drops only the marker when the column is shown again",null,null,null,null,null,null,1238,null],["hiding plugins with an array className › hiddenColumns › keeps both classes alongside the marker on the column after a hidden column",null,null,null,null,null,null,1245,null],["hiding plugins with an array className › hiddenColumns › leaves the cell meta usable by addClass",null,null,null,null,null,null,1119,null],["hiding plugins with an array className › hiddenColumns › puts both array entries on the cell as separate classes",null,null,null,null,null,null,1214,null],["hiding plugins with an array className › hiddenRows › builds the grid when nothing is hidden",null,null,null,null,null,null,1157,null],["hiding plugins with an array className › hiddenRows › drops only the marker when the row is shown again",null,null,null,null,null,null,1286,null],["hiding plugins with an array className › hiddenRows › keeps both classes alongside the marker on the row after a hidden row",null,null,null,null,null,null,1174,null],["hiding plugins with an array className › hiddenRows › leaves the cell meta usable by addClass",null,null,null,null,null,null,1245,null],["hiding plugins with an array className › hiddenRows › puts both array entries on the cell as separate classes",null,null,null,null,null,null,1188,null]],
"e2e/host-span-styles.spec.ts":[["host-page span styles do not leak into grid UI spans › column header spans keep the header cell font size and line height",1017,null,null,null,874,null,963,null],["host-page span styles do not leak into grid UI spans › multiselect chips follow a user override of the cell text metrics",1105,null,null,null,1051,null,1162,null],["host-page span styles do not leak into grid UI spans › multiselect chips keep the cell text metrics",1117,null,null,null,1134,null,1086,null],["host-page span styles do not leak into grid UI spans › pagination labels follow a user override of the pagination bar text metrics",1099,null,null,null,1038,null,1182,null],["host-page span styles do not leak into grid UI spans › pagination labels keep the pagination bar text metrics",1019,null,null,null,967,null,1063,null]],
"e2e/icon-elements-checkbox.spec.ts":[["Checkbox renderer tick layout › a wrapped label after the checkbox keeps the tick on its box in a narrow column (ltr)",998,673,null,null,965,556,1055,804],["Checkbox renderer tick layout › a wrapped label after the checkbox keeps the tick on its box in a narrow column (rtl)",1091,671,null,null,966,573,1175,804],["Checkbox renderer tick layout › an empty cell dims the tick together with its box",958,678,null,null,949,599,1032,783],["Checkbox renderer tick layout › at a regular column width the tick stays on its box and the row keeps its height (ltr)",994,645,null,null,1023,539,1026,787],["Checkbox renderer tick layout › at a regular column width the tick stays on its box and the row keeps its height (rtl)",1011,695,null,null,991,563,1014,757],["Checkbox renderer tick layout › in a narrow column the tick stays on its box and the row keeps its height (ltr)",982,637,null,null,976,570,1159,768],["Checkbox renderer tick layout › in a narrow column the tick stays on its box and the row keeps its height (rtl)",1052,691,null,null,997,569,1003,827],["Multi-select editor list label gap › the label text starts one gap after the checkbox box (ltr)",1025,626,null,null,1034,583,979,770],["Multi-select editor list label gap › the label text starts one gap after the checkbox box (rtl)",1020,697,null,null,1015,617,1043,847]],
"e2e/icon-elements-misc.spec.ts":[["icon elements - collapsible indicator with an external icon › an inline renderer glyph stays centered on the indicator",1060,710,null,null,1048,636,1154,932],["icon elements - pagination under forced colors › re-enabled first/prev buttons paint the enabled border, not the disabled one",1255,853,null,null,1185,869,1292,1000],["icon elements - sheets-bar all-sheets menu › the active-sheet mark stays on the menu inline end for a right-to-left sheet name",1051,719,null,null,1073,655,1090,850],["icon elements - sheets-bar all-sheets menu › the sheet name ellipsizes in its own span, so a right-to-left name is cut at its own end",1064,733,null,null,1039,586,1096,876]],
"e2e/icon-elements-sorting.spec.ts":[["Icon elements: sort indicator 18.1 parity › `headerAction: false` › a column sorted through the API shows no indicator, keeps `aria-sort`, and a clickable column still shows one",1124,692,null,null,986,611,1096,877],["Icon elements: sort indicator 18.1 parity › `headerAction: false` › AutoColumnSize measures a `headerAction: false` header narrower than the same clickable header, by the icon box minus the glyph",999,625,null,null,968,595,1055,810],["Icon elements: sort indicator 18.1 parity › `headerAction: false` › the ghost-table `*` stand-in keeps the glyph width on a label without `sortAction`",886,598,null,null,956,531,932,737],["Icon elements: sort indicator 18.1 parity › `headerAction: false` › with multiColumnSorting, a sorted `headerAction: false` column shows no indicator; the other sorted column shows one",967,699,null,null,1003,566,955,823],["Icon elements: sort indicator 18.1 parity › touch › a tap on the sort indicator toggles the sort order and does not open the column menu",1120,776,null,null,1104,605,1184,918]],
"e2e/icon-elements.spec.ts":[["Icon elements › -no-icons bundle › an icon element renders as an empty box, never a painted square",921,586,null,null,954,624,1072,778],["Icon elements › -no-icons bundle › an icon outside every icon-carrying theme scope paints nothing on a page that loads glyph rules",941,641,null,null,929,568,998,766],["Icon elements › autocomplete arrow and select editor › a click precisely on the arrow opens the editor - the icon does not intercept the click",1040,683,null,null,1010,679,1103,888],["Icon elements › autocomplete arrow and select editor › an autosized autocomplete column reserves the same width as before the icon migration",996,565,null,null,965,633,942,778],["Icon elements › autocomplete arrow and select editor › every autocomplete cell in column C carries the select-arrow icon",986,621,null,null,1088,616,1072,761],["Icon elements › autocomplete arrow and select editor › in RTL, the cell arrow keeps the same logical position and the icon is not mirrored",1370,863,null,null,1398,817,1520,1137],["Icon elements › autocomplete arrow and select editor › select editor › a click on the arrow reaches the native select underneath, not the icon",1056,612,null,null,1048,603,1095,884],["Icon elements › autocomplete arrow and select editor › select editor › the retired pseudo-element no longer paints the select editor arrow glyph",1053,595,null,null,1088,640,1057,814],["Icon elements › autocomplete arrow and select editor › select editor › the select editor arrow carries the select-arrow icon once opened",1099,640,null,null,982,637,1072,849],["Icon elements › autocomplete arrow and select editor › the retired pseudo-element no longer paints the cell arrow glyph",990,603,null,null,911,557,1005,771],["Icon elements › checkbox renderer › a checkbox without a label keeps its 18.1 gap on both sides",981,568,null,null,1001,504,943,771],["Icon elements › checkbox renderer › a click on a labelled checkbox still toggles the underlying value - the icon overlay does not steal the click",1114,704,null,null,1108,581,1140,921],["Icon elements › checkbox renderer › a click on the checkbox without a label toggles the underlying value",1072,659,null,null,988,599,1040,943],["Icon elements › checkbox renderer › checkbox cells carry a sibling icon after the input",1000,677,null,null,1062,596,1088,863],["Icon elements › checkbox renderer › every label arrangement inserts the icon immediately after the input",1094,686,null,null,1017,596,1109,1009],["Icon elements › checkbox renderer › every one of the nine state rules colors the icon with its own theme token",1565,1020,null,null,1381,895,1674,1473],["Icon elements › checkbox renderer › the overlay icon owns a stacking level above the input",951,583,null,null,862,522,977,712],["Icon elements › checkbox renderer › the retired pseudo-element no longer paints the tick, and the box pseudo-element is untouched",993,596,null,null,880,513,889,1034],["Icon elements › collapsible nested-header indicator › a draw with no state change keeps the indicator's icon and text nodes",1004,668,null,null,961,542,1034,792],["Icon elements › collapsible nested-header indicator › an expanded group header carries exactly one collapse-off icon",1018,578,null,null,971,535,1062,751],["Icon elements › collapsible nested-header indicator › clicking the indicator collapses the group and swaps the icon to collapse-on",1142,724,null,null,1317,705,1184,898],["Icon elements › collapsible nested-header indicator › re-rendering the header repeatedly keeps exactly one indicator icon",964,630,null,null,964,599,1028,792],["Icon elements › collapsible nested-header indicator › the retired glyph pseudo-element no longer paints on the indicator",935,598,null,null,942,538,1102,772],["Icon elements › column sorting indicator › a click precisely on the indicator icon toggles the sort order",1053,756,null,null,1236,729,1171,1208],["Icon elements › column sorting indicator › a column with `indicator: false` never shows the icon, even while sorted",1127,664,null,null,1041,578,1006,884],["Icon elements › column sorting indicator › a sorted column header carries one indicator icon",1198,758,null,null,1082,670,1213,987],["Icon elements › column sorting indicator › clicking a sorted header a third time (no sort) removes the indicator icon",1181,792,null,null,1168,666,1315,942],["Icon elements › column sorting indicator › disabling the plugin removes the indicator icon from every header",1059,636,null,null,1020,614,1165,848],["Icon elements › column sorting indicator › re-rendering a sorted header repeatedly keeps exactly one indicator icon",1143,757,null,null,1188,637,1128,882],["Icon elements › column sorting indicator › the ghost-table sort reserve keeps its 18.1 geometry: icon-size box plus icon-size + 2px padding",926,576,null,null,883,544,1031,840],["Icon elements › every column header dropdown-menu button carries one menu icon",913,576,null,null,935,519,915,696],["Icon elements › external icon mapping › a class-list icon mapping disables the mask and adds the classes",960,618,null,null,975,488,1049,755],["Icon elements › external icon mapping › a click on markup a renderer callback put inside the cell arrow still opens the editor",1201,719,null,null,1187,646,1180,865],["Icon elements › external icon mapping › a click on markup a renderer callback put inside the header menu button still opens the menu",1166,830,null,null,1139,704,1148,1024],["Icon elements › external icon mapping › a click on markup a renderer callback put inside the indicator still toggles the sort",1196,821,null,null,1211,681,1228,955],["Icon elements › external icon mapping › a renderer-callback icon mapping sets real, visible text content - the shape a ligature-based icon font (e.g. Material Symbols) uses",1098,706,null,null,1090,635,1131,883],["Icon elements › external icon mapping › a runtime icons remap reaches the reused header button, filters select, and select editor icons",1428,867,null,null,1249,777,1329,1021],["Icon elements › external icon mapping › a runtime icons remap reaches the reused multi-select search icon",1151,780,null,null,1178,724,1293,1045],["Icon elements › external icon mapping › an unmapped slot keeps the built-in glyph - mapping is per-slot, not all-or-nothing",952,613,null,null,982,548,1005,753],["Icon elements › external icon mapping › the mapped class-list glyph is actually visible at icon size, not merely classed",1017,638,null,null,1031,559,966,756],["Icon elements › filters plugin › a radio in the \"Filter by condition\" operators row carries its dot icon and stays clickable",1318,988,null,null,1570,871,1509,1302],["Icon elements › filters plugin › the \"Filter by value\" list shows one checkbox icon per row and stays clickable",1368,870,null,null,1223,765,1479,1088],["Icon elements › filters plugin › the \"Filter by value\" ticks follow a class-list mapping of the grid's theme",1362,840,null,null,1307,844,1406,1158],["Icon elements › filters plugin › the condition select caption keeps exactly one caret icon after changing condition",1383,902,null,null,1438,858,1385,1156],["Icon elements › filters plugin › the radio dot stays centred on its ring whatever gap the row uses",1416,887,null,null,1276,818,1356,1167],["Icon elements › hidden columns indicator › a header with a hidden neighbor on each side carries both carets at once",967,603,null,null,1037,574,918,783],["Icon elements › hidden columns indicator › disabling the plugin removes every caret",941,632,null,null,893,515,998,806],["Icon elements › hidden columns indicator › in RTL, the carets stay physical: no flip class, and the LTR mask-position is preserved",1012,629,null,null,1012,511,1099,755],["Icon elements › hidden columns indicator › re-rendering repeatedly keeps exactly one caret per header",970,607,null,null,964,571,1048,816],["Icon elements › hidden columns indicator › the box is 10x10, not the 16px default icon size",1003,591,null,null,972,505,1024,764],["Icon elements › hidden columns indicator › the carets stay vertically centred on a header taller than one line",961,589,null,null,938,516,1040,784],["Icon elements › hidden columns indicator › the header before the gap and the header after it each carry one caret, with the correct glyph",1032,600,null,null,955,528,1104,749],["Icon elements › hidden columns indicator › the retired pseudo-elements no longer paint on the marked headers",978,613,null,null,898,559,982,726],["Icon elements › hidden columns indicator › unhiding the middle column removes both carets",993,579,null,null,986,527,1047,756],["Icon elements › hidden columns indicator › with nested headers, only the header row that touches the cells carries carets, and they stay 10x10",953,627,null,null,972,581,987,778],["Icon elements › hidden columns indicator › without nested headers, every header row carries its caret",1016,608,null,null,1014,581,1036,854],["Icon elements › hidden rows indicator › a header with a hidden neighbor on each side carries both carets at once",956,585,null,null,939,576,988,758],["Icon elements › hidden rows indicator › disabling the plugin removes every caret",992,586,null,null,985,577,979,737],["Icon elements › hidden rows indicator › re-rendering repeatedly keeps exactly one caret per header",1019,627,null,null,977,590,1018,804],["Icon elements › hidden rows indicator › the box is 10x10, same as the column carets, even though the glyph is drawn at 8x8",910,571,null,null,845,505,1015,708],["Icon elements › hidden rows indicator › the header before the gap and the header after it each carry one caret, with the correct glyph",936,572,null,null,912,495,999,733],["Icon elements › hidden rows indicator › the retired pseudo-elements no longer paint on the marked headers",928,564,null,null,877,543,883,700],["Icon elements › hidden rows indicator › unhiding the middle row removes both carets",949,574,null,null,941,577,939,772],["Icon elements › icon resolution revision guard › a runtime icons remap restyles an existing sort-indicator icon on the SAME element, across two successive theme changes",1162,800,null,null,1222,742,1484,965],["Icon elements › icon resolution revision guard › repeated renders with no theme change leave the sort-indicator icon untouched",1141,748,null,null,1189,781,1378,1005],["Icon elements › icons keep painting through theme changes and user markup › a font-mapped hidden-column caret stays inside its 10x10 box",969,661,null,null,1024,560,1092,799],["Icon elements › icons keep painting through theme changes and user markup › a header hook that rewrites the th drops the caret, one that writes the label keeps it",1012,579,null,null,941,541,932,765],["Icon elements › icons keep painting through theme changes and user markup › a press on renderer markup inside the collapse indicator still collapses the group",1110,728,null,null,1120,755,1176,916],["Icon elements › icons keep painting through theme changes and user markup › renderer markup inside the nested rows button gets no row-header label padding",1009,622,null,null,977,586,1018,809],["Icon elements › icons keep painting through theme changes and user markup › switching from a theme object to a class-name theme puts kept icons back on their glyph",1059,681,null,null,1059,627,1213,880],["Icon elements › icons keep painting through theme changes and user markup › the multi-select editor tick sits on its checkbox box (ltr)",971,641,null,null,931,575,1040,813],["Icon elements › icons keep painting through theme changes and user markup › the multi-select editor tick sits on its checkbox box (rtl)",1064,668,null,null,978,620,972,803],["Icon elements › icons keep painting through theme changes and user markup › the sort arrow and the hidden column and row carets paint their glyph",1787,1077,null,null,1664,1042,1650,1381],["Icon elements › in RTL the submenu arrow keeps its 18.1 inset of four gaps from the menu edge",1016,795,null,null,971,599,1146,879],["Icon elements › menu items carry icon elements for checked state and submenus",1070,688,null,null,1089,573,1112,842],["Icon elements › multi-select renderer and editor › a cell with chips shows one remove icon per chip",959,752,null,null,871,578,983,753],["Icon elements › multi-select renderer and editor › a click precisely on a chip remove icon removes that chip - the icon does not intercept the click",1083,718,null,null,1009,637,1100,830],["Icon elements › multi-select renderer and editor › a click precisely on the arrow opens the editor - the icon does not intercept the click",1107,643,null,null,1046,575,1101,853],["Icon elements › multi-select renderer and editor › a selected item shows its tick, driven by input:checked + .ht-icon",1266,722,null,null,1146,599,1218,881],["Icon elements › multi-select renderer and editor › every multiselect cell carries the select-arrow icon",1002,794,null,null,970,568,1042,770],["Icon elements › multi-select renderer and editor › opening the editor shows exactly one search icon, still carrying the legacy search-icon class",1376,647,null,null,987,574,1048,822],["Icon elements › multi-select renderer and editor › repeated renders keep the icon counts stable - no duplication",1355,743,null,null,1055,626,1118,931],["Icon elements › multi-select renderer and editor › the retired pseudo-elements no longer paint the arrow or the chip-remove glyph",1034,657,null,null,972,517,997,777],["Icon elements › nested rows collapse button › an expanded parent row carries exactly one collapse-off icon",983,564,null,null,936,513,980,714],["Icon elements › nested rows collapse button › clicking the button collapses the parent and swaps the icon to collapse-on",1137,639,null,null,1166,610,1065,872],["Icon elements › nested rows collapse button › re-rendering the header repeatedly keeps exactly one button icon",932,564,null,null,920,523,953,742],["Icon elements › nested rows collapse button › the retired glyph pseudo-element no longer paints on the button",872,556,null,null,861,515,894,686],["Icon elements › notification close button › a click on the close icon dismisses the toast - the icon does not intercept the click",1159,672,null,null,1211,829,1324,1103],["Icon elements › notification close button › a closable toast's close button carries exactly one chip-close icon",1098,575,null,null,842,547,1111,737],["Icon elements › notification close button › switching themes while a toast is open rebuilds its icon and keeps the toast visible",1123,696,null,null,1156,585,1053,814],["Icon elements › notification close button › the close button's accessible name is unchanged - the decorative icon is not announced",1002,615,null,null,744,524,881,728],["Icon elements › notification close button › the retired pseudo-element no longer paints the glyph",945,632,null,null,985,474,915,750],["Icon elements › pagination bar › every navigation button carries exactly one icon of the expected name, in LTR and RTL",1501,996,null,null,1620,842,1679,1263],["Icon elements › pagination bar › mirroring follows layoutDirection, not the page dir, when the two disagree",1411,861,null,null,1486,779,1475,1044],["Icon elements › pagination bar › pagination buttons carry directional icons that mirror in RTL",1524,899,null,null,1351,811,1514,1149],["Icon elements › pagination bar › switching themes at runtime rebuilds the icons and keeps exactly one per button",1165,698,null,null,1164,707,1238,913],["Icon elements › pagination bar › the page-size caret exists and is never mirrored, in LTR or RTL",1495,904,null,null,1447,874,1482,1101],["Icon elements › pagination bar › the retired pseudo-element no longer paints on the navigation buttons",950,590,null,null,961,573,898,724],["Icon elements › sheets bar › a color-scheme switch keeps an open tab rename and the text typed into it",1247,726,null,null,1123,697,1230,891],["Icon elements › sheets bar › a repaint of the tab strip keeps exactly one chevron icon per tab",1029,611,null,null,954,577,955,782],["Icon elements › sheets bar › a runtime icons remap reaches the bar buttons and the tab chevrons in place",1046,622,null,null,929,564,1164,858],["Icon elements › sheets bar › switching themes at runtime rebuilds the bar icons and keeps exactly one per slot",1076,654,null,null,1130,599,1197,855],["Icon elements › sheets bar › the active tab chevron carries the select-arrow icon",914,605,null,null,968,546,915,727],["Icon elements › sheets bar › the add and all-sheets buttons carry their icons",940,522,null,null,949,560,1052,742],["Icon elements › sheets bar › the chevron hover surface (a non-icon ::before) still lights up on hover, on the active tab",956,641,null,null,1043,629,1046,845],["Icon elements › sheets bar › the paging arrows mirror only in RTL",1481,881,null,null,1424,846,1544,1139],["Icon elements › sheets bar › the retired glyph pseudo-elements no longer paint on the buttons or the chevron",945,553,null,null,967,520,1060,730],["Icon elements › the theme stylesheet defines a --ht-icon-* variable per icon",948,619,null,null,901,531,919,709],["Icon elements › the theme stylesheet has no pseudo-element icon rules left",1014,572,null,null,940,594,984,750]],
"e2e/iframe-cross-realm-scroll.spec.ts":[["cross-realm width-only grid: the engine must agree with itself about the owner › fires the scroll hooks for a holder the parent realm cannot recognize",1107,636,null,null,1147,570,1089,905],["cross-realm width-only grid: the engine must agree with itself about the owner › keeps the frozen rows aligned with the master while the holder scrolls",1038,820,null,null,1003,511,1076,842],["cross-realm width-only grid: the engine must agree with itself about the owner › keeps the top clone aligned while an arrow key scrolls the holder",1319,802,null,null,1197,690,1232,1018],["cross-realm width-only grid: the engine must agree with itself about the owner › renders the first rows at the top of the page and follows the window scroll",1075,645,null,null,1047,575,1064,831],["cross-realm width-only grid: the engine must agree with itself about the owner › scrolls the columns from a wheel over the frozen rows",1180,888,null,null,1085,675,1215,954],["cross-realm width-only grid: the engine must agree with itself about the owner › scrolls the columns inside the holder instead of clipping them away",1002,621,null,null,1006,547,1057,804],["cross-realm width-only grid: the engine must agree with itself about the owner › sizes the holder from the iframe root that owns the horizontal axis",1016,610,null,null,897,503,1043,805]],
"e2e/incremental-render.spec.ts":[["renderMode: always (default) › leaves no selection class behind when the selection moves",1158,701,null,null,1184,593,1017,942],["renderMode: always (default) › paints every rendered cell on a scroll",1058,680,null,null,1088,545,1036,885],["renderMode: always (default) › paints every rendered cell on every render",1001,617,null,null,1251,552,961,792],["renderMode: onChange › applies and removes selection classes in every shape",1674,1091,null,null,1518,921,1730,1449],["renderMode: onChange › honors a column-level renderMode: always inside an onChange grid",1018,653,null,null,902,528,979,747],["renderMode: onChange › keeps frozen overlays and merged cells in step with a full repaint",1541,1030,null,null,1477,884,1456,1292],["renderMode: onChange › keeps the DOM equal to a full repaint through scrolling",1202,747,null,null,1123,687,1135,915],["renderMode: onChange › paints every rendered cell after a structural change",1072,710,null,null,1086,604,1183,911],["renderMode: onChange › paints nothing on a render with nothing changed",1086,661,null,null,1057,540,951,778],["renderMode: onChange › paints only the changed cell on a data change",1049,680,null,null,944,580,1138,904],["renderMode: onChange › paints the cells whose meta changed, including a class that is removed again",1140,749,null,null,1111,602,1228,922],["renderMode: onChange › repaints a cell marked with markCellChanged(), and every cell after markAllCellsChanged()",1028,606,null,null,923,530,989,817],["renderMode: onChange › repaints formula dependents and a HYPERLINK whose URL lives in another cell",1471,812,null,null,1337,705,1502,1027],["renderMode: onChange › shows and clears Search results",1179,871,null,null,1251,737,1311,977],["renderMode: onChange, changes the render must see › drops the comment marker when the Comments plugin is disabled directly",971,566,null,null,937,557,1023,780],["renderMode: onChange, changes the render must see › keeps a class named by beforeRemoveCellClassNames applied on a draw that skips the cell",1074,735,null,null,1020,595,1152,915],["renderMode: onChange, changes the render must see › keeps the cell right of a merged block sized when only that cell repaints",1058,609,null,null,952,550,1018,840],["renderMode: onChange, changes the render must see › keeps the selection on live cells after the rendered band shrank and grew back",1218,738,null,null,1250,648,1257,975],["renderMode: onChange, changes the render must see › repaints the cells whose `cells` function result changed",1049,718,null,null,972,618,993,839],["renderMode: onChange, scrolling › keeps an open editor on its cell across a scroll that keeps the row rendered",1213,792,null,null,1168,679,1263,950],["renderMode: onChange, scrolling › keeps frozen overlays and a merged block in step with a full repaint through scroll-driven draws",1262,786,null,null,1117,729,1181,1100],["renderMode: onChange, scrolling › keeps the focus in the grid when the selected row leaves the band",1142,692,null,null,1131,607,1202,951],["renderMode: onChange, scrolling › keeps the frozen overlays in step with a full repaint through scrolling",1297,806,null,null,1206,700,1191,1064],["renderMode: onChange, scrolling › keeps the tables equal to a full repaint when row mapping changes interleave with scrolls",2276,1525,null,null,2305,1258,2196,2030],["renderMode: onChange, scrolling › paints only the rows that enter the band, and keeps the elements of the rows that stay",1454,987,null,null,1293,753,1393,1148],["renderMode: onChange, scrolling › repaints only the entering rows and the merged blocks on a scroll through virtualized merges",1419,971,null,null,1512,818,1476,1274]],
"e2e/intl-date-editor-ime-fast-edit.spec.ts":[["imeFastEdit with the intl-date editor › keeps the focus on the editor input when Enter opens the editor and characters are typed",null,null,963,1226,null,null,1122,null],["imeFastEdit with the intl-date editor › moves the focus to the editor input when a cell is selected and keeps it there",null,null,946,973,null,null,931,null]],
"e2e/invalid-mark-update-settings.spec.ts":[["invalid mark across updateSettings › clears the mark when a correction resolves after the cache was cleared",null,null,null,null,null,null,1009,null],["invalid mark across updateSettings › does not mark a cell when loadData resets the grid while the validator runs",null,null,null,null,null,null,958,null],["invalid mark across updateSettings › does not mark a rejected `allowInvalid: false` edit",null,null,null,null,null,null,1073,null],["invalid mark across updateSettings › does not mark another cell when rows shift while the validator runs",null,null,null,null,null,null,1074,null],["invalid mark across updateSettings › does not replay the mark once the cell validates again",null,null,null,null,null,null,941,null],["invalid mark across updateSettings › does not treat a `valid` flag inherited from the column layer as a cell failure",null,null,null,null,null,null,976,null],["invalid mark across updateSettings › keeps the mark across consecutive updateSettings calls",null,null,null,null,null,null,855,null],["invalid mark across updateSettings › keeps the mark at its shifted position after a row insert",null,null,null,null,null,null,1030,null],["invalid mark across updateSettings › keeps the mark when the validator resolves after the cache was cleared",null,null,null,null,null,null,955,null],["invalid mark across updateSettings › keeps the mark when updateSettings carries `cell`",null,null,null,null,null,null,881,null],["invalid mark across updateSettings › keeps the mark when updateSettings carries `cells`",null,null,null,null,null,null,943,null],["invalid mark across updateSettings › keeps the mark when updateSettings carries `columns`",null,null,null,null,null,null,978,null],["invalid mark across updateSettings › treats a mark in a column the update removes like a setCellMeta value",null,null,null,null,null,null,950,null]],
"e2e/ipad-selection-handles.spec.ts":[["iPadOS double-tap to edit with range handles present › opens the editor on a double-tap after the cell is selected",1009,null,null,null,1066,null,1300,null],["iPadOS frozen-top corner reserve › grows the top overlay holder for a frozen-row selection even with the fill handle off",615,null,null,null,865,null,1059,null],["iPadOS frozen-top corner reserve › keeps a frozen-row bottom handle while its column is on screen, and only then",992,null,null,null,1574,null,1491,null],["iPadOS range handles on a merged cell across the freeze lines › draws one bottom handle, on the block's own corner",648,null,null,null,1007,null,1021,null],["iPadOS range handles on a merged cell across the freeze lines › keeps a plain cell's bottom handle when an unrelated hook answers with a short result",632,null,null,null,992,null,894,null],["iPadOS selection range handles › does not extend the selection from a mouse drag on the range handle",943,null,null,null,1113,null,1046,null],["iPadOS selection range handles › extend the selection when the bottom range handle is dragged",1538,null,null,null,1613,null,1694,null],["iPadOS selection range handles › keep the moveCells drag band on iPad when the option is on",872,null,null,null,935,null,982,null],["iPadOS selection range handles › show mobile range handles and hide the fill square after a tap",1186,null,null,null,1107,null,1137,null],["iPadOS selection range handles › starts a moveCells drag from a mouse press on the band, away from the range handle",834,null,null,null,1100,null,1149,null]],
"e2e/keyboard-nav.spec.ts":[["keyboard navigation › arrow keys move the selection; an edit commits to the landed cell",null,null,null,null,null,null,1054,null]],
"e2e/layout-slot-focus.spec.ts":[["layout-slot click (outsideClickDeselects: false) › keeps the grid listening to the keyboard",null,null,null,null,null,null,1014,null],["layout-slot click (outsideClickDeselects: false) › keeps the selection when the page-size control is clicked",null,null,null,null,null,null,887,null],["layout-slot click (outsideClickDeselects: true) › clears the selection when the page-size control is clicked",null,null,null,null,null,null,1082,null],["layout-slot click (outsideClickDeselects: true) › keeps the grid listening to the keyboard",null,null,null,null,null,null,1034,null]],
"e2e/leg-declarations.spec.ts":[["leg declarations › a value of HOT_E2E_FULL_MATRIX the config does not know fails the run instead of picking a shape",null,null,null,null,null,null,1113,null],["leg declarations › every test runs on exactly the projects its tags declare",null,null,null,null,null,null,34,null],["leg declarations › the full matrix runs every test on all six projects and loses no test",null,null,null,null,null,null,5270,null],["leg declarations › the tags Playwright sees are the tags written in the source, so a misspelled constant cannot drop a spec off its legs",null,null,null,null,null,null,674,null]],
"e2e/license-bar.spec.ts":[["license notification bar on a narrow grid › does not scroll when the grid is at least as wide as the bar minimum width",939,560,null,null,1032,494,876,706],["license notification bar on a narrow grid › keeps its minimum width and scrolls within the slot at grid width 100px",993,605,null,null,1372,543,945,740],["license notification bar on a narrow grid › keeps its minimum width and scrolls within the slot at grid width 150px",941,615,null,null,1064,503,1109,775],["license notification bar on a narrow grid › keeps its minimum width and scrolls within the slot at grid width 299px",947,572,null,null,968,499,968,782]],
"e2e/license-branding.spec.ts":[["entitlement license key branding › a key that cannot be read, and no key at all › blocks the grid with a non-closable modal, and no bar, for a \"bare-block\" key",890,null,null,null,972,null,932,null],["entitlement license key branding › a key that cannot be read, and no key at all › blocks the grid with a non-closable modal, and no bar, for a \"edited-prose\" key",1003,null,null,null,1079,null,878,null],["entitlement license key branding › a key that cannot be read, and no key at all › blocks the grid with a non-closable modal, and no bar, for a \"missing\" key",1020,null,null,null,1177,null,914,null],["entitlement license key branding › a key that cannot be read, and no key at all › blocks the grid with a non-closable modal, and no bar, for a \"tampered\" key",1031,null,null,null,927,null,954,null],["entitlement license key branding › a key that cannot be read, and no key at all › does not lock a licensed grid whose key arrived with whitespace around it",786,null,null,null,707,null,892,null],["entitlement license key branding › a key that cannot be read, and no key at all › keeps the documentation link inside the modal focus trap",957,null,null,null,929,null,941,null],["entitlement license key branding › a key that cannot be read, and no key at all › keeps the modal copy inside a grid narrower than its longest token",867,null,null,null,1003,null,858,null],["entitlement license key branding › a key that cannot be read, and no key at all › leaves a lapsed legacy key with its bottom bar and no modal",653,null,null,null,554,null,950,null],["entitlement license key branding › a running trial › does not leak the glyph into a nested grid",1073,null,null,null,946,null,1022,null],["entitlement license key branding › a running trial › does not pop the tooltip over frozen data cells when there are no headers",854,null,null,null,855,null,791,null],["entitlement license key branding › a running trial › paints the glyph inside the corner header cell, never overflowing it",962,null,null,null,935,null,883,null],["entitlement license key branding › a running trial › reads a trial key license-key 4.x issued exactly like a current one",915,null,null,null,807,null,825,null],["entitlement license key branding › a running trial › scales the glyph down inside a corner narrower than it",914,null,null,null,868,null,871,null],["entitlement license key branding › a running trial › shows the corner badge with its hover tooltip, and nothing else",951,null,null,null,793,null,783,null],["entitlement license key branding › a subscription past its grace period › stays console-only for a \"subscription-external\" key: no lock, no bar, no badge",911,null,null,null,1173,null,939,null],["entitlement license key branding › a subscription past its grace period › stays console-only for a \"subscription-pasted\" key: no lock, no bar, no badge",815,null,null,null,1096,null,829,null],["entitlement license key branding › a subscription past its grace period › stays console-only for a \"subscription-wrapped\" key: no lock, no bar, no badge",746,null,null,null,1482,null,869,null],["entitlement license key branding › a subscription past its grace period › stays console-only for a \"subscription\" key: no lock, no bar, no badge",1134,null,null,null,1435,null,853,null],["entitlement license key branding › a trial inside its grace period › closes the popover while hovered, and shows it again on the next corner hover",1096,null,null,null,1143,null,1120,null],["entitlement license key branding › a trial inside its grace period › keeps the corner select-all click working underneath the badge",1080,null,null,null,983,null,962,null],["entitlement license key branding › a trial inside its grace period › opens the popover by itself and shows the bar under the grid",963,null,null,null,890,null,828,null],["entitlement license key branding › a trial inside its grace period › re-anchors the popover when there is no corner cell, and restores the badge with one",960,null,null,null,898,null,888,null],["entitlement license key branding › a trial issued for external use › shows the badge and the bar without the flag, and neither with it",1290,null,null,null,1175,null,1254,null],["entitlement license key branding › a trial past its grace period › is unaffected by the app using the Dialog plugin for its own dialogs",971,null,null,null,890,null,837,null],["entitlement license key branding › a trial past its grace period › keeps the lock across a settings update",873,null,null,null,920,null,892,null],["entitlement license key branding › a trial past its grace period › leaves the keyboard where the user had it",844,null,null,null,797,null,868,null],["entitlement license key branding › a trial past its grace period › mounts a blocking, non-closable lock",863,null,null,null,799,null,812,null],["entitlement license key branding › a trial past its grace period › owns the keyboard once the user reaches it, and Escape does not dismiss it",891,null,null,null,868,null,938,null],["entitlement license key branding › a trial past its grace period › still blocks when the key carries no-ui-warns",882,null,null,null,877,null,871,null],["entitlement license key branding › a trial past its grace period › takes the lock down with the instance",870,null,null,null,879,null,800,null]],
"e2e/limit-fixed-to-viewport.spec.ts":[["limitFixedToViewport › a first frozen track wider than the grid › is not drawn as frozen, and the whole grid stays reachable",786,604,null,null,993,528,1103,743],["limitFixedToViewport › a frozen area bigger than the grid › a cut start band does not hand its columns to the end band",728,569,null,null,862,470,992,709],["limitFixedToViewport › a frozen area bigger than the grid › frozen bottom rows leave a strip, and the first scrollable row is reachable",912,689,null,null,1295,607,1039,905],["limitFixedToViewport › a frozen area bigger than the grid › frozen end columns leave a strip, and the first scrollable column is reachable",901,622,null,null,1245,515,1070,802],["limitFixedToViewport › a frozen area bigger than the grid › frozen start columns leave a strip, and the last column is reachable",833,600,null,null,1421,591,1023,792],["limitFixedToViewport › a frozen area bigger than the grid › frozen top rows leave a strip, and the last row is reachable",842,672,null,null,1356,590,1042,865],["limitFixedToViewport › a frozen area bigger than the grid › the start band has priority over the end band",713,533,null,null,932,508,918,714],["limitFixedToViewport › a frozen area bigger than the grid › the top band has priority over the bottom band",789,640,null,null,970,531,932,820],["limitFixedToViewport › a grid that is not laid out when it is built › keeps the configured counts while unmeasured, and clamps once it is drawn",699,576,null,null,930,494,933,762],["limitFixedToViewport › a grid that the window scrolls › measures again when the window is resized",972,730,null,null,1034,624,1104,1088],["limitFixedToViewport › a hidden track at the inner edge of a band › does not lower the drawn count when the whole band fits",715,594,null,null,894,494,873,716],["limitFixedToViewport › a window resize that a listener blocks › does not render the grid when the frozen counts would move",890,767,null,null,1148,678,1031,884],["limitFixedToViewport › drawing again after the first measure › tall frozen rows loaded after a measure draw once more, and then the heights are known",756,606,null,null,970,566,925,840],["limitFixedToViewport › frozen rows taller than the default height › are counted at the height they are drawn at, not the default one",797,614,null,null,961,542,1052,846],["limitFixedToViewport › keyboard navigation › Ctrl+ArrowDown reaches the last row and shows it",784,627,null,null,1010,530,1005,920],["limitFixedToViewport › keyboard navigation › Ctrl+ArrowRight reaches the last column and shows it",732,614,null,null,864,533,1007,864],["limitFixedToViewport › keyboard navigation › the editor opens over the cell it edits",753,609,null,null,1034,581,988,960],["limitFixedToViewport › ManualColumnFreeze before the grid renders again › freezes two columns in a row, because each freeze counts from the configured band",804,561,null,null,977,509,961,780],["limitFixedToViewport › ManualColumnFreeze before the grid renders again › refuses a freeze that does not fit, even when the configured band is the most that fits",753,617,null,null,951,500,936,765],["limitFixedToViewport › ManualColumnFreeze next to a frozen end band › does not unfreeze a column that would slide into the end band",668,625,null,null,881,520,1049,840],["limitFixedToViewport › ManualColumnFreeze with a cut start band and an end band › does not unfreeze when writing the smaller start would widen the end band",692,607,null,null,872,470,972,700],["limitFixedToViewport › resizing the grid › shrinking turns the clamp on and growing reverses it",704,700,null,null,1076,567,1008,845],["limitFixedToViewport › the code that reads the frozen band › ManualColumnFreeze does not unfreeze a column that scrolls, and freezes at the drawn line",758,579,null,null,1037,518,969,744],["limitFixedToViewport › the code that reads the frozen band › manualColumnMove and manualRowMove use the drawn band, not the configured one",651,584,null,null,929,521,1001,737],["limitFixedToViewport › the code that reads the frozen band › the editor of a cell past the drawn band is a scrollable-area editor",785,606,null,null,923,525,1007,715],["limitFixedToViewport › the end band as configured › ManualColumnFreeze and ManualColumnMove keep the configured end band when fewer columns are drawn",728,586,null,null,906,494,870,706],["limitFixedToViewport › the end band as configured › the guideline of a column move follows the end band the grid draws",670,569,null,null,890,515,989,716],["limitFixedToViewport › the frozen area that fits › is drawn in full",661,585,null,null,829,488,877,676],["limitFixedToViewport › the frozen end overlay › is removed when no end column is drawn and comes back when the grid grows",693,617,null,null,974,565,1023,784],["limitFixedToViewport › the heights of frozen rows that were measured › are forgotten when the rows are loaded again",743,709,null,null,1006,595,1117,853],["limitFixedToViewport › the option turned off › keeps drawing the frozen area in full",647,549,null,null,887,583,916,793],["limitFixedToViewport › the resize handle on a freeze line › is marked on the line that is drawn, not on the configured one",861,634,null,null,966,562,970,751],["limitFixedToViewport › toggling the option › turning it off draws the full area, and turning it on clamps again",730,654,null,null,939,554,974,761],["limitFixedToViewport › variants › works in RTL",803,593,null,null,1031,535,955,776],["limitFixedToViewport › variants › works when the window scrolls the rows",842,648,null,null,959,569,1072,851],["limitFixedToViewport › variants › works with a hidden column inside the band",729,600,null,null,1019,552,917,865],["limitFixedToViewport › what the frozen band holds when the grid cuts it › a collapsible group inside the configured end band gets no toggle, whatever is drawn",778,638,null,null,1061,576,967,821],["limitFixedToViewport › what the frozen band holds when the grid cuts it › a custom border follows the drawn start band, not the configured one",726,569,null,null,910,522,878,760],["limitFixedToViewport › what the frozen band holds when the grid cuts it › PageDown into the cut bottom band keeps the selection reachable",793,724,null,null,991,585,1133,839],["limitFixedToViewport › what the frozen band holds when the grid cuts it › the column menu offers Freeze for a scrolling column when one more frozen column fits",818,691,null,null,1038,550,1166,795],["limitFixedToViewport › what the frozen band holds when the grid cuts it › the column menu offers neither item for a column that scrolls next to a band that is the most that fits",802,678,null,null,968,583,1166,892],["limitFixedToViewport › what the frozen band holds when the grid cuts it › the column menu offers Unfreeze for a frozen column, and no Freeze when nothing more fits",711,600,null,null,960,491,1038,768],["limitFixedToViewport › with the freezeBar plugin › asks for a count inside a batch after a removal without throwing",669,537,null,null,881,503,929,723],["limitFixedToViewport › with the freezeBar plugin › commits the drawn count when the app asks for it, and reports the configured one as the old count",742,574,null,null,909,564,912,770],["limitFixedToViewport › with the freezeBar plugin › keeps a configured count the app did not touch",664,565,null,null,797,447,892,699],["limitFixedToViewport › with the freezeBar plugin › keeps the configured count when a gesture ends where it began",781,655,null,null,944,705,1002,765],["limitFixedToViewport › with the freezeBar plugin › keeps the configured count when a grow step cannot fit",682,540,null,null,841,499,935,749],["limitFixedToViewport › with the freezeBar plugin › puts the bar on the drawn count, while the plugin reports the configured one",703,536,null,null,811,459,875,738],["limitFixedToViewport › with the freezeBar plugin › puts the bar on the line where the drawn band ends",667,571,null,null,854,560,931,663]],
"e2e/list-cell-arrow-layout.spec.ts":[["autocomplete list-cell arrow layout › anchors the arrow beside the first line on a tall row",662,null,null,null,867,null,840,null],["autocomplete list-cell arrow layout › anchors the arrow with the value under htBottom",657,null,null,null,806,null,826,null],["autocomplete list-cell arrow layout › anchors the arrow with the value under htBottom on an exact-height row",680,null,null,null,816,null,879,null],["autocomplete list-cell arrow layout › grows the column to fit the value plus the arrow under autoColumnSize",641,null,null,null,834,null,946,null],["autocomplete list-cell arrow layout › keeps a breakable value on one line by default and truncates it with an ellipsis",666,null,null,null,789,null,815,null],["autocomplete list-cell arrow layout › keeps the arrow on the first line under colWidths with a long value",666,null,null,null,814,null,860,null],["autocomplete list-cell arrow layout › leaves a sibling text column wrapping (the default is scoped to the list types)",659,null,null,null,831,null,865,null],["autocomplete list-cell arrow layout › reserves the arrow at the leading edge in RTL",666,null,null,null,799,null,972,null],["autocomplete list-cell arrow layout › shows the ellipsis inside the clip on an exact-height row, for a list and a text cell",656,null,null,null,894,null,926,null],["autocomplete list-cell arrow layout › vertically centers the arrow with the value under htMiddle",637,null,null,null,884,null,851,null],["autocomplete list-cell arrow layout › vertically centers the arrow with the value under htMiddle on an exact-height row",637,null,null,null,836,null,884,null],["autocomplete list-cell arrow layout › wraps again when the column opts out with textEllipsis: false",682,null,null,null,775,null,860,null],["dropdown list-cell arrow layout › anchors the arrow beside the first line on a tall row",656,null,null,null,850,null,856,null],["dropdown list-cell arrow layout › anchors the arrow with the value under htBottom",668,null,null,null,886,null,795,null],["dropdown list-cell arrow layout › anchors the arrow with the value under htBottom on an exact-height row",675,null,null,null,892,null,884,null],["dropdown list-cell arrow layout › grows the column to fit the value plus the arrow under autoColumnSize",629,null,null,null,787,null,873,null],["dropdown list-cell arrow layout › keeps a breakable value on one line by default and truncates it with an ellipsis",685,null,null,null,843,null,848,null],["dropdown list-cell arrow layout › keeps the arrow on the first line under colWidths with a long value",661,null,null,null,801,null,933,null],["dropdown list-cell arrow layout › leaves a sibling text column wrapping (the default is scoped to the list types)",658,null,null,null,800,null,865,null],["dropdown list-cell arrow layout › reserves the arrow at the leading edge in RTL",688,null,null,null,763,null,958,null],["dropdown list-cell arrow layout › shows the ellipsis inside the clip on an exact-height row, for a list and a text cell",697,null,null,null,939,null,941,null],["dropdown list-cell arrow layout › vertically centers the arrow with the value under htMiddle",644,null,null,null,824,null,959,null],["dropdown list-cell arrow layout › vertically centers the arrow with the value under htMiddle on an exact-height row",679,null,null,null,786,null,933,null],["dropdown list-cell arrow layout › wraps again when the column opts out with textEllipsis: false",646,null,null,null,815,null,864,null],["handsontable list-cell arrow layout › anchors the arrow beside the first line on a tall row",624,null,null,null,821,null,929,null],["handsontable list-cell arrow layout › anchors the arrow with the value under htBottom",655,null,null,null,799,null,925,null],["handsontable list-cell arrow layout › anchors the arrow with the value under htBottom on an exact-height row",687,null,null,null,844,null,866,null],["handsontable list-cell arrow layout › grows the column to fit the value plus the arrow under autoColumnSize",652,null,null,null,887,null,901,null],["handsontable list-cell arrow layout › keeps a breakable value on one line by default and truncates it with an ellipsis",666,null,null,null,858,null,913,null],["handsontable list-cell arrow layout › keeps the arrow on the first line under colWidths with a long value",639,null,null,null,776,null,881,null],["handsontable list-cell arrow layout › leaves a sibling text column wrapping (the default is scoped to the list types)",682,null,null,null,797,null,872,null],["handsontable list-cell arrow layout › reserves the arrow at the leading edge in RTL",683,null,null,null,866,null,858,null],["handsontable list-cell arrow layout › shows the ellipsis inside the clip on an exact-height row, for a list and a text cell",653,null,null,null,805,null,839,null],["handsontable list-cell arrow layout › vertically centers the arrow with the value under htMiddle",614,null,null,null,771,null,992,null],["handsontable list-cell arrow layout › vertically centers the arrow with the value under htMiddle on an exact-height row",697,null,null,null,815,null,884,null],["handsontable list-cell arrow layout › wraps again when the column opts out with textEllipsis: false",654,null,null,null,798,null,863,null]],
"e2e/loading-states.spec.ts":[["loading overlay states › a custom icon, title and description replace the defaults",699,null,null,null,864,null,971,null],["loading overlay states › in an RTL grid the overlay mirrors: the spinner moves to the right of the Arabic title",709,null,null,null,855,null,986,null],["loading overlay states › over a grid with no rows the overlay still covers the whole root",685,null,null,null,809,null,948,null],["loading overlay states › Tab from the page puts the focus on the overlay itself, not on the grid behind it",716,null,null,null,919,null,917,null],["loading overlay states › the default overlay covers the grid with the spinner before the translated title, and no description",704,null,null,null,901,null,1036,null]],
"e2e/manual-column-freeze-boundary.spec.ts":[["ManualColumnFreeze: the freeze line › moving columns across it › drags a frozen column out of the frozen area",1211,null,null,null,1527,null,1596,null],["ManualColumnFreeze: the freeze line › moving columns across it › drops a column before a frozen one, which takes the frozen slot",1370,null,null,null,1624,null,1746,null],["ManualColumnFreeze: the freeze line › moving columns across it › reorders columns inside the frozen area",1169,null,null,null,1465,null,1548,null],["ManualColumnFreeze: the freeze line › the drop guideline › is drawn above the frozen columns when the drop is between two of them",1180,null,null,null,1396,null,1557,null],["ManualColumnFreeze: the freeze line › the drop guideline › is drawn above the frozen columns when the drop is in front of the first one",1224,null,null,null,1379,null,1547,null],["ManualColumnFreeze: the freeze line › the drop guideline › is drawn at the drop spot in a grid the page scrolls, away from the page edge",1599,null,null,null,1965,null,1985,null],["ManualColumnFreeze: the freeze line › the drop guideline › is drawn between scrollable columns, the control",1133,null,null,null,1303,null,1493,null],["ManualColumnFreeze: the freeze line › the drop guideline › is drawn on the next drag too, after one that ended over the frozen columns",1564,null,null,null,1960,null,1905,null],["ManualColumnFreeze: the freeze line › the drop guideline › is drawn when the drop is at the freeze line",1230,null,null,null,1476,null,1529,null],["ManualColumnFreeze: the freeze line › the selection after a menu action › follows the unfrozen column to its restored position",1100,null,null,null,1458,null,1553,null],["ManualColumnFreeze: the freeze line › the selection after a menu action › stays on the column that was frozen",898,null,null,null,1160,null,1255,null],["ManualColumnFreeze: the freeze line › the selection after a menu action › stays on the column that was unfrozen, at the freeze line",1161,null,null,null,1508,null,1546,null],["ManualColumnFreeze: the freeze line › unfreezing › leaves the column at the freeze line by default",1137,null,null,null,1491,null,1514,null],["ManualColumnFreeze: the freeze line › unfreezing › never lands the restored column in the fixedColumnsEnd band",1232,null,null,null,1535,null,1668,null],["ManualColumnFreeze: the freeze line › unfreezing › puts the column back at its place in data order with restoreColumnPosition",1112,null,null,null,1618,null,1674,null],["ManualColumnFreeze: the freeze line › unfreezing › restores two frozen columns unfrozen in freeze order",877,null,null,null,1142,null,1154,null],["ManualColumnFreeze: the freeze line › unfreezing › restores two frozen columns unfrozen in reverse order",854,null,null,null,1137,null,1254,null],["ManualColumnFreeze: the freeze line › unfreezing › undoes and redoes a restore in one step",1147,null,null,null,1600,null,1631,null]],
"e2e/manual-resize-contextmenu.spec.ts":[["Manual resize handle and the context menu › keeps removing both column elements after a real resize drag has attached the guide",null,null,null,null,null,null,1050,null],["Manual resize handle and the context menu › keeps removing both row elements after a real resize drag has attached the guide",null,null,null,null,null,null,1058,null],["Manual resize handle and the context menu › survives a right-click on a column handle when the host page swallows mousedown",null,null,null,null,null,null,1009,null],["Manual resize handle and the context menu › survives a right-click on a row handle when the host page swallows mousedown",null,null,null,null,null,null,1007,null],["Manual resize handle and the context menu › survives a synthetic context menu over a hovered column handle",null,null,null,null,null,null,1033,null],["Manual resize handle and the context menu › survives a synthetic context menu over a hovered row handle",null,null,null,null,null,null,960,null]],
"e2e/manual-resize-dblclick-hold-guide.spec.ts":[["Manual resize guide after a held double-click autosize › hides the column guide while the button is still down",null,null,null,null,null,null,1001,null],["Manual resize guide after a held double-click autosize › hides the row guide while the button is still down",null,null,null,null,null,null,1081,null]],
"e2e/manual-resize-drag-distance.spec.ts":[["resizing by dragging a header handle › auto-sizes a column beside a hidden column and keeps the room of its indicator",1616,null,1945,2033,1821,null,1902,null],["resizing by dragging a header handle › heightens a row by the distance its handle is dragged",693,null,1188,1315,913,null,1005,null],["resizing by dragging a header handle › leaves a column beside a hidden column as wide as it was when the resize is cancelled",874,null,1101,1247,1005,null,1087,null],["resizing by dragging a header handle › leaves a column beside a hidden column as wide as it was when the resize is cancelled under stretchH: 'all'",836,null,1281,1369,997,null,1028,null],["resizing by dragging a header handle › leaves a column beside a hidden column as wide as it was when the resize is cancelled under stretchH: 'last'",789,null,1288,1403,1085,null,1111,null],["resizing by dragging a header handle › narrows a frozen column beside hidden columns by the distance its handle is dragged",789,null,1130,1248,1000,null,1113,null],["resizing by dragging a header handle › stores the dragged size for every selected column",904,null,1260,1673,1184,null,1288,null],["resizing by dragging a header handle › widens a column beside a hidden column by the distance dragged under stretchH: 'all'",857,null,1009,1267,1053,null,1063,null],["resizing by dragging a header handle › widens a column beside a hidden column by the distance dragged under stretchH: 'last'",734,null,1205,1414,921,null,1037,null],["resizing by dragging a header handle › widens a column beside a hidden column by the distance its handle is dragged",946,null,1172,1283,1008,null,1148,null],["resizing by dragging a header handle › widens a column beside a hidden column that already has a stored size by the distance dragged",854,null,1115,1313,1096,null,1148,null],["resizing by dragging a header handle › widens a column by the distance its handle is dragged",973,null,1168,1176,1069,null,1054,null],["resizing by dragging a header handle › widens a frozen column beside hidden columns by the distance its handle is dragged",821,null,1126,1262,1047,null,1137,null]],
"e2e/manual-resize-drag-interruption.spec.ts":[["Manual resize drag interrupted by updateSettings › completes a column drag when the plugin is re-stated mid-drag",null,null,null,null,null,null,1179,null],["Manual resize drag interrupted by updateSettings › completes a row drag across an update that touches neither resize plugin",null,null,null,null,null,null,985,null],["Manual resize drag interrupted by updateSettings › completes a row drag when the plugin is re-stated mid-drag",null,null,null,null,null,null,1232,null],["Manual resize drag interrupted by updateSettings › re-stating the other axis does not disturb an open row drag",null,null,null,null,null,null,993,null],["Manual resize second-press hold interrupted mid-timer › autosizes a held column second press when the plugin is re-stated mid-timer",null,null,null,null,null,null,1073,null],["Manual resize second-press hold interrupted mid-timer › autosizes a held row second press when the plugin is re-stated mid-timer",null,null,null,null,null,null,1066,null]],
"e2e/manual-resize-guide-geometry.spec.ts":[["Manual row resize handle and guide geometry › draws the handle and the guide on the boundary of a row frozen at the bottom (bottom-start corner overlay)",803,null,null,null,1063,null,1190,null],["Manual row resize handle and guide geometry › draws the handle and the guide on the boundary of a row frozen at the top (top-start corner overlay)",932,null,null,null,1083,null,1161,null],["Manual row resize handle and guide geometry › draws the handle and the guide on the boundary of a scrolling row (inline-start overlay)",875,null,null,null,1028,null,1134,null]],
"e2e/manual-resize-size-option-reset.spec.ts":[["Manual resize versus the size option › applies colWidths to a column that was resized by dragging",1010,null,null,null,1377,null,1453,null],["Manual resize versus the size option › applies colWidths to a grid built with an empty manualColumnResize array",972,null,null,null,1200,null,1440,null],["Manual resize versus the size option › applies minRowHeights, the documented alias, to a dragged row",1028,null,null,null,1343,null,1487,null],["Manual resize versus the size option › applies rowHeights to a grid built with an empty manualRowResize array",1006,null,null,null,1349,null,1474,null],["Manual resize versus the size option › applies rowHeights to a row that was resized by dragging",1068,null,null,null,1429,null,1456,null],["Manual resize versus the size option › clears every dragged column width with clearManualSizes()",998,null,null,null,1313,null,1411,null],["Manual resize versus the size option › clears every dragged row height with clearManualSizes()",1064,null,null,null,1402,null,1441,null],["Manual resize versus the size option › clears one dragged row height with clearManualSize()",1146,null,null,null,1338,null,1662,null],["Manual resize versus the size option › does nothing when clearManualSize() is given an out-of-range index",1017,null,null,null,1432,null,1435,null],["Manual resize versus the size option › does nothing when clearManualSizes() runs on a disabled plugin",858,null,null,null,1180,null,1204,null],["Manual resize versus the size option › keeps a dragged column width when the update does not re-declare colWidths",1033,null,null,null,1335,null,1400,null],["Manual resize versus the size option › keeps a dragged height on a manualRowResize array grid when rowHeights is re-declared",1016,null,null,null,1283,null,1513,null],["Manual resize versus the size option › keeps a dragged row height when the update does not re-declare rowHeights",988,null,null,null,1236,null,1370,null],["Manual resize versus the size option › keeps a dragged width on a manualColumnResize array grid when colWidths is re-declared",1111,null,null,null,1307,null,1448,null],["Manual resize versus the size option › keeps the heights of a grid built with a manualRowResize array",854,null,null,null,1040,null,1385,null],["Manual resize versus the size option › lets a taller rowHeights win over a dragged height when AutoRowSize is on",1012,null,null,null,1294,null,1545,null],["Manual resize versus the size option › lets an explicit manualRowResize array win over rowHeights in the same call",980,null,null,null,1318,null,1334,null]],
"e2e/manual-resize-teardown.spec.ts":[["Manual resize handle and guide teardown › detaches both column elements when the plugin is turned off after a drag",817,null,null,null,935,null,1034,null],["Manual resize handle and guide teardown › detaches both row elements when the plugin is turned off after a drag",780,null,null,null,1043,null,1078,null],["Manual resize handle and guide teardown › detaches the column handle when the plugin is turned off",691,null,null,null,886,null,976,null],["Manual resize handle and guide teardown › detaches the column handle when the plugin itself is destroyed",579,null,null,null,825,null,892,null],["Manual resize handle and guide teardown › detaches the handle when the plugin itself is destroyed",662,null,null,null,828,null,844,null],["Manual resize handle and guide teardown › detaches the row handle when the plugin is turned off",724,null,null,null,904,null,968,null],["Manual resize handle and guide teardown › keeps both column elements attached while the plugin stays on",803,null,null,null,920,null,1055,null],["Manual resize handle and guide teardown › keeps both row elements attached while the plugin stays on",724,null,null,null,986,null,1034,null],["Manual resize handle and guide teardown › keeps resizing after the plugin is turned off and on again",834,null,null,null,1005,null,1125,null],["Manual resize handle and guide teardown › keeps the row handle attached through a double-click autoresize",1251,null,null,null,1532,null,1560,null],["Manual resize handle and guide teardown › leaves nothing in the container after the grid is destroyed",621,null,null,null,826,null,945,null],["Manual resize handle and guide teardown › stops the orphaned column handle from swallowing the header click",739,null,null,null,933,null,1038,null],["Manual resize handle and guide teardown › stops the orphaned row handle from swallowing the header click",721,null,null,null,983,null,1052,null],["Manual resize pending autoresize timeout › does not re-attach the column handle after the plugin was turned off",792,null,null,null,967,null,997,null],["Manual resize pending autoresize timeout › does not re-attach the row handle after the plugin was turned off",717,null,null,null,904,null,1057,null]],
"e2e/manual-resize-undo-handle.spec.ts":[["resize handle after undo › a column handle follows the header when Ctrl+Z undoes a resize after a cell click",866,null,1189,1329,1088,null,1243,null],["resize handle after undo › a row handle follows the header when Ctrl+Z undoes a resize after a cell click",957,null,2407,1347,1072,null,1243,null],["resize handle after undo › Ctrl+Z after a column header resize restores the column and the handle",831,null,1100,1245,1068,null,1133,null],["resize handle after undo › Ctrl+Z after a row header resize restores the row and the handle",833,null,1070,1217,1092,null,1202,null],["resize handle after undo › Ctrl+Z undoes a column resize released outside the grid",876,null,2167,1173,1080,null,1229,null],["resize handle after undo › Ctrl+Z undoes a row resize released outside the grid",817,null,1115,1172,1076,null,1099,null]],
"e2e/manual-row-move-drag.spec.ts":[["moving a row by dragging its header › selects the row by its header and moves it to where it is dropped, still selected",1035,null,1500,1585,1277,null,1371,null]],
"e2e/manual-row-resize-autofit.spec.ts":[["Manual row resize autofit on a double-click › fits every selected row to its content when the handle is double-clicked",1337,null,null,null,1655,null,1660,null],["Manual row resize autofit on a double-click › fits the double-clicked row when the pointer moves to the next row right after it",1250,null,null,null,1472,null,1520,null]],
"e2e/max-length.spec.ts":[["maxLength › a custom editor that extends the text editor › is capped like the text editor",780,612,null,null,899,555,1043,711],["maxLength › a value that is already too long › is kept and marked invalid when the user commits it while it is still too long",714,583,null,null,937,589,1002,801],["maxLength › a value that is already too long › is not truncated when the editor opens, and deleting shortens it down to the limit",775,636,null,null,971,572,1056,820],["maxLength › cascading configuration › lets a cell override the limit of its column",859,686,null,null,988,592,1096,994],["maxLength › cascading configuration › limits each column by its own `maxLength`",896,854,null,null,1148,680,1286,1177],["maxLength › editors other than the plain text editor › does not cap what is typed into a numeric or a password editor",807,699,null,null,1009,618,1079,909],["maxLength › editors other than the plain text editor › does not flag over-limit digits committed from a numeric column, because they are stored as a number",730,630,null,null,951,553,1008,825],["maxLength › inserting a line break › adds nothing in the middle of a full cell, and leaves the text alone",742,656,null,null,964,544,1070,787],["maxLength › inserting a line break › adds one in the middle of a cell that has room",733,620,null,null,980,523,908,763],["maxLength › list editors that share the text editor input › caps typing in a dropdown cell and marks a long option picked from it as invalid",953,883,null,null,1256,823,1468,1149],["maxLength › list editors that share the text editor input › caps typing in a handsontable-type cell",772,642,null,null,891,589,1134,890],["maxLength › list editors that share the text editor input › caps typing in an autocomplete cell and queries the list for the capped text",1005,742,null,null,1241,652,1319,1012],["maxLength › list editors that share the text editor input › does not cap an autocomplete cell without a limit, and the list filters as before",895,797,null,null,1112,663,1220,1010],["maxLength › list editors that share the text editor input › rejects a long option picked in a strict autocomplete cell, although typing cannot reach it",946,806,null,null,1201,680,1275,972],["maxLength › list editors that share the text editor input › stores an option that fits when it is picked in the same strict autocomplete cell",858,736,null,null,1092,781,1340,967],["maxLength › pasting into the text editor › cuts a text that is too long at the limit",702,599,null,null,954,535,988,844],["maxLength › pasting into the text editor › cuts the excess of a paste in the middle, keeping the text on both sides",736,621,null,null,901,535,928,831],["maxLength › pasting into the text editor › keeps what was already in the cell and fills only the room that is left",738,593,null,null,995,528,975,752],["maxLength › the cap does not outlive the edit it belongs to › does not carry a pending snapshot from one cell into the next",829,672,null,null,984,570,1050,891],["maxLength › the cap does not outlive the edit it belongs to › restores a deleted too-long value with undo, whole",706,584,null,null,836,560,994,761],["maxLength › the guide example: maxLength 5 with allowInvalid false › keeps the editor open on an over-limit value that is committed unchanged",690,646,null,null,980,592,1164,777],["maxLength › the guide example: maxLength 5 with allowInvalid false › stores the 5 characters that fit and closes the editor",789,638,null,null,879,563,1092,769],["maxLength › together with a custom validator › requires the value to pass both, and does not call the custom validator for a value that is too long",676,544,null,null,923,528,881,793],["maxLength › typing in the text editor › counts an emoji as one character",578,641,null,null,831,605,893,803],["maxLength › typing in the text editor › does not cap the text when `maxLength` is not set",533,618,null,null,709,626,939,853],["maxLength › typing in the text editor › ignores typing in the middle of a full cell and keeps the caret where it was",647,646,null,null,929,552,1005,787],["maxLength › typing in the text editor › stops at the limit",677,610,null,null,853,580,968,798],["maxLength › typing into a value that is already too long › lets a replacement delete the selection but never adds to the value",774,643,null,null,950,564,1046,796],["maxLength › typing into a value that is already too long › rejects the typed text and leaves the existing text and the caret alone",869,612,null,null,995,567,1151,793],["maxLength › typing straight onto a selected cell › stops at the limit without opening the editor first",750,619,null,null,962,544,1101,757],["maxLength › validation of a value that did not come through the editor › marks a value pasted into the grid as invalid and keeps it, with `allowInvalid: true`",748,596,null,null,863,539,941,800],["maxLength › validation of a value that did not come through the editor › marks a value that is too long as invalid and keeps it, with `allowInvalid: true`",670,559,null,null,853,530,865,689],["maxLength › validation of a value that did not come through the editor › rejects a value pasted into the grid, with `allowInvalid: false`",643,604,null,null,968,555,1017,957],["maxLength › what counts as one character › adds no part of a flag when no slot is left",738,614,null,null,915,539,1007,738],["maxLength › what counts as one character › counts an emoji with a skin tone as one character",691,581,null,null,984,555,992,753],["maxLength › what counts as one character › fits a flag whole when one slot is left",682,596,null,null,921,530,1097,759],["maxLength › whitespace › counts every space when `trimWhitespace` is off",686,582,null,null,870,527,980,768],["maxLength › whitespace › cuts the extra letters of a paste that ends in spaces, and keeps the spaces for the commit to trim",761,645,null,null,931,533,1074,792],["maxLength › whitespace › does not count a leading space of a paste, because the commit trims it",749,639,null,null,912,567,1059,811],["maxLength › whitespace › does the same for a paste that also starts with a space",796,627,null,null,1044,580,1108,842],["maxLength › whitespace › lets trailing spaces into a full cell, because the commit trims them",766,602,null,null,973,539,1081,807]],
"e2e/menu-open-failure.spec.ts":[["a menu item that throws while the menu is opening › closes again cleanly after recovering",null,null,null,null,null,null,1150,null],["a menu item that throws while the menu is opening › destroys the grid cleanly, so the document listener cannot leak",null,null,null,null,null,null,1087,null],["a menu item that throws while the menu is opening › does not crash on the next click anywhere on the page",null,null,null,null,null,null,1096,null],["a menu item that throws while the menu is opening › does not crash when clicking a grid cell",null,null,null,null,null,null,1162,null],["a menu item that throws while the menu is opening › leaves the menu closed instead of stranded half-open",null,null,null,null,null,null,1037,null],["a menu item that throws while the menu is opening › opens normally once the item stops throwing",null,null,null,null,null,null,1201,null],["a menu item that throws while the menu is opening › still reports the item's own error, so the app's bug is not swallowed",null,null,null,null,null,null,1044,null],["contextMenu: an item callback that reaches into the menu while it opens › a close() that is ignored does not rebuild the item list under the open menu",null,null,null,null,null,null,914,null],["contextMenu: an item callback that reaches into the menu while it opens › a close() while the menu is still opening leaves a working menu",null,null,null,null,null,null,979,null],["contextMenu: an item callback that reaches into the menu while it opens › a nested open() while the menu is still opening is ignored, as it always was",null,null,null,null,null,null,974,null],["contextMenu: an item callback that reaches into the menu while it opens › a settings change from an item callback leaves no menu running",null,null,null,null,null,null,811,null],["contextMenu: an item callback that reaches into the menu while it opens › a settings change while the item list is filtered leaves no menu running",null,null,null,null,null,null,738,null],["contextMenu: an item callback that reaches into the menu while it opens › a sub-menu item that throws while its sub-menu opens leaves nothing behind",null,null,null,null,null,null,1859,null],["contextMenu: an item callback that reaches into the menu while it opens › a sub-menu removes the grid hook it added when it closes",null,null,null,null,null,null,1485,null],["contextMenu: an item callback that reaches into the menu while it opens › a sub-menu teardown that throws leaves the menu closed and the next open clean",null,null,null,null,null,null,1418,null],["contextMenu: an item callback that reaches into the menu while it opens › a throwing hide listener does not replace the error that made the open fail",null,null,null,null,null,null,1039,null],["contextMenu: an item callback that reaches into the menu while it opens › a throwing item leaves the menu closed, and the next click clean",null,null,null,null,null,null,1001,null],["contextMenu: an item callback that reaches into the menu while it opens › an item that destroys the whole grid still releases the half-built menu",null,null,null,null,null,null,1024,null],["contextMenu: an item callback that reaches into the menu while it opens › isOpened() never claims a menu that cannot be driven yet",null,null,null,null,null,null,960,null],["contextMenu: an item callback that reaches into the menu while it opens › the public show and hide hooks read the same open state as before",null,null,null,null,null,null,917,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a close() that is ignored does not rebuild the item list under the open menu",null,null,null,null,null,null,1059,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a close() while the menu is still opening leaves a working menu",null,null,null,null,null,null,1011,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a nested open() while the menu is still opening is ignored, as it always was",null,null,null,null,null,null,1068,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a settings change from an item callback leaves no menu running",null,null,null,null,null,null,953,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a settings change while the item list is filtered leaves no menu running",null,null,null,null,null,null,850,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a sub-menu item that throws while its sub-menu opens leaves nothing behind",null,null,null,null,null,null,1915,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a sub-menu removes the grid hook it added when it closes",null,null,null,null,null,null,1463,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a sub-menu teardown that throws leaves the menu closed and the next open clean",null,null,null,null,null,null,1465,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a throwing hide listener does not replace the error that made the open fail",null,null,null,null,null,null,1030,null],["dropdownMenu: an item callback that reaches into the menu while it opens › a throwing item leaves the menu closed, and the next click clean",null,null,null,null,null,null,1018,null],["dropdownMenu: an item callback that reaches into the menu while it opens › an item that destroys the whole grid still releases the half-built menu",null,null,null,null,null,null,960,null],["dropdownMenu: an item callback that reaches into the menu while it opens › isOpened() never claims a menu that cannot be driven yet",null,null,null,null,null,null,1014,null],["dropdownMenu: an item callback that reaches into the menu while it opens › the public show and hide hooks read the same open state as before",null,null,null,null,null,null,1155,null]],
"e2e/menu-scroll.spec.ts":[["menu follows its anchor on outside element scroll › context menu follows its cell on vertical grid scroll and closes when the cell derenders",766,null,null,null,1021,null,1253,null],["menu follows its anchor on outside element scroll › context menu follows its cell when an ancestor container is scrolled",822,null,null,null,1015,null,1024,null],["menu follows its anchor on outside element scroll › dropdown menu closes when its column is scrolled out of the grid viewport",814,null,null,null,1048,null,1187,null],["menu follows its anchor on outside element scroll › dropdown menu does NOT move on vertical grid scroll (sticky header)",871,null,null,null,1143,null,1259,null],["menu follows its anchor on outside element scroll › dropdown menu follows its column when the grid itself is scrolled horizontally",880,null,null,null,1132,null,1100,null],["menu follows its anchor on outside element scroll › dropdown menu follows its header button when an ancestor container is scrolled",986,null,null,null,1175,null,1208,null],["menu follows its anchor on outside element scroll › filter condition select menu follows after the dropdown menu is reinitialized",1141,null,null,null,1436,null,1502,null],["menu follows its anchor on outside element scroll › filter condition select menu follows its select element on container scroll",1058,null,null,null,1199,null,1488,null],["menu follows its anchor on outside element scroll › filter condition select menu stays open on vertical grid scroll (sticky header)",1039,null,null,null,1314,null,1446,null],["menu follows its anchor on outside element scroll › keyboard-opened context menu lands attached to its cell after the open-time viewport scroll",939,null,null,null,1040,null,1099,null],["menu follows its anchor on outside element scroll › page scroll keeps the menu open and correctly positioned",886,null,null,null,1176,null,1269,null],["menu follows its anchor on outside element scroll › scrolling the filter value list inside the menu changes nothing",814,null,null,null,1087,null,1197,null],["menu follows its anchor on outside element scroll › submenu follows together with its parent menu on container scroll",1286,null,null,null,1528,null,1586,null],["menu with uiContainer follows its container natively › container scroll keeps the uiContainer menu attached (no double translation)",939,null,null,null,1226,null,1441,null]],
"e2e/merge-cells-drag-outside.spec.ts":[["drag-selecting out of the grid over a merge › a horizontal merge › ends the selection on the column beside the pointer, inside the merged band",828,null,1043,1125,966,null,1079,null],["drag-selecting out of the grid over a merge › a horizontal merge › ends the selection on the column beside the pointer, past the merged band",778,null,1036,1165,994,null,1099,null],["drag-selecting out of the grid over a merge › a vertical merge › ends the selection on the row beside the pointer, below the merged band",844,null,1086,1239,1017,null,1120,null],["drag-selecting out of the grid over a merge › a vertical merge › ends the selection on the row beside the pointer, inside the merged band",823,null,1085,1230,1033,null,1180,null]],
"e2e/merge-cells-filtered-out-clear.spec.ts":[["`mergeCells` is updated while the filters hide every merged row › dropping the merges does not throw, and the filter menu still works afterwards",1245,null,null,null,1577,null,1609,null],["`mergeCells` is updated while the filters hide every merged row › sending the same merges again keeps the merge for when the rows come back",1262,null,null,null,1457,null,1595,null],["`mergeCells` is updated while the filters hide every merged row › sending the same merges again while a filter leaves fewer rows than the merge spans keeps it",976,null,null,null,1282,null,1383,null],["`mergeCells` is updated while the filters hide every merged row › the formerly merged cells render as two separate cells once the filter is cleared",1014,null,null,null,1323,null,1428,null]],
"e2e/merge-cells-frozen-bottom-end.spec.ts":[["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › default, block from the master columns into the end columns › carries the span on the first frozen row of the bottom end corner",765,null,null,null,967,null,988,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › default, block from the master columns into the end columns › draws one outline, with no edge on the freeze lines, for the selected block",888,null,null,null,1019,null,1122,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › default, block from the master columns into the end columns › keeps drawing the block in the inline-end clone and in the master",794,null,null,null,1042,null,1011,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › default, block from the master columns into the end columns › keeps every other frozen cell under its own header",826,null,null,null,991,null,1218,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › default, block inside the end columns › carries the span on the first frozen row of the bottom end corner",731,null,null,null,1037,null,1043,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › default, block inside the end columns › draws one outline, with no edge on the freeze lines, for the selected block",769,null,null,null,1097,null,1164,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › default, block inside the end columns › keeps drawing the block in the inline-end clone and in the master",809,null,null,null,957,null,1137,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › default, block inside the end columns › keeps every other frozen cell under its own header",846,null,null,null,1111,null,1231,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › virtualized, block from the master columns into the end columns › carries the span on the first frozen row of the bottom end corner",754,null,null,null,978,null,1100,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › virtualized, block from the master columns into the end columns › draws one outline, with no edge on the freeze lines, for the selected block",886,null,null,null,1035,null,1148,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › virtualized, block from the master columns into the end columns › keeps drawing the block in the inline-end clone and in the master",756,null,null,null,1014,null,1013,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › virtualized, block from the master columns into the end columns › keeps every other frozen cell under its own header",827,null,null,null,1080,null,1130,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › virtualized, block inside the end columns › carries the span on the first frozen row of the bottom end corner",749,null,null,null,988,null,1036,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › virtualized, block inside the end columns › draws one outline, with no edge on the freeze lines, for the selected block",806,null,null,null,1017,null,1119,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › virtualized, block inside the end columns › keeps drawing the block in the inline-end clone and in the master",783,null,null,null,980,null,1075,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (ltr) › virtualized, block inside the end columns › keeps every other frozen cell under its own header",764,null,null,null,976,null,1017,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › default, block from the master columns into the end columns › carries the span on the first frozen row of the bottom end corner",734,null,null,null,959,null,1094,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › default, block from the master columns into the end columns › draws one outline, with no edge on the freeze lines, for the selected block",829,null,null,null,1278,null,1094,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › default, block from the master columns into the end columns › keeps drawing the block in the inline-end clone and in the master",757,null,null,null,1011,null,934,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › default, block from the master columns into the end columns › keeps every other frozen cell under its own header",857,null,null,null,1226,null,1109,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › default, block inside the end columns › carries the span on the first frozen row of the bottom end corner",878,null,null,null,1063,null,1044,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › default, block inside the end columns › draws one outline, with no edge on the freeze lines, for the selected block",862,null,null,null,1017,null,1079,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › default, block inside the end columns › keeps drawing the block in the inline-end clone and in the master",791,null,null,null,1033,null,1134,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › default, block inside the end columns › keeps every other frozen cell under its own header",858,null,null,null,1116,null,995,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › virtualized, block from the master columns into the end columns › carries the span on the first frozen row of the bottom end corner",804,null,null,null,964,null,1071,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › virtualized, block from the master columns into the end columns › draws one outline, with no edge on the freeze lines, for the selected block",828,null,null,null,1087,null,1143,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › virtualized, block from the master columns into the end columns › keeps drawing the block in the inline-end clone and in the master",718,null,null,null,936,null,1083,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › virtualized, block from the master columns into the end columns › keeps every other frozen cell under its own header",832,null,null,null,1049,null,1207,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › virtualized, block inside the end columns › carries the span on the first frozen row of the bottom end corner",791,null,null,null,946,null,1102,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › virtualized, block inside the end columns › draws one outline, with no edge on the freeze lines, for the selected block",896,null,null,null,1049,null,1099,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › virtualized, block inside the end columns › keeps drawing the block in the inline-end clone and in the master",758,null,null,null,1022,null,1091,null],["merged cell across fixedRowsBottom and fixedColumnsEnd (rtl) › virtualized, block inside the end columns › keeps every other frozen cell under its own header",793,null,null,null,1096,null,1111,null]],
"e2e/merge-cells-frozen-bottom.spec.ts":[["merged cell across the fixedRowsBottom line › default › carries the span in the corner overlay when the block starts in the frozen column",802,null,null,null,890,null,1005,null],["merged cell across the fixedRowsBottom line › default › carries the span on the first frozen row and leaves its content to the master",750,null,null,null,933,null,1024,null],["merged cell across the fixedRowsBottom line › default › does not let a long text in the block grow the rows of the clone",769,null,null,null,955,null,1004,null],["merged cell across the fixedRowsBottom line › default › draws one outline and one fill handle for the selected block",807,null,null,null,1053,null,1130,null],["merged cell across the fixedRowsBottom line › default › finds the span cell of the clone when the master renders none of the block",756,null,null,null,969,null,1057,null],["merged cell across the fixedRowsBottom line › default › hands a real cell to the mouse hooks when the outline of the clone is pressed",817,null,null,null,1014,null,1118,null],["merged cell across the fixedRowsBottom line › default › keeps the frozen bottom rows under their own headers",775,null,null,null,982,null,981,null],["merged cell across the fixedRowsBottom line › default › keeps the frozen bottom rows under their own headers with row 3 hidden",841,null,null,null,974,null,1075,null],["merged cell across the fixedRowsBottom line › default › keeps the frozen bottom rows under their own headers with row 7 hidden",753,null,null,null,970,null,1137,null],["merged cell across the fixedRowsBottom line › default › marks the span cell of the clone as selected when an area covers the whole block",736,null,null,null,1019,null,1122,null],["merged cell across the fixedRowsBottom line › virtualized › carries the span in the corner overlay when the block starts in the frozen column",778,null,null,null,934,null,1094,null],["merged cell across the fixedRowsBottom line › virtualized › carries the span on the first frozen row and leaves its content to the master",745,null,null,null,1009,null,1021,null],["merged cell across the fixedRowsBottom line › virtualized › does not let a long text in the block grow the rows of the clone",752,null,null,null,906,null,1130,null],["merged cell across the fixedRowsBottom line › virtualized › draws one outline and one fill handle for the selected block",785,null,null,null,1013,null,1195,null],["merged cell across the fixedRowsBottom line › virtualized › finds the span cell of the clone when the master renders none of the block",864,null,null,null,1146,null,1260,null],["merged cell across the fixedRowsBottom line › virtualized › hands a real cell to the mouse hooks when the outline of the clone is pressed",788,null,null,null,989,null,1063,null],["merged cell across the fixedRowsBottom line › virtualized › keeps the frozen bottom rows under their own headers",714,null,null,null,1009,null,1021,null],["merged cell across the fixedRowsBottom line › virtualized › keeps the frozen bottom rows under their own headers with row 3 hidden",792,null,null,null,940,null,1069,null],["merged cell across the fixedRowsBottom line › virtualized › keeps the frozen bottom rows under their own headers with row 7 hidden",804,null,null,null,929,null,1079,null],["merged cell across the fixedRowsBottom line › virtualized › marks the span cell of the clone as selected when an area covers the whole block",815,null,null,null,1049,null,1036,null]],
"e2e/merge-cells-frozen-columns-content.spec.ts":[["content of a merged cell across a frozen-column line › keeps one layout wrapper when a hook wraps the cell content in a link after the plugin",701,null,null,null,962,null,1025,null],["content of a merged cell across a frozen-column line › keeps one layout wrapper when a renderer keeps its DOM across paints",808,null,null,null,1046,null,997,null],["content of a merged cell across a frozen-column line › repaints a crossing block under renderMode onChange when a column of the frozen band is hidden",771,null,null,null,879,null,987,null],["content of a merged cell across a frozen-column line › repaints a crossing block when a column inside it is resized under renderMode onChange",801,null,null,null,953,null,1074,null],["content of a merged cell across a frozen-column line › shows a htCenter value once",749,null,null,null,951,null,1007,null],["content of a merged cell across a frozen-column line › shows a htLeft value once",710,null,null,null,901,null,921,null],["content of a merged cell across a frozen-column line › shows a htRight value once",715,null,null,null,835,null,1005,null],["content of a merged cell across a frozen-column line › shows a right-aligned value in the master after a horizontal scroll",826,null,null,null,1022,null,1088,null],["content of a merged cell across a frozen-column line › shows a value once in a right-to-left grid",671,null,null,null,847,null,910,null],["content of a merged cell across a frozen-column line › shows a value once in a right-to-left grid when the renderer sets the cell direction to ltr",676,null,null,null,856,null,946,null],["content of a merged cell across a frozen-column line › shows a value once when a column inside the block is hidden",759,null,null,null,910,null,1059,null],["content of a merged cell across a frozen-column line › shows a value once when the block reaches into the fixedColumnsEnd band",759,null,null,null,887,null,1106,null],["content of a merged cell across a frozen-column line › shows a value once when the block reaches into the fixedColumnsEnd band of a right-to-left grid",720,null,null,null,1022,null,931,null],["content of a merged cell across a frozen-column line › shows a value once when the block's frozen part sits in the top-start corner",710,null,null,null,858,null,957,null],["content of a merged cell across a frozen-column line › shows a value once with the legacy fixedColumnsLeft option",722,null,null,null,829,null,997,null],["content of a merged cell across a frozen-column line › shows a value once with virtualized merged cells",697,null,null,null,849,null,945,null],["content of a merged cell across a frozen-column line › sizes the layout wrapper with the default width for a column whose width is 0",722,null,null,null,881,null,1015,null],["content of a merged cell across a frozen-column line › starts the inline-end layout wrapper where the master's block cell starts once scrolled to the end",763,null,null,null,1006,null,1097,null],["content of a merged cell across a frozen-column line › wraps a long value at the block width, so the frozen row is as tall as the master row",786,null,null,null,893,null,988,null]],
"e2e/merge-cells-frozen-selection.spec.ts":[["selection of a merged cell across the frozen panes › draws no edge on the freeze line when a virtualized block is scrolled under the frozen rows",952,null,null,null,1066,null,1216,null],["selection of a merged cell across the frozen panes › draws one fill handle when an area selection ends inside a block crossing both freeze lines",856,null,null,null,1030,null,1055,null],["selection of a merged cell across the frozen panes › draws one outline and one fill handle for a block crossing both freeze lines",831,null,null,null,1054,null,1038,null],["selection of a merged cell across the frozen panes › draws one outline and one fill handle for a block crossing the column freeze line only",783,null,null,null,995,null,1054,null],["selection of a merged cell across the frozen panes › draws one outline and one fill handle for a block crossing the row freeze line only",740,null,null,null,1010,null,1125,null],["selection of a merged cell across the frozen panes › draws one outline and one fill handle in a right-to-left grid",771,null,null,null,1012,null,1161,null],["selection of a merged cell across the frozen panes › draws one outline and one fill handle with virtualized merged cells",796,null,null,null,952,null,1100,null],["selection of a merged cell across the frozen panes › draws one outline for a custom border on a block crossing both freeze lines",750,null,null,null,978,null,1229,null],["selection of a merged cell across the frozen panes › keeps a plain cell's fill handle when an unrelated hook answers with a short result",733,null,null,null,910,null,1111,null],["selection of a merged cell across the frozen panes › keeps the fill handle of a block that fits inside the frozen corner",763,null,null,null,973,null,1040,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized false › answers the end clone's cell for a topmost lookup of a covered end column",731,null,null,null,884,null,877,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized false › draws one outline and one fill handle around a block in the bottom end corner",951,null,null,null,1044,null,1175,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized false › draws one outline and one fill handle around a block in the top end corner",776,null,null,null,1071,null,1117,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized false › draws one outline and one fill handle around a block of one row",902,null,null,null,1157,null,1102,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized false › draws one outline and one fill handle around a block that starts on the first end column",874,null,null,null,1074,null,1131,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized false › draws one outline and one fill handle around a taller block",745,null,null,null,1088,null,1138,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized false › fills the part of the block in the end clone",829,null,null,null,1052,null,1171,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized false › selects the block while its anchor is scrolled out of view",712,null,null,null,922,null,1074,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized true › answers the end clone's cell for a topmost lookup of a covered end column",724,null,null,null,937,null,951,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized true › draws one outline and one fill handle around a block in the bottom end corner",832,null,null,null,1025,null,1176,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized true › draws one outline and one fill handle around a block in the top end corner",917,null,null,null,1131,null,1203,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized true › draws one outline and one fill handle around a block of one row",850,null,null,null,1061,null,1078,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized true › draws one outline and one fill handle around a block that starts on the first end column",947,null,null,null,1017,null,1096,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized true › draws one outline and one fill handle around a taller block",841,null,null,null,1019,null,1125,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized true › fills the part of the block in the end clone",931,null,null,null,1050,null,1169,null],["selection of a merged cell that reaches into the end frozen columns › ltr, virtualized true › selects the block while its anchor is scrolled out of view",702,null,null,null,913,null,996,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized false › answers the end clone's cell for a topmost lookup of a covered end column",775,null,null,null,888,null,946,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized false › draws one outline and one fill handle around a block in the bottom end corner",769,null,null,null,1065,null,1181,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized false › draws one outline and one fill handle around a block in the top end corner",848,null,null,null,1164,null,1014,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized false › draws one outline and one fill handle around a block of one row",867,null,null,null,1026,null,1182,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized false › draws one outline and one fill handle around a block that starts on the first end column",917,null,null,null,949,null,1144,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized false › draws one outline and one fill handle around a taller block",872,null,null,null,1088,null,1137,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized false › fills the part of the block in the end clone",850,null,null,null,1065,null,1237,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized false › selects the block while its anchor is scrolled out of view",702,null,null,null,1013,null,1033,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized true › answers the end clone's cell for a topmost lookup of a covered end column",814,null,null,null,889,null,964,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized true › draws one outline and one fill handle around a block in the bottom end corner",914,null,null,null,1065,null,988,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized true › draws one outline and one fill handle around a block in the top end corner",887,null,null,null,996,null,1203,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized true › draws one outline and one fill handle around a block of one row",858,null,null,null,1084,null,1138,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized true › draws one outline and one fill handle around a block that starts on the first end column",715,null,null,null,1014,null,1107,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized true › draws one outline and one fill handle around a taller block",806,null,null,null,1102,null,1199,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized true › fills the part of the block in the end clone",763,null,null,null,1125,null,1131,null],["selection of a merged cell that reaches into the end frozen columns › rtl, virtualized true › selects the block while its anchor is scrolled out of view",773,null,null,null,944,null,1041,null]],
"e2e/merge-cells-header-selection.spec.ts":[["a merged cell under a column selection › draws the merged cell fully selected when only the column layers together cover it",1229,null,1654,2038,1530,null,1557,null],["a merged cell under a column selection › merges a dragged range and draws it fully selected only while the column layers cover it whole",1125,null,1573,1841,1432,null,1479,null]],
"e2e/merge-cells-horizontal-exit.spec.ts":[["MergeCells: a horizontal move off a merge keeps its top row (DEV-102) › entering from the bottom (Up) then leaving left lands on the top row",null,null,null,null,null,null,957,null],["MergeCells: a horizontal move off a merge keeps its top row (DEV-102) › entering from the bottom (Up) then leaving right also lands on the top row",null,null,null,null,null,null,976,null],["MergeCells: a horizontal move off a merge keeps its top row (DEV-102) › entering from the top (Down) then leaving left lands on the same top row",null,null,null,null,null,null,1010,null],["MergeCells: a horizontal move off a merge keeps its top row (DEV-102) › entering the merge with the mouse then leaving left also lands on the top row",null,null,null,null,null,null,1039,null],["MergeCells: a horizontal move off a merge keeps its top row (DEV-102) › Tab from the context menu keeps the entry row instead of snapping to the top",null,null,null,null,null,null,1149,null],["MergeCells: a horizontal move off a merge keeps its top row (DEV-102) › the top-row landing changes which cell is selected, not just its row",null,null,null,null,null,null,951,null],["MergeCells: a horizontal move off a merge keeps its top row (DEV-102) › the top-row snap holds in an RTL layout",null,null,null,null,null,null,941,null],["MergeCells: a horizontal move off a merge keeps its top row (DEV-102) › when the merge top row is hidden it lands on the topmost visible row",null,null,null,null,null,null,1023,null]],
"e2e/merge-cells-init-renders.spec.ts":[["`mergeCells` does not cost extra draws while the grid initializes › a grid without `mergeCells` draws once",622,null,null,null,687,null,781,null],["`mergeCells` does not cost extra draws while the grid initializes › an enabled plugin with no declared area costs no extra draw",603,null,null,null,803,null,819,null],["`mergeCells` does not cost extra draws while the grid initializes › declared merge areas cost exactly one extra draw, and are applied by it",626,null,null,null,815,null,894,null],["`mergeCells` does not cost extra draws while the grid initializes › merges still apply synchronously when the clearing write validates asynchronously",686,null,null,null,767,null,826,null],["`mergeCells` does not cost extra draws while the grid initializes › the object form of the setting costs the same one extra draw",645,null,null,null,770,null,879,null]],
"e2e/merge-cells-nested-rows-collapse.spec.ts":[["`mergeCells` follows a `nestedRows` collapse › a collapsed group shrinks to its parent row and leaves the group below intact",null,null,null,null,null,null,1006,null],["`mergeCells` follows a `nestedRows` collapse › every group is one merged block before anything is collapsed",null,null,null,null,null,null,937,null],["`mergeCells` follows a `nestedRows` collapse › expanding the group again restores every merge whole",null,null,null,null,null,null,1075,null],["`mergeCells` follows a `nestedRows` collapse › two collapsed groups expand back in reverse order",null,null,null,null,null,null,1078,null]],
"e2e/merge-cells-refill.spec.ts":[["row-band refill with a merged block inside the band › double-click autosize refills the viewport and leaves the merged block intact",1778,null,null,null,2083,null,2249,null],["row-band refill with a merged block inside the band › replacing the long values refills the viewport and leaves the merged block intact",802,null,null,null,1085,null,1064,null]],
"e2e/merge-cells-rejected-merge-undo.spec.ts":[["undo of a refused merge › a cell selection that partly overlaps a merge still merges as one undo step",null,null,null,null,null,null,1329,null],["undo of a refused merge › a merge of row headers from the context menu refused by an overlap takes no undo step",null,null,null,null,null,null,1217,null],["undo of a refused merge › a merge of row headers refused by an overlap takes no undo step",null,null,null,null,null,null,1352,null],["undo of a refused merge › a merge over the rows of a merge whose rows are all trimmed is not refused",null,null,null,null,null,null,1105,null],["undo of a refused merge › a merge refused after a `beforeMergeCells` listener merged over it leaves no flags behind",null,null,null,null,null,null,1138,null],["undo of a refused merge › a merge through the API refused by an overlap takes no undo step",null,null,null,null,null,null,994,null],["undo of a refused merge › a refused merge keeps the redo history",null,null,null,null,null,null,1227,null],["undo of a refused merge › a refused merge of row headers keeps the merges inside the selection",null,null,null,null,null,null,1335,null]],
"e2e/min-spare-rows-nested-schema.spec.ts":[["minSpareRows with a nested dataSchema default › does not append rows when a real row is edited",null,null,null,null,null,null,1177,null],["minSpareRows with a nested dataSchema default › recognises a spare row holding nested schema defaults as empty",null,null,null,null,null,null,957,null],["minSpareRows with a nested dataSchema default › reports a column of nested schema defaults as empty",null,null,null,null,null,null,1052,null],["minSpareRows with a nested dataSchema default › resolves a literal dotted schema key rather than walking the path",null,null,null,null,null,null,1143,null],["minSpareRows with a nested dataSchema default › still appends a fresh spare row once a spare row is filled in",null,null,null,null,null,null,1143,null]],
"e2e/mobile-drag-to-scroll.spec.ts":[["mobile drag to scroll › arms the auto-scroller only for a drag that starts on a handle",1076,null,null,null,1317,null,1621,null],["mobile drag to scroll › comes to a stop instead of running away when dragToScroll is off",1445,null,null,null,1751,null,1885,null],["mobile drag to scroll › does not scroll when the handle is dragged to a cell that is already on screen",1182,null,null,null,1331,null,1424,null],["mobile drag to scroll › scrolls down while a selection handle rests past the bottom edge",1683,null,null,null,1999,null,2092,null],["mobile drag to scroll › scrolls right while a selection handle rests past the right edge",1691,null,null,null,1864,null,2064,null]],
"e2e/mobile-selection-handles.spec.ts":[["mobile selection handles › appear on the selection corners after tapping a cell",664,null,null,null,815,null,886,null],["mobile selection handles › follow the selection when another cell is tapped",708,null,null,null,928,null,1028,null],["mobile selection handles › keep the bottom handle interactive when a range ends on the bottom freeze line",1078,null,null,null,1488,null,1497,null],["mobile selection handles › keep the top handle interactive at the frozen-pane boundaries in RTL",1057,null,null,null,1410,null,1555,null],["mobile selection handles › keep the top handle interactive for a row-0 selection with headers",760,null,null,null,892,null,969,null],["mobile selection handles › keep the top handle interactive when a range starts at the frozen-pane boundaries",1087,null,null,null,1342,null,1497,null],["mobile selection handles › keep the top handle on the outer corner when no clone renders over it",1041,null,null,null,1320,null,1346,null]],
"e2e/move-cells-api.spec.ts":[["moveCells moveCellRange API › allows a COPY whose source overlaps a read-only cell",780,null,null,null,1064,null,1143,null],["moveCells moveCellRange API › does not fire beforeMoveCells for a move rejected by a read-only source",784,null,null,null,972,null,1043,null],["moveCells moveCellRange API › does not fire beforeMoveCells for a move rejected by a read-only target",728,null,null,null,955,null,984,null],["moveCells moveCellRange API › does not fire beforeMoveCells for a move rejected by bounds validation",733,null,null,null,854,null,980,null],["moveCells moveCellRange API › fires afterMoveCells with the source range, target range, and isCopy",601,null,null,null,825,null,1007,null],["moveCells moveCellRange API › keeps the source className when isCopy is true",874,null,null,null,960,null,1169,null],["moveCells moveCellRange API › keeps the source when isCopy is true",708,null,null,null,922,null,1049,null],["moveCells moveCellRange API › moves a range to the target, clears the source, and selects the target",729,null,null,null,915,null,1026,null],["moveCells moveCellRange API › moves data correctly when the target overlaps the source range",847,null,null,null,985,null,1058,null],["moveCells moveCellRange API › moves the className meta correctly when the target overlaps the source range",833,null,null,null,1058,null,1132,null],["moveCells moveCellRange API › moves the className meta with the data",834,null,null,null,1052,null,1159,null],["moveCells moveCellRange API › vetoes the move when beforeMoveCells returns false",570,null,null,null,742,null,979,null],["moveCells moveCellRange API › vetoes the move when the SOURCE overlaps a read-only cell",771,null,null,null,976,null,1068,null],["moveCells moveCellRange API › vetoes the move when the target intersects a merged cell",756,null,null,null,1061,null,1060,null],["moveCells moveCellRange API › vetoes the move when the target overlaps a read-only cell",666,null,null,null,728,null,990,null],["moveCells moveCellRange API › vetoes the move when the target range would overflow the grid bounds",751,null,null,null,903,null,1056,null]],
"e2e/move-cells-undo.spec.ts":[["moveCells undo/redo › does not register a second undo action when the redo restores the move",842,null,null,null,1045,null,1150,null],["moveCells undo/redo › redo after undo ends in the moved state",866,null,null,null,1095,null,1185,null],["moveCells undo/redo › redo restores the moved state without asking beforeMoveCells again",814,null,null,null,1147,null,1140,null],["moveCells undo/redo › undo and redo a multi-cell range move",852,null,null,null,1084,null,1209,null],["moveCells undo/redo › undo of a copy clears the target and leaves the source alone",828,null,null,null,1034,null,1118,null],["moveCells undo/redo › undo restores the className meta at both ends",839,null,null,null,1093,null,1107,null],["moveCells undo/redo › undo restores the source and the overwritten target; redo re-applies the move",855,null,null,null,1183,null,1126,null]],
"e2e/move-zone.spec.ts":[["moveCells edge move bands › a selection crossing a frozen pane › decides the bands without the resize handles",764,null,null,null,919,null,1085,null],["moveCells edge move bands › a selection crossing a frozen pane › draws bands on the outer edges only once the master no longer renders the frozen rows",923,null,null,null,1221,null,1292,null],["moveCells edge move bands › a selection crossing a frozen pane › draws bands on the outer edges only, across frozen rows and columns",767,null,null,null,1081,null,1085,null],["moveCells edge move bands › a selection crossing a frozen pane › draws no band on an edge scrolled out of the rendered rows when nothing is frozen",980,null,null,null,1157,null,1096,null],["moveCells edge move bands › a selection crossing a frozen pane › draws no band on the bottom freeze line",784,null,null,null,1017,null,1034,null],["moveCells edge move bands › a selection crossing a frozen pane › draws no band on the column freeze line",791,null,null,null,955,null,1111,null],["moveCells edge move bands › a selection crossing a frozen pane › draws no band on the column freeze line in RTL",781,null,null,null,952,null,1045,null],["moveCells edge move bands › a selection crossing a frozen pane › keeps all four bands in the master when nothing is frozen",674,null,null,null,852,null,871,null],["moveCells edge move bands › adds the ht__moving class during the drag and removes it on drop",763,null,null,null,988,null,1022,null],["moveCells edge move bands › cancels a drag on Escape when the grid was not listening at press time",761,null,null,null,1005,null,941,null],["moveCells edge move bands › copies instead of moving when Ctrl is held on drop",794,null,null,null,1008,null,1023,null],["moveCells edge move bands › copies instead of moving when Meta is held on drop",785,null,null,null,1019,null,1120,null],["moveCells edge move bands › does not move data when disableVisualSelection is set",751,null,null,null,964,null,1055,null],["moveCells edge move bands › does not start a move drag on a right-press",721,null,null,null,877,null,960,null],["moveCells edge move bands › hides source move affordances while a drag preview is active",887,null,null,null,1174,null,1254,null],["moveCells edge move bands › hides the bands when the selection is deselected",653,null,null,null,895,null,1099,null],["moveCells edge move bands › hides the move bands when the plugin is disabled at runtime",752,null,null,null,953,null,1033,null],["moveCells edge move bands › holds the grabbing cursor during the drag and clears it on drop",848,null,null,null,1068,null,1027,null],["moveCells edge move bands › honors the grab offset when dragging from a non-top-left cell of a 2x2 range",753,null,null,null,1105,null,1008,null],["moveCells edge move bands › keeps the autofill fill handle clickable above the move bands",827,null,null,null,1024,null,1082,null],["moveCells edge move bands › keeps the grab offset inside a single-cell selection",1188,null,null,null,1585,null,1517,null],["moveCells edge move bands › moves a single selected cell",809,null,null,null,990,null,1070,null],["moveCells edge move bands › moves the data when a band is dragged to a new location",860,null,null,null,1078,null,1135,null],["moveCells edge move bands › moves visual source values without persisting valueGetter output",796,null,null,null,1040,null,1202,null],["moveCells edge move bands › records no undo entry for a click on a move zone without dragging",777,null,null,null,968,null,1089,null],["moveCells edge move bands › records no undo entry for a macOS-style Ctrl+click on a move zone",795,null,null,null,890,null,883,null],["moveCells edge move bands › records no undo entry when a drag is released back at its origin",829,null,null,null,1084,null,1155,null],["moveCells edge move bands › removes the ghost element after the drop",807,null,null,null,991,null,1103,null],["moveCells edge move bands › removes the move preview when the grid is destroyed during a drag",678,null,null,null,908,null,963,null],["moveCells edge move bands › renders four grab-cursor bands around the selection, below the resize pills",727,null,null,null,886,null,988,null],["moveCells edge move bands › renders the ghost preview over the drop target in an RTL layout",950,null,null,null,1085,null,1155,null],["moveCells edge move bands › renders the ghost preview over the drop target while dragging",767,null,null,null,926,null,1101,null],["moveCells edge move bands › scrolls beyond the viewport while dragging a selection",1159,null,null,null,1187,null,1525,null],["moveCells edge move bands › selects the cell under the pointer when a band press resolves to a click",804,null,null,null,896,null,1072,null],["moveCells edge move bands › shows no move bands for a full column selection",688,null,null,null,875,null,830,null],["moveCells edge move bands › shows no move bands for a full row selection",645,null,null,null,788,null,844,null],["moveCells edge move bands › shows no move bands when disableVisualSelection is set",731,null,null,null,940,null,969,null],["moveCells edge move bands › shows no move bands when moveCells is disabled",692,null,null,null,948,null,1015,null],["moveCells edge move bands › shows no move bands while a cell editor is open",741,null,null,null,921,null,1009,null],["moveCells edge move bands › starts a move drag from each edge band and cancels on Escape",1145,null,null,null,1352,null,1564,null],["moveCells edge move bands › stops auto-scroll when a move drag is canceled",790,null,null,null,1138,null,1054,null],["moveCells edge move bands › updates a multi-row ghost when its target extends beyond the viewport",876,null,null,null,1072,null,1105,null]],
"e2e/multiselect-open-left.spec.ts":[["multiselect opens to the left when there is no room on the right › first column — the list stays aligned with the cell and every control is reachable",667,null,null,null,898,null,1050,null],["multiselect opens to the left when there is no room on the right › last column — filtering a shorter match keeps the open-left flip",891,null,null,null,1167,null,1248,null],["multiselect opens to the left when there is no room on the right › last column — the list opens to the left and stays fully usable",761,null,null,null,884,null,972,null],["multiselect opens to the left when there is no room on the right › RTL first column — the list stays aligned on `right` and is not flipped",711,null,null,null,1014,null,977,null],["multiselect opens to the left when there is no room on the right › RTL last column — the list flips onto `right` and stays fully usable",804,null,null,null,1024,null,1077,null]],
"e2e/narrow-header-menu-button.spec.ts":[["Narrow header with a menu button › collapses the label before it hides the sort indicator",1204,null,null,null,1631,null,1732,null],["Narrow header with a menu button › gives nested headers the floor when colHeaders is off, because the menu draws its button on them",1093,null,null,null,1412,null,1577,null],["Narrow header with a menu button › hides the sort indicator just below that width, and keeps the menu button inside",1324,null,null,null,1549,null,1770,null],["Narrow header with a menu button › keeps the menu button of a plain column inside its own header at the narrowest width",1120,null,null,null,1774,null,1606,null],["Narrow header with a menu button › keeps the menu button of a right-aligned sortable column inside its own header at the narrowest width",1172,null,null,null,1487,null,1569,null],["Narrow header with a menu button › keeps the menu button of a right-to-left sortable column inside its own header at the narrowest width",1159,null,null,null,1487,null,1820,null],["Narrow header with a menu button › keeps the menu button of a right-to-left, left-aligned sortable column inside its own header at the narrowest width",1168,null,null,null,1482,null,1709,null],["Narrow header with a menu button › keeps the menu button of a sortable column inside its own header at the narrowest width",1095,null,null,null,1558,null,1576,null],["Narrow header with a menu button › keeps the menu button of a sorted a right-aligned sortable column inside its header, and hides the indicator",1198,null,null,null,1626,null,1660,null],["Narrow header with a menu button › keeps the menu button of a sorted a right-to-left sortable column inside its header, and hides the indicator",1208,null,null,null,1561,null,1802,null],["Narrow header with a menu button › keeps the menu button of a sorted a right-to-left, left-aligned sortable column inside its header, and hides the indicator",1198,null,null,null,1704,null,1926,null],["Narrow header with a menu button › keeps the menu button of a sorted a sortable column inside its header, and hides the indicator",1281,null,null,null,1543,null,1636,null],["Narrow header with a menu button › keeps the old 20px floor for a grid whose headers render no menu button",1209,null,null,null,1560,null,1652,null],["Narrow header with a menu button › keeps the sort indicator of a right-aligned sortable column while it is wide enough for it",1125,null,null,null,1586,null,1671,null],["Narrow header with a menu button › keeps the sort indicator of a right-to-left sortable column while it is wide enough for it",1163,null,null,null,1583,null,1749,null],["Narrow header with a menu button › keeps the sort indicator of a right-to-left, left-aligned sortable column while it is wide enough for it",1253,null,null,null,1615,null,1593,null],["Narrow header with a menu button › keeps the sort indicator of a sortable column while it is wide enough for it",1224,null,null,null,1656,null,1788,null],["Narrow header with a menu button › leaves what autoColumnSize measures unchanged for a sorted column",1048,null,null,null,1515,null,1615,null],["Narrow header with a menu button › puts the alignment class on the headers of a right-aligned sortable column",979,null,null,null,1321,null,1468,null],["Narrow header with a menu button › puts the alignment class on the headers of a right-to-left, left-aligned sortable column",1058,null,null,null,1461,null,1508,null],["Narrow header with a menu button › resolves a theme token declared in rem, so the menu button still fits",1126,null,null,null,1628,null,1695,null],["Narrow header with a menu button › stops a plain column at the width that fits its menu button",1210,null,null,null,1462,null,1730,null],["Narrow header with a menu button › stops a right-aligned sortable column at the width that fits its menu button",1155,null,null,null,1580,null,1753,null],["Narrow header with a menu button › stops a right-to-left sortable column at the width that fits its menu button",1228,null,null,null,1449,null,1693,null],["Narrow header with a menu button › stops a right-to-left, left-aligned sortable column at the width that fits its menu button",1239,null,null,null,1527,null,1702,null],["Narrow header with a menu button › stops a sortable column at the width that fits its menu button",1161,null,null,null,1584,null,1546,null]],
"e2e/native-input-editor-caret.spec.ts":[["Home/End in native date and time input editors › does not throw and keeps the date (Intl dateFormat) editor open",null,null,null,null,null,null,915,null],["Home/End in native date and time input editors › does not throw and keeps the intl-datetime editor open",null,null,null,null,null,null,795,null],["Home/End in native date and time input editors › does not throw and keeps the time editor open",null,null,null,null,null,null,979,null]],
"e2e/native-picker-editor-keyboard.spec.ts":[["the native picker editors › date: Escape after a double-click closes the editor and its picker",null,null,1096,1347,null,null,859,null],["the native picker editors › date: Tab after Enter commits and moves the selection",null,null,1101,1337,null,null,1100,null],["the native picker editors › intl-datetime: Escape after a double-click closes the editor and its picker",null,null,1097,1036,null,null,1404,null],["the native picker editors › intl-datetime: Shift+Tab after Enter commits and moves the selection",null,null,1073,1020,null,null,1130,null],["the native picker editors › time: Escape after a double-click closes the editor and its picker",null,null,1090,1164,null,null,1250,null],["the native picker editors › time: Tab after Enter commits and moves the selection",null,null,1095,1073,null,null,1120,null],["the native picker of the picker editors › date: a double-click shows the picker",null,null,null,null,null,null,1015,null],["the native picker of the picker editors › date: Alt+ArrowDown shows the picker",null,null,null,null,null,null,965,null],["the native picker of the picker editors › date: Enter does not show the picker",null,null,null,null,null,null,1097,null],["the native picker of the picker editors › date: F2 does not show the picker",null,null,null,null,null,null,1088,null],["the native picker of the picker editors › date: typing does not show the picker",null,null,null,null,null,null,992,null],["the native picker of the picker editors › intl-datetime: a double-click shows the picker",null,null,null,null,null,null,1066,null],["the native picker of the picker editors › intl-datetime: Alt+ArrowDown shows the picker",null,null,null,null,null,null,1085,null],["the native picker of the picker editors › intl-datetime: Enter does not show the picker",null,null,null,null,null,null,1002,null],["the native picker of the picker editors › intl-datetime: F2 does not show the picker",null,null,null,null,null,null,1077,null],["the native picker of the picker editors › intl-datetime: typing does not show the picker",null,null,null,null,null,null,1035,null],["the native picker of the picker editors › time: a double-click shows the picker",null,null,null,null,null,null,1039,null],["the native picker of the picker editors › time: Alt+ArrowDown shows the picker",null,null,null,null,null,null,1080,null],["the native picker of the picker editors › time: Enter does not show the picker",null,null,null,null,null,null,1031,null],["the native picker of the picker editors › time: F2 does not show the picker",null,null,null,null,null,null,1071,null],["the native picker of the picker editors › time: typing does not show the picker",null,null,null,null,null,null,1034,null]],
"e2e/nested-headers-current-row-col-class.spec.ts":[["NestedHeaders vs currentRow/ColClassName (DEV-3012) › a flat single-level grid is unaffected (regression control)",null,null,null,null,null,null,1186,null],["NestedHeaders vs currentRow/ColClassName (DEV-3012) › a multi-cell range (from !== to on the data axis) still reaches every header level",null,null,null,null,null,null,1349,null],["NestedHeaders vs currentRow/ColClassName (DEV-3012) › disableVisualSelection: 'header' - the row/column highlight still reaches every level",null,null,null,null,null,null,1269,null],["NestedHeaders vs currentRow/ColClassName (DEV-3012) › disableVisualSelection: false - currentCol reaches the group header, currentRow reaches every row-header column",null,null,null,null,null,null,1265,null],["NestedHeaders vs currentRow/ColClassName (DEV-3012) › selectionMode: 'single' - both ends of the header extent are still added",null,null,null,null,null,null,1326,null]],
"e2e/nested-headers-grown-widths.spec.ts":[["nested headers that grow the column widths › scrolled to the right edge, the grid renders its last column",744,null,null,null,814,null,1134,null]],
"e2e/nested-headers-long-label.spec.ts":[["nested headers with a long collapsible label › Shift+Tab reaches the group from the first cell, Enter collapses it, and the label is cut before the icon",1289,null,null,null,1389,null,1604,null],["nested headers with a long collapsible label › the expanded group shows its whole label, clear of the collapse icon",986,null,null,null,1147,null,1237,null]],
"e2e/nested-headers-rowspan.spec.ts":[["nested headers with rowspan › aligns the labels of rowspan headers with the bottom header level",728,null,null,null,913,null,1024,null],["nested headers with rowspan › highlights a rowspan header as active when it is clicked",802,null,null,null,1170,null,1208,null],["nested headers with rowspan › keeps the bottom border of a rowspan header at every scroll position",812,null,null,null,1221,null,1222,null],["nested headers with rowspan › keeps the controls of a rowspan header visible and clickable when it collapses",848,null,null,null,1232,null,1363,null]],
"e2e/nested-rows-api.spec.ts":[["NestedRows collapse/expand hooks › fires the collapse hooks with the documented arguments",735,null,null,null,804,null,984,null],["NestedRows collapse/expand hooks › fires the expand hooks with the documented arguments",689,null,null,null,927,null,949,null],["NestedRows collapse/expand hooks › fires the same hooks when the user clicks the row header button",771,null,null,null,920,null,926,null],["NestedRows collapse/expand hooks › fires the same hooks when the user presses Enter on a row header",693,null,null,null,887,null,1032,null],["NestedRows collapse/expand hooks › reports collapsePossible as false for a row that has no children",653,null,null,null,884,null,961,null],["NestedRows collapse/expand hooks › returning false from beforeRowCollapse blocks the collapse and fires no afterRowCollapse",683,null,null,null,828,null,900,null],["NestedRows collapse/expand hooks › returning false from beforeRowExpand blocks the expand and fires no afterRowExpand",695,null,null,null,919,null,1039,null],["NestedRows collapsed state stability › a blocked expand cancels the whole expandToLevel call",709,null,null,null,854,null,931,null],["NestedRows collapsed state stability › disabling the plugin removes the collapse buttons and the indent spacers from the row headers",721,null,null,null,847,null,964,null],["NestedRows collapsed state stability › expandToLevel still collapses when there is nothing left to expand",644,null,null,null,864,null,893,null],["NestedRows collapsed state stability › restoring the collapsed rows after updateSettings fires no hooks",725,null,null,null,938,null,946,null],["NestedRows collapsed state stability › the collapsed rows survive an updateSettings call",668,null,null,null,883,null,880,null],["NestedRows collapsed state stability › the master hider is tall enough for the table on initial display",599,null,null,null,888,null,843,null],["NestedRows collapsed state stability › the methods are safe to call right after loadData, with no retry",676,null,null,null,838,null,944,null],["NestedRows collapsed state stability › the public methods do nothing once the plugin is disabled",727,null,null,null,933,null,967,null],["NestedRows public collapse/expand API › a row without children is never reported as collapsed",708,null,null,null,810,null,959,null],["NestedRows public collapse/expand API › collapseAll leaves only the top-level rows, expandAll restores every level",661,null,null,null,861,null,945,null],["NestedRows public collapse/expand API › collapseParent hides the children of one parent, expandParent brings them back",727,null,null,null,1120,null,1020,null],["NestedRows public collapse/expand API › expandAll also expands a parent that was collapsed inside another collapsed parent",778,null,null,null,1029,null,980,null],["NestedRows public collapse/expand API › expandToLevel shows only rows down to the given nesting level",695,null,null,null,890,null,920,null],["NestedRows public collapse/expand API › expandToRow reveals a row hidden inside a collapsed branch",675,null,null,null,886,null,940,null],["NestedRows public collapse/expand API › getCollapsedParents reports a trimmed parent that has no visual index",740,null,null,null,861,null,947,null],["NestedRows public collapse/expand API › the structure reads describe the tree",646,null,null,null,883,null,933,null],["NestedRows public collapse/expand API › toggleParent matches what the row header button does",699,null,null,null,887,null,1011,null]],
"e2e/nested-rows-autofill.spec.ts":[["fill handle on nested rows › adds the rows a drag from a child inserts to that child's parent",null,null,1425,1580,null,null,1393,null],["fill handle on nested rows › keeps adding top-level rows below a collapsed top-level parent",null,null,1451,1667,null,null,1356,null],["fill handle on nested rows › undo takes the inserted rows out of the parent again",null,null,1901,2055,null,null,1862,null]],
"e2e/nested-rows-clear-column.spec.ts":[["Clear column with collapsed nested rows › clears the rows of collapsed parents, at every depth",null,null,null,null,null,null,1112,1217],["Clear column with collapsed nested rows › clears them after the column was moved, as in the original report",null,null,null,null,null,null,1108,989],["Clear column with collapsed nested rows › clears them from the context menu too",null,null,null,null,null,null,1239,1059],["Clear column with collapsed nested rows › clears them on a column with a validator, and adds no rows",null,null,null,null,null,null,1276,1098],["Clear column with collapsed nested rows › clears them through executeCommand() before the menu was ever opened",null,null,null,null,null,null,1028,865],["Clear column with collapsed nested rows › ends on a header selection the user shrank",null,null,null,null,null,null,1293,1046],["Clear column with collapsed nested rows › ends on the range an API caller hands it when nothing is collapsed",null,null,null,null,null,null,982,805],["Clear column with collapsed nested rows › fires no collapse or expand hook, and reports the hidden rows as source writes",null,null,null,null,null,null,1273,981],["Clear column with collapsed nested rows › is disabled when no cell it would reach is editable",null,null,null,null,null,null,1122,893],["Clear column with collapsed nested rows › keeps the formula engine in step with every cleared row",null,null,null,null,null,null,1444,1119],["Clear column with collapsed nested rows › keeps the selection and its focus where the user left them",null,null,null,null,null,null,1160,893],["Clear column with collapsed nested rows › leaves a user callback under the same key on the collapsed grid",null,null,null,null,null,null,1208,931],["Clear column with collapsed nested rows › stays enabled while only the hidden rows hold editable cells",null,null,null,null,null,null,1586,1292],["Clear column with collapsed nested rows › still ends on the range an API caller hands it without Nested Rows",null,null,null,null,null,null,1005,753],["Clear column with collapsed nested rows › still skips the rows TrimRows trims",null,null,null,null,null,null,1052,901],["Clear column with collapsed nested rows › undo and redo reach every row while the parents stay collapsed",null,null,null,null,null,null,1292,1152],["Clear column with collapsed nested rows › undoes a listener's row removal with the clear, and no earlier edit",null,null,null,null,null,null,1770,1325],["Clear column with collapsed nested rows › writes the hidden rows by record when a listener restructures the tree mid-clear",null,null,null,null,null,null,1209,1083],["Clear column with collapsed nested rows › writes the hidden rows even when beforeChange cancels the visible clear",null,null,null,null,null,null,1157,1050]],
"e2e/nested-rows-collapse-selection.spec.ts":[["NestedRows selection when a section is collapsed › a collapse driven from outside the grid does not pull focus into it",null,null,null,null,null,null,975,null],["NestedRows selection when a section is collapsed › a collapsed-state stash restore does not move the selection",null,null,null,null,null,null,1092,null],["NestedRows selection when a section is collapsed › a highlight on a row header keeps the header column it was on",null,null,null,null,null,null,1024,null],["NestedRows selection when a section is collapsed › a row removal under a whole-column selection does not grow it onto the stash expand",null,null,null,null,null,null,1148,null],["NestedRows selection when a section is collapsed › a selection BELOW the collapsed section stays on its own row",null,null,null,null,null,null,1046,null],["NestedRows selection when a section is collapsed › a whole-column selection the core clamps is not replaced by a single cell",null,null,null,null,null,null,1103,null],["NestedRows selection when a section is collapsed › adding a child under a whole-column selection keeps the viewport where it was",null,null,null,null,null,null,1134,null],["NestedRows selection when a section is collapsed › an updateSettings replay does not move the selection",null,null,null,null,null,null,1125,null],["NestedRows selection when a section is collapsed › collapseAll from two levels deep lands on the nearest ancestor that survives",null,null,null,null,null,null,1068,null],["NestedRows selection when a section is collapsed › collapsing a section the selection is not in leaves the selection alone",null,null,null,null,null,null,1036,null],["NestedRows selection when a section is collapsed › collapsing the last section moves the selection to its parent and keeps the grid usable",null,null,null,null,null,null,1125,null],["NestedRows selection when a section is collapsed › expanding a section grows a whole-column selection made while it was collapsed (DEV-152)",null,null,null,null,null,null,1162,null],["NestedRows selection when a section is collapsed › updateSettings() during a removal grows a whole-column selection onto the rows left expanded",null,null,null,null,null,null,1117,null]],
"e2e/nested-rows-remove-parent.spec.ts":[["NestedRows removing a parent row › \"Remove row\" on a four-level parent removes its whole subtree",null,null,null,null,null,null,1141,null],["NestedRows removing a parent row › a cached row hanging under an uncached node is not dragged into the removal",null,null,null,null,null,null,1029,null],["NestedRows removing a parent row › a child added to the source data without re-caching cannot drag a sibling parent down",null,null,null,null,null,null,974,null],["NestedRows removing a parent row › a selection spanning a parent and its own descendants removes exactly that subtree",null,null,null,null,null,null,912,null],["NestedRows removing a parent row › removing a collapsed parent removes the descendants the collapse trimmed",null,null,null,null,null,null,986,null],["NestedRows removing a parent row › removing a parent nested inside another parent removes its grandchildren",null,null,null,null,null,null,955,null],["NestedRows removing a parent row › removing a two-level parent takes exactly its own children",null,null,null,null,null,null,988,null]],
"e2e/nested-rows-runtime-enable.spec.ts":[["NestedRows enabled at runtime › a plugin enabled at runtime collapses and expands like any other",713,null,null,null,835,null,999,null],["NestedRows enabled at runtime › a round trip drops the collapsed parents rather than replaying them onto the new rows",711,null,null,null,1002,null,1024,null],["NestedRows enabled at runtime › edits still reach the data array the caller passed in",683,null,null,null,892,null,1013,null],["NestedRows enabled at runtime › enabling on a dataset the plugin cannot handle reports it and stays off",659,null,null,null,849,null,979,null],["NestedRows enabled at runtime › re-sending the same setting leaves the rows and the collapsed state alone",787,null,null,null,978,null,1035,null],["NestedRows enabled at runtime › re-sending the setting draws the grid once, not twice",759,null,null,null,923,null,1055,null],["NestedRows enabled at runtime › replacing the data with arrays while the plugin is on disables it without throwing",709,null,null,null,905,null,933,null],["NestedRows enabled at runtime › the row header is widened for the nesting it now has to show",740,null,null,null,851,null,881,null],["NestedRows enabled at runtime › the toggle drops the undo history instead of letting it delete rows",694,null,null,null,909,null,966,null],["NestedRows enabled at runtime › the toggle leaves the viewport where the user scrolled it",674,null,null,null,952,null,897,null],["NestedRows enabled at runtime › the tree survives an off and on round trip",736,null,null,null,916,null,1015,null],["NestedRows enabled at runtime › turning a runtime-enabled plugin off removes its header decoration",743,null,null,null,910,null,1015,null],["NestedRows enabled at runtime › turning the plugin off clamps a selection that covered the flattened rows",757,null,null,null,953,null,965,null],["NestedRows enabled at runtime › turning the plugin off discards an editor open on a row that disappears",716,null,null,null,918,null,976,null],["NestedRows enabled at runtime › turning the plugin off leaves the headers of a grid rendered inside a cell alone",965,null,null,null,1266,null,1338,null],["NestedRows enabled at runtime › turning the plugin off strips the header copies painted in the top overlays too",702,null,null,null,901,null,931,null],["NestedRows enabled at runtime › updateSettings turns the plugin on and flattens the tree",733,null,null,null,925,null,861,null]],
"e2e/nested-rows-sheet-switch.spec.ts":[["NestedRows collapse state across a sheet switch › a branch collapsed from the row header stays collapsed after a round-trip",null,null,null,null,null,null,1124,null],["NestedRows collapse state across a sheet switch › each sheet keeps its own collapsed branches",null,null,null,null,null,null,1445,null]],
"e2e/nested-rows-treegrid-a11y.spec.ts":[["NestedRows treegrid accessibility › a grid built with ariaTags off carries no attributes and announces nothing",null,null,null,null,null,null,960,null],["NestedRows treegrid accessibility › a repaint of unchanged rows writes no row attribute",null,null,null,null,null,null,923,null],["NestedRows treegrid accessibility › a row header selected by a click answers Ctrl/Cmd+arrows and Enter",null,null,null,null,null,null,1050,null],["NestedRows treegrid accessibility › a row is named after the text its row header shows, HTML markup excluded",null,null,null,null,null,null,1229,null],["NestedRows treegrid accessibility › an expand counts only the rows it renders",null,null,null,null,null,null,1042,null],["NestedRows treegrid accessibility › an updateSettings() call that does not name rowHeaders leaves the rows alone",null,null,null,null,null,null,920,null],["NestedRows treegrid accessibility › collapsing with the row header button updates the attributes and announces it politely",null,null,null,null,null,null,1234,null],["NestedRows treegrid accessibility › Ctrl/Cmd+arrows on a row header expand, collapse and walk up the tree, and Enter toggles",null,null,null,null,null,null,1648,null],["NestedRows treegrid accessibility › Ctrl/Cmd+arrows on a row header never jump to the edge of the row, but still jump from a cell",null,null,null,null,null,null,960,null],["NestedRows treegrid accessibility › Enter and the Ctrl/Cmd+arrow chords do nothing while an overlay covers the grid body",null,null,null,null,null,null,1062,null],["NestedRows treegrid accessibility › Enter on a row header toggles even when every column is hidden",null,null,null,null,null,null,953,null],["NestedRows treegrid accessibility › every row carries its level, position and set size, and a parent header its expanded state",null,null,null,null,null,null,859,null],["NestedRows treegrid accessibility › the attributes are removed when the plugin is switched off",null,null,null,null,null,null,986,null],["NestedRows treegrid accessibility › the attributes are removed when the row headers are switched off",null,null,null,null,null,null,889,null],["NestedRows treegrid accessibility › the attributes follow a data replacement",null,null,null,null,null,null,785,null],["NestedRows treegrid accessibility › the Ctrl/Cmd+arrow chords are mirrored in RTL",null,null,null,null,null,null,1271,null],["NestedRows treegrid accessibility › the Ctrl/Cmd+arrow chords keep working after the plugin is rebuilt by updateSettings",null,null,null,null,null,null,1064,null],["NestedRows treegrid accessibility › the plain arrow keys on a row header only move the selection",null,null,null,null,null,null,1079,null],["NestedRows treegrid accessibility › the position and set size follow a child added to and detached from a parent",null,null,null,null,null,null,998,null],["NestedRows treegrid accessibility › the public API changes the attributes but does not announce",null,null,null,null,null,null,1072,null],["NestedRows treegrid accessibility › the walk to a parent hidden by HiddenRows does nothing",null,null,null,null,null,null,940,null]],
"e2e/nested-rows-undo.spec.ts":[["undo after a context-menu removal keeps the highlight on the restored parent",null,null,null,null,null,null,1214,null],["undo restores a removed nested parent and its descendants",null,null,null,null,null,null,1378,null],["undoes and redoes a context-menu child detach as one action",null,null,null,null,null,null,1314,null]],
"e2e/nested-rows-update-data.spec.ts":[["NestedRows collapsed parents across a data replacement › forgets a collapsed parent that updateData() left without children",null,null,null,null,null,null,914,null],["NestedRows collapsed parents across a data replacement › forgets a collapsed parent that updateData() removed from the data",null,null,null,null,null,null,937,null],["NestedRows collapsed parents across a data replacement › keeps a parent collapsed inside another collapsed parent",null,null,null,null,null,null,1025,null],["NestedRows collapsed parents across a data replacement › keeps the collapsed parents when the data is replaced from inside an add-child",null,null,null,null,null,null,997,null],["NestedRows collapsed parents across a data replacement › keeps the same parents collapsed when updateData() grows their children",null,null,null,null,null,null,926,null],["NestedRows collapsed parents across a data replacement › keeps the same parents collapsed when updateData() shrinks their children",null,null,null,null,null,null,881,null],["NestedRows collapsed parents across a data replacement › loadData() drops the collapsed parents, as it resets every other row state",null,null,null,null,null,null,997,null],["NestedRows collapsed parents across a data replacement › never leaves the selection past the last row after the replay trims rows",null,null,null,null,null,null,1015,null],["NestedRows collapsed parents across a data replacement › re-points a stash that another operation left open",null,null,null,null,null,null,998,null],["NestedRows collapsed parents across a data replacement › replaying the collapsed parents does not fire the collapse hooks",null,null,null,null,null,null,975,null],["NestedRows collapsed parents across a data replacement › updateData() under a collapsed parent keeps a whole-column selection, without throwing (DEV-152)",null,null,null,null,null,null,1170,null]],
"e2e/nested-table-css-leak.spec.ts":[["filters UI inside a menu cell (#4363) › menu-cell chrome keeps the input normalize against host CSS",892,null,null,null,1237,null,1219,null],["nested headers ghost table under a host reset (#4363) › the ghost measuring table keeps the grid box-sizing normalize",652,null,null,null,796,null,789,null],["nested table in a cell (#4363) › grid cell styling does not leak into the nested table",672,null,null,null,937,null,777,null],["nested table in a cell (#4363) › input normalize splits exactly between grid chrome and user content",677,null,null,null,840,null,1027,null],["nested table in a cell (#4363) › row headers stay aligned with an auto-expanded custom-content row",707,null,null,null,821,null,945,null],["nested table in a cell (#4363) › the box-sizing probe reads a real grid cell",672,null,null,null,906,null,878,null],["nested table in a cell (#4363) › the grid keeps styling its own cells",643,null,null,null,781,null,896,null]],
"e2e/no-word-wrap-class-name.spec.ts":[["noWordWrapClassName › keeps a cell with a custom class name on one line and still applies the custom class",686,null,null,null,920,null,806,null],["noWordWrapClassName › keeps a cell with the default class name on one line",625,null,null,null,864,null,925,null],["noWordWrapClassName › keeps wrapping a cell that has wordWrap left at its default",660,null,null,null,742,null,885,null],["noWordWrapClassName › wraps a cell again once wordWrap is set back to true",651,null,null,null,870,null,903,null]],
"e2e/notification-placement.spec.ts":[["notification placement › a bottom-end toast in a LTR grid is the error variant, laid out ltr in its corner of the notification layer",756,null,null,null,873,null,1003,null],["notification placement › a bottom-end toast in a RTL grid is the error variant, laid out rtl in its corner of the notification layer",686,null,null,null,973,null,970,null],["notification placement › a bottom-end toast of a grid that follows its content stays inside the container",786,null,null,null,982,null,958,null],["notification placement › a bottom-end toast sits in that corner of a LTR grid",647,null,null,null,868,null,892,null],["notification placement › a bottom-end toast sits in that corner of a RTL grid",697,null,null,null,822,null,1157,null],["notification placement › a bottom-start toast in a LTR grid is the warning variant, laid out ltr in its corner of the notification layer",667,null,null,null,896,null,918,null],["notification placement › a bottom-start toast in a LTR grid with a pager sits in the grid's corner, above the pager",688,null,null,null,838,null,1079,null],["notification placement › a bottom-start toast in a RTL grid is the warning variant, laid out rtl in its corner of the notification layer",718,null,null,null,851,null,938,null],["notification placement › a bottom-start toast in a RTL grid with a pager sits in the grid's corner, above the pager",686,null,null,null,768,null,1004,null],["notification placement › a bottom-start toast sits in that corner of a LTR grid",683,null,null,null,812,null,874,null],["notification placement › a bottom-start toast sits in that corner of a RTL grid",673,null,null,null,898,null,951,null],["notification placement › a toast shown while the grid is hidden lands in the grid corner once it is revealed",709,null,null,null,926,null,915,null],["notification placement › a toast takes no focus: a selected cell keeps it while a second, animated toast shows",989,null,null,null,1441,null,1841,null],["notification placement › a top-end toast in a LTR grid is the success variant, laid out ltr in its corner of the notification layer",735,null,null,null,910,null,936,null],["notification placement › a top-end toast in a RTL grid is the success variant, laid out rtl in its corner of the notification layer",753,null,null,null,856,null,894,null],["notification placement › a top-end toast sits in that corner of a LTR grid",654,null,null,null,745,null,927,null],["notification placement › a top-end toast sits in that corner of a RTL grid",658,null,null,null,885,null,887,null],["notification placement › a top-start toast in a LTR grid is the info variant, laid out ltr in its corner of the notification layer",655,null,null,null,973,null,836,null],["notification placement › a top-start toast in a LTR grid under a top slot sits in the grid's corner",628,null,null,null,846,null,1074,null],["notification placement › a top-start toast in a RTL grid is the info variant, laid out rtl in its corner of the notification layer",743,null,null,null,856,null,908,null],["notification placement › a top-start toast in a RTL grid under a top slot sits in the grid's corner",678,null,null,null,831,null,1043,null],["notification placement › a top-start toast sits in that corner of a LTR grid",653,null,null,null,820,null,865,null],["notification placement › a top-start toast sits in that corner of a RTL grid",695,null,null,null,889,null,940,null],["notification placement › an end-corner toast follows the grid when its width changes",633,null,null,null,849,null,962,null],["notification placement › an end-corner toast stays in the grid corner under a scaled container",732,null,null,null,890,null,929,null]],
"e2e/numeric-array-classname.spec.ts":[["numericRenderer with a shared array className › a grid-level array className › does not leak the numeric classes onto the text column sharing it",null,null,null,null,null,null,1023,null],["numericRenderer with a shared array className › a grid-level array className › keeps the source array stable across repeated draws",null,null,null,null,null,null,1036,null],["numericRenderer with a shared array className › a grid-level array className › never has the numeric classes pushed into the array the user passed in",null,null,null,null,null,null,1044,null],["numericRenderer with a shared array className › a grid-level array className › still puts the numeric classes on the numeric column",null,null,null,null,null,null,945,null],["numericRenderer with a shared array className › a plain string className › never leaked onto the text column, and still does not",null,null,null,null,null,null,948,null],["numericRenderer with a shared array className › a plain string className › renders the numeric classes on the numeric column as it always did",null,null,null,null,null,null,984,null],["numericRenderer with a shared array className › an alignment class already in the shared array › is respected instead of being overridden by htRight",null,null,null,null,null,null,1013,null],["numericRenderer with a shared array className › an alignment class already in the shared array › leaves the source array untouched",null,null,null,null,null,null,978,null],["numericRenderer with a shared array className › one array instance shared by two columns › does not leak the numeric classes onto the text column",null,null,null,null,null,null,991,null],["numericRenderer with a shared array className › one array instance shared by two columns › never has the numeric classes pushed into it",null,null,null,null,null,null,1047,null]],
"e2e/numeric-editor.spec.ts":[["numeric cell editor precision › filters a preserved literal numerically with the \"Is equal to\" condition",null,null,null,null,null,null,1645,1397],["numeric cell editor precision › keeps a trailing fractional zero in the editor after editing",null,null,null,null,null,null,1209,881],["numeric cell editor precision › keeps large-number precision in the editor after editing",null,null,null,null,null,null,1117,902],["numeric cell editor precision › leaves ordinary numeric values untouched (no regression)",null,null,null,null,null,null,1128,880],["numeric cell editor precision › sorts a preserved literal numerically, not lexicographically",null,null,null,null,null,null,1120,951]],
"e2e/numeric-formulas.spec.ts":[["numeric preserved literal with formulas › SUM includes a preserved literal as its numeric value",null,null,null,null,null,null,1254,894],["numeric preserved literal with formulas › the editor keeps the preserved literal when the Formulas plugin is enabled",null,null,null,null,null,null,1349,976]],
"e2e/overlay-alignment-css-zoom.spec.ts":[["overlay alignment under CSS zoom › grid-frozen-column: overlay cells coincide with the cells they cover at 100%, and the bottom band sits on its master rows — the control",895,null,null,null,1347,null,1368,null],["overlay alignment under CSS zoom › grid-frozen-column: overlay cells coincide with the cells they cover at 125%, zoomed after the grid is built",1048,null,null,null,1445,null,1618,null],["overlay alignment under CSS zoom › grid-frozen-column: overlay cells coincide with the cells they cover at 125%, zoomed before the grid is built",1065,null,null,null,1162,null,1291,null],["overlay alignment under CSS zoom › grid-row-headers-only: overlay cells coincide with the cells they cover at 100%, and the bottom band sits on its master rows — the control",1000,null,null,null,1277,null,1482,null],["overlay alignment under CSS zoom › grid-row-headers-only: overlay cells coincide with the cells they cover at 125%, zoomed after the grid is built",1139,null,null,null,1436,null,1502,null],["overlay alignment under CSS zoom › grid-row-headers-only: overlay cells coincide with the cells they cover at 125%, zoomed before the grid is built",993,null,null,null,1236,null,1379,null]],
"e2e/overlay-scrollbar-bottom-gutter.spec.ts":[["frozen bottom rows over a space-taking scrollbar › stop at the scrollport, not at the holder's outer edge",638,null,null,null,910,null,1017,null]],
"e2e/overlay-scrollbar-clearance.spec.ts":[["overlay scrollbar clearance › clears the holder's horizontal scrollbar in the reverse split",681,null,null,null,945,null,915,null],["overlay scrollbar clearance › clears the vertical scrollbar with frozen columns and no frozen rows",727,null,null,null,962,null,908,null],["overlay scrollbar clearance › draws the track for a grid whose only overlays are its headers",732,null,null,null,880,null,1031,null],["overlay scrollbar clearance › gives the strip to the scrollbar while the track is up, and back afterwards",1833,null,null,null,2020,null,2011,null],["overlay scrollbar clearance › leaves the grid alone until something scrolls",759,null,null,null,925,null,1066,null],["overlay scrollbar clearance › matches the browser's scrollbar model, and never draws a second scrollbar",691,null,null,null,875,null,986,null]],
"e2e/oversized-cell-mouse-scroll.spec.ts":[["oversized cell mouse scroll › last-partial column skip stays when only the row is oversized",872,852,null,null,1139,720,1245,1087],["oversized cell mouse scroll › last-partial row skip stays when only the column is oversized",831,824,null,null,1041,701,1228,1029],["oversized cell mouse scroll › mouse-selecting a content-tall row without rowHeights start-snaps the clipped start",911,841,null,null,1315,733,1399,1061],["oversized cell mouse scroll › mouse-selecting an oversized column start-snaps the clipped start into view",589,592,null,null,783,506,794,734],["oversized cell mouse scroll › mouse-selecting an oversized row start-snaps the clipped start into view",533,601,null,null,685,527,793,727]],
"e2e/page-offset-reverse-split-clones.spec.ts":[["clones, page scroll range and pointer bounds in the reverse split › control: a page the window scrolls on both axes keeps its page-wide clones and scroll range",804,528,null,null,961,496,988,722],["clones, page scroll range and pointer bounds in the reverse split › draws the same rows and columns as the hidden twin while the holder scrolls through bands",1324,1047,null,null,1628,1086,1801,1536],["clones, page scroll range and pointer bounds in the reverse split › opens the editor of a frozen cell over that cell after a sideways scroll, like the hidden twin (ltr)",1237,861,null,null,1541,821,1659,1214],["clones, page scroll range and pointer bounds in the reverse split › opens the editor of a frozen cell over that cell after a sideways scroll, like the hidden twin (rtl)",1273,795,null,null,1620,786,1715,1080],["clones, page scroll range and pointer bounds in the reverse split › sizes the clones and the page like the hidden twin: `overflow-y: clip` ancestor, ltr, 0 frozen columns",1177,1139,null,null,1553,1107,1805,1524],["clones, page scroll range and pointer bounds in the reverse split › sizes the clones and the page like the hidden twin: `overflow-y: clip` ancestor, ltr, 2 frozen columns",1263,1085,null,null,1654,1032,1781,1445],["clones, page scroll range and pointer bounds in the reverse split › sizes the clones and the page like the hidden twin: `overflow-y: clip` ancestor, rtl, 0 frozen columns",1278,1057,null,null,1571,908,1666,1410],["clones, page scroll range and pointer bounds in the reverse split › sizes the clones and the page like the hidden twin: `overflow-y: clip` ancestor, rtl, 2 frozen columns",1146,1189,null,null,1407,938,1592,1355],["clones, page scroll range and pointer bounds in the reverse split › sizes the clones and the page like the hidden twin: `preventOverflow: vertical`, ltr, 0 frozen columns",843,798,null,null,1042,799,1416,1173],["clones, page scroll range and pointer bounds in the reverse split › sizes the clones and the page like the hidden twin: `preventOverflow: vertical`, ltr, 2 frozen columns",1007,765,null,null,1197,794,1276,1114],["clones, page scroll range and pointer bounds in the reverse split › sizes the clones and the page like the hidden twin: `preventOverflow: vertical`, rtl, 0 frozen columns",900,674,null,null,1152,747,1419,1106],["clones, page scroll range and pointer bounds in the reverse split › sizes the clones and the page like the hidden twin: `preventOverflow: vertical`, rtl, 2 frozen columns",918,864,null,null,1085,688,1199,1058],["clones, page scroll range and pointer bounds in the reverse split › tracks a drag that moves inside the page offset gap like the hidden twin (ltr)",1728,1478,null,null,2196,1473,2214,1935],["clones, page scroll range and pointer bounds in the reverse split › tracks a drag that moves inside the page offset gap like the hidden twin (rtl)",1702,1449,null,null,2130,1495,2243,1912],["clones, page scroll range and pointer bounds in the reverse split › tracks a drag that moves inside the page offset gap with `preventOverflow: vertical`",1183,885,null,null,1370,887,1465,1260]],
"e2e/page-offset-reverse-split.spec.ts":[["grid offset from the page edge inside a vertically clipping ancestor › control: an `overflow-y: auto` ancestor lays out like its no-offset twin",3124,null,null,null,3710,null,3713,null],["grid offset from the page edge inside a vertically clipping ancestor › control: an `overflow-y: hidden` ancestor lays out like its no-offset twin",3120,null,null,null,3485,null,3911,null],["grid offset from the page edge inside a vertically clipping ancestor › keeps the frozen columns in step with the scroll position (fixedColumnsStart)",3155,null,null,null,3747,null,3860,null],["grid offset from the page edge inside a vertically clipping ancestor › keeps the page offset in the scroll position on a page the window scrolls",3881,null,null,null,4349,null,4843,null],["grid offset from the page edge inside a vertically clipping ancestor › lays out and scrolls like the same grid with no offset (LTR)",3098,null,null,null,3648,null,4052,null],["grid offset from the page edge inside a vertically clipping ancestor › lays out and scrolls like the same grid with no offset (RTL)",3040,null,null,null,3507,null,3714,null],["grid offset from the page edge inside a vertically clipping ancestor › lays out like its no-offset twin with `preventOverflow: vertical` on a page the window scrolls",3647,null,null,null,4464,null,4737,null],["grid offset from the page edge inside a vertically clipping ancestor › places the inline-start overlay offset at the holder scroll position (frozen columns)",738,null,null,null,893,null,973,null],["grid offset from the page edge inside a vertically clipping ancestor › renders the columns an owner-sized holder needs, not the ones of a wider workspace",2921,null,null,null,3469,null,3643,null],["grid offset from the page edge inside a vertically clipping ancestor › stretches the columns to the holder width, not the page width",716,null,null,null,1023,null,1089,null]],
"e2e/pagination-filter-sort.spec.ts":[["pagination over a filtered and sorted grid › pages through the filtered rows, and a column cleared on one page stays cleared there only",null,null,3347,3458,null,null,2231,null]],
"e2e/pagination-pager-states.spec.ts":[["pagination pager states › a page size picked on a filtered, sorted grid re-pages it, the auto size included",1377,null,null,null,1764,null,1972,null],["pagination pager states › in an RTL grid the pager mirrors: its sections and buttons run from right to left",1407,null,null,null,1732,null,1972,null],["pagination pager states › the auto page size fills every page of a 450 px grid, and re-pages when the grid shrinks to 300 px",1991,null,null,null,2103,null,2523,null],["pagination pager states › the auto page size fits each page to the window when the grid has no height, and re-pages when the window shrinks to 300 px",1737,null,null,null,2139,null,2311,null],["pagination pager states › the buttons move the page, disable at each end and hand the focus to the enabled neighbor",1280,null,null,null,1546,null,1875,null]],
"e2e/pagination-paste-fragment-selection.spec.ts":[["pagination paste with fragmentSelection › keeps a paste from outside the grid inside the page (fragmentSelection: true)",null,null,null,null,null,null,936,null],["pagination paste with fragmentSelection › keeps the paste inside the page when the selection moved after the copy (fragmentSelection: false)",null,null,null,null,null,null,920,null],["pagination paste with fragmentSelection › keeps the paste inside the page when the selection moved after the copy (fragmentSelection: true)",null,null,null,null,null,null,961,null]],
"e2e/pagination-select-background.spec.ts":[["pagination page-size select background › focusing the select updates the wrapper fill to the focus token",691,null,null,null,830,null,896,null],["pagination page-size select background › hovering updates the wrapper fill to the hover token",675,null,null,null,875,null,932,null],["pagination page-size select background › the fill is on the wrapper, not the native select",624,null,null,null,770,null,944,null]],
"e2e/paste-parse-hook.spec.ts":[["beforePasteParse › does not fire › on the grid that is not the active one",null,null,null,null,null,null,1206,1109],["beforePasteParse › does not fire › when the grid is not listening",null,null,null,null,null,null,1186,1277],["beforePasteParse › does not fire › with a cell editor open, and the editor receives the text",null,null,null,null,null,null,1059,1025],["beforePasteParse › fires exactly once per paste",null,null,null,null,null,null,1104,894],["beforePasteParse › fires with a null event for the paste() method of the plugin",null,null,null,null,null,null,1009,973],["beforePasteParse › gives every callback the same snapshot",null,null,null,null,null,null,1080,851],["beforePasteParse › lands plain text a callback cleaned when it also clears the html flavor",null,null,null,null,null,null,1051,851],["beforePasteParse › lands the html table a callback edited",null,null,null,null,null,null,1118,903],["beforePasteParse › private source-data flavor of an internal copy › is dropped when a callback edits the plain text, so the edit lands and not the old object",null,null,null,null,null,null,1058,967],["beforePasteParse › private source-data flavor of an internal copy › restores the copied object when no callback edits anything (control)",null,null,null,null,null,null,1035,1049],["beforePasteParse › receives the native paste event and a snapshot of both flavors",null,null,null,null,null,null,1065,876],["beforePasteParse › still runs the sanitizer on html a callback edited",null,null,null,null,null,null,1015,1094],["beforePasteParse › writes nothing and skips beforePaste and afterPaste when a callback returns false",null,null,null,null,null,null,996,805],["beforePasteParse in a shadow root, lws-shape delivery › fires exactly once per paste with the native event",null,null,null,null,null,null,1012,760],["beforePasteParse in a shadow root, normal delivery › fires exactly once per paste with the native event",null,null,null,null,null,null,925,816]],
"e2e/paste-selection-validated-column.spec.ts":[["paste selection with a validated column › corrects the selection when the async write settles and focus never left the grid",null,null,null,null,null,null,996,null],["paste selection with a validated column › corrects the selection when the paste covers a merged area",null,null,null,null,null,null,1112,null],["paste selection with a validated column › corrects the selection without stealing focus when focus left before an async write settled",null,null,null,null,null,null,1020,null],["paste selection with a validated column › covers the full pasted region synchronously when no validator is in range",null,null,null,null,null,null,1009,null],["paste selection with a validated column › keeps correcting the first async paste when a later paste event bails at the guard",null,null,null,null,null,null,988,null],["paste selection with a validated column › leaves a single-cell selection an afterPaste handler set at the paste origin",null,null,null,null,null,null,1048,null],["paste selection with a validated column › spans the grown rows when the pasted range includes a validated column",null,null,null,null,null,null,911,null],["paste selection with a validated column › stays clamped to the last row when a validated paste cannot grow the grid",null,null,null,null,null,null,954,null]],
"e2e/paste-validation-trim-rows.spec.ts":[["paste validation with trimRows › validates every pasted row when no row is trimmed",null,null,null,null,null,null,899,null],["paste validation with trimRows › validates every pasted row, including the rows the paste creates",null,null,null,null,null,null,884,null],["paste validation with trimRows › writes and validates the created rows when `cells()` marks the trimmed records read-only",null,null,null,null,null,null,889,null]],
"e2e/print-selection.spec.ts":[["DEV-133 — selection UI on print › fill handle and area border are visible on screen but hidden on print",780,null,null,null,891,null,950,null],["DEV-133 — selection UI on print › the print rule does not hide a custom border",759,null,null,null,932,null,930,null]],
"e2e/quarantine-policy.spec.ts":[["quarantine policy › a flaky test under a live quarantine is reported and the run passes",null,null,null,null,null,null,3093,null],["quarantine policy › a flaky test whose quarantine expired fails the run again",null,null,null,null,null,null,2957,null],["quarantine policy › a flaky test without quarantine fails the run (the default this policy narrows)",null,null,null,null,null,null,3030,null],["quarantine policy › a quarantine without a task id or beyond the horizon refuses to load",null,null,null,null,null,null,2444,null],["quarantine policy › a shard that lands on no test fails the run, which Playwright alone would pass",null,null,null,null,null,null,3382,null],["quarantine policy › the entry after the cap fails the run even when every test passes",null,null,null,null,null,null,2359,null]],
"e2e/read-only-styling.spec.ts":[["readOnlyStyling › a cell with styling off is still announced as read-only",688,588,null,null,853,534,980,734],["readOnlyStyling › a cell with styling off still rejects edits",819,608,null,null,923,538,994,823],["readOnlyStyling › a read-only cell is painted like an editable one when styling is off",668,657,null,null,884,527,973,768],["readOnlyStyling › a read-only cell is still dimmed by default",720,570,null,null,919,529,872,785]],
"e2e/read-only-toggle-undo.spec.ts":[["read-only toggle undo/redo › records and undoes a toggle made through the column (dropdown) menu",null,null,null,null,null,null,1194,null],["read-only toggle undo/redo › restores each cell to its OWN prior state when undoing a mixed-state selection",null,null,null,null,null,null,1309,null],["read-only toggle undo/redo › undoes a range toggle in one action",null,null,null,null,null,null,1178,null],["read-only toggle undo/redo › undoes a sequence of independent toggles in reverse order",null,null,null,null,null,null,1825,null],["read-only toggle undo/redo › undoes and redoes a single-cell toggle made through the context menu",null,null,null,null,null,null,1232,null]],
"e2e/refresh-dimensions.spec.ts":[["a grid inside an iframe (window-resize pipeline) › fires when the iframe window shrinks, reporting the measured viewport",696,638,null,null,860,565,943,753],["a grid inside an iframe (window-resize pipeline) › reports unchanged dimensions with no possible action when the grid size is pinned",659,636,null,null,825,486,827,672],["a grid inside an iframe (window-resize pipeline) › returning false from beforeRefreshDimensions blocks the window-resize refresh",677,611,null,null,833,555,896,687],["a sized grid in the main document (ResizeObserver pipeline) › fires with previous and current dimensions when the root element is resized",806,601,null,null,936,465,1046,825],["a sized grid in the main document (ResizeObserver pipeline) › reports its dimensions once on the observer's initial delivery",634,521,null,null,867,455,887,648],["a sized grid in the main document (ResizeObserver pipeline) › returning false from beforeRefreshDimensions blocks the refresh",735,660,null,null,934,621,959,780],["a sized grid in the main document (ResizeObserver pipeline) › stays quiet while the root element or the document body is hidden",941,853,null,null,1109,776,1184,1020],["the endless-loop guard (a parent sized in dynamic units) › warns once, stops the cycle, and lets the grid react again after the cooldown",7745,7671,null,null,7765,7599,7792,7766]],
"e2e/remove-hooks-firing.spec.ts":[["remove row/column hooks fire once per consecutive run › a later call reports indexes that already account for the earlier removal",null,null,null,null,null,null,809,null],["remove row/column hooks fire once per consecutive run › a mixed column selection fires once per run, not once per column",null,null,null,null,null,null,1115,null],["remove row/column hooks fire once per consecutive run › a mixed row selection fires once per run, not once per row",null,null,null,null,null,null,1214,null],["remove row/column hooks fire once per consecutive run › afterRemoveCol reports the requested amount, which can overrun the last column",null,null,null,null,null,null,746,null],["remove row/column hooks fire once per consecutive run › alter() merges two neighboring groups into one run",null,null,null,null,null,null,864,null],["remove row/column hooks fire once per consecutive run › editing physicalRows in beforeRemoveRow changes what is removed and the reported amount",null,null,null,null,null,null,801,null],["remove row/column hooks fire once per consecutive run › one solid block of rows fires a single call carrying the whole block",null,null,null,null,null,null,1062,null],["remove row/column hooks fire once per consecutive run › physical indexes are reported, not visual ones, on a sorted grid",null,null,null,null,null,null,771,null],["remove row/column hooks fire once per consecutive run › rows that all stand alone fire one call each, carrying one row",null,null,null,null,null,null,1227,null],["remove row/column hooks fire once per consecutive run › the before hook fires on the same schedule, paired with the after hook",null,null,null,null,null,null,1103,null]],
"e2e/root-size-options.spec.ts":[["root size options › `height: \"auto\"` › beats a stylesheet height on the root",679,null,null,null,900,null,950,null],["root size options › `height: \"auto\"` › clips nothing with a relative or a `var()` width",777,null,null,null,975,null,1046,null],["root size options › `height: \"auto\"` › clips the horizontal axis only with a definite width, and keeps every column reachable",736,null,null,null,896,null,988,null],["root size options › `height: \"auto\"` › fills a bounded parent and scrolls inside it",648,null,null,null,840,null,913,null],["root size options › `height: \"auto\"` › flips the clip and the scroll owner both ways through `updateSettings()`",844,null,null,null,1114,null,1253,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › bounds the holder by the grid's own width once `updateSettings()` sets `height: 'auto'`",633,null,null,null,1066,null,1067,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › fills a modal `<dialog>` with no width of its own, and follows the room it has",1037,null,null,null,1237,null,1212,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › fills a root wider than its parent's content box, as far as the parent's box reaches",800,null,null,null,1049,null,1162,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › fits a grid that is as wide as its content inside the padding of an `overflow: hidden` flex row",715,null,null,null,856,null,1030,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › follows a `flex: 1` share that grows while the parent's box stays put",928,null,null,null,1152,null,1283,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › follows a padding change around the grid that leaves the parent's box as it was",680,null,null,null,814,null,1147,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › follows a parent that sizes it by its content when it redraws after a window resize, both ways",855,null,null,null,1111,null,1150,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › follows the grid's own width through `updateSettings({ width })` in a padded parent",738,null,null,null,924,null,1198,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › keeps a grid that is as wide as its content visible in an `overflow: hidden` flex row",637,null,null,null,732,null,1059,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › keeps a half-width grid inside its own box in a share of an `overflow: hidden` parent (flex-share-clip-x)",654,null,null,null,1120,null,1089,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › keeps a half-width grid inside its own box in a share of an `overflow: hidden` parent (flex-share-hidden)",597,null,null,null,1157,null,1026,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › keeps a half-width grid inside its own box in a share of an `overflow: hidden` parent (grid-track-hidden)",614,null,null,null,1087,null,1058,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › keeps a half-width grid inside its own box in an `overflow: hidden` parent",596,null,null,null,730,null,964,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › keeps the column headers as wide as the grid through `updateSettings({ width })` in a parent that clips the horizontal axis only",680,null,null,null,929,null,996,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › narrows a grid in a `flex: 1` share through `updateSettings({ width })`",846,null,null,null,1066,null,1005,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › scrolls the last column fully into view in a padded `overflow: hidden` parent (ltr)",669,null,null,null,868,null,952,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › scrolls the last column fully into view in a padded `overflow: hidden` parent (rtl)",699,null,null,null,881,null,1093,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › scrolls the last column fully into view in an `overflow: hidden` parent around a padded wrapper (ltr)",689,null,null,null,843,null,1037,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › scrolls the last column fully into view in an `overflow: hidden` parent around a padded wrapper (rtl)",670,null,null,null,816,null,1073,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › settles at `width: '90%'` in an `overflow: hidden` parent that sizes it by its content (flex-row-hidden)",794,null,null,null,1246,null,1188,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › settles at `width: '90%'` in an `overflow: hidden` parent that sizes it by its content (inline-block-hidden)",830,null,null,null,1167,null,1211,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › settles at `width: '90%'` when the element the grid's root sits in has padding",880,null,null,null,994,null,1090,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › settles at `width: 'calc(100% - 20px)'` in an `overflow: hidden` parent that sizes it by its content (flex-row-hidden)",761,null,null,null,1182,null,1242,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › settles at `width: 'calc(100% - 20px)'` in an `overflow: hidden` parent that sizes it by its content (inline-block-hidden)",807,null,null,null,1093,null,1154,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › stretches the columns to the grid's own width in a padded `overflow: hidden` parent (ltr)",620,null,null,null,856,null,830,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › stretches the columns to the grid's own width in a padded `overflow: hidden` parent (rtl)",707,null,null,null,797,null,1169,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › stretches the columns to the grid's own width in a padded parent that clips the horizontal axis only",685,null,null,null,756,null,1138,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › stretches the columns to the grid's own width in an `overflow: hidden` parent around a padded wrapper (ltr)",671,null,null,null,882,null,1021,null],["root size options › `height: \"auto\"` › inside a parent that clips the grid and insets it (DEV-3107) › stretches the columns to the grid's own width in an `overflow: hidden` parent around a padded wrapper (rtl)",695,null,null,null,829,null,1098,null],["root size options › `height: \"auto\"` › leaves a heightless `heightless-auto` parent at the rows' height after `updateSettings()` (DEV-3062)",642,null,null,null,832,null,839,null],["root size options › `height: \"auto\"` › leaves a heightless `heightless-hidden` parent at the rows' height after `updateSettings()` (DEV-3062)",697,null,null,null,832,null,833,null],["root size options › `height: \"auto\"` › renders at its rows' height inside a `heightless-auto` parent with no height (DEV-3062)",665,null,null,null,851,null,866,null],["root size options › `height: \"auto\"` › renders at its rows' height inside a `heightless-hidden` parent with no height (DEV-3062)",675,null,null,null,851,null,935,null],["root size options › `height: \"auto\"` › returns the holder to 0px in a heightless `heightless-auto` parent after `updateSettings({ height: null })` (DEV-3062)",721,null,null,null,842,null,841,null],["root size options › `height: \"auto\"` › returns the holder to 0px in a heightless `heightless-hidden` parent after `updateSettings({ height: null })` (DEV-3062)",679,null,null,null,841,null,807,null],["root size options › `height: \"auto\"` › shows every option of a dropdown editor on the last row (#8688)",1034,null,null,null,1244,null,1348,null],["root size options › `height: \"auto\"` › virtualizes the rows the same way an unset height does",665,null,null,null,918,null,901,null],["root size options › `height: \"auto\"` › writes `height: auto` only and leaves both axes to the window",632,null,null,null,821,null,851,null],["root size options › `null` › resets one axis and keeps the other",978,null,null,null,1091,null,1492,null],["root size options › sized values › passes a percentage and a `calc()` through as written",790,null,null,null,977,null,1135,null],["root size options › sized values › writes a number and the pixel strings as pixels and clips both axes",928,null,null,null,1140,null,1136,null],["root size options › unreadable values › ignores `-100` with one warning and keeps the height",884,null,null,null,1048,null,1129,null],["root size options › unreadable values › ignores `\"\"` with one warning and keeps the height",903,null,null,null,974,null,1148,null],["root size options › unreadable values › ignores `\"abc\"` with one warning and keeps the height",764,null,null,null,1037,null,1022,null],["root size options › unreadable values › ignores `\"min-content\"` with one warning and keeps the height",860,null,null,null,1102,null,1228,null],["root size options › unreadable values › ignores `true` with one warning and keeps the height",784,null,null,null,1083,null,1199,null],["root size options › unreadable values › ignores a collapsing keyword for `width` with one warning",782,null,null,null,1021,null,1293,null],["root size options › unreadable values › leaves no clip behind an unreadable value on a grid without a height",755,null,null,null,953,null,1454,null]],
"e2e/row-column-move-undo.spec.ts":[["row and column move undo bookkeeping › a column move that leaves the order unchanged records no undo action",685,null,null,null,853,null,1001,null],["row and column move undo bookkeeping › a move of a column frozen by manualColumnFreeze records one undo action",834,null,null,null,1091,null,1199,null],["row and column move undo bookkeeping › a move vetoed by the fixedColumnsEnd guard records no undo action",779,null,null,null,987,null,1004,null],["row and column move undo bookkeeping › a multi-row move records one action, and undo reverses all of it",816,null,null,null,899,null,1074,null],["row and column move undo bookkeeping › a real column move still records one undo action, and undo reverses it",771,null,null,null,1005,null,1113,null],["row and column move undo bookkeeping › a real row move still records one undo action, and undo reverses it",777,null,null,null,933,null,1111,null],["row and column move undo bookkeeping › a row move still records one action while trimRows is active",834,null,null,null,1065,null,1190,null],["row and column move undo bookkeeping › a row move that leaves the order unchanged records no undo action",795,null,null,null,981,null,930,null],["row and column move undo bookkeeping › a vetoed column move records no undo action",729,null,null,null,965,null,1186,null],["row and column move undo bookkeeping › a vetoed row move does not swallow the previous action",818,null,null,null,994,null,1259,null],["row and column move undo bookkeeping › a vetoed row move records no undo action",740,null,null,null,970,null,1222,null],["row and column move undo bookkeeping › after a vetoed row move, the undo keyboard shortcut still reaches the previous action",866,null,null,null,976,null,1106,null],["row and column move undo bookkeeping › an impossible row move records no undo action",732,null,null,null,1035,null,954,null],["row and column move undo bookkeeping › redo re-applies a row move and leaves one action on the stack",857,null,null,null,1225,null,1135,null]],
"e2e/row-header-border-ownership.spec.ts":[["Row header border ownership › applies the same ownership inside the frozen column clone",1085,null,null,null,1332,null,1465,null],["Row header border ownership › draws the active accent on the seam between the corner and an active column 0 header",1207,null,null,null,1605,null,1673,null],["Row header border ownership › draws the seam in the cell-border color in every overlay shape",1099,null,null,null,1367,null,1475,null],["Row header border ownership › gives every column the same content width when row headers are enabled",931,null,null,null,1178,null,1249,null],["Row header border ownership › gives the head-row seam the same color as the body seam with several row headers",1083,null,null,null,1436,null,1293,null],["Row header border ownership › keeps every column the same content width after a horizontal scroll",1142,null,null,null,1253,null,1400,null],["Row header border ownership › keeps the active accent on the seam an active row header owns",1203,null,null,null,1518,null,1891,null],["Row header border ownership › keeps the corner seam accent to column 0 at the viewport start, a selection starting there, and the active levels",1130,null,null,null,1565,null,1603,null],["Row header border ownership › keeps the row header width and the scroll range unchanged by a horizontal scroll",1064,null,null,null,1354,null,1491,null],["Row header border ownership › keeps the selection edge inside column 0 in the frozen column clone",998,null,null,null,1227,null,1416,null],["Row header border ownership › keeps the selection edge on column 0 clear of the row header",1132,null,null,null,1282,null,1641,null],["Row header border ownership › keeps the selection edge on column 0 clear of the row header in RTL",1077,null,null,null,1316,null,1494,null],["Row header border ownership › leaves the first column drawing the grid frame when there is no row header",995,null,null,null,1082,null,1277,null],["Row header border ownership › leaves the row header drawing the grid frame when there are no data columns",1068,null,null,null,1226,null,1327,null],["Row header border ownership › lets the corner header own the same gridline in the header row",939,null,null,null,1284,null,1274,null],["Row header border ownership › lets the LAST row header own the seam when the grid has several",1117,null,null,null,1378,null,1559,null],["Row header border ownership › lets the row header own the gridline between itself and the first column",1010,null,null,null,1217,null,1364,null],["Row header border ownership › marks the last corner cell of every head row, and no body cell",1100,null,null,null,1422,null,1535,null],["Row header border ownership › mirrors the ownership onto the physical right in RTL",964,null,null,null,1313,null,1423,null],["Row header border ownership › reaches the same verdict on every nested header level",1016,null,null,null,1247,null,1464,null],["Row header border ownership › still publishes the legacy inner-border classes once the grid is scrolled",1028,null,null,null,1409,null,1502,null]],
"e2e/row-height-device-scale.spec.ts":[["row height at 100% — the control › the cell border is not inflated",703,null,null,null,945,null,999,null],["row height at 100% — the control › the grid matches its rows exactly",692,null,null,null,885,null,970,null],["row height at 50% — a border that lands on a whole pixel › the border is inflated, but to an exact number of pixels",724,null,null,null,916,null,955,null],["row height at 50% — a border that lands on a whole pixel › the grid is as tall as the rows it holds",760,null,null,null,862,null,914,null],["row height under sub-100% device scaling › the grid does not overlap the element below it",700,null,null,null,914,null,963,null],["row height under sub-100% device scaling › the grid is as tall as the rows it holds",761,null,null,null,922,null,1035,null],["row height under sub-100% device scaling › the leg really runs the theme it claims",742,null,null,null,993,null,936,null],["row height under sub-100% device scaling › the row-header clone shows its last row",721,null,null,null,912,null,968,null],["row height under sub-100% device scaling › the zoom really inflated the cell border",740,null,null,null,895,null,1023,null]],
"e2e/row-selection.spec.ts":[["Row selection checkboxes › centers the \"select all\" checkbox vertically in its header cell",675,null,null,null,886,null,941,null],["Row selection checkboxes › disables the checkbox of a row that cannot be selected",730,null,null,null,1039,null,1052,null],["Row selection checkboxes › keeps its own row header column when the row numbers are off",699,null,null,null,1132,null,1237,null],["Row selection checkboxes › selects a range with Shift and skips the rows that cannot be selected",798,null,null,null,1123,null,1124,null],["Row selection checkboxes › selects a row on a checkbox press, marks the row, and leaves the cell selection alone",900,null,null,null,1061,null,1267,null],["Row selection checkboxes › selects only the filtered rows with the \"filtered\" scope",686,null,null,null,918,null,981,null],["Row selection checkboxes › selects the rows the filters removed with the default \"all\" scope",751,null,null,null,966,null,970,null],["Row selection checkboxes › shows the mixed state, selects every selectable row from it, and clears them from checked",870,null,null,null,1134,null,1227,null],["Row selection checkboxes › toggles every row of a selected range with Space, skipping the rows that cannot be selected",844,null,null,null,1055,null,1113,null],["Row selection checkboxes › toggles the focused row and the whole scope with Space",702,null,null,null,872,null,1075,null],["Row selection checkboxes › toggles the focused row with Space on any data cell, without opening the editor",1021,null,null,null,1056,null,1210,null],["Row selection checkboxes › with the checkboxes in the first column › keeps the first column label after switching from the row header location",732,null,null,null,888,null,906,null],["Row selection checkboxes › with the checkboxes in the first column › renders the checkboxes next to the values and keeps the column label",771,null,null,null,990,null,1031,null],["Row selection checkboxes that are hidden › `checkboxes: false` shows no row checkbox, and a press on a row header selects no row",800,null,null,null,975,null,1085,null],["Row selection checkboxes that are hidden › `checkboxes` as a function shows a checkbox per row, and a row without one is a plain header",797,null,null,null,1116,null,1162,null],["Row selection checkboxes that are hidden › `hideDisabledCheckboxes` keeps the first column values aligned, and its placeholder selects nothing",688,null,null,null,859,null,1050,null],["Row selection checkboxes that are hidden › `hideDisabledCheckboxes` leaves a plain row header on a row that cannot be selected",760,null,null,null,901,null,1007,null],["Row selection corner without a \"select all\" checkbox › `headerCheckbox: false`: the corner is a plain corner that selects every cell",1058,null,null,null,1425,null,1550,null],["Row selection corner without a \"select all\" checkbox › the `'singleRow'` mode: the corner is a plain corner that selects every cell",1235,null,null,null,1480,null,1580,null],["Row selection in the context menu › counts and removes only the selected rows the filters show, and clears the selection",1289,null,null,null,1534,null,1540,null],["Row selection in the context menu › hides its items with nothing selected, and removes the selected rows",1101,null,null,null,1378,null,1540,null],["Row selection on a click (enableClickSelection) › `'enableDeselection'`: a Ctrl/Cmd+click deselects, and no click selects",994,null,null,null,1316,null,1323,null],["Row selection on a click (enableClickSelection) › `'enableSelection'`: a click selects, and no click deselects",820,null,null,null,1055,null,1162,null],["Row selection on a click (enableClickSelection) › `false`: a click selects the cell and leaves the rows alone",816,null,null,null,971,null,1083,null],["Row selection on a click (enableClickSelection) › `true`: a click selects only its row, Ctrl/Cmd+click toggles, and Shift+click selects a range",1173,null,null,null,1441,null,1468,null],["Row selection on a click (enableClickSelection) › a press on a bound checkbox column or its header toggles the rows once",965,null,null,null,1241,null,1300,null],["Row selection on a click (enableClickSelection) › a press on a row checkbox toggles the row once, in both checkbox locations",1306,null,null,null,1708,null,1784,null],["Row selection on a server-backed grid › keeps the selection across pages and selects rows the server never sent",1212,null,null,null,1504,null,1566,null],["Row selection on a touch screen › a second tap on the same checkbox toggles it back",951,null,null,null,1281,null,1461,null],["Row selection on a touch screen › a tap on a row checkbox toggles the row, and a tap on the corner toggles every row",995,null,null,null,1261,null,1435,null],["Row selection over nested rows › `'descendants'`: a parent selects every row under it, and its ancestors show the mixed state",1027,null,null,null,1329,null,1454,null],["Row selection over nested rows › `'descendants'`: Space on a parent row's data cell selects its subtree",786,null,null,null,926,null,1091,null],["Row selection over nested rows › `'self'`: every row is selected on its own",866,null,null,null,1275,null,1301,null],["Row selection over nested rows › `'topLevel'`: only the top-level rows can be selected",903,null,null,null,1204,null,1289,null],["Row selection vetoed by beforeRowSelectionChange › leaves the checkbox unchecked after a press and after Space",816,null,null,null,903,null,1102,null],["Row selection with Space on a first column checkbox › toggles the row and does not open the editor of the cell that holds the checkbox",854,null,null,null,910,null,1067,null]],
"e2e/row-size-alignment.spec.ts":[["keeps every row header level with its row after a wheel scroll (normal cells)",958,null,null,null,1125,null,1226,null],["keeps every row header level with its row after a wheel scroll (small cells)",1375,null,null,null,1625,null,1732,null]],
"e2e/rtl-shrink-wrapped-grid-scroll.spec.ts":[["LTR page, grid in an inline-block wrapper › should not move the window when Enter opens the editor",931,null,null,null,1132,null,1332,null],["RTL page, grid in an inline-block wrapper, handsontable editor › should not move the window when Enter opens the editor",1068,null,null,null,1196,null,1358,null],["RTL page, grid in an inline-block wrapper, handsontable editor › should not move the window when selecting a cell that is already visible",898,null,null,null,1082,null,1235,null],["RTL page, grid in an inline-block wrapper, multiselect editor › should not move the window when Enter opens the editor",932,null,null,null,1031,null,1332,null],["RTL page, grid in an inline-block wrapper, multiselect editor › should not move the window when selecting a cell that is already visible",920,null,null,null,1114,null,1242,null],["RTL page, grid started 600 px from the page inline-start edge › should not move the window when Enter opens the editor",852,null,null,null,1103,null,1273,null]],
"e2e/sanitizer.spec.ts":[["sanitizer › does not run markup pasted through the private clipboard type",null,null,null,null,null,null,956,null],["sanitizer › leaves the html cell type raw even with a sanitizer configured",null,null,null,null,null,null,925,null],["sanitizer › neutralizes a nested header label under the header source",null,null,null,null,null,null,817,null]],
"e2e/selection-handles.spec.ts":[["selectionHandles adjust handles › a selection crossing a frozen pane › centers the handles on the scrollable columns when a merge covers every row of the crossing",794,null,null,null,983,null,1114,null],["selectionHandles adjust handles › a selection crossing a frozen pane › centers the handles on the visible part of a selection taller than the viewport, without frozen panes",955,null,null,null,1109,null,1333,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once across frozen columns in an RTL layout",846,null,null,null,1116,null,1181,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once across frozen columns when a column inside them is hidden",862,null,null,null,991,null,1088,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once across frozen rows and columns at the same time",781,null,null,null,1004,null,1094,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once across frozen rows when a row above them is hidden",774,null,null,null,1102,null,1091,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once across the bottom frozen rows",847,null,null,null,1077,null,1139,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once across the bottom frozen rows and the frozen columns",853,null,null,null,1048,null,1154,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once across the bottom frozen rows when a row inside them is hidden",792,null,null,null,974,null,1109,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once across the top and the bottom frozen rows at the same time",829,null,null,null,1090,null,1075,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once, on the outer edge, across frozen columns",819,null,null,null,998,null,1197,null],["selectionHandles adjust handles › a selection crossing a frozen pane › draws each handle once, on the outer edge, across frozen rows",811,null,null,null,1037,null,1152,null],["selectionHandles adjust handles › a selection crossing a frozen pane › keeps the end handle off the freeze line when a merge in the frozen rows spans columns",861,null,null,null,1062,null,1073,null],["selectionHandles adjust handles › a selection crossing a frozen pane › keeps the handles off the freeze line when a merged cell crosses it",820,null,null,null,1077,null,1116,null],["selectionHandles adjust handles › a selection crossing a frozen pane › keeps the start and end handles on the frozen rows once the scrollable rows scroll away",957,null,null,null,1116,null,1174,null],["selectionHandles adjust handles › a selection crossing a frozen pane › keeps the top and bottom handles on the frozen part once the scrollable part scrolls away",1097,null,null,null,1269,null,1400,null],["selectionHandles adjust handles › a selection crossing a frozen pane › moves the start and end handles to the frozen rows when the scrollable rows are rendered but hidden",954,null,null,null,970,null,1177,null],["selectionHandles adjust handles › a selection crossing a frozen pane › moves the top and bottom handles to the frozen column when only a sliver of the next column shows",996,null,null,null,1160,null,1138,null],["selectionHandles adjust handles › a selection crossing a frozen pane › moves the top and bottom handles to the frozen part when the scrollable part is rendered but hidden (renderAllColumns: false)",885,null,null,null,1016,null,1165,null],["selectionHandles adjust handles › a selection crossing a frozen pane › moves the top and bottom handles to the frozen part when the scrollable part is rendered but hidden (renderAllColumns: true)",899,null,null,null,1146,null,1166,null],["selectionHandles adjust handles › a selection crossing a frozen pane › resizes the selection from a handle drawn by a frozen overlay",843,null,null,null,1113,null,1162,null],["selectionHandles adjust handles › centers the top and bottom handles on the selection horizontal span",819,null,null,null,995,null,1014,null],["selectionHandles adjust handles › clamps the focus into the range when the bottom handle shrinks past it",804,null,null,null,1002,null,1104,null],["selectionHandles adjust handles › clamps the focus into the range when the start handle shrinks past it",789,null,null,null,1066,null,1122,null],["selectionHandles adjust handles › clamps the focus into the range when the top handle shrinks past it",819,null,null,null,994,null,1101,null],["selectionHandles adjust handles › clamps the top handle at the bottom edge instead of flipping the selection",843,null,null,null,989,null,1105,null],["selectionHandles adjust handles › cleans up an active handle drag when the grid is destroyed",735,null,null,null,984,null,1062,null],["selectionHandles adjust handles › does not start a resize drag on a right-press",782,null,null,null,997,null,1029,null],["selectionHandles adjust handles › expands to the full merged block when the bottom handle is dragged into a merge",830,null,null,null,1120,null,1165,null],["selectionHandles adjust handles › grows the selection downward without changing the column span",765,null,null,null,1041,null,1107,null],["selectionHandles adjust handles › handles carry orientation classes and no inline visual styling",754,null,null,null,967,null,1008,null],["selectionHandles adjust handles › hides end and bottom handles on top and start frozen-pane seams",814,null,null,null,995,null,1085,null],["selectionHandles adjust handles › hides the bottom handle when the selection ends on the bottom frozen-pane seam",791,null,null,null,1025,null,1042,null],["selectionHandles adjust handles › hides the handles when the plugin is disabled at runtime",864,null,null,null,1173,null,1152,null],["selectionHandles adjust handles › hides the handles when the pointer leaves the selected range",730,null,null,null,927,null,985,null],["selectionHandles adjust handles › hides the handles while a cell editor is open",868,null,null,null,970,null,1120,null],["selectionHandles adjust handles › hides the non-dragged handles while resizing and holds the resize cursor",807,null,null,null,999,null,1029,null],["selectionHandles adjust handles › hides the top handle when the selection starts on the bottom frozen-pane seam",807,null,null,null,945,null,1084,null],["selectionHandles adjust handles › hides the top handle when the selection top edge is at row 0",690,null,null,null,911,null,1030,null],["selectionHandles adjust handles › keeps the focus cell stable when growing the selection via the end handle",822,null,null,null,1024,null,1134,null],["selectionHandles adjust handles › keeps the focus cell stable when growing the selection via the top handle",759,null,null,null,1084,null,1107,null],["selectionHandles adjust handles › moves only the end edge, keeping the start edge anchored",820,null,null,null,1105,null,1188,null],["selectionHandles adjust handles › moves only the start edge, keeping the end edge anchored",754,null,null,null,1059,null,1057,null],["selectionHandles adjust handles › preserves fixed edges when resizing reverse-direction selections",3393,null,null,null,4206,null,4646,null],["selectionHandles adjust handles › preserves the other layer when resizing a non-last layer",883,null,null,null,1122,null,1187,null],["selectionHandles adjust handles › preserves the other layer when resizing the hovered last layer",869,null,null,null,1005,null,1136,null],["selectionHandles adjust handles › resizes correctly when dragging the bottom handle in an RTL layout",865,null,null,null,1064,null,1184,null],["selectionHandles adjust handles › scrolls and extends the selection while dragging a handle beyond the viewport",981,null,null,null,1247,null,1325,null],["selectionHandles adjust handles › shows no handles when entire columns are selected",722,null,null,null,914,null,968,null],["selectionHandles adjust handles › shows no handles when selectionHandles is disabled",759,null,null,null,976,null,1015,null],["selectionHandles adjust handles › shows no handles when selectionMode is single",708,null,null,null,947,null,993,null],["selectionHandles adjust handles › shows one handle per edge when hovering inside an interior selection",720,null,null,null,913,null,1004,null],["selectionHandles adjust handles › shows the handles right after a drag-select ends inside the selection",706,null,null,null,963,null,1076,null],["selectionHandles hover › does not fire the selection hooks when the pointer enters and leaves a selection",864,null,null,null,1139,null,1164,null],["selectionHandles hover › does not scroll the viewport back to the focus cell when the pointer enters a selection after a scroll",1031,null,null,null,1262,null,1378,null],["selectionHandles hover › does not scroll the viewport when the pointer enters a selection whose end is off-screen",855,null,null,null,1022,null,1137,null],["selectionHandles hover › moves the handles straight from one selection layer to another",885,null,null,null,1270,null,1158,null],["selectionHandles hover › repaints no cell when the pointer enters and leaves a selection",847,null,null,null,1121,null,1144,null],["selectionHandles hover › scrolls by the full wheel distance while the pointer rests over a selection",2551,null,null,null,3158,null,3094,null]],
"e2e/selection-header-padding.spec.ts":[["Selection highlight with custom header padding › aligns the full-column highlight with a padded column header in RTL",721,null,null,null,962,null,919,null],["Selection highlight with custom header padding › finds the closest nested row header when two row-header levels are rendered",685,null,null,null,914,null,1007,null],["Selection highlight with custom header padding › finds the column header when a full column is selected on padded headers",743,null,null,null,951,null,983,null],["Selection highlight with custom header padding › finds the row header for an RTL full-row selection",748,null,null,null,904,null,1020,null],["Selection highlight with custom header padding › finds the row header when a full row is selected on padded headers",691,null,null,null,963,null,1067,null],["Selection highlight with custom header padding › finds the row header when column headers wrap onto a second line",750,null,null,null,991,null,913,null]],
"e2e/selection-trim-shapes.spec.ts":[["selection shapes against a trim, headers off › clamped: a full column",null,null,null,null,null,null,943,null],["selection shapes against a trim, headers off › clamped: a select-all",null,null,null,null,null,null,1021,null],["selection shapes against a trim, headers off › dropped: a cell range whose far corner a trim stranded",null,null,null,null,null,null,887,null],["selection shapes against a trim, headers off › dropped: a full row whose own record a trim removed",null,null,null,null,null,null,967,null],["selection shapes against a trim, headers off › dropped: a single cell a trim stranded past the last row",null,null,null,null,null,null,927,null],["selection shapes against a trim, headers off › dropped: a single cell whose own record a trim removed",null,null,null,null,null,null,895,null],["selection shapes against a trim, headers off › kept: a cell range a trim left wholly in range",null,null,null,null,null,null,920,null],["selection shapes against a trim, headers off › kept: a full row whose own record survives",null,null,null,null,null,null,922,null],["selection shapes against a trim, headers off › kept: a single cell a trim left untouched",null,null,null,null,null,null,915,null],["selection shapes against a trim, headers off, restored by the dialog plugin › clamped: a full column",null,null,null,null,null,null,904,null],["selection shapes against a trim, headers off, restored by the dialog plugin › clamped: a select-all",null,null,null,null,null,null,1048,null],["selection shapes against a trim, headers off, restored by the dialog plugin › dropped: a cell range whose far corner a trim stranded",null,null,null,null,null,null,930,null],["selection shapes against a trim, headers off, restored by the dialog plugin › dropped: a full row whose own record a trim removed",null,null,null,null,null,null,895,null],["selection shapes against a trim, headers off, restored by the dialog plugin › dropped: a single cell a trim stranded past the last row",null,null,null,null,null,null,936,null],["selection shapes against a trim, headers off, restored by the dialog plugin › dropped: a single cell whose own record a trim removed",null,null,null,null,null,null,870,null],["selection shapes against a trim, headers off, restored by the dialog plugin › kept: a cell range a trim left wholly in range",null,null,null,null,null,null,1018,null],["selection shapes against a trim, headers off, restored by the dialog plugin › kept: a full row whose own record survives",null,null,null,null,null,null,874,null],["selection shapes against a trim, headers off, restored by the dialog plugin › kept: a single cell a trim left untouched",null,null,null,null,null,null,899,null],["selection shapes against a trim, headers off, restored from an export › clamped: a full column",null,null,null,null,null,null,1143,null],["selection shapes against a trim, headers off, restored from an export › clamped: a select-all",null,null,null,null,null,null,1042,null],["selection shapes against a trim, headers off, restored from an export › dropped: a cell range whose far corner a trim stranded",null,null,null,null,null,null,1108,null],["selection shapes against a trim, headers off, restored from an export › dropped: a full row whose own record a trim removed",null,null,null,null,null,null,882,null],["selection shapes against a trim, headers off, restored from an export › dropped: a single cell a trim stranded past the last row",null,null,null,null,null,null,888,null],["selection shapes against a trim, headers off, restored from an export › dropped: a single cell whose own record a trim removed",null,null,null,null,null,null,1036,null],["selection shapes against a trim, headers off, restored from an export › kept: a cell range a trim left wholly in range",null,null,null,null,null,null,1235,null],["selection shapes against a trim, headers off, restored from an export › kept: a full row whose own record survives",null,null,null,null,null,null,1032,null],["selection shapes against a trim, headers off, restored from an export › kept: a single cell a trim left untouched",null,null,null,null,null,null,1158,null],["selection shapes against a trim, headers on › clamped: a full column",null,null,null,null,null,null,1044,null],["selection shapes against a trim, headers on › clamped: a select-all",null,null,null,null,null,null,979,null],["selection shapes against a trim, headers on › dropped: a cell range whose far corner a trim stranded",null,null,null,null,null,null,951,null],["selection shapes against a trim, headers on › dropped: a full row whose own record a trim removed",null,null,null,null,null,null,934,null],["selection shapes against a trim, headers on › dropped: a single cell a trim stranded past the last row",null,null,null,null,null,null,1083,null],["selection shapes against a trim, headers on › dropped: a single cell whose own record a trim removed",null,null,null,null,null,null,881,null],["selection shapes against a trim, headers on › kept: a cell range a trim left wholly in range",null,null,null,null,null,null,949,null],["selection shapes against a trim, headers on › kept: a full row whose own record survives",null,null,null,null,null,null,955,null],["selection shapes against a trim, headers on › kept: a single cell a trim left untouched",null,null,null,null,null,null,906,null],["selection shapes against a trim, headers on, restored by the dialog plugin › clamped: a full column",null,null,null,null,null,null,1030,null],["selection shapes against a trim, headers on, restored by the dialog plugin › clamped: a select-all",null,null,null,null,null,null,1081,null],["selection shapes against a trim, headers on, restored by the dialog plugin › dropped: a cell range whose far corner a trim stranded",null,null,null,null,null,null,1073,null],["selection shapes against a trim, headers on, restored by the dialog plugin › dropped: a full row whose own record a trim removed",null,null,null,null,null,null,986,null],["selection shapes against a trim, headers on, restored by the dialog plugin › dropped: a single cell a trim stranded past the last row",null,null,null,null,null,null,1036,null],["selection shapes against a trim, headers on, restored by the dialog plugin › dropped: a single cell whose own record a trim removed",null,null,null,null,null,null,954,null],["selection shapes against a trim, headers on, restored by the dialog plugin › kept: a cell range a trim left wholly in range",null,null,null,null,null,null,1052,null],["selection shapes against a trim, headers on, restored by the dialog plugin › kept: a full row whose own record survives",null,null,null,null,null,null,969,null],["selection shapes against a trim, headers on, restored by the dialog plugin › kept: a single cell a trim left untouched",null,null,null,null,null,null,1036,null],["selection shapes against a trim, headers on, restored from an export › clamped: a full column",null,null,null,null,null,null,1023,null],["selection shapes against a trim, headers on, restored from an export › clamped: a select-all",null,null,null,null,null,null,1055,null],["selection shapes against a trim, headers on, restored from an export › dropped: a cell range whose far corner a trim stranded",null,null,null,null,null,null,937,null],["selection shapes against a trim, headers on, restored from an export › dropped: a full row whose own record a trim removed",null,null,null,null,null,null,1016,null],["selection shapes against a trim, headers on, restored from an export › dropped: a single cell a trim stranded past the last row",null,null,null,null,null,null,918,null],["selection shapes against a trim, headers on, restored from an export › dropped: a single cell whose own record a trim removed",null,null,null,null,null,null,1002,null],["selection shapes against a trim, headers on, restored from an export › kept: a cell range a trim left wholly in range",null,null,null,null,null,null,1036,null],["selection shapes against a trim, headers on, restored from an export › kept: a full row whose own record survives",null,null,null,null,null,null,948,null],["selection shapes against a trim, headers on, restored from an export › kept: a single cell a trim left untouched",null,null,null,null,null,null,939,null]],
"e2e/selection-trimmed-row.spec.ts":[["selection stranded by a trimming index map › clamps a full-column selection on a grid with no headers",null,null,null,null,null,null,1381,null],["selection stranded by a trimming index map › clamps a full-column selection rather than dropping it",null,null,null,null,null,null,967,null],["selection stranded by a trimming index map › clamps a select-all rather than dropping it",null,null,null,null,null,null,873,null],["selection stranded by a trimming index map › destroying the grid under a trimmed whole-column selection does not throw",null,null,null,null,null,null,925,null],["selection stranded by a trimming index map › does not grow a cell range that merely reached the last row before the untrim",null,null,null,null,null,null,901,null],["selection stranded by a trimming index map › does not grow a full-column selection the user shrank before the untrim",null,null,null,null,null,null,1042,null],["selection stranded by a trimming index map › does not grow a full-row selection along the rows",null,null,null,null,null,null,925,null],["selection stranded by a trimming index map › does not scroll the viewport when a trim clamps a full-column selection",null,null,null,null,null,null,1485,null],["selection stranded by a trimming index map › does not scroll the viewport when it grows a full-column selection",null,null,null,null,null,null,1413,null],["selection stranded by a trimming index map › does not touch the selection on a row insert or remove",null,null,null,null,null,null,945,null],["selection stranded by a trimming index map › drops a coordinate that addresses nothing even while an editor is open",null,null,null,null,null,null,1001,null],["selection stranded by a trimming index map › drops a full-row selection whose row a trim stranded, rather than sliding it",null,null,null,null,null,null,1014,null],["selection stranded by a trimming index map › drops a multi-cell range whose far corner a trim left past the last row",null,null,null,null,null,null,963,null],["selection stranded by a trimming index map › drops a selection a trim left past the last row, so a paste cannot append records",null,null,null,null,null,null,905,null],["selection stranded by a trimming index map › drops a selection stranded by a batch that both alters and trims",null,null,null,null,null,null,990,null],["selection stranded by a trimming index map › drops every layer when the active highlight is the stranded one",null,null,null,null,null,null,1040,null],["selection stranded by a trimming index map › drops it for a Ctrl+Enter-style write through the selection corners too",null,null,null,null,null,null,983,null],["selection stranded by a trimming index map › drops it when the record survives further up but the coordinate is left out of range",null,null,null,null,null,null,916,null],["selection stranded by a trimming index map › drops it when the trimmed record is gone while the coordinate stays in range",null,null,null,null,null,null,996,null],["selection stranded by a trimming index map › drops the selection when a sort is followed by a trim of the highlighted record",null,null,null,null,null,null,1411,null],["selection stranded by a trimming index map › Enter walks the rows a grow brought back, with MergeCells on",null,null,null,null,null,null,1133,null],["selection stranded by a trimming index map › grows a full-column selection no further than maxRows lets the grid show",null,null,null,null,null,null,1012,null],["selection stranded by a trimming index map › grows a full-column selection on a grid with no headers",null,null,null,null,null,null,1290,null],["selection stranded by a trimming index map › grows a full-column selection when a hook untrims rows inside a row removal",null,null,null,null,null,null,965,null],["selection stranded by a trimming index map › grows a full-column selection when an untrim brings rows back below it (DEV-152)",null,null,null,null,null,null,1014,null],["selection stranded by a trimming index map › grows a full-column selection when the untrimmed rows sit above it",null,null,null,null,null,null,993,null],["selection stranded by a trimming index map › grows a full-row selection along the columns when a column untrim brings a column back",null,null,null,null,null,null,994,null],["selection stranded by a trimming index map › grows a select-all along the columns when a column untrim brings a column back",null,null,null,null,null,null,1118,null],["selection stranded by a trimming index map › grows a select-all when an untrim brings rows back",null,null,null,null,null,null,933,null],["selection stranded by a trimming index map › judges the record after a sort and a trim that arrive in the same cache update",null,null,null,null,null,null,1471,null],["selection stranded by a trimming index map › judges the record by where it is now, not by where a sort left the captured index",null,null,null,null,null,null,1437,null],["selection stranded by a trimming index map › keeps a multi-cell range a trim left entirely in place",null,null,null,null,null,null,907,null],["selection stranded by a trimming index map › keeps a selection a trim touched neither by record nor by range",null,null,null,null,null,null,894,null],["selection stranded by a trimming index map › keeps a selection whose row is merely hidden, since the record stays in the visual space",null,null,null,null,null,null,1047,null],["selection stranded by a trimming index map › keeps a still-addressable coordinate while an editor is open, so typing can continue",null,null,null,null,null,null,950,null],["selection stranded by a trimming index map › leaves no selection when a filter leaves no rows",null,null,null,null,null,null,969,null],["selection stranded by a trimming index map › leaves the selection to Filters, which re-selects the highlighted column itself",null,null,null,null,null,null,950,null],["selection stranded by a trimming index map › re-reads the record after a trim it tolerated, so the next trim is judged fresh",null,null,null,null,null,null,964,null],["selection stranded by a trimming index map › renders a clamp over several whole-column layers once, as it does for one layer",null,null,null,null,null,null,1193,null],["selection stranded by a trimming index map › still drops when a batched sort and trim leave the coordinate past the last row",null,null,null,null,null,null,1349,null]],
"e2e/selection-viewport-scroll.spec.ts":[["viewport scroll of a selection › keeps a scroll made in the same task as selecting a cell in a frozen row",795,573,null,null,1023,608,1077,804],["viewport scroll of a selection › keeps a scroll made in the same task as the selection (ltr)",687,582,null,null,952,511,1039,826],["viewport scroll of a selection › keeps a scroll made in the same task as the selection (rtl)",701,662,null,null,902,506,1028,800],["viewport scroll of a selection › scrolls the browser window to the range end Shift+PageDown extends to",845,628,null,null,1064,637,1163,806],["viewport scroll of a selection › still scrolls the browser window after a selection that scrolls the viewport",822,550,null,null,970,504,1199,757],["viewport scroll of a selection › still scrolls the browser window to a selected cell below the fold",740,543,null,null,868,558,909,717]],
"e2e/set-data-at-row-prop-old-value.spec.ts":[["setDataAtRowProp old value › keeps reading the addressed index when columns are only hidden",null,null,null,null,null,null,884,null],["setDataAtRowProp old value › keeps reading the addressed index when nothing remaps the columns",null,null,null,null,null,null,925,null],["setDataAtRowProp old value › keeps string props working on object data",null,null,null,null,null,null,831,null],["setDataAtRowProp old value › keeps string props working when columns[].data selects a subset",null,null,null,null,null,null,833,null],["setDataAtRowProp old value › reads the numeric key a numeric prop writes to when the data is object-shaped",null,null,null,null,null,null,896,null],["setDataAtRowProp old value › reads the old value from the addressed source index when columns are moved",null,null,null,null,null,null,865,null],["setDataAtRowProp old value › reads the old value from the addressed source index when columns[].data offsets them",null,null,null,null,null,null,901,null],["setDataAtRowProp old value › reads the old value from the addressed source index when columns[].data reorders them",null,null,null,null,null,null,918,null],["setDataAtRowProp old value › restores the original row on undo when columns are moved",null,null,null,null,null,null,863,null],["setDataAtRowProp old value › restores the original row on undo when columns[].data offsets the source indexes",null,null,null,null,null,null,969,null],["setSourceDataAtCell old value › reports the previous value of the addressed index when columns are moved",null,null,null,null,null,null,861,null],["setSourceDataAtCell old value › reports the previous value of the addressed index when columns[].data offsets them",null,null,null,null,null,null,885,null],["setSourceDataAtCell old value › reports the previous value of the addressed index when nothing remaps the columns",null,null,null,null,null,null,890,null]],
"e2e/set-data-past-last-column.spec.ts":[["setDataAtCell past the last column of an object data source › leaves an open editor alone when every change is skipped",null,null,null,null,null,null,1004,null]],
"e2e/shadow-dom.spec.ts":[["grid inside a native shadow root › copies and pastes between cells with keyboard shortcuts",821,554,null,null,976,527,1151,759],["grid inside a native shadow root › deselects when a light-DOM element outside the shadow host is clicked",569,490,null,null,740,470,858,568],["grid inside a native shadow root › deselects when a non-focusable sibling in the same shadow root is clicked",704,501,null,null,928,511,996,660],["grid inside a native shadow root › does not steal focus back when typing into an input outside the shadow host",768,547,null,null,1046,532,987,727],["grid inside a native shadow root › executes a context menu action on the selection that opened it",854,605,null,null,987,572,1036,800],["grid inside a native shadow root › hides the comment tooltip when the pointer moves into a different shadow tree",1232,1018,null,null,1427,966,1450,1170],["grid inside a native shadow root › hides the comment tooltip when the pointer moves to a cell without a comment",1203,1008,null,null,1447,998,1425,1214],["grid inside a native shadow root › isolates the internal z-index stack from the host page",629,463,null,null,856,422,826,581],["grid inside a native shadow root › keeps the comment tooltip open when its own cell is clicked",523,493,null,null,645,470,761,668],["grid inside a native shadow root › keeps the comment tooltip open when the pointer moves onto it",570,382,null,null,730,388,748,462],["grid inside a native shadow root › keeps the editor open when its textarea is clicked",859,597,null,null,931,583,1004,716],["grid inside a native shadow root › keeps the grid active when a web component rendered in a cell is clicked",746,536,null,null,1019,551,930,756],["grid inside a native shadow root › moves the selection between cells without dropping the keyboard listener",749,519,null,null,988,545,1121,748],["grid inside a native shadow root › opens the comment tooltip when a commented cell is hovered",973,780,null,null,1055,747,1109,955],["grid inside a native shadow root › passes the clicked element to the outsideClickDeselects callback when focus moves elsewhere",709,513,null,null,905,562,990,713],["grid inside a native shadow root › selects the first cell when tabbed into from a light-DOM element above",673,453,null,null,868,440,870,621],["grid inside a native shadow root › selects the last cell when shift-tabbed into from a light-DOM element below",594,450,null,null,822,466,958,582],["grid inside a native shadow root › tabs out of the grid from a web component rendered in a cell",723,518,null,null,916,507,1019,669],["grid whose clipboard events arrive the way LWS delivers them › copies and pastes between cells with keyboard shortcuts",664,531,null,null,939,534,948,718],["grid whose clipboard events arrive the way LWS delivers them › cuts and pastes between cells with keyboard shortcuts",659,543,null,null,956,500,1031,757]],
"e2e/shared-demo-keyboard-navigation.spec.ts":[["keyboard focus on the shared demo grid › Shift+Tab enters at the last cell, walks back to its row header and leaves before it",1048,null,2471,1665,1266,null,1516,null],["keyboard focus on the shared demo grid › Tab enters at the corner header, walks the column headers and leaves after the last one",911,null,1317,1311,1221,null,1244,null],["keyboard focus on the shared demo grid › the arrow keys walk from the first cell onto its row header and on to the corner",849,null,1173,1425,1086,null,1063,null],["keyboard focus returning to the shared demo grid › Tab brings the focus back into the grid it left at the edge of the page",818,null,null,null,1071,null,1268,null]],
"e2e/sheet-switch-autosize.spec.ts":[["AutoColumnSize on a formula sheet switch › a plain loadData measures each column twice: the load sweep and the visible walk",null,null,null,null,null,null,1261,719],["AutoColumnSize on a formula sheet switch › a switch to a data-holding sheet sweeps it once, plus the visible walk",null,null,null,null,null,null,1533,892],["AutoColumnSize on a formula sheet switch › reads fall back to the source value once the bound sheet is removed from the engine",null,null,null,null,null,null,1194,804],["AutoColumnSize on a formula sheet switch › widths measured after a switch match the widths measured at init",null,null,null,null,null,null,1667,1137]],
"e2e/sheets-bar-frozen-columns.spec.ts":[["SheetsBar switching onto a sheet with frozen columns › a switch onto a stored selection deselects once, then restores the selection",null,null,null,null,null,null,1139,null],["SheetsBar switching onto a sheet with frozen columns › restores the departing sheet selection on the way back",null,null,null,null,null,null,1447,null],["SheetsBar switching onto a sheet with frozen columns › restores the stored selection on an API switch",null,null,null,null,null,null,1229,null],["SheetsBar switching onto a sheet with frozen columns › restores the stored selection when the departing one sits in the arriving frozen band",null,null,null,null,null,null,1492,null]],
"e2e/sheets-bar-host-scrollbar-css.spec.ts":[["Sheets bar tab strip under a page-wide scrollbar rule › keeps no scrollbar under `.handsontable.ht-sheets-bar .ht-sheets-bar__tabs { scrollbar-width: thin; }`",1620,null,null,null,1772,null,2058,null],["Sheets bar tab strip under a page-wide scrollbar rule › keeps no scrollbar under `.ht-sheets-bar__tabs { scrollbar-width: thin !important; }`",1611,null,null,null,1944,null,2130,null],["Sheets bar tab strip under a page-wide scrollbar rule › keeps no scrollbar under `* { scrollbar-width: thin !important; }`",1892,null,null,null,2205,null,2315,null]],
"e2e/sheets-bar-pagination.spec.ts":[["SheetsBar keeps the pagination state of each sheet › a page size picked in the pagination bar stays with its sheet",939,null,null,null,1229,null,1266,null],["SheetsBar keeps the pagination state of each sheet › a whole column selected from its header on a later page comes back as a column selection",885,null,null,null,1187,null,1248,null],["SheetsBar keeps the pagination state of each sheet › a whole row selected from its header survives a round-trip through a shorter sheet",904,null,null,null,1218,null,1200,null],["SheetsBar keeps the pagination state of each sheet › each sheet comes back on its own page",984,null,null,null,1200,null,1343,null],["SheetsBar keeps the pagination state of each sheet › several rows selected from their headers all come back",919,null,null,null,1276,null,1230,null],["SheetsBar keeps the pagination state of each sheet › the page and the selected cell survive a round-trip through a shorter sheet",933,null,null,null,1183,null,1153,null]],
"e2e/sheets-bar-touch-drag.spec.ts":[["sheets bar touch drag › a touch long-press opens the active tab menu with no item preselected",1484,null,null,null,1740,null,1712,null],["sheets bar touch drag › dragging a tab past its neighbour by touch reorders the strip",754,null,null,null,957,null,952,null]],
"e2e/sheets-bar.spec.ts":[["sheets bar › a cell edit survives a sheet round-trip",686,null,null,null,928,null,1036,null],["sheets bar › a dragged tab keeps the hover surface it was picked up with",767,null,null,null,927,null,968,null],["sheets bar › a menu command that moves focus keeps it, rather than losing it to the trigger",715,null,null,null,968,null,1026,null],["sheets bar › a move from the menu leaves the focus on the moved sheet's tab",737,null,null,null,922,null,1040,null],["sheets bar › a plain click still activates and a double-click still renames",719,null,null,null,1000,null,1028,null],["sheets bar › a read-only cell stays read-only when rows move under it",891,null,null,null,1119,null,1187,null],["sheets bar › a repaint leaves focus outside the strip where it was",782,null,null,null,982,null,1038,null],["sheets bar › a selection survives a round-trip made by clicking the tabs",908,null,null,null,1154,null,1050,null],["sheets bar › a sheet can be activated with the keyboard alone",604,null,null,null,821,null,833,null],["sheets bar › a sheet keeps its own filter when beforeFilter cancels the restore",818,null,null,null,940,null,1013,null],["sheets bar › activating a sheet scrolls its tab into view",2204,null,null,null,2602,null,2843,null],["sheets bar › activating a tab from the keyboard leaves the focus on it",777,null,null,null,860,null,974,null],["sheets bar › clicking a tab switches the grid to that sheet",711,null,null,null,895,null,991,null],["sheets bar › clicking a tab whose sheet declares merged cells leaves the previous sheet's data intact",825,null,null,null,1077,null,1176,null],["sheets bar › column width and sort survive a sheet round-trip",742,null,null,null,1001,null,1110,null],["sheets bar › Ctrl+Z after a sheet round-trip does not undo the restored sort",818,null,null,null,999,null,1137,null],["sheets bar › deleting a sheet from the menu leaves the focus on the tab that takes its place",916,null,null,null,1124,null,1206,null],["sheets bar › double-clicking a tab label renames the sheet",702,null,null,null,907,null,938,null],["sheets bar › double-clicking the menu trigger opens the menu without starting a rename",873,null,null,null,1133,null,1138,null],["sheets bar › dragging a tab past its neighbour reorders the strip",646,null,null,null,868,null,896,null],["sheets bar › dragging a tab selects no text",744,null,null,null,852,null,981,null],["sheets bar › Escape during a drag leaves the order untouched",770,null,null,null,965,null,949,null],["sheets bar › Escape returns focus to the button the menu was opened from",854,null,null,null,987,null,1096,null],["sheets bar › holding a dragged tab at the edge scrolls the strip",2090,null,null,null,2475,null,2887,null],["sheets bar › only the active tab's menu trigger answers to hover",743,null,null,null,914,null,952,null],["sheets bar › opening the tab menu from the keyboard selects the first item",625,null,null,null,841,null,963,null],["sheets bar › opening the tab menu with the pointer leaves no item highlighted",712,null,null,null,849,null,970,null],["sheets bar › paging arrows appear once the tab strip overflows and scroll it on click",1929,null,null,null,2493,null,2601,null],["sheets bar › pressing a tab saves the open editor into the sheet it leaves",797,null,null,null,1013,null,1065,null],["sheets bar › pressing the active tab keeps the selection, and the add button stores it on the sheet it leaves",982,null,null,null,1243,null,1412,null],["sheets bar › right-clicking a cell still opens the grid context menu",761,null,null,null,877,null,967,null],["sheets bar › right-clicking a tab opens its menu instead of the grid context menu",695,null,null,null,914,null,922,null],["sheets bar › running a menu command with Enter does not reopen the menu it just closed",762,null,null,null,932,null,949,null],["sheets bar › Shift+Tab into a sheet that was never visited does not select the previous sheet's cell",722,null,null,null,1024,null,1030,null],["sheets bar › switching back to a shorter sheet after restoring a merge below its last row",942,null,null,null,1105,null,1052,null],["sheets bar › the add button appends a new default-named sheet",831,null,null,null,1121,null,1148,null],["sheets bar › the add button switches to the new sheet, seeded blank at A-Z by 1000",787,null,null,null,1064,null,1081,null],["sheets bar › the all-sheets menu activates the chosen sheet",811,null,null,null,946,null,1058,null],["sheets bar › the all-sheets menu marks the sheet you are on",790,null,null,null,1032,null,1092,null],["sheets bar › the all-sheets menu opens scrolled to the sheet you are on",2275,null,null,null,2762,null,3054,null],["sheets bar › the all-sheets menu scrolls once it passes eight sheets",2707,null,null,null,3173,null,3613,null],["sheets bar › the all-sheets rows respond to hover and to keyboard focus",730,null,null,null,925,null,1003,null],["sheets bar › the delete item is disabled on the last remaining sheet",1053,null,null,null,1234,null,1351,null],["sheets bar › the dragged tab travels with the pointer",704,null,null,null,913,null,1040,null],["sheets bar › the keyboard takes two activations: the sheet first, then its menu",706,null,null,null,893,null,1033,null],["sheets bar › the menu trigger is easier to hit than the glyph it draws",654,null,null,null,828,null,898,null],["sheets bar › the menu trigger takes two clicks on another tab, one on the active tab",904,null,null,null,1024,null,1165,null],["sheets bar › the move items are disabled at the edges of the strip",765,null,null,null,968,null,1022,null],["sheets bar › the paging arrows are disabled at each end of the strip",1887,null,null,null,2318,null,2553,null],["sheets bar › the paging arrows carry the same styling as the add and all-sheets buttons",1962,null,null,null,2375,null,2536,null],["sheets bar › the rename field stops accepting characters at fifty",751,null,null,null,954,null,1022,null],["sheets bar › the rename input grows and shrinks with the text it holds",685,null,null,null,976,null,990,null],["sheets bar › the sort indicator comes back with its sheet when beforeColumnSort cancels the restore",766,null,null,null,939,null,996,null],["sheets bar › the tab keeps its width when the rename input replaces the label and chevron",784,null,null,null,995,null,966,null],["sheets bar › the tab menu renames, duplicates, and deletes sheets",1032,null,null,null,1388,null,1230,null],["sheets bar › the tab menu trigger is hidden while renaming and returns afterwards",694,null,null,null,816,null,897,null],["sheets bar › typing a new name with a cell selected renames the sheet and leaves the cell alone",911,null,null,null,1019,null,1125,null],["sheets bar › under RTL, the paging next arrow scrolls the strip toward negative scrollLeft",2144,null,null,null,2569,null,2746,null]],
"e2e/shift-wheel-scroll.spec.ts":[["Shift + mouse wheel › consumes a Shift + vertical wheel while the grid can still scroll it",849,null,1123,1109,975,null,1125,null],["Shift + mouse wheel › does not consume a Shift + vertical wheel at the horizontal edge",845,null,1189,1307,1049,null,1164,null],["Shift + mouse wheel › keeps scrolling the columns for a horizontal wheel",802,null,1357,1198,940,null,1081,null],["Shift + mouse wheel › keeps scrolling the rows for a vertical wheel without Shift",757,null,1223,1126,921,null,1064,null],["Shift + mouse wheel › scrolls the columns like a horizontal wheel in an RTL grid",789,null,1248,1175,1022,null,1118,null],["Shift + mouse wheel › scrolls the columns, not the rows, for a vertical wheel while Shift is held",778,null,1173,1130,955,null,1017,null]],
"e2e/show-hidden-middle-column.spec.ts":[["show an initially hidden middle column or row › does not offer Show column on a header that is not next to the hidden column",null,null,null,null,null,null,1027,null],["show an initially hidden middle column or row › does not offer Show row on a header that is not next to the hidden row",null,null,null,null,null,null,988,null],["show an initially hidden middle column or row › restores the hidden middle column from the next header",null,null,null,null,null,null,1076,null],["show an initially hidden middle column or row › restores the hidden middle column from the previous header",null,null,null,null,null,null,1092,null],["show an initially hidden middle column or row › restores the hidden middle row from the next header",null,null,null,null,null,null,1140,null],["show an initially hidden middle column or row › restores the hidden middle row from the previous header",null,null,null,null,null,null,1015,null]],
"e2e/sort-value-getter-guard.spec.ts":[["the sort read path keeps every `valueGetter` on it › keeps a `valueGetter` a `cells()` function puts on the rendered rows",null,null,null,null,null,null,923,null],["the sort read path keeps every `valueGetter` on it › keeps a `valueGetter` a declarative `cell` entry puts on one unrendered row",null,null,null,null,null,null,953,null],["the sort read path keeps every `valueGetter` on it › keeps the `valueGetter` of a column-typed dropdown for the unrendered rows",null,null,null,null,null,null,885,null],["the sort read path keeps every `valueGetter` on it › reads a plain column the same way in bulk as cell by cell",null,null,null,null,null,null,959,null],["the sort read path keeps every `valueGetter` on it › sorts a dropdown column by the value its `valueGetter` returns",null,null,null,null,null,null,910,null]],
"e2e/sorted-row-height-cache.spec.ts":[["Axis size caches after an index rearrangement (DEV-2823) › keeps the cached column offsets true after a column move",937,null,null,null,1149,null,1058,null],["Axis size caches after an index rearrangement (DEV-2823) › keeps the cached row offsets true after a same-count trim swap",1336,null,null,null,1517,null,1697,null],["Axis size caches after an index rearrangement (DEV-2823) › keeps the cached row offsets true after a sort and after a same-count hide swap",1832,null,null,null,2025,null,2119,null],["Axis size caches after an index rearrangement (DEV-2823) › leaves no blank space after sorting from the column header",2140,null,null,null,2399,null,2448,null],["Axis size caches after an index rearrangement (DEV-2823) › leaves no blank space while scrolling a sorted grid",2409,null,null,null,2663,null,2796,null]],
"e2e/sorting-filtered-spare-rows.spec.ts":[["sorting a filtered grid with minSpareRows (columnSorting) › keeps the spare row out of the sort when there is no filter",null,null,null,null,null,null,1194,null],["sorting a filtered grid with minSpareRows (columnSorting) › restores the spare row below the data when the filter is cleared",null,null,null,null,null,null,1260,null],["sorting a filtered grid with minSpareRows (columnSorting) › sorts every visible row once the filter has trimmed the spare row away",null,null,null,null,null,null,1213,null],["sorting a filtered grid with minSpareRows (columnSorting) › sorts every visible row when several spare rows were trimmed",null,null,null,null,null,null,1293,null],["sorting a filtered grid with minSpareRows (columnSorting) › sorts trailing empty rows that are data rather than spare rows",null,null,null,null,null,null,1190,null],["sorting a filtered grid with minSpareRows (multiColumnSorting) › keeps the spare row out of the sort when there is no filter",null,null,null,null,null,null,1297,null],["sorting a filtered grid with minSpareRows (multiColumnSorting) › restores the spare row below the data when the filter is cleared",null,null,null,null,null,null,1669,null],["sorting a filtered grid with minSpareRows (multiColumnSorting) › sorts every visible row once the filter has trimmed the spare row away",null,null,null,null,null,null,1369,null],["sorting a filtered grid with minSpareRows (multiColumnSorting) › sorts every visible row when several spare rows were trimmed",null,null,null,null,null,null,1193,null],["sorting a filtered grid with minSpareRows (multiColumnSorting) › sorts trailing empty rows that are data rather than spare rows",null,null,null,null,null,null,1104,null]],
"e2e/sorting-fixed-rows.spec.ts":[["sorting rows pinned by fixedRowsTop / fixedRowsBottom (columnSorting) › honors sortFixedRows for more than one pinned row at each end",null,null,null,null,null,null,1343,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (columnSorting) › honors sortFixedRows on the maxRows branch of the sortable range",null,null,null,null,null,null,1280,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (columnSorting) › keeps the pinned rows in place by default",null,null,null,null,null,null,1439,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (columnSorting) › keeps the spare row below the data when sortFixedRows is true",null,null,null,null,null,null,1090,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (columnSorting) › reads sortFixedRows at sort time, so updateSettings changes the next sort",null,null,null,null,null,null,1505,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (columnSorting) › sorts the pinned rows with the rest of the data when sortFixedRows is true",null,null,null,null,null,null,1422,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (multiColumnSorting) › honors sortFixedRows for more than one pinned row at each end",null,null,null,null,null,null,1277,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (multiColumnSorting) › honors sortFixedRows on the maxRows branch of the sortable range",null,null,null,null,null,null,1287,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (multiColumnSorting) › keeps the pinned rows in place by default",null,null,null,null,null,null,1291,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (multiColumnSorting) › keeps the spare row below the data when sortFixedRows is true",null,null,null,null,null,null,1098,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (multiColumnSorting) › reads sortFixedRows at sort time, so updateSettings changes the next sort",null,null,null,null,null,null,1295,null],["sorting rows pinned by fixedRowsTop / fixedRowsBottom (multiColumnSorting) › sorts the pinned rows with the rest of the data when sortFixedRows is true",null,null,null,null,null,null,1158,null]],
"e2e/source-data-validator-address.spec.ts":[["sourceDataValidator cell address › blanks the column it validated when `columns[].data` is an accessor function",null,null,null,null,null,null,896,null],["sourceDataValidator cell address › blanks the column it validated when columns are moved",null,null,null,null,null,null,830,null],["sourceDataValidator cell address › blanks the column it validated when columns[].data remaps the source indexes",null,null,null,null,null,null,827,null],["sourceDataValidator cell address › blanks the validated column when nothing remaps the source indexes",null,null,null,null,null,null,888,null]],
"e2e/stale-header-wrapper.spec.ts":[["header cell holding content that is not the grid's wrapper › rebuilds the column header and fires afterGetColHeader once",null,null,null,null,null,null,869,null],["header cell with a missing label element › fires afterGetColHeader once for a rebuilt column header",null,null,null,null,null,null,964,null],["header cell with a missing label element › rebuilds a column header on the next render instead of throwing",null,null,null,null,null,null,930,null],["header cell with a missing label element › rebuilds a row header on the next render instead of throwing",null,null,null,null,null,null,927,null]],
"e2e/stretch-columns-container-resize.spec.ts":[["stretched columns after a container resize › all: a fixed-height grid reports no horizontal scrollbar after shrinking",648,null,null,null,798,null,866,null],["stretched columns after a container resize › all: a render with nothing changed drops the column-width cache zero times",552,null,null,null,772,null,813,null],["stretched columns after a container resize › all: growing past the viewport in window mode gives the page a real horizontal scrollbar",803,null,null,null,964,null,993,null],["stretched columns after a container resize › all: growing the container after a shrink also lands clean",800,null,null,null,967,null,1100,null],["stretched columns after a container resize › all: in window mode a shrink stretches to the root, not to the document",707,null,null,null,811,null,878,null],["stretched columns after a container resize › all: shrinking below the base width sum switches stretching off with exactly one cache drop",839,null,null,null,913,null,1026,null],["stretched columns after a container resize › all: the header clone spans the whole grid after shrinking (auto height)",733,null,null,null,781,null,965,null],["stretched columns after a container resize › all: with autoColumnSize on (the library default) the header clone still spans the grid",689,null,null,null,839,null,925,null],["stretched columns after a container resize › last: growing the container after a shrink also lands clean",774,null,null,null,1001,null,969,null],["stretched columns after a container resize › last: the header clone spans the whole grid after shrinking (auto height)",692,null,null,null,767,null,940,null]],
"e2e/submenu-hover-delay.spec.ts":[["context menu submenu hover delay › closes the submenu once the pointer rests on another item",1583,null,null,null,1773,null,1865,null],["context menu submenu hover delay › does not open a submenu after the pointer has left the menu",1807,null,null,null,2039,null,2125,null],["context menu submenu hover delay › keeps a keyboard-opened submenu when the pointer rests on another row",1740,null,null,null,1850,null,1976,null],["context menu submenu hover delay › keeps the submenu open along the reported path, which leaves the menu and crosses the grid",2598,null,null,null,2952,null,2957,null],["context menu submenu hover delay › keeps the submenu open while the pointer travels diagonally to any of its items",10017,null,null,null,10467,null,10446,null],["context menu submenu hover delay › opens the submenu with no delay when the keyboard asks for it",533,null,null,null,631,null,779,null],["context menu submenu hover delay › reopens on hover after the submenu was closed from its own side",2051,null,null,null,2260,null,2213,null]],
"e2e/submenu-position.spec.ts":[["submenu placement (grid inherit, document rtl) › the context menu's submenu opens beside its item from every corner",1037,null,null,null,1814,null,2090,null],["submenu placement (grid inherit, document rtl) › the context menu's submenu opens beside its item from every corner, with the grid scrolled to its bottom and inline end",1330,null,null,null,2222,null,2556,null],["submenu placement (grid inherit, document rtl) › the context menu's submenu opens beside its item with the window scrolled sideways",982,null,null,null,1378,null,1489,null],["submenu placement (grid inherit, document rtl) › the dropdown menu's submenu opens beside its item at both inline edges",841,null,null,null,1105,null,1098,null],["submenu placement (grid inherit, document rtl) › the dropdown menu's submenu opens beside its item at both inline edges, with the grid scrolled to its bottom and inline end",1808,null,null,null,1418,null,1557,null],["submenu placement (grid ltr, document ltr) › the context menu's submenu opens beside its item from every corner",914,null,null,null,1536,null,1442,null],["submenu placement (grid ltr, document ltr) › the context menu's submenu opens beside its item from every corner, with the grid scrolled to its bottom and inline end",1366,null,null,null,1872,null,2002,null],["submenu placement (grid ltr, document ltr) › the context menu's submenu opens beside its item with the window scrolled sideways",958,null,null,null,1157,null,1342,null],["submenu placement (grid ltr, document ltr) › the dropdown menu's submenu opens beside its item at both inline edges",856,null,null,null,1213,null,1243,null],["submenu placement (grid ltr, document ltr) › the dropdown menu's submenu opens beside its item at both inline edges, with the grid scrolled to its bottom and inline end",1872,null,null,null,1301,null,1405,null],["submenu placement (grid ltr, document rtl) › the context menu's submenu opens beside its item from every corner",1616,null,null,null,2178,null,2772,null],["submenu placement (grid ltr, document rtl) › the context menu's submenu opens beside its item from every corner, with the grid scrolled to its bottom and inline end",1617,null,null,null,2493,null,2916,null],["submenu placement (grid ltr, document rtl) › the context menu's submenu opens beside its item with the window scrolled sideways",1219,null,null,null,1403,null,1950,null],["submenu placement (grid ltr, document rtl) › the dropdown menu's submenu opens beside its item at both inline edges",977,null,null,null,1357,null,1657,null],["submenu placement (grid ltr, document rtl) › the dropdown menu's submenu opens beside its item at both inline edges, with the grid scrolled to its bottom and inline end",2009,null,null,null,1531,null,2131,null],["submenu placement (grid rtl, document ltr) › the context menu's submenu opens beside its item from every corner",1707,null,null,null,1863,null,1952,null],["submenu placement (grid rtl, document ltr) › the context menu's submenu opens beside its item from every corner, with the grid scrolled to its bottom and inline end",1448,null,null,null,1854,null,2030,null],["submenu placement (grid rtl, document ltr) › the context menu's submenu opens beside its item with the window scrolled sideways",1044,null,null,null,1188,null,1290,null],["submenu placement (grid rtl, document ltr) › the dropdown menu's submenu opens beside its item at both inline edges",956,null,null,null,1039,null,1167,null],["submenu placement (grid rtl, document ltr) › the dropdown menu's submenu opens beside its item at both inline edges, with the grid scrolled to its bottom and inline end",1865,null,null,null,1310,null,1366,null]],
"e2e/tab-navigation-two-grids.spec.ts":[["Tab order through two grids › walks into, through and out of both grids, re-entering the grid it left",null,null,1164,1322,null,null,1436,null]],
"e2e/tab-reentry-after-load-data.spec.ts":[["Tab re-entry after loadData › returns to the last focused cell while the data stays the same",null,null,null,null,null,null,1388,null],["Tab re-entry after loadData › starts at the bottom-end cell once loadData replaced the data",null,null,null,null,null,null,1113,null]],
"e2e/text-editor-native-undo.spec.ts":[["native undo and redo in the open text editor › grows the editor a line for each line break and shrinks it back on undo, then grows it on redo",769,null,1299,null,1111,null,1584,null],["native undo and redo in the open text editor › undoes and redoes typed text inside the editor and leaves the grid's data and undo stack alone",813,null,1416,null,1121,null,1603,null],["native undo and redo in the open text editor › undoes text typed key by key, as a user types it",646,null,1233,null,1072,null,1485,null]],
"e2e/text-editor-viewport-size.spec.ts":[["text editor size against the viewport › keeps ending at the end of the viewport when the viewport scrolls under the open editor",819,null,null,null,893,null,1330,null],["text editor size against the viewport › opens as wide as the room to the end of the viewport",695,null,null,null,885,null,1213,null]],
"e2e/text-ellipsis-line-clamp.spec.ts":[["textEllipsis line clamp › `textEllipsis: true` cuts a long cell off at its edge with an ellipsis, on one line",1001,null,null,null,1289,null,1773,null],["textEllipsis line clamp › `wordWrap: false` wins over a number and renders one line with an ellipsis",757,null,null,null,912,null,1061,null],["textEllipsis line clamp › a changed number, cell meta and `false` all re-render the row at the right height",760,null,null,null,914,null,1171,null],["textEllipsis line clamp › cascades grid, column and cell level, the nearest one winning",715,null,null,null,941,null,1216,null],["textEllipsis line clamp › clamps in an RTL grid",683,null,null,null,883,null,1177,null],["textEllipsis line clamp › clamps to n lines and keeps the full text, and the row is shorter than an unclamped row",653,null,null,null,780,null,1245,null],["textEllipsis line clamp › drops the wrapper when the renderer changes, and clamps again when it changes back",773,null,null,null,901,null,1401,null],["textEllipsis line clamp › follows number changes under `renderMode: \"onChange\"`",696,null,null,null,837,null,1174,null],["textEllipsis line clamp › ignores 0, negatives and fractions, and treats 1 and true as the single-line ellipsis",851,null,null,null,1096,null,1381,null],["textEllipsis line clamp › keeps an autoLink anchor inside the wrapper of a clamped cell",673,null,null,null,884,null,1185,null],["textEllipsis line clamp › keeps one arrow in a clamped autocomplete cell across redraws, inside the cell",704,null,null,null,910,null,1422,null],["textEllipsis line clamp › keeps the full untruncated text in the DOM of a clamped cell",652,null,null,null,782,null,915,null],["textEllipsis line clamp › keeps the master and every overlay on one row height with frozen rows and columns",796,null,null,null,805,null,1208,null],["textEllipsis line clamp › opens the editor with the full text, saves and cancels, and the cell stays clamped",907,null,null,null,1102,null,1605,null],["textEllipsis line clamp › sizes a clamped row to its lines when `autoRowSize` measures the rows",685,null,null,null,940,null,1035,null]],
"e2e/touch-tap-to-edit.spec.ts":[["touch tap-to-edit on a device with touch and mouse listeners › a cancelled gesture does not leave a stale pending pair swallowing the next real mouse pair",782,null,null,null,1186,null,1049,null],["touch tap-to-edit on a device with touch and mouse listeners › a cancelled gesture does not leave real mouse clicks pairing as taps",820,null,null,null,1467,null,1149,null],["touch tap-to-edit on a device with touch and mouse listeners › a cancelled long-press releases the mouse-down flag: no drag-selection follows",733,null,null,null,1105,null,905,null],["touch tap-to-edit on a device with touch and mouse listeners › a double-tap at a 700 ms cadence opens the editor",968,null,null,null,1437,null,1238,null],["touch tap-to-edit on a device with touch and mouse listeners › a drifted gesture over the selected cell lets the browser mouse pair through on the fallback path",773,null,null,null,1187,null,1214,null],["touch tap-to-edit on a device with touch and mouse listeners › a first tap on an unselected cell is preventDefault-ed: no synthesized mouse pair, hooks fire once",956,null,null,null,1339,null,1258,null],["touch tap-to-edit on a device with touch and mouse listeners › a pair armed by a tap that synthesized nothing does not swallow the next gesture's pair",755,null,null,null,1260,null,1109,null],["touch tap-to-edit on a device with touch and mouse listeners › a scroll gesture between two taps cancels the double-tap pairing",787,null,null,null,1207,null,1148,null],["touch tap-to-edit on a device with touch and mouse listeners › a tap followed by a real mouse click on the same cell does not open the editor",701,null,null,null,1404,null,1137,null],["touch tap-to-edit on a device with touch and mouse listeners › mouse events without an origin right after a tap are ignored, then accepted once the window passed",798,null,null,null,1381,null,1329,null],["touch tap-to-edit on a device with touch and mouse listeners › tapping a context-menu item runs the command once (#12803 stays fixed)",872,null,null,null,1364,null,1492,null],["touch tap-to-edit on a device with touch and mouse listeners › two taps more than a second apart are not a double-tap, and the second tap's synthesized mouse pair is ignored",838,null,null,null,1173,null,1111,null]],
"e2e/trusted-types.spec.ts":[["Trusted Types enforcement › constructs a grid with nested headers",null,null,null,null,null,null,898,805],["Trusted Types enforcement › opens a dialog",null,null,null,null,null,null,854,791],["Trusted Types enforcement › pastes HTML through a sanitizer that returns a TrustedHTML",null,null,null,null,null,null,1027,797],["Trusted Types enforcement › pastes the plain-text flavour when no sanitizer is configured",null,null,null,null,null,null,1002,817],["Trusted Types enforcement › raises no CSP violation while constructing",null,null,null,null,null,null,933,691],["Trusted Types enforcement › renders the empty data state",null,null,null,null,null,null,880,626],["Trusted Types enforcement › renders the export progress dialog",null,null,null,null,null,null,911,727],["Trusted Types enforcement › renders the license branding bar",null,null,null,null,null,null,850,685],["Trusted Types enforcement › renders the license lock screen",null,null,null,null,null,null,899,740],["Trusted Types enforcement › renders the loading overlay",null,null,null,null,null,null,894,737],["Trusted Types enforcement › renders the pagination bar",null,null,null,null,null,null,975,783],["Trusted Types enforcement › reports the refused clipboard parse rather than hiding it",null,null,null,null,null,null,1014,748],["Trusted Types enforcement › the converted sink: the context menu check mark › marks an item as checked whether or not a sanitizer is configured",null,null,null,null,null,null,1501,1291],["Trusted Types enforcement › the surviving sink: header content › constructs for a header holding no markup at all, only an ampersand and a semicolon",null,null,null,null,null,null,891,677],["Trusted Types enforcement › the surviving sink: header content › renders both header shapes through a sanitizer that returns a TrustedHTML",null,null,null,null,null,null,1328,965],["Trusted Types enforcement › the surviving sink: header content › throws for a header holding markup when no sanitizer is configured",null,null,null,null,null,null,816,671]],
"e2e/undo-index-transformations.spec.ts":[["undo across index transformations › undoing a removal of rows next to a trimmed row keeps the trimmed record trimmed",null,null,null,null,null,null,1096,null],["undo across index transformations › undoing a removal of rows on a sorted grid puts the records back in the sorted order",null,null,null,null,null,null,1070,null],["undo across index transformations › undoing a removal of several columns on a moved column order restores the order and the values",null,null,null,null,null,null,1069,null]],
"e2e/undo-plugin-state.spec.ts":[["undo of plugin state › a column resize through the API is one step that an undo reverts and a redo repeats",null,null,null,null,null,null,1135,null],["undo of plugin state › a redo rebuilds the borders without writing their cell meta again",null,null,null,null,null,null,941,null],["undo of plugin state › a row resize through the API is one step that an undo reverts",null,null,null,null,null,null,979,null],["undo of plugin state › adding a custom border is one step that an undo reverts and a redo repeats",null,null,null,null,null,null,826,null],["undo of plugin state › an edit made while a column resize is dragged is a step of its own, and undoing it leaves the width",null,null,null,null,null,null,1328,null],["undo of plugin state › an undo of an edit made after a hide leaves the rows hidden",null,null,null,null,null,null,1057,null],["undo of plugin state › an undo of another step leaves an editor adding a new comment open, with its text",null,null,null,null,null,null,1130,null],["undo of plugin state › an undo that removes the comment under the open editor closes the editor without saving",null,null,null,null,null,null,1062,null],["undo of plugin state › autosizing a column by double-clicking its resize handle is one step that an undo reverts",null,null,null,null,null,null,1909,null],["undo of plugin state › changing the page is one step that an undo reverts and a redo repeats",null,null,null,null,null,null,1099,null],["undo of plugin state › collapsing a header group is one step, and an undo expands it and its button again",null,null,null,null,null,null,985,null],["undo of plugin state › collapsing a nested-rows parent is one step that an undo reverts and a redo repeats",null,null,null,null,null,null,858,null],["undo of plugin state › dragging a column resize handle is one step, however many moves the drag takes",null,null,null,null,null,null,1162,null],["undo of plugin state › freezing a column is one step that an undo reverts, the column order included",null,null,null,null,null,null,998,null],["undo of plugin state › hiding rows is one step that an undo reverts and a redo repeats",null,null,null,null,null,null,986,null],["undo of plugin state › leaving the comment editor records a step only when the text changed",null,null,null,null,null,null,1227,null],["undo of plugin state › merging over existing merges is one step that one undo reverts",null,null,null,null,null,null,1196,null],["undo of plugin state › setting a comment is one step, and an undo removes its cell marker",null,null,null,null,null,null,1021,null],["undo of plugin state › showing hidden rows is one step that an undo reverts",null,null,null,null,null,null,1022,null],["undo of plugin state › trimming rows is one step that an undo reverts and a redo repeats",null,null,null,null,null,null,1086,null]],
"e2e/undo-redo-keyboard.spec.ts":[["undo and redo of a cell edit with the keyboard › commits, undoes and redoes an edit on the /arabic-rtl-demo shape",null,null,1330,1566,null,null,1309,null],["undo and redo of a cell edit with the keyboard › commits, undoes and redoes an edit on the /cell-types-demo shape",null,null,1431,1727,null,null,1334,null],["undo and redo of a cell edit with the keyboard › commits, undoes and redoes an edit on the /custom-style-demo shape",null,null,1429,1540,null,null,1400,null],["undo and redo of a cell edit with the keyboard › commits, undoes and redoes an edit on the /merged-cells-demo shape",null,null,1370,1578,null,null,1281,null],["undo and redo of a cell edit with the keyboard › commits, undoes and redoes an edit on the /nested-headers-demo shape",null,null,1391,1665,null,null,1400,null],["undo and redo of a cell edit with the keyboard › commits, undoes and redoes an edit on the /nested-rows-demo shape",null,null,1437,1705,null,null,1434,null]],
"e2e/undo-remove-row-schema.spec.ts":[["undo of remove_row with a function dataSchema › restores a constructor row with a derived getter and keeps undo alive",null,null,null,null,null,null,1498,null],["undo of remove_row with a function dataSchema › restores an accessor-backed row through its column functions",null,null,null,null,null,null,1382,null]],
"e2e/unlaid-out-init-scroll-sync.spec.ts":[["grid built into a container that has no layout yet › fills its container without any interaction once the detached container is laid out",723,448,null,null,898,465,938,715],["grid built into a container that has no layout yet › fills its container without any interaction once the hidden container is laid out",721,475,null,null,945,409,978,743],["grid built into a container that has no layout yet › fills its container without any interaction once the unslotted container is laid out",765,439,null,null,915,446,871,746],["grid built into a container that has no layout yet › keeps the column headers and frozen columns aligned once the detached container is laid out",708,452,null,null,910,467,942,778],["grid built into a container that has no layout yet › keeps the column headers and frozen columns aligned once the hidden container is laid out",818,518,null,null,972,459,964,811],["grid built into a container that has no layout yet › keeps the column headers and frozen columns aligned once the unslotted container is laid out",849,547,null,null,1011,451,1111,849],["grid built into a container that has no layout yet › leaves a grid built into a laid-out container alone",771,489,null,null,1100,472,994,822],["grid built into a container that has no layout yet › restores the row heights of a grid that has frozen rows",860,541,null,null,1110,543,1070,805],["grid built into a container that has no layout yet › settles the correction pass for good once the detached container is laid out",819,483,null,null,918,453,1041,880],["grid built into a container that has no layout yet › settles the correction pass for good once the hidden container is laid out",689,513,null,null,1153,454,996,870],["grid built into a container that has no layout yet › settles the correction pass for good once the unslotted container is laid out",720,478,null,null,995,457,1035,917]],
"e2e/update-settings-column-shrink.spec.ts":[["updateSettings with a shortened columns array › keeps every renderer on its own column when `data` travels along",699,null,null,null,947,null,964,null],["updateSettings with a shortened columns array › keeps every renderer on its own column when a theme travels along",695,null,null,null,962,null,974,null],["updateSettings with a shortened columns array › keeps every renderer on its own column when only `columns` changes",772,null,null,null,887,null,971,null]],
"e2e/walkontable/exact-row-heights.spec.ts":[["walkontable exact row heights › in the `exact` mode › clips content taller than the row instead of growing the row",789,655,null,null,1010,574,1021,854],["walkontable exact row heights › in the `exact` mode › goes back to the content height when switched to the `min` mode",824,733,null,null,1095,601,1151,992],["walkontable exact row heights › in the `exact` mode › keeps a row with a tall frozen cell at the provided height in both tables",875,684,null,null,1069,637,1081,958],["walkontable exact row heights › in the `exact` mode › keeps the checkbox and the autocomplete arrow inside the clipping wrapper",755,680,null,null,962,576,1022,839],["walkontable exact row heights › in the `exact` mode › keeps the scroll range stable and the row-height cache settled",967,815,null,null,1257,753,1322,1136],["walkontable exact row heights › in the `exact` mode › renders every row at the provided height, including the first one",776,612,null,null,985,517,985,876],["walkontable exact row heights › in the `exact` mode › renders the row headers at the provided height too",699,577,null,null,1001,539,1094,832],["walkontable exact row heights › in the `exact` mode › reserves the autocomplete arrow at the clipping wrapper trailing edge",702,579,null,null,1004,570,996,833],["walkontable exact row heights › in the `exact` mode with a uniform `rowHeights` option › keeps the scroll range stable and the row-height cache settled",909,624,null,null,1033,641,1223,934],["walkontable exact row heights › in the `exact` mode with a uniform `rowHeights` option › renders every row at the option height and clips the three-line cell",676,609,null,null,923,521,918,714],["walkontable exact row heights › in the `min` mode (the default) › keeps a provided height shorter than the content as a floor",759,542,null,null,861,518,974,830]],
"e2e/walkontable/frozen-column-row-heights.spec.ts":[["walkontable row heights with frozen columns › brings the vertical scroll range back in one draw when the frozen cell shrinks",858,null,null,null,896,null,980,null],["walkontable row heights with frozen columns › costs no row-height cache invalidations once the frozen height has settled",706,null,null,null,795,null,904,null],["walkontable row heights with frozen columns › gives the row the same height in the master and in the inline-start overlay",640,null,null,null,993,null,859,null],["walkontable row heights with frozen columns › keeps a row tall in a SCROLLABLE column aligned across consecutive draws",856,null,null,null,1099,null,1141,null],["walkontable row heights with frozen columns › keeps a row tall in BOTH a frozen and a scrollable column aligned when the frozen part goes",1083,null,null,null,1449,null,1498,null],["walkontable row heights with frozen columns › keeps frozen ownership when the tall row is the first row the master renders",1073,null,null,null,1504,null,1517,null],["walkontable row heights with frozen columns › keeps the frozen row height when the master invalidates the cache in the same draw",677,null,null,null,1037,null,961,null],["walkontable row heights with frozen columns › keeps the panes aligned when the band boundary moves onto an already-tall row",1323,null,null,null,1448,null,1564,null],["walkontable row heights with frozen columns › keeps the rows aligned after scrolling away from the frozen columns",821,null,null,null,1123,null,1073,null],["walkontable row heights with frozen columns › keeps the rows below the tall one aligned with the inline-start overlay",757,null,null,null,971,null,990,null],["walkontable row heights with frozen columns › keeps the scroll range whole when the BOTTOM clone invalidates the cache mid-draw",1802,null,null,null,2167,null,2386,null],["walkontable row heights with frozen columns › records nothing bogus when a merged block sits in the frozen columns",1272,null,null,null,1491,null,1501,null],["walkontable row heights with frozen columns › reports the visible row range against the heights this draw ended with",977,null,null,null,902,null,920,null],["walkontable row heights with frozen columns › settles a row tall in both columns when the SCROLLABLE side is the taller one",1120,null,null,null,1369,null,1472,null],["walkontable row heights with frozen columns › shrinks the row back once the frozen cell no longer holds tall content",881,null,null,null,940,null,955,null],["walkontable row heights with frozen columns › stays a faithful mirror of RenderSizeProbe, including rows only a corner renders",1229,null,null,null,1398,null,1380,null],["walkontable row heights with frozen columns › the master does not render the frozen columns",650,null,null,null,831,null,868,null],["walkontable row heights with frozen columns › when the tall frozen cell is in a frozen top row › keeps the frozen top row aligned between the top overlay and its corner",1174,null,null,null,1347,null,1535,null]],
"e2e/walkontable/inline-end-overlay-review.spec.ts":[["walkontable inline-end overlay, review (ltr) › anchors each clone to its own physical side, whether or not the end band is rendering",891,null,null,null,1021,null,1127,null],["walkontable inline-end overlay, review (ltr) › draws the start edge of a selection at the first end column once, not once per overlay",916,null,null,null,1035,null,1120,null],["walkontable inline-end overlay, review (ltr) › lets a column wider than the room the end band leaves start at the inline-start edge",780,null,null,null,950,null,1028,null],["walkontable inline-end overlay, review (rtl) › anchors each clone to its own physical side, whether or not the end band is rendering",786,null,null,null,999,null,1068,null],["walkontable inline-end overlay, review (rtl) › draws the start edge of a selection at the first end column once, not once per overlay",868,null,null,null,950,null,1041,null],["walkontable inline-end overlay, review (rtl) › lets a column wider than the room the end band leaves start at the inline-start edge",743,null,null,null,965,null,1043,null],["walkontable inline-end overlay, review (window scroll with a margin) › reports how far the pinned clone is from the table's end, as the DOM shows it (ltr)",1135,null,null,null,1456,null,1700,null],["walkontable inline-end overlay, review (window scroll with a margin) › reports how far the pinned clone is from the table's end, as the DOM shows it (rtl)",1178,null,null,null,1375,null,1853,null]],
"e2e/walkontable/inline-end-overlay-review2.spec.ts":[["walkontable inline-end overlay, review round 2 (ltr) › gives every header of a column the aria-colindex its body cells carry, in every table",1400,null,null,null,1738,null,2064,null],["walkontable inline-end overlay, review round 2 (ltr) › holds the end clone and its corners at the grid edge, not the page edge, when the holder scrolls the columns",1212,null,null,null,1359,null,1877,null],["walkontable inline-end overlay, review round 2 (ltr) › keeps one header row height across all tables with frozen columns on both sides, without inflating it",1402,null,null,null,1666,null,1712,null],["walkontable inline-end overlay, review round 2 (ltr) › keeps the fill handle on the last column inside the end clone (holder scroll, 1 end columns)",719,null,null,null,933,null,1236,null],["walkontable inline-end overlay, review round 2 (ltr) › keeps the fill handle on the last column inside the end clone (holder scroll, 3 end columns)",803,null,null,null,1025,null,1119,null],["walkontable inline-end overlay, review round 2 (ltr) › keeps the fill handle on the last column inside the end clone (window scroll, 1 end columns)",887,null,null,null,1093,null,1259,null],["walkontable inline-end overlay, review round 2 (ltr) › keeps the fill handle on the last column inside the end clone (window scroll, 3 end columns)",952,null,null,null,1093,null,1272,null],["walkontable inline-end overlay, review round 2 (rtl) › gives every header of a column the aria-colindex its body cells carry, in every table",1422,null,null,null,1751,null,2183,null],["walkontable inline-end overlay, review round 2 (rtl) › holds the end clone and its corners at the grid edge, not the page edge, when the holder scrolls the columns",1132,null,null,null,1432,null,1608,null],["walkontable inline-end overlay, review round 2 (rtl) › keeps one header row height across all tables with frozen columns on both sides, without inflating it",1251,null,null,null,1566,null,1741,null],["walkontable inline-end overlay, review round 2 (rtl) › keeps the fill handle on the last column inside the end clone (holder scroll, 1 end columns)",791,null,null,null,843,null,1188,null],["walkontable inline-end overlay, review round 2 (rtl) › keeps the fill handle on the last column inside the end clone (holder scroll, 3 end columns)",745,null,null,null,1056,null,1122,null],["walkontable inline-end overlay, review round 2 (rtl) › keeps the fill handle on the last column inside the end clone (window scroll, 1 end columns)",925,null,null,null,1137,null,1464,null],["walkontable inline-end overlay, review round 2 (rtl) › keeps the fill handle on the last column inside the end clone (window scroll, 3 end columns)",970,null,null,null,1130,null,1317,null]],
"e2e/walkontable/inline-end-overlay.spec.ts":[["walkontable inline-end overlay (ltr) › cuts the end columns down to what the start columns leave",783,null,null,null,936,null,1034,null],["walkontable inline-end overlay (ltr) › draws one handle per edge of a selection that crosses into the end columns",850,null,null,null,976,null,1137,null],["walkontable inline-end overlay (ltr) › follows the vertical scroll of the grid row by row",639,null,null,null,904,null,1050,null],["walkontable inline-end overlay (ltr) › hides the handle of an edge that lies on the freeze line",846,null,null,null,1080,null,1121,null],["walkontable inline-end overlay (ltr) › is created, removed and created again by updateSettings",775,null,null,null,974,null,1046,null],["walkontable inline-end overlay (ltr) › is destroyed with the grid",761,null,null,null,828,null,937,null],["walkontable inline-end overlay (ltr) › keeps the end columns on the inline-end edge while the grid scrolls sideways",1094,null,null,null,1250,null,1394,null],["walkontable inline-end overlay (ltr) › leaves the last scrollable column fully visible beside the end columns at the end of the scroll",689,null,null,null,890,null,918,null],["walkontable inline-end overlay (ltr) › leaves the middle to the scrollable columns when both edges are frozen",710,null,null,null,863,null,947,null],["walkontable inline-end overlay (ltr) › names the cells of the end columns by their place in the grid, in every region",765,null,null,null,885,null,984,null],["walkontable inline-end overlay (ltr) › renders only the last columns, and no row headers",727,null,null,null,852,null,954,null],["walkontable inline-end overlay (ltr) › resolves the topmost cell of every region to its own overlay",619,null,null,null,867,null,943,null],["walkontable inline-end overlay (ltr) › selects the cell that is clicked in the end columns",784,null,null,null,1086,null,1225,null],["walkontable inline-end overlay (ltr) › stands the corners at the corners of the end overlay, on the edges of the top and bottom overlays",663,null,null,null,873,null,914,null],["walkontable inline-end overlay (rtl) › cuts the end columns down to what the start columns leave",775,null,null,null,993,null,1171,null],["walkontable inline-end overlay (rtl) › draws one handle per edge of a selection that crosses into the end columns",903,null,null,null,1063,null,1116,null],["walkontable inline-end overlay (rtl) › follows the vertical scroll of the grid row by row",623,null,null,null,865,null,888,null],["walkontable inline-end overlay (rtl) › hides the handle of an edge that lies on the freeze line",848,null,null,null,1039,null,1168,null],["walkontable inline-end overlay (rtl) › is created, removed and created again by updateSettings",781,null,null,null,1029,null,946,null],["walkontable inline-end overlay (rtl) › is destroyed with the grid",709,null,null,null,934,null,908,null],["walkontable inline-end overlay (rtl) › keeps the end columns on the inline-end edge while the grid scrolls sideways",1031,null,null,null,1275,null,1421,null],["walkontable inline-end overlay (rtl) › leaves the last scrollable column fully visible beside the end columns at the end of the scroll",704,null,null,null,826,null,944,null],["walkontable inline-end overlay (rtl) › leaves the middle to the scrollable columns when both edges are frozen",750,null,null,null,899,null,1049,null],["walkontable inline-end overlay (rtl) › names the cells of the end columns by their place in the grid, in every region",744,null,null,null,924,null,969,null],["walkontable inline-end overlay (rtl) › renders only the last columns, and no row headers",650,null,null,null,910,null,877,null],["walkontable inline-end overlay (rtl) › resolves the topmost cell of every region to its own overlay",702,null,null,null,822,null,905,null],["walkontable inline-end overlay (rtl) › selects the cell that is clicked in the end columns",749,null,null,null,1061,null,1195,null],["walkontable inline-end overlay (rtl) › stands the corners at the corners of the end overlay, on the edges of the top and bottom overlays",658,null,null,null,861,null,962,null],["walkontable inline-end overlay (window scroll) › holds the end columns at the viewport edge while the page scrolls sideways (ltr)",1058,null,null,null,1032,null,1176,null],["walkontable inline-end overlay (window scroll) › holds the end columns at the viewport edge while the page scrolls sideways (rtl)",924,null,null,null,1140,null,1283,null]],
"e2e/walkontable/inline-start-border-refresh.spec.ts":[["walkontable inline-start header border refresh › regardless of the layout path › with uniform column widths › keeps stamping the backward-compatibility classes on the master",701,null,null,null,943,null,968,null],["walkontable inline-start header border refresh › regardless of the layout path › with uniform column widths › leaves every overlay correctly sized and aligned after a round trip",764,null,null,null,892,null,937,null],["walkontable inline-start header border refresh › regardless of the layout path › with varied column widths › keeps stamping the backward-compatibility classes on the master",735,null,null,null,931,null,1018,null],["walkontable inline-start header border refresh › regardless of the layout path › with varied column widths › leaves every overlay correctly sized and aligned after a round trip",745,null,null,null,900,null,913,null],["walkontable inline-start header border refresh › with a colWidths array (off the single-pass layout path) › costs no reconciliation draw on a VERTICAL crossing either",769,null,null,null,913,null,953,null],["walkontable inline-start header border refresh › with a colWidths array (off the single-pass layout path) › costs no reconciliation draw when the grid crosses horizontal offset 0",786,null,null,null,939,null,1051,null],["walkontable inline-start header border refresh › with a colWidths array (off the single-pass layout path) › drops off the single-pass calculator path",666,null,null,null,802,null,815,null],["walkontable inline-start header border refresh › with a colWidths array (off the single-pass layout path) › leaves the master sizes alone when the crossing draw skips its render",685,null,null,null,895,null,932,null],["walkontable inline-start header border refresh › with one declared column width (the single-pass layout path) › costs no reconciliation draw when the grid crosses horizontal offset 0",711,null,null,null,963,null,908,null],["walkontable inline-start header border refresh › with one declared column width (the single-pass layout path) › takes the single-pass calculator path",558,null,null,null,813,null,801,null],["walkontable inline-start header border refresh › with the window as the scroll container (off the single-pass layout path) › costs no reconciliation draw when the grid crosses horizontal offset 0",838,null,null,null,998,null,1191,null],["walkontable inline-start header border refresh › with the window as the scroll container (off the single-pass layout path) › drops off the single-pass calculator path",689,null,null,null,832,null,863,null],["walkontable inline-start header border refresh › with the window as the scroll container (off the single-pass layout path) › keeps stamping the backward-compatibility classes on the master",801,null,null,null,1021,null,1126,null]],
"e2e/walkontable/merged-rows-frozen-columns.spec.ts":[["row heights of merged rows next to frozen columns › draws every row at the same offset and height in every pane",655,null,null,null,897,null,934,null],["row heights of merged rows next to frozen columns › draws every row at the same offset and height in the fixedColumnsEnd band",734,null,null,null,1018,null,1031,null],["row heights of merged rows next to frozen columns › draws every row at the same offset and height under a column header row",660,null,null,null,982,null,967,null],["row heights of merged rows next to frozen columns › draws every row at the same offset and height when the heights are measured, not sampled",749,null,null,null,951,null,1049,null],["row heights of merged rows next to frozen columns › draws every row at the same offset and height when the heights come from rowHeights",792,null,null,null,893,null,968,null],["row heights of merged rows next to frozen columns › draws every row at the same offset and height with renderMode: onChange",834,null,null,null,973,null,1130,null],["row heights of merged rows next to frozen columns › gives back a normal height to a plain row drawn in a reused row element",759,null,null,null,1171,null,1030,null],["row heights of merged rows next to frozen columns › keeps a block whose first row is hidden to its own rows",876,null,null,null,1018,null,1095,null],["row heights of merged rows next to frozen columns › keeps the panes aligned once scrolled to the one-row block",830,null,null,null,975,null,1128,null],["row heights of merged rows next to frozen columns › keeps the row heights inside a block when the grid scrolls horizontally",714,null,null,null,947,null,1065,null],["row heights of merged rows next to frozen columns › keeps the top panes aligned when a frozen top row is hidden",841,null,null,null,908,null,967,null]],
"e2e/walkontable/overlay-self-resize.spec.ts":[["walkontable overlay self-resize › does not resize on a draw that changes no geometry",1083,null,null,null,1232,null,1457,null],["walkontable overlay self-resize › does not resize while scrolling, at any offset",2334,null,null,null,2580,null,2819,null],["walkontable overlay self-resize › grows the hider back when the data grows again",1141,null,null,null,1400,null,1591,null],["walkontable overlay self-resize › resizes on a pure width change, with nothing outside the engine asking",1098,null,null,null,1206,null,1301,null],["walkontable overlay self-resize › resizes on a total-height change the rendered band does not show",859,null,null,null,1168,null,1267,null],["walkontable overlay self-resize › resizes once for a batch of geometry changes, not once per operation",1024,null,null,null,1285,null,1411,null],["walkontable overlay self-resize › resizes once when the column header height becomes known",954,null,null,null,1166,null,1324,null],["walkontable overlay self-resize › resizes once, not twice, for a change that turns the scrollbars on",1324,null,null,null,1402,null,1507,null],["walkontable overlay self-resize › resizes when the container changes size, with no row or column change",948,null,null,null,1180,null,1345,null],["walkontable overlay self-resize › the spreader cannot see either axis, which is why measuring it was never enough",918,null,null,null,1288,null,1353,null]],
"e2e/walkontable/overlays.spec.ts":[["walkontable overlays › frozen rows stay put while the body scrolls",643,null,null,null,836,null,874,null],["walkontable overlays › renders the frozen-pane overlay clones",706,null,null,null,782,null,793,null],["walkontable overlays › selecting the last column does not widen the scrollable area",1711,null,null,null,1911,null,1861,null],["walkontable overlays › selecting the last row does not heighten the scrollable area",1698,null,null,null,1755,null,1872,null]],
"e2e/walkontable/pointer-lookup-outside-only.spec.ts":[["the pointer lookup of a held drag › runs only while the pointer is outside the grid",686,null,null,null,746,null,710,null]],
"e2e/walkontable/rtl-window-scroll.spec.ts":[["walkontable RTL overlays with window scroll › frozen overlays pin to the viewport edges after scrolling to the document end",536,null,null,null,875,null,1040,null],["walkontable RTL overlays with window scroll › header overlay content stays column-aligned with the master after window scroll",865,null,null,null,873,null,1300,null]],
"e2e/walkontable/scrollbar-drag-empty-grid.spec.ts":[["Scrollbar drag on a grid with an empty axis › keeps the column headers on their columns of a grid with no rows (ltr, rowHeaders off)",956,null,null,null,1199,null,1160,null],["Scrollbar drag on a grid with an empty axis › keeps the column headers on their columns of a grid with no rows (ltr, rowHeaders on)",948,null,null,null,1226,null,1166,null],["Scrollbar drag on a grid with an empty axis › keeps the column headers on their columns of a grid with no rows (rtl, rowHeaders off)",974,null,null,null,1154,null,1288,null],["Scrollbar drag on a grid with an empty axis › keeps the column headers on their columns of a grid with no rows (rtl, rowHeaders on)",962,null,null,null,1222,null,1123,null],["Scrollbar drag on a grid with an empty axis › keeps the page scroll on release of a window-scrolled grid with no rows (ltr)",959,null,null,null,1172,null,1277,null],["Scrollbar drag on a grid with an empty axis › keeps the page scroll on release of a window-scrolled grid with no rows (rtl)",956,null,null,null,1255,null,1327,null],["Scrollbar drag on a grid with an empty axis › keeps the page scroll on release of an RTL grid on an LTR page that the window scrolls",789,null,null,null,914,null,1070,null],["Scrollbar drag on a grid with an empty axis › keeps the row headers on their rows of a grid with no columns",990,null,null,null,1099,null,1094,null]],
"e2e/walkontable/spreader-layout-shift.spec.ts":[["walkontable spreader layout shift › right-to-left, with frozen rows and columns › a wheel scroll on both axes moves no layout",2048,1895,null,null,2203,1889,2378,2136],["walkontable spreader layout shift › right-to-left, with frozen rows and columns › the editor opens over its cell after a scroll on both axes",1521,1394,null,null,1786,1374,1890,1689],["walkontable spreader layout shift › right-to-left, with frozen rows and columns › the fill handle sits at the inline-end corner after a scroll on both axes",1475,1355,null,null,1638,1317,1726,1596],["walkontable spreader layout shift › right-to-left, with frozen rows and columns › the resize handles land on the header edges after a scroll on both axes",1497,1350,null,null,1556,1359,1798,1608],["walkontable spreader layout shift › with frozen rows and columns › the editor opens over a frozen-column cell and a frozen-row cell after a scroll",1618,1477,null,null,1846,1430,1897,1659],["walkontable spreader layout shift › with frozen rows and columns › the fill handle sits at the corner of a frozen-column cell after a scroll",1470,1317,null,null,1662,1247,1751,1551],["walkontable spreader layout shift › with frozen rows and columns › the overlay clones move no layout either",2156,1971,null,null,2272,1926,2396,2185],["walkontable spreader layout shift › with frozen rows and columns › the resize handles land on the header edges after a scroll on both axes",1433,1361,null,null,1616,1360,1687,1570],["walkontable spreader layout shift › without frozen panes › a horizontal wheel scroll moves no layout",1749,1596,null,null,1830,1545,1941,1771],["walkontable spreader layout shift › without frozen panes › a vertical wheel scroll moves no layout",1794,1603,null,null,1894,1561,2022,1780],["walkontable spreader layout shift › without frozen panes › reports a layout shift for a box moved with an inset (positive control)",1020,872,null,null,1265,844,1267,1086],["walkontable spreader layout shift › without frozen panes › the editor opens over its cell after a scroll on both axes",1518,1375,null,null,1757,1314,1762,1587],["walkontable spreader layout shift › without frozen panes › the fill handle sits at the selection corner after a scroll on both axes",1411,1282,null,null,1505,1272,1709,1436],["walkontable spreader layout shift › without frozen panes › the resize handles land on the header edges after a scroll on both axes",1547,1351,null,null,1747,1375,1690,1627]],
"e2e/walkontable/window-scroll-pinned-overlays.spec.ts":[["walkontable window-scroll pinned overlays › a clone left behind by the scroll reads as torn on the painted frames (positive control)",6096,null,null,null,7841,null,7813,null],["walkontable window-scroll pinned overlays › a corner that stops rendering leaves its rail and stays out of it",745,null,null,null,972,null,1012,null],["walkontable window-scroll pinned overlays › after a horizontal page scroll › the editor opens over a frozen-column cell",1376,null,null,null,1667,null,1802,null],["walkontable window-scroll pinned overlays › after a horizontal page scroll › the editor opens over a scrolled cell",1295,null,null,null,1596,null,1958,null],["walkontable window-scroll pinned overlays › after a horizontal page scroll › the fill handle sits at the corner of a frozen-column cell",1363,null,null,null,1585,null,1711,null],["walkontable window-scroll pinned overlays › after a horizontal page scroll › the pinned clones sit at the viewport inline-start edge",1241,null,null,null,1510,null,1820,null],["walkontable window-scroll pinned overlays › after a horizontal page scroll › the row-resize handle lands on the row header",1156,null,null,null,1575,null,1794,null],["walkontable window-scroll pinned overlays › frozen columns and both corners stay pinned on every painted frame",6207,null,null,null,8102,null,8134,null],["walkontable window-scroll pinned overlays › right-to-left, after a horizontal page scroll › the editor opens over a frozen-column cell",1201,null,null,null,1659,null,1797,null],["walkontable window-scroll pinned overlays › right-to-left, after a horizontal page scroll › the editor opens over a scrolled cell",1295,null,null,null,1640,null,1722,null],["walkontable window-scroll pinned overlays › right-to-left, after a horizontal page scroll › the fill handle sits at the corner of a frozen-column cell",1300,null,null,null,1601,null,1668,null],["walkontable window-scroll pinned overlays › right-to-left, after a horizontal page scroll › the pinned clones sit at the viewport inline-start edge",1325,null,null,null,1444,null,1758,null],["walkontable window-scroll pinned overlays › right-to-left, after a horizontal page scroll › the row-resize handle lands on the row header",1245,null,null,null,1580,null,1584,null],["walkontable window-scroll pinned overlays › right-to-left, frozen columns and both corners stay pinned on every painted frame",6395,null,null,null,8506,null,8460,null],["walkontable window-scroll pinned overlays › scrolling the page up and down › a clone left behind by the scroll reads as torn on the painted frames (positive control)",6706,null,null,null,7104,null,8624,null],["walkontable window-scroll pinned overlays › scrolling the page up and down › frozen rows and both corners stay pinned on every painted frame",7063,null,null,null,7230,null,9388,null],["walkontable window-scroll pinned overlays › scrolling the page up and down › the column headers stay pinned on every painted frame",6870,null,null,null,7549,null,8825,null],["walkontable window-scroll pinned overlays › scrolling the page up and down › the editor opens over a frozen-bottom-row cell after a vertical page scroll",1903,null,null,null,1987,null,2378,null],["walkontable window-scroll pinned overlays › scrolling the page up and down › the editor opens over a frozen-top-row cell after a vertical page scroll",1992,null,null,null,2470,null,2486,null],["walkontable window-scroll pinned overlays › the row headers and the corner stay pinned on every painted frame",6051,null,null,null,7553,null,8143,null],["walkontable window-scroll pinned overlays › the row headers follow the grid when the page takes the scroll axis away and gives it back",1339,null,null,null,1651,null,1717,null]],
"e2e/wheel-scroll-overlay-sync.spec.ts":[["the mouse wheel over the grid body › scrolls the rows and their headers together, and back",873,null,1308,1405,1181,null,1139,null]],
"e2e/widget-cell.spec.ts":[["grid with self-managed widgets inside cells › keeps the selection when a focus-preserving widget inside a cell is clicked",null,null,null,null,null,null,846,628],["grid with self-managed widgets inside cells › lets the browser copy text selected inside a widget shadow root",null,null,null,null,null,null,945,708]],
"e2e/width-window-scroll.spec.ts":[["width-only grid: holder scrolls columns, window scrolls rows › aligns a bottom clone shown after the holder scrolled",968,null,null,null,1139,null,1209,null],["width-only grid: holder scrolls columns, window scrolls rows › clears the holder's horizontal scrollbar under the frozen bottom rows only at the grid's end",997,null,null,null,1229,null,1328,null],["width-only grid: holder scrolls columns, window scrolls rows › drops the split-mode holder size when both axes go back to the window",1066,null,null,null,1301,null,1639,null],["width-only grid: holder scrolls columns, window scrolls rows › keeps every column reachable with `height: \"auto\"`",1124,null,null,null,1214,null,1803,null],["width-only grid: holder scrolls columns, window scrolls rows › keeps the frozen columns pinned and the frozen rows aligned while the holder scrolls",961,null,null,null,1170,null,1230,null],["width-only grid: holder scrolls columns, window scrolls rows › keeps the legacy `preventOverflow: \"horizontal\"` alias on the same layout",1301,null,null,null,1357,null,1473,null],["width-only grid: holder scrolls columns, window scrolls rows › lets a diagonal wheel over the frozen rows scroll the page and the columns at once",905,null,null,null,1027,null,1207,null],["width-only grid: holder scrolls columns, window scrolls rows › lets a wheel over the frozen rows scroll the page",919,null,null,null,1085,null,1161,null],["width-only grid: holder scrolls columns, window scrolls rows › marks the root with the per-axis scroll classes",792,null,null,null,1026,null,1200,null],["width-only grid: holder scrolls columns, window scrolls rows › mirrors the layout in RTL",1066,null,null,null,1172,null,1519,null],["width-only grid: holder scrolls columns, window scrolls rows › moves each axis exactly once for a diagonal wheel, and scrolls the page itself",957,null,null,null,1088,null,1309,null],["width-only grid: holder scrolls columns, window scrolls rows › moves the columns exactly once for a horizontal-only wheel and leaves the page still",1036,null,null,null,1120,null,1119,null],["width-only grid: holder scrolls columns, window scrolls rows › moves the horizontal axis to the root when a `width` is set after init",1209,null,null,null,1235,null,1674,null],["width-only grid: holder scrolls columns, window scrolls rows › owns the horizontal axis in the root and leaves the vertical one to the window",797,null,null,null,1013,null,1087,null],["width-only grid: holder scrolls columns, window scrolls rows › pins the frozen rows to the viewport top while the window scrolls",895,null,null,null,1070,null,1317,null],["width-only grid: holder scrolls columns, window scrolls rows › re-picks the scroll owner when only `width` moves and `height` is re-sent unchanged",1202,null,null,null,1268,null,1445,null],["width-only grid: holder scrolls columns, window scrolls rows › reports a frozen cell at its real position after a window scroll",894,null,null,null,929,null,1027,null],["width-only grid: holder scrolls columns, window scrolls rows › stretches the columns to the root width instead of the page width",900,null,null,null,1184,null,1478,null],["width-only grid: holder scrolls columns, window scrolls rows › the legacy `preventOverflow: \"horizontal\"` alias leaves the page without a horizontal scroll range",1014,null,null,null,1094,null,1225,null],["width-only grid: holder scrolls columns, window scrolls rows › virtualizes both axes",905,null,null,null,1041,null,1004,null]],
"e2e/wrapper-size.spec.ts":[["a grid sized 100% by 100% fills its container and scrolls inside it",707,null,null,null,904,null,991,null]],
"e2e/xlsx-import.spec.ts":[["xlsx import (ExcelJS) › carries layout across: hidden column, merge, frozen row, and reports dropped styling",1363,1051,null,null,1841,993,1771,1412],["xlsx import (ExcelJS) › imports a nested header band, conditional formatting and the sheet layout direction",1245,995,null,null,1614,976,1731,1199],["xlsx import (ExcelJS) › imports alignment, font, fill and borders with importStyles and re-exports them",1456,1080,null,null,1891,1123,1780,1451],["xlsx import (ExcelJS) › imports headers and data from the exported workbook",1280,909,null,null,1672,975,1670,1283],["xlsx import (ExcelJS) › infers cell types from number formats and list validation",1601,1170,null,null,2069,1220,2141,1778],["xlsx import (ExcelJS) › shifts formula references back out of the header band and recalculates them",1348,957,null,null,1590,948,1776,1219]]
}}}
