react-dom 19.1.0 → 19.2.4

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.
@@ -55,7 +55,6 @@ var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
55
55
  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
56
56
  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
57
57
  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
58
- REACT_PROVIDER_TYPE = Symbol.for("react.provider"),
59
58
  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
60
59
  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
61
60
  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
@@ -68,8 +67,15 @@ var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
68
67
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
69
68
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
70
69
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
71
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
72
- isArrayImpl = Array.isArray;
70
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
71
+ function getIteratorFn(maybeIterable) {
72
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
73
+ maybeIterable =
74
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
75
+ maybeIterable["@@iterator"];
76
+ return "function" === typeof maybeIterable ? maybeIterable : null;
77
+ }
78
+ var isArrayImpl = Array.isArray;
73
79
  function murmurhash3_32_gc(key, seed) {
74
80
  var remainder = key.length & 3;
75
81
  var bytes = key.length - remainder;
@@ -298,6 +304,7 @@ ReactDOMSharedInternals.d = {
298
304
  M: preinitModuleScript
299
305
  };
300
306
  var PRELOAD_NO_CREDS = [],
307
+ currentlyFlushingRenderState = null,
301
308
  scriptRegex = /(<\/|<)(s)(cript)/gi;
302
309
  function scriptReplacer(match, prefix, s, suffix) {
303
310
  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
@@ -329,60 +336,102 @@ function createResumableState(
329
336
  moduleScriptResources: {}
330
337
  };
331
338
  }
332
- function createPreambleState() {
333
- return {
334
- htmlChunks: null,
335
- headChunks: null,
336
- bodyChunks: null,
337
- contribution: 0
338
- };
339
- }
340
- function createFormatContext(insertionMode, selectedValue, tagScope) {
339
+ function createFormatContext(
340
+ insertionMode,
341
+ selectedValue,
342
+ tagScope,
343
+ viewTransition
344
+ ) {
341
345
  return {
342
346
  insertionMode: insertionMode,
343
347
  selectedValue: selectedValue,
344
- tagScope: tagScope
348
+ tagScope: tagScope,
349
+ viewTransition: viewTransition
345
350
  };
346
351
  }
347
352
  function getChildFormatContext(parentContext, type, props) {
353
+ var subtreeScope = parentContext.tagScope & -25;
348
354
  switch (type) {
349
355
  case "noscript":
350
- return createFormatContext(2, null, parentContext.tagScope | 1);
356
+ return createFormatContext(2, null, subtreeScope | 1, null);
351
357
  case "select":
352
358
  return createFormatContext(
353
359
  2,
354
360
  null != props.value ? props.value : props.defaultValue,
355
- parentContext.tagScope
361
+ subtreeScope,
362
+ null
356
363
  );
357
364
  case "svg":
358
- return createFormatContext(4, null, parentContext.tagScope);
365
+ return createFormatContext(4, null, subtreeScope, null);
359
366
  case "picture":
360
- return createFormatContext(2, null, parentContext.tagScope | 2);
367
+ return createFormatContext(2, null, subtreeScope | 2, null);
361
368
  case "math":
362
- return createFormatContext(5, null, parentContext.tagScope);
369
+ return createFormatContext(5, null, subtreeScope, null);
363
370
  case "foreignObject":
364
- return createFormatContext(2, null, parentContext.tagScope);
371
+ return createFormatContext(2, null, subtreeScope, null);
365
372
  case "table":
366
- return createFormatContext(6, null, parentContext.tagScope);
373
+ return createFormatContext(6, null, subtreeScope, null);
367
374
  case "thead":
368
375
  case "tbody":
369
376
  case "tfoot":
370
- return createFormatContext(7, null, parentContext.tagScope);
377
+ return createFormatContext(7, null, subtreeScope, null);
371
378
  case "colgroup":
372
- return createFormatContext(9, null, parentContext.tagScope);
379
+ return createFormatContext(9, null, subtreeScope, null);
373
380
  case "tr":
374
- return createFormatContext(8, null, parentContext.tagScope);
381
+ return createFormatContext(8, null, subtreeScope, null);
375
382
  case "head":
376
383
  if (2 > parentContext.insertionMode)
377
- return createFormatContext(3, null, parentContext.tagScope);
384
+ return createFormatContext(3, null, subtreeScope, null);
378
385
  break;
379
386
  case "html":
380
387
  if (0 === parentContext.insertionMode)
381
- return createFormatContext(1, null, parentContext.tagScope);
388
+ return createFormatContext(1, null, subtreeScope, null);
382
389
  }
383
390
  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
384
- ? createFormatContext(2, null, parentContext.tagScope)
385
- : parentContext;
391
+ ? createFormatContext(2, null, subtreeScope, null)
392
+ : parentContext.tagScope !== subtreeScope
393
+ ? createFormatContext(
394
+ parentContext.insertionMode,
395
+ parentContext.selectedValue,
396
+ subtreeScope,
397
+ null
398
+ )
399
+ : parentContext;
400
+ }
401
+ function getSuspenseViewTransition(parentViewTransition) {
402
+ return null === parentViewTransition
403
+ ? null
404
+ : {
405
+ update: parentViewTransition.update,
406
+ enter: "none",
407
+ exit: "none",
408
+ share: parentViewTransition.update,
409
+ name: parentViewTransition.autoName,
410
+ autoName: parentViewTransition.autoName,
411
+ nameIdx: 0
412
+ };
413
+ }
414
+ function getSuspenseFallbackFormatContext(resumableState, parentContext) {
415
+ parentContext.tagScope & 32 && (resumableState.instructions |= 128);
416
+ return createFormatContext(
417
+ parentContext.insertionMode,
418
+ parentContext.selectedValue,
419
+ parentContext.tagScope | 12,
420
+ getSuspenseViewTransition(parentContext.viewTransition)
421
+ );
422
+ }
423
+ function getSuspenseContentFormatContext(resumableState, parentContext) {
424
+ resumableState = getSuspenseViewTransition(parentContext.viewTransition);
425
+ var subtreeScope = parentContext.tagScope | 16;
426
+ null !== resumableState &&
427
+ "none" !== resumableState.share &&
428
+ (subtreeScope |= 64);
429
+ return createFormatContext(
430
+ parentContext.insertionMode,
431
+ parentContext.selectedValue,
432
+ subtreeScope,
433
+ resumableState
434
+ );
386
435
  }
387
436
  var styleNameCache = new Map();
388
437
  function pushStyleAttribute(target, style) {
@@ -682,13 +731,25 @@ function flattenOptionChildren(children) {
682
731
  return content;
683
732
  }
684
733
  function injectFormReplayingRuntime(resumableState, renderState) {
685
- 0 === (resumableState.instructions & 16) &&
686
- ((resumableState.instructions |= 16),
687
- renderState.bootstrapChunks.unshift(
688
- renderState.startInlineScript,
689
- 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
690
- "\x3c/script>"
691
- ));
734
+ if (0 === (resumableState.instructions & 16)) {
735
+ resumableState.instructions |= 16;
736
+ var preamble = renderState.preamble,
737
+ bootstrapChunks = renderState.bootstrapChunks;
738
+ (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
739
+ ? (bootstrapChunks.push(renderState.startInlineScript),
740
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
741
+ bootstrapChunks.push(
742
+ ">",
743
+ 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
744
+ "\x3c/script>"
745
+ ))
746
+ : bootstrapChunks.unshift(
747
+ renderState.startInlineScript,
748
+ ">",
749
+ 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});',
750
+ "\x3c/script>"
751
+ );
752
+ }
692
753
  }
693
754
  function pushLinkImpl(target, props) {
694
755
  target.push(startChunkForTag("link"));
@@ -859,8 +920,7 @@ function pushStartInstance(
859
920
  preambleState,
860
921
  hoistableState,
861
922
  formatContext,
862
- textEmbedded,
863
- isFallback
923
+ textEmbedded
864
924
  ) {
865
925
  switch (type) {
866
926
  case "div":
@@ -1326,9 +1386,11 @@ function pushStartInstance(
1326
1386
  } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
1327
1387
  return JSCompiler_inline_result$jscomp$2;
1328
1388
  case "title":
1389
+ var noscriptTagInScope = formatContext.tagScope & 1,
1390
+ isFallback = formatContext.tagScope & 4;
1329
1391
  if (
1330
1392
  4 === formatContext.insertionMode ||
1331
- formatContext.tagScope & 1 ||
1393
+ noscriptTagInScope ||
1332
1394
  null != props.itemProp
1333
1395
  )
1334
1396
  var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
@@ -1342,12 +1404,14 @@ function pushStartInstance(
1342
1404
  (JSCompiler_inline_result$jscomp$3 = void 0));
1343
1405
  return JSCompiler_inline_result$jscomp$3;
1344
1406
  case "link":
1345
- var rel = props.rel,
1407
+ var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
1408
+ isFallback$jscomp$0 = formatContext.tagScope & 4,
1409
+ rel = props.rel,
1346
1410
  href = props.href,
1347
1411
  precedence = props.precedence;
1348
1412
  if (
1349
1413
  4 === formatContext.insertionMode ||
1350
- formatContext.tagScope & 1 ||
1414
+ noscriptTagInScope$jscomp$0 ||
1351
1415
  null != props.itemProp ||
1352
1416
  "string" !== typeof rel ||
1353
1417
  "string" !== typeof href ||
@@ -1414,12 +1478,13 @@ function pushStartInstance(
1414
1478
  props
1415
1479
  ))
1416
1480
  : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
1417
- (JSCompiler_inline_result$jscomp$4 = isFallback
1481
+ (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
1418
1482
  ? null
1419
1483
  : pushLinkImpl(renderState.hoistableChunks, props)));
1420
1484
  return JSCompiler_inline_result$jscomp$4;
1421
1485
  case "script":
1422
- var asyncProp = props.async;
1486
+ var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
1487
+ asyncProp = props.async;
1423
1488
  if (
1424
1489
  "string" !== typeof props.src ||
1425
1490
  !props.src ||
@@ -1429,7 +1494,7 @@ function pushStartInstance(
1429
1494
  props.onLoad ||
1430
1495
  props.onError ||
1431
1496
  4 === formatContext.insertionMode ||
1432
- formatContext.tagScope & 1 ||
1497
+ noscriptTagInScope$jscomp$1 ||
1433
1498
  null != props.itemProp
1434
1499
  )
1435
1500
  var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
@@ -1466,11 +1531,13 @@ function pushStartInstance(
1466
1531
  }
1467
1532
  return JSCompiler_inline_result$jscomp$5;
1468
1533
  case "style":
1469
- var precedence$jscomp$0 = props.precedence,
1470
- href$jscomp$0 = props.href;
1534
+ var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
1535
+ precedence$jscomp$0 = props.precedence,
1536
+ href$jscomp$0 = props.href,
1537
+ nonce = props.nonce;
1471
1538
  if (
1472
1539
  4 === formatContext.insertionMode ||
1473
- formatContext.tagScope & 1 ||
1540
+ noscriptTagInScope$jscomp$2 ||
1474
1541
  null != props.itemProp ||
1475
1542
  "string" !== typeof precedence$jscomp$0 ||
1476
1543
  "string" !== typeof href$jscomp$0 ||
@@ -1522,46 +1589,47 @@ function pushStartInstance(
1522
1589
  : void 0)
1523
1590
  ) {
1524
1591
  resumableState.styleResources[href$jscomp$0] = null;
1525
- styleQueue$jscomp$0
1526
- ? styleQueue$jscomp$0.hrefs.push(
1527
- escapeTextForBrowser(href$jscomp$0)
1528
- )
1529
- : ((styleQueue$jscomp$0 = {
1530
- precedence: escapeTextForBrowser(precedence$jscomp$0),
1531
- rules: [],
1532
- hrefs: [escapeTextForBrowser(href$jscomp$0)],
1533
- sheets: new Map()
1534
- }),
1535
- renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
1536
- var target = styleQueue$jscomp$0.rules,
1537
- children$jscomp$7 = null,
1538
- innerHTML$jscomp$6 = null,
1539
- propKey$jscomp$9;
1540
- for (propKey$jscomp$9 in props)
1541
- if (hasOwnProperty.call(props, propKey$jscomp$9)) {
1542
- var propValue$jscomp$9 = props[propKey$jscomp$9];
1543
- if (null != propValue$jscomp$9)
1544
- switch (propKey$jscomp$9) {
1545
- case "children":
1546
- children$jscomp$7 = propValue$jscomp$9;
1547
- break;
1548
- case "dangerouslySetInnerHTML":
1549
- innerHTML$jscomp$6 = propValue$jscomp$9;
1550
- }
1551
- }
1552
- var child$jscomp$0 = Array.isArray(children$jscomp$7)
1553
- ? 2 > children$jscomp$7.length
1554
- ? children$jscomp$7[0]
1555
- : null
1556
- : children$jscomp$7;
1557
- "function" !== typeof child$jscomp$0 &&
1558
- "symbol" !== typeof child$jscomp$0 &&
1559
- null !== child$jscomp$0 &&
1560
- void 0 !== child$jscomp$0 &&
1561
- target.push(
1562
- ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
1563
- );
1564
- pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
1592
+ styleQueue$jscomp$0 ||
1593
+ ((styleQueue$jscomp$0 = {
1594
+ precedence: escapeTextForBrowser(precedence$jscomp$0),
1595
+ rules: [],
1596
+ hrefs: [],
1597
+ sheets: new Map()
1598
+ }),
1599
+ renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
1600
+ var nonceStyle = renderState.nonce.style;
1601
+ if (!nonceStyle || nonceStyle === nonce) {
1602
+ styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));
1603
+ var target = styleQueue$jscomp$0.rules,
1604
+ children$jscomp$7 = null,
1605
+ innerHTML$jscomp$6 = null,
1606
+ propKey$jscomp$9;
1607
+ for (propKey$jscomp$9 in props)
1608
+ if (hasOwnProperty.call(props, propKey$jscomp$9)) {
1609
+ var propValue$jscomp$9 = props[propKey$jscomp$9];
1610
+ if (null != propValue$jscomp$9)
1611
+ switch (propKey$jscomp$9) {
1612
+ case "children":
1613
+ children$jscomp$7 = propValue$jscomp$9;
1614
+ break;
1615
+ case "dangerouslySetInnerHTML":
1616
+ innerHTML$jscomp$6 = propValue$jscomp$9;
1617
+ }
1618
+ }
1619
+ var child$jscomp$0 = Array.isArray(children$jscomp$7)
1620
+ ? 2 > children$jscomp$7.length
1621
+ ? children$jscomp$7[0]
1622
+ : null
1623
+ : children$jscomp$7;
1624
+ "function" !== typeof child$jscomp$0 &&
1625
+ "symbol" !== typeof child$jscomp$0 &&
1626
+ null !== child$jscomp$0 &&
1627
+ void 0 !== child$jscomp$0 &&
1628
+ target.push(
1629
+ ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
1630
+ );
1631
+ pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
1632
+ }
1565
1633
  }
1566
1634
  styleQueue$jscomp$0 &&
1567
1635
  hoistableState &&
@@ -1571,9 +1639,11 @@ function pushStartInstance(
1571
1639
  }
1572
1640
  return JSCompiler_inline_result$jscomp$6;
1573
1641
  case "meta":
1642
+ var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
1643
+ isFallback$jscomp$1 = formatContext.tagScope & 4;
1574
1644
  if (
1575
1645
  4 === formatContext.insertionMode ||
1576
- formatContext.tagScope & 1 ||
1646
+ noscriptTagInScope$jscomp$3 ||
1577
1647
  null != props.itemProp
1578
1648
  )
1579
1649
  var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
@@ -1583,7 +1653,7 @@ function pushStartInstance(
1583
1653
  );
1584
1654
  else
1585
1655
  textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
1586
- (JSCompiler_inline_result$jscomp$7 = isFallback
1656
+ (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
1587
1657
  ? null
1588
1658
  : "string" === typeof props.charSet
1589
1659
  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
@@ -1636,17 +1706,18 @@ function pushStartInstance(
1636
1706
  target$jscomp$0.push("\n");
1637
1707
  return children$jscomp$8;
1638
1708
  case "img":
1639
- var src = props.src,
1709
+ var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
1710
+ src = props.src,
1640
1711
  srcSet = props.srcSet;
1641
1712
  if (
1642
1713
  !(
1643
1714
  "lazy" === props.loading ||
1644
1715
  (!src && !srcSet) ||
1645
1716
  ("string" !== typeof src && null != src) ||
1646
- ("string" !== typeof srcSet && null != srcSet)
1717
+ ("string" !== typeof srcSet && null != srcSet) ||
1718
+ "low" === props.fetchPriority ||
1719
+ pictureOrNoScriptTagInScope
1647
1720
  ) &&
1648
- "low" !== props.fetchPriority &&
1649
- !1 === !!(formatContext.tagScope & 3) &&
1650
1721
  ("string" !== typeof src ||
1651
1722
  ":" !== src[4] ||
1652
1723
  ("d" !== src[0] && "D" !== src[0]) ||
@@ -1660,6 +1731,9 @@ function pushStartInstance(
1660
1731
  ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
1661
1732
  ("a" !== srcSet[3] && "A" !== srcSet[3]))
1662
1733
  ) {
1734
+ null !== hoistableState &&
1735
+ formatContext.tagScope & 64 &&
1736
+ (hoistableState.suspenseyImages = !0);
1663
1737
  var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
1664
1738
  key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
1665
1739
  promotablePreloads = renderState.preloads.images,
@@ -1750,6 +1824,7 @@ function pushStartInstance(
1750
1824
  var preamble = preambleState || renderState.preamble;
1751
1825
  if (preamble.headChunks)
1752
1826
  throw Error(formatProdErrorMessage(545, "`<head>`"));
1827
+ null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
1753
1828
  preamble.headChunks = [];
1754
1829
  var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
1755
1830
  preamble.headChunks,
@@ -1768,6 +1843,7 @@ function pushStartInstance(
1768
1843
  var preamble$jscomp$0 = preambleState || renderState.preamble;
1769
1844
  if (preamble$jscomp$0.bodyChunks)
1770
1845
  throw Error(formatProdErrorMessage(545, "`<body>`"));
1846
+ null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
1771
1847
  preamble$jscomp$0.bodyChunks = [];
1772
1848
  var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
1773
1849
  preamble$jscomp$0.bodyChunks,
@@ -1786,6 +1862,7 @@ function pushStartInstance(
1786
1862
  var preamble$jscomp$1 = preambleState || renderState.preamble;
1787
1863
  if (preamble$jscomp$1.htmlChunks)
1788
1864
  throw Error(formatProdErrorMessage(545, "`<html>`"));
1865
+ null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
1789
1866
  preamble$jscomp$1.htmlChunks = [""];
1790
1867
  var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
1791
1868
  preamble$jscomp$1.htmlChunks,
@@ -1863,16 +1940,13 @@ function hoistPreambleState(renderState, preambleState) {
1863
1940
  renderState = renderState.preamble;
1864
1941
  null === renderState.htmlChunks &&
1865
1942
  preambleState.htmlChunks &&
1866
- ((renderState.htmlChunks = preambleState.htmlChunks),
1867
- (preambleState.contribution |= 1));
1943
+ (renderState.htmlChunks = preambleState.htmlChunks);
1868
1944
  null === renderState.headChunks &&
1869
1945
  preambleState.headChunks &&
1870
- ((renderState.headChunks = preambleState.headChunks),
1871
- (preambleState.contribution |= 4));
1946
+ (renderState.headChunks = preambleState.headChunks);
1872
1947
  null === renderState.bodyChunks &&
1873
1948
  preambleState.bodyChunks &&
1874
- ((renderState.bodyChunks = preambleState.bodyChunks),
1875
- (preambleState.contribution |= 2));
1949
+ (renderState.bodyChunks = preambleState.bodyChunks);
1876
1950
  }
1877
1951
  function writeBootstrap(destination, renderState) {
1878
1952
  renderState = renderState.bootstrapChunks;
@@ -1890,13 +1964,6 @@ function writeStartPendingSuspenseBoundary(destination, renderState, id) {
1890
1964
  destination.push(renderState);
1891
1965
  return destination.push('"></template>');
1892
1966
  }
1893
- function writePreambleContribution(destination, preambleState) {
1894
- preambleState = preambleState.contribution;
1895
- 0 !== preambleState &&
1896
- (destination.push("\x3c!--"),
1897
- destination.push("" + preambleState),
1898
- destination.push("--\x3e"));
1899
- }
1900
1967
  function writeStartSegment(destination, renderState, formatContext, id) {
1901
1968
  switch (formatContext.insertionMode) {
1902
1969
  case 0:
@@ -2036,7 +2103,8 @@ function flushStyleTagsLateForBoundary(styleQueue) {
2036
2103
  hrefs = styleQueue.hrefs,
2037
2104
  i = 0;
2038
2105
  if (hrefs.length) {
2039
- this.push('<style media="not all" data-precedence="');
2106
+ this.push(currentlyFlushingRenderState.startInlineStyle);
2107
+ this.push(' media="not all" data-precedence="');
2040
2108
  this.push(styleQueue.precedence);
2041
2109
  for (this.push('" data-href="'); i < hrefs.length - 1; i++)
2042
2110
  this.push(hrefs[i]), this.push(" ");
@@ -2057,7 +2125,9 @@ function hasStylesToHoist(stylesheet) {
2057
2125
  function writeHoistablesForBoundary(destination, hoistableState, renderState) {
2058
2126
  currentlyRenderingBoundaryHasStylesToHoist = !1;
2059
2127
  destinationHasCapacity = !0;
2128
+ currentlyFlushingRenderState = renderState;
2060
2129
  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
2130
+ currentlyFlushingRenderState = null;
2061
2131
  hoistableState.stylesheets.forEach(hasStylesToHoist);
2062
2132
  currentlyRenderingBoundaryHasStylesToHoist &&
2063
2133
  (renderState.stylesToHoist = !0);
@@ -2082,7 +2152,8 @@ function flushStylesInPreamble(styleQueue) {
2082
2152
  var rules = styleQueue.rules,
2083
2153
  hrefs = styleQueue.hrefs;
2084
2154
  if (!hasStylesheets || hrefs.length) {
2085
- this.push('<style data-precedence="');
2155
+ this.push(currentlyFlushingRenderState.startInlineStyle);
2156
+ this.push(' data-precedence="');
2086
2157
  this.push(styleQueue.precedence);
2087
2158
  styleQueue = 0;
2088
2159
  if (hrefs.length) {
@@ -2130,6 +2201,15 @@ function preloadLateStyles(styleQueue) {
2130
2201
  styleQueue.sheets.forEach(preloadLateStyle, this);
2131
2202
  styleQueue.sheets.clear();
2132
2203
  }
2204
+ function pushCompletedShellIdAttribute(target, resumableState) {
2205
+ 0 === (resumableState.instructions & 32) &&
2206
+ ((resumableState.instructions |= 32),
2207
+ target.push(
2208
+ ' id="',
2209
+ escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
2210
+ '"'
2211
+ ));
2212
+ }
2133
2213
  function writeStyleResourceDependenciesInJS(destination, hoistableState) {
2134
2214
  destination.push("[");
2135
2215
  var nextArrayOpenBrackChunk = "[";
@@ -2228,7 +2308,7 @@ function writeStyleResourceAttributeInJS(destination, name, value) {
2228
2308
  destination.push(attributeName);
2229
2309
  }
2230
2310
  function createHoistableState() {
2231
- return { styles: new Set(), stylesheets: new Set() };
2311
+ return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
2232
2312
  }
2233
2313
  function prefetchDNS(href) {
2234
2314
  var request = currentRequest ? currentRequest : null;
@@ -2633,6 +2713,11 @@ function hoistStyleQueueDependency(styleQueue) {
2633
2713
  function hoistStylesheetDependency(stylesheet) {
2634
2714
  this.stylesheets.add(stylesheet);
2635
2715
  }
2716
+ function hoistHoistables(parentState, childState) {
2717
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
2718
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
2719
+ childState.suspenseyImages && (parentState.suspenseyImages = !0);
2720
+ }
2636
2721
  function createRenderState(resumableState, generateStaticMarkup) {
2637
2722
  var idPrefix = resumableState.idPrefix,
2638
2723
  bootstrapChunks = [],
@@ -2640,23 +2725,24 @@ function createRenderState(resumableState, generateStaticMarkup) {
2640
2725
  bootstrapScripts = resumableState.bootstrapScripts,
2641
2726
  bootstrapModules = resumableState.bootstrapModules;
2642
2727
  void 0 !== bootstrapScriptContent &&
2728
+ (bootstrapChunks.push("<script"),
2729
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
2643
2730
  bootstrapChunks.push(
2644
- "<script>",
2731
+ ">",
2645
2732
  ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer),
2646
2733
  "\x3c/script>"
2647
- );
2734
+ ));
2648
2735
  bootstrapScriptContent = idPrefix + "P:";
2649
- var JSCompiler_object_inline_segmentPrefix_1542 = idPrefix + "S:";
2736
+ var JSCompiler_object_inline_segmentPrefix_1673 = idPrefix + "S:";
2650
2737
  idPrefix += "B:";
2651
- var JSCompiler_object_inline_preamble_1545 = createPreambleState(),
2652
- JSCompiler_object_inline_preconnects_1555 = new Set(),
2653
- JSCompiler_object_inline_fontPreloads_1556 = new Set(),
2654
- JSCompiler_object_inline_highImagePreloads_1557 = new Set(),
2655
- JSCompiler_object_inline_styles_1558 = new Map(),
2656
- JSCompiler_object_inline_bootstrapScripts_1559 = new Set(),
2657
- JSCompiler_object_inline_scripts_1560 = new Set(),
2658
- JSCompiler_object_inline_bulkPreloads_1561 = new Set(),
2659
- JSCompiler_object_inline_preloads_1562 = {
2738
+ var JSCompiler_object_inline_preconnects_1687 = new Set(),
2739
+ JSCompiler_object_inline_fontPreloads_1688 = new Set(),
2740
+ JSCompiler_object_inline_highImagePreloads_1689 = new Set(),
2741
+ JSCompiler_object_inline_styles_1690 = new Map(),
2742
+ JSCompiler_object_inline_bootstrapScripts_1691 = new Set(),
2743
+ JSCompiler_object_inline_scripts_1692 = new Set(),
2744
+ JSCompiler_object_inline_bulkPreloads_1693 = new Set(),
2745
+ JSCompiler_object_inline_preloads_1694 = {
2660
2746
  images: new Map(),
2661
2747
  stylesheets: new Map(),
2662
2748
  scripts: new Map(),
@@ -2693,16 +2779,22 @@ function createRenderState(resumableState, generateStaticMarkup) {
2693
2779
  scriptConfig.moduleScriptResources[href] = null;
2694
2780
  scriptConfig = [];
2695
2781
  pushLinkImpl(scriptConfig, props);
2696
- JSCompiler_object_inline_bootstrapScripts_1559.add(scriptConfig);
2697
- bootstrapChunks.push('<script src="', escapeTextForBrowser(src));
2782
+ JSCompiler_object_inline_bootstrapScripts_1691.add(scriptConfig);
2783
+ bootstrapChunks.push('<script src="', escapeTextForBrowser(src), '"');
2698
2784
  "string" === typeof integrity &&
2699
- bootstrapChunks.push('" integrity="', escapeTextForBrowser(integrity));
2785
+ bootstrapChunks.push(
2786
+ ' integrity="',
2787
+ escapeTextForBrowser(integrity),
2788
+ '"'
2789
+ );
2700
2790
  "string" === typeof crossOrigin &&
2701
2791
  bootstrapChunks.push(
2702
- '" crossorigin="',
2703
- escapeTextForBrowser(crossOrigin)
2792
+ ' crossorigin="',
2793
+ escapeTextForBrowser(crossOrigin),
2794
+ '"'
2704
2795
  );
2705
- bootstrapChunks.push('" async="">\x3c/script>');
2796
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState);
2797
+ bootstrapChunks.push(' async="">\x3c/script>');
2706
2798
  }
2707
2799
  if (void 0 !== bootstrapModules)
2708
2800
  for (
@@ -2734,25 +2826,33 @@ function createRenderState(resumableState, generateStaticMarkup) {
2734
2826
  (props.moduleScriptResources[scriptConfig] = null),
2735
2827
  (props = []),
2736
2828
  pushLinkImpl(props, integrity),
2737
- JSCompiler_object_inline_bootstrapScripts_1559.add(props),
2829
+ JSCompiler_object_inline_bootstrapScripts_1691.add(props),
2738
2830
  bootstrapChunks.push(
2739
2831
  '<script type="module" src="',
2740
- escapeTextForBrowser(i)
2832
+ escapeTextForBrowser(i),
2833
+ '"'
2741
2834
  ),
2742
2835
  "string" === typeof crossOrigin &&
2743
2836
  bootstrapChunks.push(
2744
- '" integrity="',
2745
- escapeTextForBrowser(crossOrigin)
2837
+ ' integrity="',
2838
+ escapeTextForBrowser(crossOrigin),
2839
+ '"'
2746
2840
  ),
2747
2841
  "string" === typeof src &&
2748
- bootstrapChunks.push('" crossorigin="', escapeTextForBrowser(src)),
2749
- bootstrapChunks.push('" async="">\x3c/script>');
2842
+ bootstrapChunks.push(
2843
+ ' crossorigin="',
2844
+ escapeTextForBrowser(src),
2845
+ '"'
2846
+ ),
2847
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
2848
+ bootstrapChunks.push(' async="">\x3c/script>');
2750
2849
  return {
2751
2850
  placeholderPrefix: bootstrapScriptContent,
2752
- segmentPrefix: JSCompiler_object_inline_segmentPrefix_1542,
2851
+ segmentPrefix: JSCompiler_object_inline_segmentPrefix_1673,
2753
2852
  boundaryPrefix: idPrefix,
2754
- startInlineScript: "<script>",
2755
- preamble: JSCompiler_object_inline_preamble_1545,
2853
+ startInlineScript: "<script",
2854
+ startInlineStyle: "<style",
2855
+ preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
2756
2856
  externalRuntimeScript: null,
2757
2857
  bootstrapChunks: bootstrapChunks,
2758
2858
  importMapChunks: [],
@@ -2768,14 +2868,15 @@ function createRenderState(resumableState, generateStaticMarkup) {
2768
2868
  charsetChunks: [],
2769
2869
  viewportChunks: [],
2770
2870
  hoistableChunks: [],
2771
- preconnects: JSCompiler_object_inline_preconnects_1555,
2772
- fontPreloads: JSCompiler_object_inline_fontPreloads_1556,
2773
- highImagePreloads: JSCompiler_object_inline_highImagePreloads_1557,
2774
- styles: JSCompiler_object_inline_styles_1558,
2775
- bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1559,
2776
- scripts: JSCompiler_object_inline_scripts_1560,
2777
- bulkPreloads: JSCompiler_object_inline_bulkPreloads_1561,
2778
- preloads: JSCompiler_object_inline_preloads_1562,
2871
+ preconnects: JSCompiler_object_inline_preconnects_1687,
2872
+ fontPreloads: JSCompiler_object_inline_fontPreloads_1688,
2873
+ highImagePreloads: JSCompiler_object_inline_highImagePreloads_1689,
2874
+ styles: JSCompiler_object_inline_styles_1690,
2875
+ bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1691,
2876
+ scripts: JSCompiler_object_inline_scripts_1692,
2877
+ bulkPreloads: JSCompiler_object_inline_bulkPreloads_1693,
2878
+ preloads: JSCompiler_object_inline_preloads_1694,
2879
+ nonce: { script: void 0, style: void 0 },
2779
2880
  stylesToHoist: !1,
2780
2881
  generateStaticMarkup: generateStaticMarkup
2781
2882
  };
@@ -2822,7 +2923,7 @@ function getComponentNameFromType(type) {
2822
2923
  case REACT_PORTAL_TYPE:
2823
2924
  return "Portal";
2824
2925
  case REACT_CONTEXT_TYPE:
2825
- return (type.displayName || "Context") + ".Provider";
2926
+ return type.displayName || "Context";
2826
2927
  case REACT_CONSUMER_TYPE:
2827
2928
  return (type._context.displayName || "Context") + ".Consumer";
2828
2929
  case REACT_FORWARD_REF_TYPE:
@@ -2952,13 +3053,13 @@ function clz32Fallback(x) {
2952
3053
  x >>>= 0;
2953
3054
  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
2954
3055
  }
3056
+ function noop() {}
2955
3057
  var SuspenseException = Error(formatProdErrorMessage(460));
2956
- function noop$2() {}
2957
3058
  function trackUsedThenable(thenableState, thenable, index) {
2958
3059
  index = thenableState[index];
2959
3060
  void 0 === index
2960
3061
  ? thenableState.push(thenable)
2961
- : index !== thenable && (thenable.then(noop$2, noop$2), (thenable = index));
3062
+ : index !== thenable && (thenable.then(noop, noop), (thenable = index));
2962
3063
  switch (thenable.status) {
2963
3064
  case "fulfilled":
2964
3065
  return thenable.value;
@@ -2966,7 +3067,7 @@ function trackUsedThenable(thenableState, thenable, index) {
2966
3067
  throw thenable.reason;
2967
3068
  default:
2968
3069
  "string" === typeof thenable.status
2969
- ? thenable.then(noop$2, noop$2)
3070
+ ? thenable.then(noop, noop)
2970
3071
  : ((thenableState = thenable),
2971
3072
  (thenableState.status = "pending"),
2972
3073
  thenableState.then(
@@ -3137,6 +3238,9 @@ function dispatchAction(componentIdentity, queue, action) {
3137
3238
  queue.next = componentIdentity;
3138
3239
  }
3139
3240
  }
3241
+ function throwOnUseEffectEventCall() {
3242
+ throw Error(formatProdErrorMessage(440));
3243
+ }
3140
3244
  function unsupportedStartTransition() {
3141
3245
  throw Error(formatProdErrorMessage(394));
3142
3246
  }
@@ -3214,7 +3318,6 @@ function unwrapThenable(thenable) {
3214
3318
  function unsupportedRefresh() {
3215
3319
  throw Error(formatProdErrorMessage(393));
3216
3320
  }
3217
- function noop$1() {}
3218
3321
  var HooksDispatcher = {
3219
3322
  readContext: function (context) {
3220
3323
  return context._currentValue2;
@@ -3245,16 +3348,16 @@ var HooksDispatcher = {
3245
3348
  useState: function (initialState) {
3246
3349
  return useReducer(basicStateReducer, initialState);
3247
3350
  },
3248
- useInsertionEffect: noop$1,
3249
- useLayoutEffect: noop$1,
3351
+ useInsertionEffect: noop,
3352
+ useLayoutEffect: noop,
3250
3353
  useCallback: function (callback, deps) {
3251
3354
  return useMemo(function () {
3252
3355
  return callback;
3253
3356
  }, deps);
3254
3357
  },
3255
- useImperativeHandle: noop$1,
3256
- useEffect: noop$1,
3257
- useDebugValue: noop$1,
3358
+ useImperativeHandle: noop,
3359
+ useEffect: noop,
3360
+ useDebugValue: noop,
3258
3361
  useDeferredValue: function (value, initialValue) {
3259
3362
  resolveCurrentlyRenderingComponent();
3260
3363
  return void 0 !== initialValue ? initialValue : value;
@@ -3276,9 +3379,9 @@ var HooksDispatcher = {
3276
3379
  if (null === resumableState) throw Error(formatProdErrorMessage(404));
3277
3380
  overflow = localIdCounter++;
3278
3381
  JSCompiler_inline_result =
3279
- "\u00ab" + resumableState.idPrefix + "R" + JSCompiler_inline_result;
3382
+ "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
3280
3383
  0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
3281
- return JSCompiler_inline_result + "\u00bb";
3384
+ return JSCompiler_inline_result + "_";
3282
3385
  },
3283
3386
  useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
3284
3387
  if (void 0 === getServerSnapshot)
@@ -3302,12 +3405,18 @@ var HooksDispatcher = {
3302
3405
  },
3303
3406
  useCacheRefresh: function () {
3304
3407
  return unsupportedRefresh;
3408
+ },
3409
+ useEffectEvent: function () {
3410
+ return throwOnUseEffectEventCall;
3305
3411
  }
3306
3412
  },
3307
3413
  currentResumableState = null,
3308
3414
  DefaultAsyncDispatcher = {
3309
3415
  getCacheForType: function () {
3310
3416
  throw Error(formatProdErrorMessage(248));
3417
+ },
3418
+ cacheSignal: function () {
3419
+ throw Error(formatProdErrorMessage(248));
3311
3420
  }
3312
3421
  },
3313
3422
  prefix,
@@ -3485,13 +3594,37 @@ function describeComponentStackByType(type) {
3485
3594
  }
3486
3595
  return describeComponentStackByType(type);
3487
3596
  }
3488
- if ("string" === typeof type.name)
3489
- return (
3490
- (payload = type.env),
3491
- describeBuiltInComponentFrame(
3492
- type.name + (payload ? " [" + payload + "]" : "")
3493
- )
3494
- );
3597
+ if ("string" === typeof type.name) {
3598
+ a: {
3599
+ payload = type.name;
3600
+ lazyComponent = type.env;
3601
+ var location = type.debugLocation;
3602
+ if (
3603
+ null != location &&
3604
+ ((type = Error.prepareStackTrace),
3605
+ (Error.prepareStackTrace = void 0),
3606
+ (location = location.stack),
3607
+ (Error.prepareStackTrace = type),
3608
+ location.startsWith("Error: react-stack-top-frame\n") &&
3609
+ (location = location.slice(29)),
3610
+ (type = location.indexOf("\n")),
3611
+ -1 !== type && (location = location.slice(type + 1)),
3612
+ (type = location.indexOf("react_stack_bottom_frame")),
3613
+ -1 !== type && (type = location.lastIndexOf("\n", type)),
3614
+ (type = -1 !== type ? (location = location.slice(0, type)) : ""),
3615
+ (location = type.lastIndexOf("\n")),
3616
+ (type = -1 === location ? type : type.slice(location + 1)),
3617
+ -1 !== type.indexOf(payload))
3618
+ ) {
3619
+ payload = "\n" + type;
3620
+ break a;
3621
+ }
3622
+ payload = describeBuiltInComponentFrame(
3623
+ payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
3624
+ );
3625
+ }
3626
+ return payload;
3627
+ }
3495
3628
  }
3496
3629
  switch (type) {
3497
3630
  case REACT_SUSPENSE_LIST_TYPE:
@@ -3501,6 +3634,9 @@ function describeComponentStackByType(type) {
3501
3634
  }
3502
3635
  return "";
3503
3636
  }
3637
+ function isEligibleForOutlining(request, boundary) {
3638
+ return (500 < boundary.byteSize || !1) && null === boundary.contentPreamble;
3639
+ }
3504
3640
  function defaultErrorHandler(error) {
3505
3641
  if (
3506
3642
  "object" === typeof error &&
@@ -3516,14 +3652,13 @@ function defaultErrorHandler(error) {
3516
3652
  "[%s] " + error[0],
3517
3653
  " " + JSCompiler_inline_result + " "
3518
3654
  )
3519
- : error.splice(0, 0, "[%s] ", " " + JSCompiler_inline_result + " ");
3655
+ : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " ");
3520
3656
  error.unshift(console);
3521
3657
  JSCompiler_inline_result = bind.apply(console.error, error);
3522
3658
  JSCompiler_inline_result();
3523
3659
  } else console.error(error);
3524
3660
  return null;
3525
3661
  }
3526
- function noop() {}
3527
3662
  function RequestInstance(
3528
3663
  resumableState,
3529
3664
  renderState,
@@ -3549,6 +3684,7 @@ function RequestInstance(
3549
3684
  this.fatalError = null;
3550
3685
  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
3551
3686
  this.completedPreambleSegments = this.completedRootSegment = null;
3687
+ this.byteSize = 0;
3552
3688
  this.abortableTasks = abortSet;
3553
3689
  this.pingedTasks = [];
3554
3690
  this.clientRenderedBoundaries = [];
@@ -3614,7 +3750,7 @@ function createRequest(
3614
3750
  null,
3615
3751
  emptyTreeContext,
3616
3752
  null,
3617
- !1
3753
+ null
3618
3754
  );
3619
3755
  pushComponentStack(children);
3620
3756
  resumableState.pingedTasks.push(children);
@@ -3629,15 +3765,17 @@ function pingTask(request, task) {
3629
3765
  }
3630
3766
  function createSuspenseBoundary(
3631
3767
  request,
3768
+ row,
3632
3769
  fallbackAbortableTasks,
3633
3770
  contentPreamble,
3634
3771
  fallbackPreamble
3635
3772
  ) {
3636
- return {
3773
+ fallbackAbortableTasks = {
3637
3774
  status: 0,
3638
3775
  rootSegmentID: -1,
3639
3776
  parentFlushed: !1,
3640
3777
  pendingTasks: 0,
3778
+ row: row,
3641
3779
  completedSegments: [],
3642
3780
  byteSize: 0,
3643
3781
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -3649,6 +3787,17 @@ function createSuspenseBoundary(
3649
3787
  trackedContentKeyPath: null,
3650
3788
  trackedFallbackNode: null
3651
3789
  };
3790
+ null !== row &&
3791
+ (row.pendingTasks++,
3792
+ (contentPreamble = row.boundaries),
3793
+ null !== contentPreamble &&
3794
+ (request.allPendingTasks++,
3795
+ fallbackAbortableTasks.pendingTasks++,
3796
+ contentPreamble.push(fallbackAbortableTasks)),
3797
+ (request = row.inheritedHoistables),
3798
+ null !== request &&
3799
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
3800
+ return fallbackAbortableTasks;
3652
3801
  }
3653
3802
  function createRenderTask(
3654
3803
  request,
@@ -3664,13 +3813,14 @@ function createRenderTask(
3664
3813
  formatContext,
3665
3814
  context,
3666
3815
  treeContext,
3667
- componentStack,
3668
- isFallback
3816
+ row,
3817
+ componentStack
3669
3818
  ) {
3670
3819
  request.allPendingTasks++;
3671
3820
  null === blockedBoundary
3672
3821
  ? request.pendingRootTasks++
3673
3822
  : blockedBoundary.pendingTasks++;
3823
+ null !== row && row.pendingTasks++;
3674
3824
  var task = {
3675
3825
  replay: null,
3676
3826
  node: node,
@@ -3687,9 +3837,9 @@ function createRenderTask(
3687
3837
  formatContext: formatContext,
3688
3838
  context: context,
3689
3839
  treeContext: treeContext,
3840
+ row: row,
3690
3841
  componentStack: componentStack,
3691
- thenableState: thenableState,
3692
- isFallback: isFallback
3842
+ thenableState: thenableState
3693
3843
  };
3694
3844
  abortSet.add(task);
3695
3845
  return task;
@@ -3707,13 +3857,14 @@ function createReplayTask(
3707
3857
  formatContext,
3708
3858
  context,
3709
3859
  treeContext,
3710
- componentStack,
3711
- isFallback
3860
+ row,
3861
+ componentStack
3712
3862
  ) {
3713
3863
  request.allPendingTasks++;
3714
3864
  null === blockedBoundary
3715
3865
  ? request.pendingRootTasks++
3716
3866
  : blockedBoundary.pendingTasks++;
3867
+ null !== row && row.pendingTasks++;
3717
3868
  replay.pendingTasks++;
3718
3869
  var task = {
3719
3870
  replay: replay,
@@ -3731,9 +3882,9 @@ function createReplayTask(
3731
3882
  formatContext: formatContext,
3732
3883
  context: context,
3733
3884
  treeContext: treeContext,
3885
+ row: row,
3734
3886
  componentStack: componentStack,
3735
- thenableState: thenableState,
3736
- isFallback: isFallback
3887
+ thenableState: thenableState
3737
3888
  };
3738
3889
  abortSet.add(task);
3739
3890
  return task;
@@ -3768,6 +3919,13 @@ function pushComponentStack(task) {
3768
3919
  task.componentStack = { parent: task.componentStack, type: node.type };
3769
3920
  }
3770
3921
  }
3922
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
3923
+ componentStack
3924
+ ) {
3925
+ return null === componentStack
3926
+ ? null
3927
+ : { parent: componentStack.parent, type: "Suspense Fallback" };
3928
+ }
3771
3929
  function getThrownInfo(node$jscomp$0) {
3772
3930
  var errorInfo = {};
3773
3931
  node$jscomp$0 &&
@@ -3809,6 +3967,172 @@ function fatalError(request, error) {
3809
3967
  ? ((request.status = 14), request.destination.destroy(error))
3810
3968
  : ((request.status = 13), (request.fatalError = error));
3811
3969
  }
3970
+ function finishSuspenseListRow(request, row) {
3971
+ unblockSuspenseListRow(request, row.next, row.hoistables);
3972
+ }
3973
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
3974
+ for (; null !== unblockedRow; ) {
3975
+ null !== inheritedHoistables &&
3976
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
3977
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
3978
+ var unblockedBoundaries = unblockedRow.boundaries;
3979
+ if (null !== unblockedBoundaries) {
3980
+ unblockedRow.boundaries = null;
3981
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
3982
+ var unblockedBoundary = unblockedBoundaries[i];
3983
+ null !== inheritedHoistables &&
3984
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
3985
+ finishedTask(request, unblockedBoundary, null, null);
3986
+ }
3987
+ }
3988
+ unblockedRow.pendingTasks--;
3989
+ if (0 < unblockedRow.pendingTasks) break;
3990
+ inheritedHoistables = unblockedRow.hoistables;
3991
+ unblockedRow = unblockedRow.next;
3992
+ }
3993
+ }
3994
+ function tryToResolveTogetherRow(request, togetherRow) {
3995
+ var boundaries = togetherRow.boundaries;
3996
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
3997
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
3998
+ var rowBoundary = boundaries[i];
3999
+ if (
4000
+ 1 !== rowBoundary.pendingTasks ||
4001
+ rowBoundary.parentFlushed ||
4002
+ isEligibleForOutlining(request, rowBoundary)
4003
+ ) {
4004
+ allCompleteAndInlinable = !1;
4005
+ break;
4006
+ }
4007
+ }
4008
+ allCompleteAndInlinable &&
4009
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4010
+ }
4011
+ }
4012
+ function createSuspenseListRow(previousRow) {
4013
+ var newRow = {
4014
+ pendingTasks: 1,
4015
+ boundaries: null,
4016
+ hoistables: createHoistableState(),
4017
+ inheritedHoistables: null,
4018
+ together: !1,
4019
+ next: null
4020
+ };
4021
+ null !== previousRow &&
4022
+ 0 < previousRow.pendingTasks &&
4023
+ (newRow.pendingTasks++,
4024
+ (newRow.boundaries = []),
4025
+ (previousRow.next = newRow));
4026
+ return newRow;
4027
+ }
4028
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4029
+ var prevKeyPath = task.keyPath,
4030
+ prevTreeContext = task.treeContext,
4031
+ prevRow = task.row;
4032
+ task.keyPath = keyPath;
4033
+ keyPath = rows.length;
4034
+ var previousSuspenseListRow = null;
4035
+ if (null !== task.replay) {
4036
+ var resumeSlots = task.replay.slots;
4037
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4038
+ for (var n = 0; n < keyPath; n++) {
4039
+ var i =
4040
+ "backwards" !== revealOrder &&
4041
+ "unstable_legacy-backwards" !== revealOrder
4042
+ ? n
4043
+ : keyPath - 1 - n,
4044
+ node = rows[i];
4045
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4046
+ previousSuspenseListRow
4047
+ );
4048
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4049
+ var resumeSegmentID = resumeSlots[i];
4050
+ "number" === typeof resumeSegmentID
4051
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4052
+ delete resumeSlots[i])
4053
+ : renderNode(request, task, node, i);
4054
+ 0 === --previousSuspenseListRow.pendingTasks &&
4055
+ finishSuspenseListRow(request, previousSuspenseListRow);
4056
+ }
4057
+ else
4058
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4059
+ (n =
4060
+ "backwards" !== revealOrder &&
4061
+ "unstable_legacy-backwards" !== revealOrder
4062
+ ? resumeSlots
4063
+ : keyPath - 1 - resumeSlots),
4064
+ (i = rows[n]),
4065
+ (task.row = previousSuspenseListRow =
4066
+ createSuspenseListRow(previousSuspenseListRow)),
4067
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4068
+ renderNode(request, task, i, n),
4069
+ 0 === --previousSuspenseListRow.pendingTasks &&
4070
+ finishSuspenseListRow(request, previousSuspenseListRow);
4071
+ } else if (
4072
+ "backwards" !== revealOrder &&
4073
+ "unstable_legacy-backwards" !== revealOrder
4074
+ )
4075
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4076
+ (resumeSlots = rows[revealOrder]),
4077
+ (task.row = previousSuspenseListRow =
4078
+ createSuspenseListRow(previousSuspenseListRow)),
4079
+ (task.treeContext = pushTreeContext(
4080
+ prevTreeContext,
4081
+ keyPath,
4082
+ revealOrder
4083
+ )),
4084
+ renderNode(request, task, resumeSlots, revealOrder),
4085
+ 0 === --previousSuspenseListRow.pendingTasks &&
4086
+ finishSuspenseListRow(request, previousSuspenseListRow);
4087
+ else {
4088
+ revealOrder = task.blockedSegment;
4089
+ resumeSlots = revealOrder.children.length;
4090
+ n = revealOrder.chunks.length;
4091
+ for (i = keyPath - 1; 0 <= i; i--) {
4092
+ node = rows[i];
4093
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4094
+ previousSuspenseListRow
4095
+ );
4096
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4097
+ resumeSegmentID = createPendingSegment(
4098
+ request,
4099
+ n,
4100
+ null,
4101
+ task.formatContext,
4102
+ 0 === i ? revealOrder.lastPushedText : !0,
4103
+ !0
4104
+ );
4105
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4106
+ task.blockedSegment = resumeSegmentID;
4107
+ try {
4108
+ renderNode(request, task, node, i),
4109
+ pushSegmentFinale(
4110
+ resumeSegmentID.chunks,
4111
+ request.renderState,
4112
+ resumeSegmentID.lastPushedText,
4113
+ resumeSegmentID.textEmbedded
4114
+ ),
4115
+ (resumeSegmentID.status = 1),
4116
+ 0 === --previousSuspenseListRow.pendingTasks &&
4117
+ finishSuspenseListRow(request, previousSuspenseListRow);
4118
+ } catch (thrownValue) {
4119
+ throw (
4120
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4121
+ thrownValue)
4122
+ );
4123
+ }
4124
+ }
4125
+ task.blockedSegment = revealOrder;
4126
+ revealOrder.lastPushedText = !1;
4127
+ }
4128
+ null !== prevRow &&
4129
+ null !== previousSuspenseListRow &&
4130
+ 0 < previousSuspenseListRow.pendingTasks &&
4131
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4132
+ task.treeContext = prevTreeContext;
4133
+ task.row = prevRow;
4134
+ task.keyPath = prevKeyPath;
4135
+ }
3812
4136
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
3813
4137
  var prevThenableState = task.thenableState;
3814
4138
  task.thenableState = null;
@@ -3876,9 +4200,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
3876
4200
  var defaultProps = type.defaultProps;
3877
4201
  if (defaultProps) {
3878
4202
  newProps === props && (newProps = assign({}, newProps, props));
3879
- for (var propName$33 in defaultProps)
3880
- void 0 === newProps[propName$33] &&
3881
- (newProps[propName$33] = defaultProps[propName$33]);
4203
+ for (var propName$43 in defaultProps)
4204
+ void 0 === newProps[propName$43] &&
4205
+ (newProps[propName$43] = defaultProps[propName$43]);
3882
4206
  }
3883
4207
  props = newProps;
3884
4208
  newProps = emptyContextObject;
@@ -3938,16 +4262,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
3938
4262
  defaultProps = ref ? type[0] : newProps.state;
3939
4263
  initialState = !0;
3940
4264
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
3941
- (propName$33 = type[ref]),
3942
- (propName$33 =
3943
- "function" === typeof propName$33
3944
- ? propName$33.call(newProps, defaultProps, props, void 0)
3945
- : propName$33),
3946
- null != propName$33 &&
4265
+ (propName$43 = type[ref]),
4266
+ (propName$43 =
4267
+ "function" === typeof propName$43
4268
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4269
+ : propName$43),
4270
+ null != propName$43 &&
3947
4271
  (initialState
3948
4272
  ? ((initialState = !1),
3949
- (defaultProps = assign({}, defaultProps, propName$33)))
3950
- : assign(defaultProps, propName$33));
4273
+ (defaultProps = assign({}, defaultProps, propName$43)))
4274
+ : assign(defaultProps, propName$43));
3951
4275
  newProps.state = defaultProps;
3952
4276
  }
3953
4277
  else defaultProps.queue = null;
@@ -3981,7 +4305,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
3981
4305
  (task.formatContext = defaultProps),
3982
4306
  (task.keyPath = initialState);
3983
4307
  else {
3984
- ref = pushStartInstance(
4308
+ initialState = pushStartInstance(
3985
4309
  newProps.chunks,
3986
4310
  type,
3987
4311
  props,
@@ -3990,47 +4314,43 @@ function renderElement(request, task, keyPath, type, props, ref) {
3990
4314
  task.blockedPreamble,
3991
4315
  task.hoistableState,
3992
4316
  task.formatContext,
3993
- newProps.lastPushedText,
3994
- task.isFallback
4317
+ newProps.lastPushedText
3995
4318
  );
3996
4319
  newProps.lastPushedText = !1;
3997
4320
  defaultProps = task.formatContext;
3998
- initialState = task.keyPath;
4321
+ ref = task.keyPath;
3999
4322
  task.keyPath = keyPath;
4000
- 3 ===
4001
- (task.formatContext = getChildFormatContext(defaultProps, type, props))
4002
- .insertionMode
4003
- ? ((keyPath = createPendingSegment(
4004
- request,
4005
- 0,
4006
- null,
4007
- task.formatContext,
4008
- !1,
4009
- !1
4010
- )),
4011
- newProps.preambleChildren.push(keyPath),
4012
- (keyPath = createRenderTask(
4013
- request,
4014
- null,
4015
- ref,
4016
- -1,
4017
- task.blockedBoundary,
4018
- keyPath,
4019
- task.blockedPreamble,
4020
- task.hoistableState,
4021
- request.abortableTasks,
4022
- task.keyPath,
4023
- task.formatContext,
4024
- task.context,
4025
- task.treeContext,
4026
- task.componentStack,
4027
- task.isFallback
4028
- )),
4029
- pushComponentStack(keyPath),
4030
- request.pingedTasks.push(keyPath))
4031
- : renderNode(request, task, ref, -1);
4323
+ if (
4324
+ 3 ===
4325
+ (task.formatContext = getChildFormatContext(defaultProps, type, props))
4326
+ .insertionMode
4327
+ ) {
4328
+ keyPath = createPendingSegment(
4329
+ request,
4330
+ 0,
4331
+ null,
4332
+ task.formatContext,
4333
+ !1,
4334
+ !1
4335
+ );
4336
+ newProps.preambleChildren.push(keyPath);
4337
+ task.blockedSegment = keyPath;
4338
+ try {
4339
+ (keyPath.status = 6),
4340
+ renderNode(request, task, initialState, -1),
4341
+ pushSegmentFinale(
4342
+ keyPath.chunks,
4343
+ request.renderState,
4344
+ keyPath.lastPushedText,
4345
+ keyPath.textEmbedded
4346
+ ),
4347
+ (keyPath.status = 1);
4348
+ } finally {
4349
+ task.blockedSegment = newProps;
4350
+ }
4351
+ } else renderNode(request, task, initialState, -1);
4032
4352
  task.formatContext = defaultProps;
4033
- task.keyPath = initialState;
4353
+ task.keyPath = ref;
4034
4354
  a: {
4035
4355
  task = newProps.chunks;
4036
4356
  request = request.resumableState;
@@ -4085,17 +4405,69 @@ function renderElement(request, task, keyPath, type, props, ref) {
4085
4405
  task.keyPath = type;
4086
4406
  return;
4087
4407
  case REACT_ACTIVITY_TYPE:
4088
- "hidden" !== props.mode &&
4089
- ((type = task.keyPath),
4090
- (task.keyPath = keyPath),
4091
- renderNodeDestructive(request, task, props.children, -1),
4092
- (task.keyPath = type));
4408
+ type = task.blockedSegment;
4409
+ null === type
4410
+ ? "hidden" !== props.mode &&
4411
+ ((type = task.keyPath),
4412
+ (task.keyPath = keyPath),
4413
+ renderNode(request, task, props.children, -1),
4414
+ (task.keyPath = type))
4415
+ : "hidden" !== props.mode &&
4416
+ (request.renderState.generateStaticMarkup ||
4417
+ type.chunks.push("\x3c!--&--\x3e"),
4418
+ (type.lastPushedText = !1),
4419
+ (newProps = task.keyPath),
4420
+ (task.keyPath = keyPath),
4421
+ renderNode(request, task, props.children, -1),
4422
+ (task.keyPath = newProps),
4423
+ request.renderState.generateStaticMarkup ||
4424
+ type.chunks.push("\x3c!--/&--\x3e"),
4425
+ (type.lastPushedText = !1));
4093
4426
  return;
4094
4427
  case REACT_SUSPENSE_LIST_TYPE:
4095
- type = task.keyPath;
4096
- task.keyPath = keyPath;
4097
- renderNodeDestructive(request, task, props.children, -1);
4098
- task.keyPath = type;
4428
+ a: {
4429
+ type = props.children;
4430
+ props = props.revealOrder;
4431
+ if (
4432
+ "forwards" === props ||
4433
+ "backwards" === props ||
4434
+ "unstable_legacy-backwards" === props
4435
+ ) {
4436
+ if (isArrayImpl(type)) {
4437
+ renderSuspenseListRows(request, task, keyPath, type, props);
4438
+ break a;
4439
+ }
4440
+ if ((newProps = getIteratorFn(type)))
4441
+ if ((newProps = newProps.call(type))) {
4442
+ defaultProps = newProps.next();
4443
+ if (!defaultProps.done) {
4444
+ do defaultProps = newProps.next();
4445
+ while (!defaultProps.done);
4446
+ renderSuspenseListRows(request, task, keyPath, type, props);
4447
+ }
4448
+ break a;
4449
+ }
4450
+ }
4451
+ "together" === props
4452
+ ? ((props = task.keyPath),
4453
+ (newProps = task.row),
4454
+ (defaultProps = task.row = createSuspenseListRow(null)),
4455
+ (defaultProps.boundaries = []),
4456
+ (defaultProps.together = !0),
4457
+ (task.keyPath = keyPath),
4458
+ renderNodeDestructive(request, task, type, -1),
4459
+ 0 === --defaultProps.pendingTasks &&
4460
+ finishSuspenseListRow(request, defaultProps),
4461
+ (task.keyPath = props),
4462
+ (task.row = newProps),
4463
+ null !== newProps &&
4464
+ 0 < defaultProps.pendingTasks &&
4465
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4466
+ : ((props = task.keyPath),
4467
+ (task.keyPath = keyPath),
4468
+ renderNodeDestructive(request, task, type, -1),
4469
+ (task.keyPath = props));
4470
+ }
4099
4471
  return;
4100
4472
  case REACT_VIEW_TRANSITION_TYPE:
4101
4473
  case REACT_SCOPE_TYPE:
@@ -4103,43 +4475,52 @@ function renderElement(request, task, keyPath, type, props, ref) {
4103
4475
  case REACT_SUSPENSE_TYPE:
4104
4476
  a: if (null !== task.replay) {
4105
4477
  type = task.keyPath;
4478
+ newProps = task.formatContext;
4479
+ defaultProps = task.row;
4106
4480
  task.keyPath = keyPath;
4481
+ task.formatContext = getSuspenseContentFormatContext(
4482
+ request.resumableState,
4483
+ newProps
4484
+ );
4485
+ task.row = null;
4107
4486
  keyPath = props.children;
4108
4487
  try {
4109
4488
  renderNode(request, task, keyPath, -1);
4110
4489
  } finally {
4111
- task.keyPath = type;
4490
+ (task.keyPath = type),
4491
+ (task.formatContext = newProps),
4492
+ (task.row = defaultProps);
4112
4493
  }
4113
4494
  } else {
4114
4495
  type = task.keyPath;
4115
- var parentBoundary = task.blockedBoundary;
4116
- ref = task.blockedPreamble;
4496
+ ref = task.formatContext;
4497
+ var prevRow = task.row,
4498
+ parentBoundary = task.blockedBoundary;
4499
+ propName$43 = task.blockedPreamble;
4117
4500
  var parentHoistableState = task.hoistableState;
4118
- propName$33 = task.blockedSegment;
4119
- propName = props.fallback;
4501
+ propName = task.blockedSegment;
4502
+ var fallback = props.fallback;
4120
4503
  props = props.children;
4121
4504
  var fallbackAbortSet = new Set();
4122
- var newBoundary =
4123
- 2 > task.formatContext.insertionMode
4124
- ? createSuspenseBoundary(
4125
- request,
4126
- fallbackAbortSet,
4127
- createPreambleState(),
4128
- createPreambleState()
4129
- )
4130
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4505
+ var newBoundary = createSuspenseBoundary(
4506
+ request,
4507
+ task.row,
4508
+ fallbackAbortSet,
4509
+ null,
4510
+ null
4511
+ );
4131
4512
  null !== request.trackedPostpones &&
4132
4513
  (newBoundary.trackedContentKeyPath = keyPath);
4133
4514
  var boundarySegment = createPendingSegment(
4134
4515
  request,
4135
- propName$33.chunks.length,
4516
+ propName.chunks.length,
4136
4517
  newBoundary,
4137
4518
  task.formatContext,
4138
4519
  !1,
4139
4520
  !1
4140
4521
  );
4141
- propName$33.children.push(boundarySegment);
4142
- propName$33.lastPushedText = !1;
4522
+ propName.children.push(boundarySegment);
4523
+ propName.lastPushedText = !1;
4143
4524
  var contentRootSegment = createPendingSegment(
4144
4525
  request,
4145
4526
  0,
@@ -4150,16 +4531,23 @@ function renderElement(request, task, keyPath, type, props, ref) {
4150
4531
  );
4151
4532
  contentRootSegment.parentFlushed = !0;
4152
4533
  if (null !== request.trackedPostpones) {
4153
- newProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4154
- defaultProps = [newProps[1], newProps[2], [], null];
4155
- request.trackedPostpones.workingMap.set(newProps, defaultProps);
4156
- newBoundary.trackedFallbackNode = defaultProps;
4534
+ newProps = task.componentStack;
4535
+ defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4536
+ initialState = [defaultProps[1], defaultProps[2], [], null];
4537
+ request.trackedPostpones.workingMap.set(defaultProps, initialState);
4538
+ newBoundary.trackedFallbackNode = initialState;
4157
4539
  task.blockedSegment = boundarySegment;
4158
4540
  task.blockedPreamble = newBoundary.fallbackPreamble;
4159
- task.keyPath = newProps;
4541
+ task.keyPath = defaultProps;
4542
+ task.formatContext = getSuspenseFallbackFormatContext(
4543
+ request.resumableState,
4544
+ ref
4545
+ );
4546
+ task.componentStack =
4547
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
4160
4548
  boundarySegment.status = 6;
4161
4549
  try {
4162
- renderNode(request, task, propName, -1),
4550
+ renderNode(request, task, fallback, -1),
4163
4551
  pushSegmentFinale(
4164
4552
  boundarySegment.chunks,
4165
4553
  request.renderState,
@@ -4173,9 +4561,10 @@ function renderElement(request, task, keyPath, type, props, ref) {
4173
4561
  thrownValue)
4174
4562
  );
4175
4563
  } finally {
4176
- (task.blockedSegment = propName$33),
4177
- (task.blockedPreamble = ref),
4178
- (task.keyPath = type);
4564
+ (task.blockedSegment = propName),
4565
+ (task.blockedPreamble = propName$43),
4566
+ (task.keyPath = type),
4567
+ (task.formatContext = ref);
4179
4568
  }
4180
4569
  task = createRenderTask(
4181
4570
  request,
@@ -4188,11 +4577,14 @@ function renderElement(request, task, keyPath, type, props, ref) {
4188
4577
  newBoundary.contentState,
4189
4578
  task.abortSet,
4190
4579
  keyPath,
4191
- task.formatContext,
4580
+ getSuspenseContentFormatContext(
4581
+ request.resumableState,
4582
+ task.formatContext
4583
+ ),
4192
4584
  task.context,
4193
4585
  task.treeContext,
4194
- task.componentStack,
4195
- task.isFallback
4586
+ null,
4587
+ newProps
4196
4588
  );
4197
4589
  pushComponentStack(task);
4198
4590
  request.pingedTasks.push(task);
@@ -4202,6 +4594,11 @@ function renderElement(request, task, keyPath, type, props, ref) {
4202
4594
  task.hoistableState = newBoundary.contentState;
4203
4595
  task.blockedSegment = contentRootSegment;
4204
4596
  task.keyPath = keyPath;
4597
+ task.formatContext = getSuspenseContentFormatContext(
4598
+ request.resumableState,
4599
+ ref
4600
+ );
4601
+ task.row = null;
4205
4602
  contentRootSegment.status = 6;
4206
4603
  try {
4207
4604
  if (
@@ -4216,19 +4613,29 @@ function renderElement(request, task, keyPath, type, props, ref) {
4216
4613
  queueCompletedSegment(newBoundary, contentRootSegment),
4217
4614
  0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4218
4615
  ) {
4219
- newBoundary.status = 1;
4220
- 0 === request.pendingRootTasks &&
4221
- task.blockedPreamble &&
4222
- preparePreamble(request);
4223
- break a;
4224
- }
4225
- } catch (thrownValue$28) {
4616
+ if (
4617
+ ((newBoundary.status = 1),
4618
+ !isEligibleForOutlining(request, newBoundary))
4619
+ ) {
4620
+ null !== prevRow &&
4621
+ 0 === --prevRow.pendingTasks &&
4622
+ finishSuspenseListRow(request, prevRow);
4623
+ 0 === request.pendingRootTasks &&
4624
+ task.blockedPreamble &&
4625
+ preparePreamble(request);
4626
+ break a;
4627
+ }
4628
+ } else
4629
+ null !== prevRow &&
4630
+ prevRow.together &&
4631
+ tryToResolveTogetherRow(request, prevRow);
4632
+ } catch (thrownValue$30) {
4226
4633
  (newBoundary.status = 4),
4227
4634
  12 === request.status
4228
4635
  ? ((contentRootSegment.status = 3),
4229
4636
  (newProps = request.fatalError))
4230
4637
  : ((contentRootSegment.status = 4),
4231
- (newProps = thrownValue$28)),
4638
+ (newProps = thrownValue$30)),
4232
4639
  (defaultProps = getThrownInfo(task.componentStack)),
4233
4640
  (initialState = logRecoverableError(
4234
4641
  request,
@@ -4239,15 +4646,17 @@ function renderElement(request, task, keyPath, type, props, ref) {
4239
4646
  untrackBoundary(request, newBoundary);
4240
4647
  } finally {
4241
4648
  (task.blockedBoundary = parentBoundary),
4242
- (task.blockedPreamble = ref),
4649
+ (task.blockedPreamble = propName$43),
4243
4650
  (task.hoistableState = parentHoistableState),
4244
- (task.blockedSegment = propName$33),
4245
- (task.keyPath = type);
4651
+ (task.blockedSegment = propName),
4652
+ (task.keyPath = type),
4653
+ (task.formatContext = ref),
4654
+ (task.row = prevRow);
4246
4655
  }
4247
4656
  task = createRenderTask(
4248
4657
  request,
4249
4658
  null,
4250
- propName,
4659
+ fallback,
4251
4660
  -1,
4252
4661
  parentBoundary,
4253
4662
  boundarySegment,
@@ -4255,11 +4664,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4255
4664
  newBoundary.fallbackState,
4256
4665
  fallbackAbortSet,
4257
4666
  [keyPath[0], "Suspense Fallback", keyPath[2]],
4258
- task.formatContext,
4667
+ getSuspenseFallbackFormatContext(
4668
+ request.resumableState,
4669
+ task.formatContext
4670
+ ),
4259
4671
  task.context,
4260
4672
  task.treeContext,
4261
- task.componentStack,
4262
- !0
4673
+ task.row,
4674
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
4675
+ task.componentStack
4676
+ )
4263
4677
  );
4264
4678
  pushComponentStack(task);
4265
4679
  request.pingedTasks.push(task);
@@ -4271,9 +4685,8 @@ function renderElement(request, task, keyPath, type, props, ref) {
4271
4685
  switch (type.$$typeof) {
4272
4686
  case REACT_FORWARD_REF_TYPE:
4273
4687
  if ("ref" in props)
4274
- for (newBoundary in ((newProps = {}), props))
4275
- "ref" !== newBoundary &&
4276
- (newProps[newBoundary] = props[newBoundary]);
4688
+ for (fallback in ((newProps = {}), props))
4689
+ "ref" !== fallback && (newProps[fallback] = props[fallback]);
4277
4690
  else newProps = props;
4278
4691
  type = renderWithHooks(
4279
4692
  request,
@@ -4296,7 +4709,6 @@ function renderElement(request, task, keyPath, type, props, ref) {
4296
4709
  case REACT_MEMO_TYPE:
4297
4710
  renderElement(request, task, keyPath, type.type, props, ref);
4298
4711
  return;
4299
- case REACT_PROVIDER_TYPE:
4300
4712
  case REACT_CONTEXT_TYPE:
4301
4713
  defaultProps = props.children;
4302
4714
  newProps = task.keyPath;
@@ -4430,17 +4842,20 @@ function retryNode(request, task) {
4430
4842
  "function" === typeof x.then)
4431
4843
  )
4432
4844
  throw (
4433
- (task.node === keyOrIndex && (task.replay = replay),
4845
+ (task.node === keyOrIndex
4846
+ ? (task.replay = replay)
4847
+ : childIndex.splice(node, 1),
4434
4848
  x)
4435
4849
  );
4436
4850
  task.replay.pendingTasks--;
4437
4851
  props = getThrownInfo(task.componentStack);
4438
- key = task.blockedBoundary;
4852
+ key = request;
4853
+ request = task.blockedBoundary;
4439
4854
  type = x;
4440
- props = logRecoverableError(request, type, props);
4855
+ props = logRecoverableError(key, type, props);
4441
4856
  abortRemainingReplayNodes(
4442
- request,
4443
4857
  key,
4858
+ request,
4444
4859
  childNodes,
4445
4860
  name,
4446
4861
  type,
@@ -4467,31 +4882,31 @@ function retryNode(request, task) {
4467
4882
  node$jscomp$0 =
4468
4883
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4469
4884
  var prevKeyPath = task.keyPath,
4885
+ prevContext = task.formatContext,
4886
+ prevRow = task.row,
4470
4887
  previousReplaySet = task.replay,
4471
4888
  parentBoundary = task.blockedBoundary,
4472
4889
  parentHoistableState = task.hoistableState,
4473
4890
  content = props.children,
4474
4891
  fallback = props.fallback,
4475
4892
  fallbackAbortSet = new Set();
4476
- props =
4477
- 2 > task.formatContext.insertionMode
4478
- ? createSuspenseBoundary(
4479
- request,
4480
- fallbackAbortSet,
4481
- createPreambleState(),
4482
- createPreambleState()
4483
- )
4484
- : createSuspenseBoundary(
4485
- request,
4486
- fallbackAbortSet,
4487
- null,
4488
- null
4489
- );
4893
+ props = createSuspenseBoundary(
4894
+ request,
4895
+ task.row,
4896
+ fallbackAbortSet,
4897
+ null,
4898
+ null
4899
+ );
4490
4900
  props.parentFlushed = !0;
4491
4901
  props.rootSegmentID = type;
4492
4902
  task.blockedBoundary = props;
4493
4903
  task.hoistableState = props.contentState;
4494
4904
  task.keyPath = key;
4905
+ task.formatContext = getSuspenseContentFormatContext(
4906
+ request.resumableState,
4907
+ prevContext
4908
+ );
4909
+ task.row = null;
4495
4910
  task.replay = {
4496
4911
  nodes: ref,
4497
4912
  slots: name,
@@ -4525,9 +4940,11 @@ function retryNode(request, task) {
4525
4940
  (task.blockedBoundary = parentBoundary),
4526
4941
  (task.hoistableState = parentHoistableState),
4527
4942
  (task.replay = previousReplaySet),
4528
- (task.keyPath = prevKeyPath);
4943
+ (task.keyPath = prevKeyPath),
4944
+ (task.formatContext = prevContext),
4945
+ (task.row = prevRow);
4529
4946
  }
4530
- task = createReplayTask(
4947
+ childNodes = createReplayTask(
4531
4948
  request,
4532
4949
  null,
4533
4950
  {
@@ -4541,14 +4958,19 @@ function retryNode(request, task) {
4541
4958
  props.fallbackState,
4542
4959
  fallbackAbortSet,
4543
4960
  [key[0], "Suspense Fallback", key[2]],
4544
- task.formatContext,
4961
+ getSuspenseFallbackFormatContext(
4962
+ request.resumableState,
4963
+ task.formatContext
4964
+ ),
4545
4965
  task.context,
4546
4966
  task.treeContext,
4547
- task.componentStack,
4548
- !0
4967
+ task.row,
4968
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
4969
+ task.componentStack
4970
+ )
4549
4971
  );
4550
- pushComponentStack(task);
4551
- request.pingedTasks.push(task);
4972
+ pushComponentStack(childNodes);
4973
+ request.pingedTasks.push(childNodes);
4552
4974
  }
4553
4975
  }
4554
4976
  childIndex.splice(node, 1);
@@ -4571,22 +4993,17 @@ function retryNode(request, task) {
4571
4993
  renderChildrenArray(request, task, node, childIndex);
4572
4994
  return;
4573
4995
  }
4574
- null === node || "object" !== typeof node
4575
- ? (childNodes = null)
4576
- : ((childNodes =
4577
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
4578
- node["@@iterator"]),
4579
- (childNodes = "function" === typeof childNodes ? childNodes : null));
4580
- if (childNodes && (childNodes = childNodes.call(node))) {
4581
- node = childNodes.next();
4582
- if (!node.done) {
4583
- props = [];
4584
- do props.push(node.value), (node = childNodes.next());
4585
- while (!node.done);
4586
- renderChildrenArray(request, task, props, childIndex);
4996
+ if ((childNodes = getIteratorFn(node)))
4997
+ if ((childNodes = childNodes.call(node))) {
4998
+ node = childNodes.next();
4999
+ if (!node.done) {
5000
+ props = [];
5001
+ do props.push(node.value), (node = childNodes.next());
5002
+ while (!node.done);
5003
+ renderChildrenArray(request, task, props, childIndex);
5004
+ }
5005
+ return;
4587
5006
  }
4588
- return;
4589
- }
4590
5007
  if ("function" === typeof node.then)
4591
5008
  return (
4592
5009
  (task.thenableState = null),
@@ -4705,6 +5122,98 @@ function renderChildrenArray(request, task, children, childIndex) {
4705
5122
  task.treeContext = replay;
4706
5123
  task.keyPath = prevKeyPath;
4707
5124
  }
5125
+ function trackPostponedBoundary(request, trackedPostpones, boundary) {
5126
+ boundary.status = 5;
5127
+ boundary.rootSegmentID = request.nextSegmentId++;
5128
+ request = boundary.trackedContentKeyPath;
5129
+ if (null === request) throw Error(formatProdErrorMessage(486));
5130
+ var fallbackReplayNode = boundary.trackedFallbackNode,
5131
+ children = [],
5132
+ boundaryNode = trackedPostpones.workingMap.get(request);
5133
+ if (void 0 === boundaryNode)
5134
+ return (
5135
+ (boundary = [
5136
+ request[1],
5137
+ request[2],
5138
+ children,
5139
+ null,
5140
+ fallbackReplayNode,
5141
+ boundary.rootSegmentID
5142
+ ]),
5143
+ trackedPostpones.workingMap.set(request, boundary),
5144
+ addToReplayParent(boundary, request[0], trackedPostpones),
5145
+ boundary
5146
+ );
5147
+ boundaryNode[4] = fallbackReplayNode;
5148
+ boundaryNode[5] = boundary.rootSegmentID;
5149
+ return boundaryNode;
5150
+ }
5151
+ function trackPostpone(request, trackedPostpones, task, segment) {
5152
+ segment.status = 5;
5153
+ var keyPath = task.keyPath,
5154
+ boundary = task.blockedBoundary;
5155
+ if (null === boundary)
5156
+ (segment.id = request.nextSegmentId++),
5157
+ (trackedPostpones.rootSlots = segment.id),
5158
+ null !== request.completedRootSegment &&
5159
+ (request.completedRootSegment.status = 5);
5160
+ else {
5161
+ if (null !== boundary && 0 === boundary.status) {
5162
+ var boundaryNode = trackPostponedBoundary(
5163
+ request,
5164
+ trackedPostpones,
5165
+ boundary
5166
+ );
5167
+ if (
5168
+ boundary.trackedContentKeyPath === keyPath &&
5169
+ -1 === task.childIndex
5170
+ ) {
5171
+ -1 === segment.id &&
5172
+ (segment.id = segment.parentFlushed
5173
+ ? boundary.rootSegmentID
5174
+ : request.nextSegmentId++);
5175
+ boundaryNode[3] = segment.id;
5176
+ return;
5177
+ }
5178
+ }
5179
+ -1 === segment.id &&
5180
+ (segment.id =
5181
+ segment.parentFlushed && null !== boundary
5182
+ ? boundary.rootSegmentID
5183
+ : request.nextSegmentId++);
5184
+ if (-1 === task.childIndex)
5185
+ null === keyPath
5186
+ ? (trackedPostpones.rootSlots = segment.id)
5187
+ : ((task = trackedPostpones.workingMap.get(keyPath)),
5188
+ void 0 === task
5189
+ ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
5190
+ addToReplayParent(task, keyPath[0], trackedPostpones))
5191
+ : (task[3] = segment.id));
5192
+ else {
5193
+ if (null === keyPath)
5194
+ if (((request = trackedPostpones.rootSlots), null === request))
5195
+ request = trackedPostpones.rootSlots = {};
5196
+ else {
5197
+ if ("number" === typeof request)
5198
+ throw Error(formatProdErrorMessage(491));
5199
+ }
5200
+ else if (
5201
+ ((boundary = trackedPostpones.workingMap),
5202
+ (boundaryNode = boundary.get(keyPath)),
5203
+ void 0 === boundaryNode)
5204
+ )
5205
+ (request = {}),
5206
+ (boundaryNode = [keyPath[1], keyPath[2], [], request]),
5207
+ boundary.set(keyPath, boundaryNode),
5208
+ addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
5209
+ else if (((request = boundaryNode[3]), null === request))
5210
+ request = boundaryNode[3] = {};
5211
+ else if ("number" === typeof request)
5212
+ throw Error(formatProdErrorMessage(491));
5213
+ request[task.childIndex] = segment.id;
5214
+ }
5215
+ }
5216
+ }
4708
5217
  function untrackBoundary(request, boundary) {
4709
5218
  request = request.trackedPostpones;
4710
5219
  null !== request &&
@@ -4728,8 +5237,8 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
4728
5237
  task.formatContext,
4729
5238
  task.context,
4730
5239
  task.treeContext,
4731
- task.componentStack,
4732
- task.isFallback
5240
+ task.row,
5241
+ task.componentStack
4733
5242
  );
4734
5243
  }
4735
5244
  function spawnNewSuspendedRenderTask(request, task, thenableState) {
@@ -4758,8 +5267,8 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
4758
5267
  task.formatContext,
4759
5268
  task.context,
4760
5269
  task.treeContext,
4761
- task.componentStack,
4762
- task.isFallback
5270
+ task.row,
5271
+ task.componentStack
4763
5272
  );
4764
5273
  }
4765
5274
  function renderNode(request, task, node, childIndex) {
@@ -4769,7 +5278,8 @@ function renderNode(request, task, node, childIndex) {
4769
5278
  previousTreeContext = task.treeContext,
4770
5279
  previousComponentStack = task.componentStack,
4771
5280
  segment = task.blockedSegment;
4772
- if (null === segment)
5281
+ if (null === segment) {
5282
+ segment = task.replay;
4773
5283
  try {
4774
5284
  return renderNodeDestructive(request, task, node, childIndex);
4775
5285
  } catch (thrownValue) {
@@ -4779,10 +5289,13 @@ function renderNode(request, task, node, childIndex) {
4779
5289
  thrownValue === SuspenseException
4780
5290
  ? getSuspendedThenable()
4781
5291
  : thrownValue),
4782
- "object" === typeof node && null !== node)
5292
+ 12 !== request.status && "object" === typeof node && null !== node)
4783
5293
  ) {
4784
5294
  if ("function" === typeof node.then) {
4785
- childIndex = getThenableStateAfterSuspending();
5295
+ childIndex =
5296
+ thrownValue === SuspenseException
5297
+ ? getThenableStateAfterSuspending()
5298
+ : null;
4786
5299
  request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
4787
5300
  node.then(request, request);
4788
5301
  task.formatContext = previousFormatContext;
@@ -4790,11 +5303,15 @@ function renderNode(request, task, node, childIndex) {
4790
5303
  task.keyPath = previousKeyPath;
4791
5304
  task.treeContext = previousTreeContext;
4792
5305
  task.componentStack = previousComponentStack;
5306
+ task.replay = segment;
4793
5307
  switchContext(previousContext);
4794
5308
  return;
4795
5309
  }
4796
5310
  if ("Maximum call stack size exceeded" === node.message) {
4797
- node = getThenableStateAfterSuspending();
5311
+ node =
5312
+ thrownValue === SuspenseException
5313
+ ? getThenableStateAfterSuspending()
5314
+ : null;
4798
5315
  node = spawnNewSuspendedReplayTask(request, task, node);
4799
5316
  request.pingedTasks.push(node);
4800
5317
  task.formatContext = previousFormatContext;
@@ -4802,31 +5319,36 @@ function renderNode(request, task, node, childIndex) {
4802
5319
  task.keyPath = previousKeyPath;
4803
5320
  task.treeContext = previousTreeContext;
4804
5321
  task.componentStack = previousComponentStack;
5322
+ task.replay = segment;
4805
5323
  switchContext(previousContext);
4806
5324
  return;
4807
5325
  }
4808
5326
  }
4809
5327
  }
4810
- else {
5328
+ } else {
4811
5329
  var childrenLength = segment.children.length,
4812
5330
  chunkLength = segment.chunks.length;
4813
5331
  try {
4814
5332
  return renderNodeDestructive(request, task, node, childIndex);
4815
- } catch (thrownValue$48) {
5333
+ } catch (thrownValue$62) {
4816
5334
  if (
4817
5335
  (resetHooksState(),
4818
5336
  (segment.children.length = childrenLength),
4819
5337
  (segment.chunks.length = chunkLength),
4820
5338
  (node =
4821
- thrownValue$48 === SuspenseException
5339
+ thrownValue$62 === SuspenseException
4822
5340
  ? getSuspendedThenable()
4823
- : thrownValue$48),
4824
- "object" === typeof node && null !== node)
5341
+ : thrownValue$62),
5342
+ 12 !== request.status && "object" === typeof node && null !== node)
4825
5343
  ) {
4826
5344
  if ("function" === typeof node.then) {
4827
- childIndex = getThenableStateAfterSuspending();
4828
- request = spawnNewSuspendedRenderTask(request, task, childIndex).ping;
4829
- node.then(request, request);
5345
+ segment = node;
5346
+ node =
5347
+ thrownValue$62 === SuspenseException
5348
+ ? getThenableStateAfterSuspending()
5349
+ : null;
5350
+ request = spawnNewSuspendedRenderTask(request, task, node).ping;
5351
+ segment.then(request, request);
4830
5352
  task.formatContext = previousFormatContext;
4831
5353
  task.context = previousContext;
4832
5354
  task.keyPath = previousKeyPath;
@@ -4836,9 +5358,12 @@ function renderNode(request, task, node, childIndex) {
4836
5358
  return;
4837
5359
  }
4838
5360
  if ("Maximum call stack size exceeded" === node.message) {
4839
- node = getThenableStateAfterSuspending();
4840
- node = spawnNewSuspendedRenderTask(request, task, node);
4841
- request.pingedTasks.push(node);
5361
+ segment =
5362
+ thrownValue$62 === SuspenseException
5363
+ ? getThenableStateAfterSuspending()
5364
+ : null;
5365
+ segment = spawnNewSuspendedRenderTask(request, task, segment);
5366
+ request.pingedTasks.push(segment);
4842
5367
  task.formatContext = previousFormatContext;
4843
5368
  task.context = previousContext;
4844
5369
  task.keyPath = previousKeyPath;
@@ -4858,9 +5383,10 @@ function renderNode(request, task, node, childIndex) {
4858
5383
  throw node;
4859
5384
  }
4860
5385
  function abortTaskSoft(task) {
4861
- var boundary = task.blockedBoundary;
4862
- task = task.blockedSegment;
4863
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5386
+ var boundary = task.blockedBoundary,
5387
+ segment = task.blockedSegment;
5388
+ null !== segment &&
5389
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
4864
5390
  }
4865
5391
  function abortRemainingReplayNodes(
4866
5392
  request$jscomp$0,
@@ -4887,6 +5413,7 @@ function abortRemainingReplayNodes(
4887
5413
  errorDigest = errorDigest$jscomp$0,
4888
5414
  resumedBoundary = createSuspenseBoundary(
4889
5415
  request,
5416
+ null,
4890
5417
  new Set(),
4891
5418
  null,
4892
5419
  null
@@ -4917,44 +5444,69 @@ function abortTask(task, request, error) {
4917
5444
  if (6 === segment.status) return;
4918
5445
  segment.status = 3;
4919
5446
  }
4920
- segment = getThrownInfo(task.componentStack);
5447
+ var errorInfo = getThrownInfo(task.componentStack);
4921
5448
  if (null === boundary) {
4922
5449
  if (13 !== request.status && 14 !== request.status) {
4923
5450
  boundary = task.replay;
4924
5451
  if (null === boundary) {
4925
- logRecoverableError(request, error, segment);
4926
- fatalError(request, error);
5452
+ null !== request.trackedPostpones && null !== segment
5453
+ ? ((boundary = request.trackedPostpones),
5454
+ logRecoverableError(request, error, errorInfo),
5455
+ trackPostpone(request, boundary, task, segment),
5456
+ finishedTask(request, null, task.row, segment))
5457
+ : (logRecoverableError(request, error, errorInfo),
5458
+ fatalError(request, error));
4927
5459
  return;
4928
5460
  }
4929
5461
  boundary.pendingTasks--;
4930
5462
  0 === boundary.pendingTasks &&
4931
5463
  0 < boundary.nodes.length &&
4932
- ((task = logRecoverableError(request, error, segment)),
5464
+ ((segment = logRecoverableError(request, error, errorInfo)),
4933
5465
  abortRemainingReplayNodes(
4934
5466
  request,
4935
5467
  null,
4936
5468
  boundary.nodes,
4937
5469
  boundary.slots,
4938
5470
  error,
4939
- task
5471
+ segment
4940
5472
  ));
4941
5473
  request.pendingRootTasks--;
4942
5474
  0 === request.pendingRootTasks && completeShell(request);
4943
5475
  }
4944
- } else
4945
- boundary.pendingTasks--,
4946
- 4 !== boundary.status &&
4947
- ((boundary.status = 4),
4948
- (task = logRecoverableError(request, error, segment)),
4949
- (boundary.status = 4),
4950
- (boundary.errorDigest = task),
4951
- untrackBoundary(request, boundary),
4952
- boundary.parentFlushed &&
4953
- request.clientRenderedBoundaries.push(boundary)),
4954
- boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
4955
- return abortTask(fallbackTask, request, error);
4956
- }),
4957
- boundary.fallbackAbortableTasks.clear();
5476
+ } else {
5477
+ var trackedPostpones$63 = request.trackedPostpones;
5478
+ if (4 !== boundary.status) {
5479
+ if (null !== trackedPostpones$63 && null !== segment)
5480
+ return (
5481
+ logRecoverableError(request, error, errorInfo),
5482
+ trackPostpone(request, trackedPostpones$63, task, segment),
5483
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5484
+ return abortTask(fallbackTask, request, error);
5485
+ }),
5486
+ boundary.fallbackAbortableTasks.clear(),
5487
+ finishedTask(request, boundary, task.row, segment)
5488
+ );
5489
+ boundary.status = 4;
5490
+ segment = logRecoverableError(request, error, errorInfo);
5491
+ boundary.status = 4;
5492
+ boundary.errorDigest = segment;
5493
+ untrackBoundary(request, boundary);
5494
+ boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
5495
+ }
5496
+ boundary.pendingTasks--;
5497
+ segment = boundary.row;
5498
+ null !== segment &&
5499
+ 0 === --segment.pendingTasks &&
5500
+ finishSuspenseListRow(request, segment);
5501
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5502
+ return abortTask(fallbackTask, request, error);
5503
+ });
5504
+ boundary.fallbackAbortableTasks.clear();
5505
+ }
5506
+ task = task.row;
5507
+ null !== task &&
5508
+ 0 === --task.pendingTasks &&
5509
+ finishSuspenseListRow(request, task);
4958
5510
  request.allPendingTasks--;
4959
5511
  0 === request.allPendingTasks && completeAll(request);
4960
5512
  }
@@ -5048,10 +5600,18 @@ function queueCompletedSegment(boundary, segment) {
5048
5600
  var childSegment = segment.children[0];
5049
5601
  childSegment.id = segment.id;
5050
5602
  childSegment.parentFlushed = !0;
5051
- 1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
5603
+ (1 !== childSegment.status &&
5604
+ 3 !== childSegment.status &&
5605
+ 4 !== childSegment.status) ||
5606
+ queueCompletedSegment(boundary, childSegment);
5052
5607
  } else boundary.completedSegments.push(segment);
5053
5608
  }
5054
- function finishedTask(request, boundary, segment) {
5609
+ function finishedTask(request, boundary, row, segment) {
5610
+ null !== row &&
5611
+ (0 === --row.pendingTasks
5612
+ ? finishSuspenseListRow(request, row)
5613
+ : row.together && tryToResolveTogetherRow(request, row));
5614
+ request.allPendingTasks--;
5055
5615
  if (null === boundary) {
5056
5616
  if (null !== segment && segment.parentFlushed) {
5057
5617
  if (null !== request.completedRootSegment)
@@ -5060,32 +5620,68 @@ function finishedTask(request, boundary, segment) {
5060
5620
  }
5061
5621
  request.pendingRootTasks--;
5062
5622
  0 === request.pendingRootTasks && completeShell(request);
5063
- } else
5064
- boundary.pendingTasks--,
5065
- 4 !== boundary.status &&
5066
- (0 === boundary.pendingTasks
5067
- ? (0 === boundary.status && (boundary.status = 1),
5068
- null !== segment &&
5069
- segment.parentFlushed &&
5070
- 1 === segment.status &&
5071
- queueCompletedSegment(boundary, segment),
5072
- boundary.parentFlushed &&
5073
- request.completedBoundaries.push(boundary),
5074
- 1 === boundary.status &&
5075
- (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
5076
- boundary.fallbackAbortableTasks.clear(),
5077
- 0 === request.pendingRootTasks &&
5078
- null === request.trackedPostpones &&
5079
- null !== boundary.contentPreamble &&
5080
- preparePreamble(request)))
5081
- : null !== segment &&
5082
- segment.parentFlushed &&
5083
- 1 === segment.status &&
5084
- (queueCompletedSegment(boundary, segment),
5085
- 1 === boundary.completedSegments.length &&
5086
- boundary.parentFlushed &&
5087
- request.partialBoundaries.push(boundary)));
5088
- request.allPendingTasks--;
5623
+ } else if ((boundary.pendingTasks--, 4 !== boundary.status))
5624
+ if (0 === boundary.pendingTasks)
5625
+ if (
5626
+ (0 === boundary.status && (boundary.status = 1),
5627
+ null !== segment &&
5628
+ segment.parentFlushed &&
5629
+ (1 === segment.status || 3 === segment.status) &&
5630
+ queueCompletedSegment(boundary, segment),
5631
+ boundary.parentFlushed && request.completedBoundaries.push(boundary),
5632
+ 1 === boundary.status)
5633
+ )
5634
+ (row = boundary.row),
5635
+ null !== row &&
5636
+ hoistHoistables(row.hoistables, boundary.contentState),
5637
+ isEligibleForOutlining(request, boundary) ||
5638
+ (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
5639
+ boundary.fallbackAbortableTasks.clear(),
5640
+ null !== row &&
5641
+ 0 === --row.pendingTasks &&
5642
+ finishSuspenseListRow(request, row)),
5643
+ 0 === request.pendingRootTasks &&
5644
+ null === request.trackedPostpones &&
5645
+ null !== boundary.contentPreamble &&
5646
+ preparePreamble(request);
5647
+ else {
5648
+ if (
5649
+ 5 === boundary.status &&
5650
+ ((boundary = boundary.row), null !== boundary)
5651
+ ) {
5652
+ if (null !== request.trackedPostpones) {
5653
+ row = request.trackedPostpones;
5654
+ var postponedRow = boundary.next;
5655
+ if (
5656
+ null !== postponedRow &&
5657
+ ((segment = postponedRow.boundaries), null !== segment)
5658
+ )
5659
+ for (
5660
+ postponedRow.boundaries = null, postponedRow = 0;
5661
+ postponedRow < segment.length;
5662
+ postponedRow++
5663
+ ) {
5664
+ var postponedBoundary = segment[postponedRow];
5665
+ trackPostponedBoundary(request, row, postponedBoundary);
5666
+ finishedTask(request, postponedBoundary, null, null);
5667
+ }
5668
+ }
5669
+ 0 === --boundary.pendingTasks &&
5670
+ finishSuspenseListRow(request, boundary);
5671
+ }
5672
+ }
5673
+ else
5674
+ null === segment ||
5675
+ !segment.parentFlushed ||
5676
+ (1 !== segment.status && 3 !== segment.status) ||
5677
+ (queueCompletedSegment(boundary, segment),
5678
+ 1 === boundary.completedSegments.length &&
5679
+ boundary.parentFlushed &&
5680
+ request.partialBoundaries.push(boundary)),
5681
+ (boundary = boundary.row),
5682
+ null !== boundary &&
5683
+ boundary.together &&
5684
+ tryToResolveTogetherRow(request, boundary);
5089
5685
  0 === request.allPendingTasks && completeAll(request);
5090
5686
  }
5091
5687
  function performWork(request$jscomp$2) {
@@ -5127,7 +5723,12 @@ function performWork(request$jscomp$2) {
5127
5723
  throw Error(formatProdErrorMessage(488));
5128
5724
  task.replay.pendingTasks--;
5129
5725
  task.abortSet.delete(task);
5130
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5726
+ finishedTask(
5727
+ request$jscomp$0,
5728
+ task.blockedBoundary,
5729
+ task.row,
5730
+ null
5731
+ );
5131
5732
  } catch (thrownValue) {
5132
5733
  resetHooksState();
5133
5734
  var x =
@@ -5141,7 +5742,10 @@ function performWork(request$jscomp$2) {
5141
5742
  ) {
5142
5743
  var ping = task.ping;
5143
5744
  x.then(ping, ping);
5144
- task.thenableState = getThenableStateAfterSuspending();
5745
+ task.thenableState =
5746
+ thrownValue === SuspenseException
5747
+ ? getThenableStateAfterSuspending()
5748
+ : null;
5145
5749
  } else {
5146
5750
  task.replay.pendingTasks--;
5147
5751
  task.abortSet.delete(task);
@@ -5197,7 +5801,12 @@ function performWork(request$jscomp$2) {
5197
5801
  ),
5198
5802
  task.abortSet.delete(task),
5199
5803
  (request$jscomp$1.status = 1),
5200
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5804
+ finishedTask(
5805
+ request,
5806
+ task.blockedBoundary,
5807
+ task.row,
5808
+ request$jscomp$1
5809
+ );
5201
5810
  } catch (thrownValue) {
5202
5811
  resetHooksState();
5203
5812
  request$jscomp$1.children.length = childrenLength;
@@ -5208,39 +5817,64 @@ function performWork(request$jscomp$2) {
5208
5817
  : 12 === request.status
5209
5818
  ? request.fatalError
5210
5819
  : thrownValue;
5211
- if (
5820
+ if (12 === request.status && null !== request.trackedPostpones) {
5821
+ var trackedPostpones = request.trackedPostpones,
5822
+ thrownInfo = getThrownInfo(task.componentStack);
5823
+ task.abortSet.delete(task);
5824
+ logRecoverableError(request, x$jscomp$0, thrownInfo);
5825
+ trackPostpone(request, trackedPostpones, task, request$jscomp$1);
5826
+ finishedTask(
5827
+ request,
5828
+ task.blockedBoundary,
5829
+ task.row,
5830
+ request$jscomp$1
5831
+ );
5832
+ } else if (
5212
5833
  "object" === typeof x$jscomp$0 &&
5213
5834
  null !== x$jscomp$0 &&
5214
5835
  "function" === typeof x$jscomp$0.then
5215
5836
  ) {
5216
5837
  request$jscomp$1.status = 0;
5217
- task.thenableState = getThenableStateAfterSuspending();
5838
+ task.thenableState =
5839
+ thrownValue === SuspenseException
5840
+ ? getThenableStateAfterSuspending()
5841
+ : null;
5218
5842
  var ping$jscomp$0 = task.ping;
5219
5843
  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
5220
5844
  } else {
5221
5845
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5222
5846
  task.abortSet.delete(task);
5223
5847
  request$jscomp$1.status = 4;
5224
- var boundary$jscomp$0 = task.blockedBoundary;
5848
+ var boundary$jscomp$0 = task.blockedBoundary,
5849
+ row = task.row;
5850
+ null !== row &&
5851
+ 0 === --row.pendingTasks &&
5852
+ finishSuspenseListRow(request, row);
5853
+ request.allPendingTasks--;
5225
5854
  request$jscomp$0 = logRecoverableError(
5226
5855
  request,
5227
5856
  x$jscomp$0,
5228
5857
  errorInfo$jscomp$0
5229
5858
  );
5230
- null === boundary$jscomp$0
5231
- ? fatalError(request, x$jscomp$0)
5232
- : (boundary$jscomp$0.pendingTasks--,
5233
- 4 !== boundary$jscomp$0.status &&
5234
- ((boundary$jscomp$0.status = 4),
5235
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5236
- untrackBoundary(request, boundary$jscomp$0),
5237
- boundary$jscomp$0.parentFlushed &&
5238
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5239
- 0 === request.pendingRootTasks &&
5240
- null === request.trackedPostpones &&
5241
- null !== boundary$jscomp$0.contentPreamble &&
5242
- preparePreamble(request)));
5243
- request.allPendingTasks--;
5859
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
5860
+ else if (
5861
+ (boundary$jscomp$0.pendingTasks--,
5862
+ 4 !== boundary$jscomp$0.status)
5863
+ ) {
5864
+ boundary$jscomp$0.status = 4;
5865
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
5866
+ untrackBoundary(request, boundary$jscomp$0);
5867
+ var boundaryRow = boundary$jscomp$0.row;
5868
+ null !== boundaryRow &&
5869
+ 0 === --boundaryRow.pendingTasks &&
5870
+ finishSuspenseListRow(request, boundaryRow);
5871
+ boundary$jscomp$0.parentFlushed &&
5872
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
5873
+ 0 === request.pendingRootTasks &&
5874
+ null === request.trackedPostpones &&
5875
+ null !== boundary$jscomp$0.contentPreamble &&
5876
+ preparePreamble(request);
5877
+ }
5244
5878
  0 === request.allPendingTasks && completeAll(request);
5245
5879
  }
5246
5880
  } finally {
@@ -5296,6 +5930,7 @@ function preparePreambleFromSegment(
5296
5930
  switch (boundary.status) {
5297
5931
  case 1:
5298
5932
  hoistPreambleState(request.renderState, preamble);
5933
+ request.byteSize += boundary.byteSize;
5299
5934
  segment = boundary.completedSegments[0];
5300
5935
  if (!segment) throw Error(formatProdErrorMessage(391));
5301
5936
  return preparePreambleFromSubtree(
@@ -5325,17 +5960,16 @@ function preparePreamble(request) {
5325
5960
  null === request.completedPreambleSegments
5326
5961
  ) {
5327
5962
  var collectedPreambleSegments = [],
5963
+ originalRequestByteSize = request.byteSize,
5328
5964
  hasPendingPreambles = preparePreambleFromSegment(
5329
5965
  request,
5330
5966
  request.completedRootSegment,
5331
5967
  collectedPreambleSegments
5332
5968
  ),
5333
5969
  preamble = request.renderState.preamble;
5334
- if (
5335
- !1 === hasPendingPreambles ||
5336
- (preamble.headChunks && preamble.bodyChunks)
5337
- )
5338
- request.completedPreambleSegments = collectedPreambleSegments;
5970
+ !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
5971
+ ? (request.completedPreambleSegments = collectedPreambleSegments)
5972
+ : (request.byteSize = originalRequestByteSize);
5339
5973
  }
5340
5974
  }
5341
5975
  function flushSubtree(request, destination, segment, hoistableState) {
@@ -5370,34 +6004,38 @@ function flushSubtree(request, destination, segment, hoistableState) {
5370
6004
  destination.push(chunks[chunkIdx]);
5371
6005
  chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx]));
5372
6006
  return r;
6007
+ case 3:
6008
+ return !0;
5373
6009
  default:
5374
6010
  throw Error(formatProdErrorMessage(390));
5375
6011
  }
5376
6012
  }
6013
+ var flushedByteSize = 0;
5377
6014
  function flushSegment(request, destination, segment, hoistableState) {
5378
6015
  var boundary = segment.boundary;
5379
6016
  if (null === boundary)
5380
6017
  return flushSubtree(request, destination, segment, hoistableState);
5381
6018
  boundary.parentFlushed = !0;
5382
6019
  if (4 === boundary.status) {
5383
- if (!request.renderState.generateStaticMarkup) {
5384
- var errorDigest = boundary.errorDigest;
5385
- destination.push("\x3c!--$!--\x3e");
5386
- destination.push("<template");
5387
- errorDigest &&
6020
+ var row = boundary.row;
6021
+ null !== row &&
6022
+ 0 === --row.pendingTasks &&
6023
+ finishSuspenseListRow(request, row);
6024
+ request.renderState.generateStaticMarkup ||
6025
+ ((boundary = boundary.errorDigest),
6026
+ destination.push("\x3c!--$!--\x3e"),
6027
+ destination.push("<template"),
6028
+ boundary &&
5388
6029
  (destination.push(' data-dgst="'),
5389
- (errorDigest = escapeTextForBrowser(errorDigest)),
5390
- destination.push(errorDigest),
5391
- destination.push('"'));
5392
- destination.push("></template>");
5393
- }
6030
+ (boundary = escapeTextForBrowser(boundary)),
6031
+ destination.push(boundary),
6032
+ destination.push('"')),
6033
+ destination.push("></template>"));
5394
6034
  flushSubtree(request, destination, segment, hoistableState);
5395
- request.renderState.generateStaticMarkup
5396
- ? (destination = !0)
5397
- : ((request = boundary.fallbackPreamble) &&
5398
- writePreambleContribution(destination, request),
5399
- (destination = destination.push("\x3c!--/$--\x3e")));
5400
- return destination;
6035
+ request = request.renderState.generateStaticMarkup
6036
+ ? !0
6037
+ : destination.push("\x3c!--/$--\x3e");
6038
+ return request;
5401
6039
  }
5402
6040
  if (1 !== boundary.status)
5403
6041
  return (
@@ -5410,17 +6048,15 @@ function flushSegment(request, destination, segment, hoistableState) {
5410
6048
  request.renderState,
5411
6049
  boundary.rootSegmentID
5412
6050
  ),
5413
- hoistableState &&
5414
- ((boundary = boundary.fallbackState),
5415
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5416
- boundary.stylesheets.forEach(
5417
- hoistStylesheetDependency,
5418
- hoistableState
5419
- )),
6051
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
5420
6052
  flushSubtree(request, destination, segment, hoistableState),
5421
6053
  destination.push("\x3c!--/$--\x3e")
5422
6054
  );
5423
- if (boundary.byteSize > request.progressiveChunkSize)
6055
+ if (
6056
+ !flushingPartialBoundaries &&
6057
+ isEligibleForOutlining(request, boundary) &&
6058
+ flushedByteSize + boundary.byteSize > request.progressiveChunkSize
6059
+ )
5424
6060
  return (
5425
6061
  (boundary.rootSegmentID = request.nextSegmentId++),
5426
6062
  request.completedBoundaries.push(boundary),
@@ -5432,21 +6068,22 @@ function flushSegment(request, destination, segment, hoistableState) {
5432
6068
  flushSubtree(request, destination, segment, hoistableState),
5433
6069
  destination.push("\x3c!--/$--\x3e")
5434
6070
  );
5435
- hoistableState &&
5436
- ((segment = boundary.contentState),
5437
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5438
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
6071
+ flushedByteSize += boundary.byteSize;
6072
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
6073
+ segment = boundary.row;
6074
+ null !== segment &&
6075
+ isEligibleForOutlining(request, boundary) &&
6076
+ 0 === --segment.pendingTasks &&
6077
+ finishSuspenseListRow(request, segment);
5439
6078
  request.renderState.generateStaticMarkup ||
5440
6079
  destination.push("\x3c!--$--\x3e");
5441
6080
  segment = boundary.completedSegments;
5442
6081
  if (1 !== segment.length) throw Error(formatProdErrorMessage(391));
5443
6082
  flushSegment(request, destination, segment[0], hoistableState);
5444
- request.renderState.generateStaticMarkup
5445
- ? (destination = !0)
5446
- : ((request = boundary.contentPreamble) &&
5447
- writePreambleContribution(destination, request),
5448
- (destination = destination.push("\x3c!--/$--\x3e")));
5449
- return destination;
6083
+ request = request.renderState.generateStaticMarkup
6084
+ ? !0
6085
+ : destination.push("\x3c!--/$--\x3e");
6086
+ return request;
5450
6087
  }
5451
6088
  function flushSegmentContainer(request, destination, segment, hoistableState) {
5452
6089
  writeStartSegment(
@@ -5459,6 +6096,7 @@ function flushSegmentContainer(request, destination, segment, hoistableState) {
5459
6096
  return writeEndSegment(destination, segment.parentFormatContext);
5460
6097
  }
5461
6098
  function flushCompletedBoundary(request, destination, boundary) {
6099
+ flushedByteSize = boundary.byteSize;
5462
6100
  for (
5463
6101
  var completedSegments = boundary.completedSegments, i = 0;
5464
6102
  i < completedSegments.length;
@@ -5471,6 +6109,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5471
6109
  completedSegments[i]
5472
6110
  );
5473
6111
  completedSegments.length = 0;
6112
+ completedSegments = boundary.row;
6113
+ null !== completedSegments &&
6114
+ isEligibleForOutlining(request, boundary) &&
6115
+ 0 === --completedSegments.pendingTasks &&
6116
+ finishSuspenseListRow(request, completedSegments);
5474
6117
  writeHoistablesForBoundary(
5475
6118
  destination,
5476
6119
  boundary.contentState,
@@ -5483,24 +6126,30 @@ function flushCompletedBoundary(request, destination, boundary) {
5483
6126
  var requiresStyleInsertion = request.stylesToHoist;
5484
6127
  request.stylesToHoist = !1;
5485
6128
  destination.push(request.startInlineScript);
6129
+ destination.push(">");
5486
6130
  requiresStyleInsertion
5487
- ? 0 === (completedSegments.instructions & 2)
5488
- ? ((completedSegments.instructions |= 10),
6131
+ ? (0 === (completedSegments.instructions & 4) &&
6132
+ ((completedSegments.instructions |= 4),
5489
6133
  destination.push(
5490
- '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RM=new Map;\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),x=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?x.push(b):("LINK"===b.tagName&&p.set(b.getAttribute("href"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement("link");a.href=\nd;a.rel="stylesheet";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute("media");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\nt,u,""),w.bind(null,t,u,"Resource failed to load"))};$RR("'
5491
- ))
5492
- : 0 === (completedSegments.instructions & 8)
6134
+ '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
6135
+ )),
6136
+ 0 === (completedSegments.instructions & 2) &&
6137
+ ((completedSegments.instructions |= 2),
6138
+ destination.push(
6139
+ '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
6140
+ )),
6141
+ 0 === (completedSegments.instructions & 8)
5493
6142
  ? ((completedSegments.instructions |= 8),
5494
6143
  destination.push(
5495
- '$RM=new Map;\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),x=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?x.push(b):("LINK"===b.tagName&&p.set(b.getAttribute("href"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement("link");a.href=\nd;a.rel="stylesheet";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute("media");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\nt,u,""),w.bind(null,t,u,"Resource failed to load"))};$RR("'
6144
+ '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
5496
6145
  ))
5497
- : destination.push('$RR("')
5498
- : 0 === (completedSegments.instructions & 2)
5499
- ? ((completedSegments.instructions |= 2),
6146
+ : destination.push('$RR("'))
6147
+ : (0 === (completedSegments.instructions & 2) &&
6148
+ ((completedSegments.instructions |= 2),
5500
6149
  destination.push(
5501
- '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("'
5502
- ))
5503
- : destination.push('$RC("');
6150
+ '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
6151
+ )),
6152
+ destination.push('$RC("'));
5504
6153
  completedSegments = i.toString(16);
5505
6154
  destination.push(request.boundaryPrefix);
5506
6155
  destination.push(completedSegments);
@@ -5534,6 +6183,7 @@ function flushPartiallyCompletedSegment(
5534
6183
  boundary = request.resumableState;
5535
6184
  request = request.renderState;
5536
6185
  destination.push(request.startInlineScript);
6186
+ destination.push(">");
5537
6187
  0 === (boundary.instructions & 1)
5538
6188
  ? ((boundary.instructions |= 1),
5539
6189
  destination.push(
@@ -5549,6 +6199,7 @@ function flushPartiallyCompletedSegment(
5549
6199
  destination = destination.push('")\x3c/script>');
5550
6200
  return destination;
5551
6201
  }
6202
+ var flushingPartialBoundaries = !1;
5552
6203
  function flushCompletedQueues(request, destination) {
5553
6204
  try {
5554
6205
  if (!(0 < request.pendingRootTasks)) {
@@ -5558,7 +6209,9 @@ function flushCompletedQueues(request, destination) {
5558
6209
  if (5 === completedRootSegment.status) return;
5559
6210
  var completedPreambleSegments = request.completedPreambleSegments;
5560
6211
  if (null === completedPreambleSegments) return;
5561
- var renderState = request.renderState,
6212
+ flushedByteSize = request.byteSize;
6213
+ var resumableState = request.resumableState,
6214
+ renderState = request.renderState,
5562
6215
  preamble = renderState.preamble,
5563
6216
  htmlChunks = preamble.htmlChunks,
5564
6217
  headChunks = preamble.headChunks,
@@ -5591,7 +6244,9 @@ function flushCompletedQueues(request, destination) {
5591
6244
  renderState.fontPreloads.clear();
5592
6245
  renderState.highImagePreloads.forEach(flushResource, destination);
5593
6246
  renderState.highImagePreloads.clear();
6247
+ currentlyFlushingRenderState = renderState;
5594
6248
  renderState.styles.forEach(flushStylesInPreamble, destination);
6249
+ currentlyFlushingRenderState = null;
5595
6250
  var importMapChunks = renderState.importMapChunks;
5596
6251
  for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
5597
6252
  destination.push(importMapChunks[i$jscomp$0]);
@@ -5601,17 +6256,18 @@ function flushCompletedQueues(request, destination) {
5601
6256
  renderState.scripts.clear();
5602
6257
  renderState.bulkPreloads.forEach(flushResource, destination);
5603
6258
  renderState.bulkPreloads.clear();
6259
+ resumableState.instructions |= 32;
5604
6260
  var hoistableChunks = renderState.hoistableChunks;
5605
6261
  for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
5606
6262
  destination.push(hoistableChunks[i$jscomp$0]);
5607
6263
  for (
5608
- renderState = hoistableChunks.length = 0;
5609
- renderState < completedPreambleSegments.length;
5610
- renderState++
6264
+ resumableState = hoistableChunks.length = 0;
6265
+ resumableState < completedPreambleSegments.length;
6266
+ resumableState++
5611
6267
  ) {
5612
- var segments = completedPreambleSegments[renderState];
5613
- for (preamble = 0; preamble < segments.length; preamble++)
5614
- flushSegment(request, destination, segments[preamble], null);
6268
+ var segments = completedPreambleSegments[resumableState];
6269
+ for (renderState = 0; renderState < segments.length; renderState++)
6270
+ flushSegment(request, destination, segments[renderState], null);
5615
6271
  }
5616
6272
  var preamble$jscomp$0 = request.renderState.preamble,
5617
6273
  headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
@@ -5629,11 +6285,39 @@ function flushCompletedQueues(request, destination) {
5629
6285
  destination.push(bodyChunks[completedPreambleSegments]);
5630
6286
  flushSegment(request, destination, completedRootSegment, null);
5631
6287
  request.completedRootSegment = null;
5632
- writeBootstrap(destination, request.renderState);
6288
+ var renderState$jscomp$0 = request.renderState;
6289
+ if (
6290
+ 0 !== request.allPendingTasks ||
6291
+ 0 !== request.clientRenderedBoundaries.length ||
6292
+ 0 !== request.completedBoundaries.length ||
6293
+ (null !== request.trackedPostpones &&
6294
+ (0 !== request.trackedPostpones.rootNodes.length ||
6295
+ null !== request.trackedPostpones.rootSlots))
6296
+ ) {
6297
+ var resumableState$jscomp$0 = request.resumableState;
6298
+ if (0 === (resumableState$jscomp$0.instructions & 64)) {
6299
+ resumableState$jscomp$0.instructions |= 64;
6300
+ destination.push(renderState$jscomp$0.startInlineScript);
6301
+ if (0 === (resumableState$jscomp$0.instructions & 32)) {
6302
+ resumableState$jscomp$0.instructions |= 32;
6303
+ var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
6304
+ destination.push(' id="');
6305
+ var chunk$jscomp$1 = escapeTextForBrowser(shellId);
6306
+ destination.push(chunk$jscomp$1);
6307
+ destination.push('"');
6308
+ }
6309
+ destination.push(">");
6310
+ destination.push(
6311
+ "requestAnimationFrame(function(){$RT=performance.now()});"
6312
+ );
6313
+ destination.push("\x3c/script>");
6314
+ }
6315
+ }
6316
+ writeBootstrap(destination, renderState$jscomp$0);
5633
6317
  }
5634
- var renderState$jscomp$0 = request.renderState;
6318
+ var renderState$jscomp$1 = request.renderState;
5635
6319
  completedRootSegment = 0;
5636
- var viewportChunks$jscomp$0 = renderState$jscomp$0.viewportChunks;
6320
+ var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
5637
6321
  for (
5638
6322
  completedRootSegment = 0;
5639
6323
  completedRootSegment < viewportChunks$jscomp$0.length;
@@ -5641,21 +6325,21 @@ function flushCompletedQueues(request, destination) {
5641
6325
  )
5642
6326
  destination.push(viewportChunks$jscomp$0[completedRootSegment]);
5643
6327
  viewportChunks$jscomp$0.length = 0;
5644
- renderState$jscomp$0.preconnects.forEach(flushResource, destination);
5645
- renderState$jscomp$0.preconnects.clear();
5646
- renderState$jscomp$0.fontPreloads.forEach(flushResource, destination);
5647
- renderState$jscomp$0.fontPreloads.clear();
5648
- renderState$jscomp$0.highImagePreloads.forEach(
6328
+ renderState$jscomp$1.preconnects.forEach(flushResource, destination);
6329
+ renderState$jscomp$1.preconnects.clear();
6330
+ renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
6331
+ renderState$jscomp$1.fontPreloads.clear();
6332
+ renderState$jscomp$1.highImagePreloads.forEach(
5649
6333
  flushResource,
5650
6334
  destination
5651
6335
  );
5652
- renderState$jscomp$0.highImagePreloads.clear();
5653
- renderState$jscomp$0.styles.forEach(preloadLateStyles, destination);
5654
- renderState$jscomp$0.scripts.forEach(flushResource, destination);
5655
- renderState$jscomp$0.scripts.clear();
5656
- renderState$jscomp$0.bulkPreloads.forEach(flushResource, destination);
5657
- renderState$jscomp$0.bulkPreloads.clear();
5658
- var hoistableChunks$jscomp$0 = renderState$jscomp$0.hoistableChunks;
6336
+ renderState$jscomp$1.highImagePreloads.clear();
6337
+ renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
6338
+ renderState$jscomp$1.scripts.forEach(flushResource, destination);
6339
+ renderState$jscomp$1.scripts.clear();
6340
+ renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
6341
+ renderState$jscomp$1.bulkPreloads.clear();
6342
+ var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
5659
6343
  for (
5660
6344
  completedRootSegment = 0;
5661
6345
  completedRootSegment < hoistableChunks$jscomp$0.length;
@@ -5666,31 +6350,32 @@ function flushCompletedQueues(request, destination) {
5666
6350
  var clientRenderedBoundaries = request.clientRenderedBoundaries;
5667
6351
  for (i = 0; i < clientRenderedBoundaries.length; i++) {
5668
6352
  var boundary = clientRenderedBoundaries[i];
5669
- renderState$jscomp$0 = destination;
5670
- var resumableState = request.resumableState,
5671
- renderState$jscomp$1 = request.renderState,
6353
+ renderState$jscomp$1 = destination;
6354
+ var resumableState$jscomp$1 = request.resumableState,
6355
+ renderState$jscomp$2 = request.renderState,
5672
6356
  id = boundary.rootSegmentID,
5673
6357
  errorDigest = boundary.errorDigest;
5674
- renderState$jscomp$0.push(renderState$jscomp$1.startInlineScript);
5675
- 0 === (resumableState.instructions & 4)
5676
- ? ((resumableState.instructions |= 4),
5677
- renderState$jscomp$0.push(
6358
+ renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript);
6359
+ renderState$jscomp$1.push(">");
6360
+ 0 === (resumableState$jscomp$1.instructions & 4)
6361
+ ? ((resumableState$jscomp$1.instructions |= 4),
6362
+ renderState$jscomp$1.push(
5678
6363
  '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
5679
6364
  ))
5680
- : renderState$jscomp$0.push('$RX("');
5681
- renderState$jscomp$0.push(renderState$jscomp$1.boundaryPrefix);
5682
- var chunk$jscomp$1 = id.toString(16);
5683
- renderState$jscomp$0.push(chunk$jscomp$1);
5684
- renderState$jscomp$0.push('"');
6365
+ : renderState$jscomp$1.push('$RX("');
6366
+ renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix);
6367
+ var chunk$jscomp$2 = id.toString(16);
6368
+ renderState$jscomp$1.push(chunk$jscomp$2);
6369
+ renderState$jscomp$1.push('"');
5685
6370
  if (errorDigest) {
5686
- renderState$jscomp$0.push(",");
5687
- var chunk$jscomp$2 = escapeJSStringsForInstructionScripts(
6371
+ renderState$jscomp$1.push(",");
6372
+ var chunk$jscomp$3 = escapeJSStringsForInstructionScripts(
5688
6373
  errorDigest || ""
5689
6374
  );
5690
- renderState$jscomp$0.push(chunk$jscomp$2);
6375
+ renderState$jscomp$1.push(chunk$jscomp$3);
5691
6376
  }
5692
6377
  var JSCompiler_inline_result =
5693
- renderState$jscomp$0.push(")\x3c/script>");
6378
+ renderState$jscomp$1.push(")\x3c/script>");
5694
6379
  if (!JSCompiler_inline_result) {
5695
6380
  request.destination = null;
5696
6381
  i++;
@@ -5710,13 +6395,15 @@ function flushCompletedQueues(request, destination) {
5710
6395
  return;
5711
6396
  }
5712
6397
  completedBoundaries.splice(0, i);
6398
+ flushingPartialBoundaries = !0;
5713
6399
  var partialBoundaries = request.partialBoundaries;
5714
6400
  for (i = 0; i < partialBoundaries.length; i++) {
5715
- var boundary$51 = partialBoundaries[i];
6401
+ var boundary$69 = partialBoundaries[i];
5716
6402
  a: {
5717
6403
  clientRenderedBoundaries = request;
5718
6404
  boundary = destination;
5719
- var completedSegments = boundary$51.completedSegments;
6405
+ flushedByteSize = boundary$69.byteSize;
6406
+ var completedSegments = boundary$69.completedSegments;
5720
6407
  for (
5721
6408
  JSCompiler_inline_result = 0;
5722
6409
  JSCompiler_inline_result < completedSegments.length;
@@ -5726,7 +6413,7 @@ function flushCompletedQueues(request, destination) {
5726
6413
  !flushPartiallyCompletedSegment(
5727
6414
  clientRenderedBoundaries,
5728
6415
  boundary,
5729
- boundary$51,
6416
+ boundary$69,
5730
6417
  completedSegments[JSCompiler_inline_result]
5731
6418
  )
5732
6419
  ) {
@@ -5736,9 +6423,20 @@ function flushCompletedQueues(request, destination) {
5736
6423
  break a;
5737
6424
  }
5738
6425
  completedSegments.splice(0, JSCompiler_inline_result);
6426
+ var row = boundary$69.row;
6427
+ null !== row &&
6428
+ row.together &&
6429
+ 1 === boundary$69.pendingTasks &&
6430
+ (1 === row.pendingTasks
6431
+ ? unblockSuspenseListRow(
6432
+ clientRenderedBoundaries,
6433
+ row,
6434
+ row.hoistables
6435
+ )
6436
+ : row.pendingTasks--);
5739
6437
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
5740
6438
  boundary,
5741
- boundary$51.contentState,
6439
+ boundary$69.contentState,
5742
6440
  clientRenderedBoundaries.renderState
5743
6441
  );
5744
6442
  }
@@ -5750,6 +6448,7 @@ function flushCompletedQueues(request, destination) {
5750
6448
  }
5751
6449
  }
5752
6450
  partialBoundaries.splice(0, i);
6451
+ flushingPartialBoundaries = !1;
5753
6452
  var largeBoundaries = request.completedBoundaries;
5754
6453
  for (i = 0; i < largeBoundaries.length; i++)
5755
6454
  if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
@@ -5761,19 +6460,19 @@ function flushCompletedQueues(request, destination) {
5761
6460
  largeBoundaries.splice(0, i);
5762
6461
  }
5763
6462
  } finally {
5764
- 0 === request.allPendingTasks &&
5765
- 0 === request.pingedTasks.length &&
5766
- 0 === request.clientRenderedBoundaries.length &&
5767
- 0 === request.completedBoundaries.length &&
5768
- ((request.flushScheduled = !1),
5769
- (i = request.resumableState),
5770
- i.hasBody &&
5771
- ((partialBoundaries = endChunkForTag("body")),
5772
- destination.push(partialBoundaries)),
5773
- i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
5774
- (request.status = 14),
5775
- destination.push(null),
5776
- (request.destination = null));
6463
+ (flushingPartialBoundaries = !1),
6464
+ 0 === request.allPendingTasks &&
6465
+ 0 === request.clientRenderedBoundaries.length &&
6466
+ 0 === request.completedBoundaries.length &&
6467
+ ((request.flushScheduled = !1),
6468
+ (i = request.resumableState),
6469
+ i.hasBody &&
6470
+ ((partialBoundaries = endChunkForTag("body")),
6471
+ destination.push(partialBoundaries)),
6472
+ i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
6473
+ (request.status = 14),
6474
+ destination.push(null),
6475
+ (request.destination = null));
5777
6476
  }
5778
6477
  }
5779
6478
  function enqueueFlush(request) {
@@ -5822,8 +6521,20 @@ function abort(request, reason) {
5822
6521
  }
5823
6522
  null !== request.destination &&
5824
6523
  flushCompletedQueues(request, request.destination);
5825
- } catch (error$53) {
5826
- logRecoverableError(request, error$53, {}), fatalError(request, error$53);
6524
+ } catch (error$71) {
6525
+ logRecoverableError(request, error$71, {}), fatalError(request, error$71);
6526
+ }
6527
+ }
6528
+ function addToReplayParent(node, parentKeyPath, trackedPostpones) {
6529
+ if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
6530
+ else {
6531
+ var workingMap = trackedPostpones.workingMap,
6532
+ parentNode = workingMap.get(parentKeyPath);
6533
+ void 0 === parentNode &&
6534
+ ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
6535
+ workingMap.set(parentKeyPath, parentNode),
6536
+ addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
6537
+ parentNode[2].push(node);
5827
6538
  }
5828
6539
  }
5829
6540
  function onError() {}
@@ -5842,7 +6553,7 @@ function renderToStringImpl(
5842
6553
  children,
5843
6554
  options,
5844
6555
  createRenderState(options, generateStaticMarkup),
5845
- createFormatContext(0, null, 0),
6556
+ createFormatContext(0, null, 0, null),
5846
6557
  Infinity,
5847
6558
  onError,
5848
6559
  void 0,
@@ -5889,4 +6600,4 @@ exports.renderToString = function (children, options) {
5889
6600
  'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
5890
6601
  );
5891
6602
  };
5892
- exports.version = "19.1.0";
6603
+ exports.version = "19.2.4";