@optionfactory/fml 9.0.0-rc36 → 9.0.0-rc37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ful.mjs CHANGED
@@ -6205,6 +6205,19 @@ class Table extends ParsedElement {
6205
6205
  }
6206
6206
  table.insertBefore(columns, table.tHead);
6207
6207
  }
6208
+ /**
6209
+ * Locks the widths of the columns again, on the rows now in the page, when
6210
+ * one of them holds something its column has no room for and that cannot
6211
+ * wrap: left as it is it would stick out of the table, and the rows would
6212
+ * scroll sideways for it.
6213
+ */
6214
+ #widenColumns() {
6215
+ const cramped = [...this.#body.querySelectorAll(':scope > tr > *')].some((cell) => cell.scrollWidth > cell.clientWidth + 1);
6216
+ if (cramped) {
6217
+ this.#unlockColumns();
6218
+ this.#lockColumns();
6219
+ }
6220
+ }
6208
6221
  #unlockColumns() {
6209
6222
  this.#body.parentElement?.querySelector(':scope > colgroup[data-ref=widths]')?.remove();
6210
6223
  }
@@ -6370,6 +6383,7 @@ class Table extends ParsedElement {
6370
6383
  this.#total = answers.at(-1)?.response.size ?? this.#total;
6371
6384
  this.#body.parentElement?.setAttribute('aria-rowcount', String(this.#total + 1));
6372
6385
  this.#fitSpacers();
6386
+ this.#widenColumns();
6373
6387
  if (anchor) {
6374
6388
  this.#wrapper.scrollTop += anchor.getBoundingClientRect().top - anchorTop;
6375
6389
  }
@@ -6377,6 +6391,7 @@ class Table extends ParsedElement {
6377
6391
  if (claim.stale) {
6378
6392
  return;
6379
6393
  }
6394
+ this.#widenColumns();
6380
6395
  if (anchor) {
6381
6396
  // the elements in the new rows have rendered since, which can change their height
6382
6397
  this.#wrapper.scrollTop += anchor.getBoundingClientRect().top - anchorTop;
@@ -6461,6 +6476,7 @@ class Table extends ParsedElement {
6461
6476
  if (claim.stale) {
6462
6477
  return;
6463
6478
  }
6479
+ this.#widenColumns();
6464
6480
  this.removeAttribute('aria-busy');
6465
6481
  this.#countInView();
6466
6482
  for (const { pageRequest, response } of shown) {