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.
@@ -40,7 +40,6 @@ var React = require("react"),
40
40
  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
41
41
  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
42
42
  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
43
- REACT_PROVIDER_TYPE = Symbol.for("react.provider"),
44
43
  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
45
44
  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
46
45
  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
@@ -53,8 +52,15 @@ var React = require("react"),
53
52
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
54
53
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
55
54
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
56
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
57
- isArrayImpl = Array.isArray;
55
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
56
+ function getIteratorFn(maybeIterable) {
57
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
58
+ maybeIterable =
59
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
60
+ maybeIterable["@@iterator"];
61
+ return "function" === typeof maybeIterable ? maybeIterable : null;
62
+ }
63
+ var isArrayImpl = Array.isArray;
58
64
  function murmurhash3_32_gc(key, seed) {
59
65
  var remainder = key.length & 3;
60
66
  var bytes = key.length - remainder;
@@ -283,6 +289,7 @@ ReactDOMSharedInternals.d = {
283
289
  M: preinitModuleScript
284
290
  };
285
291
  var PRELOAD_NO_CREDS = [],
292
+ currentlyFlushingRenderState = null,
286
293
  scriptRegex = /(<\/|<)(s)(cript)/gi;
287
294
  function scriptReplacer(match, prefix, s, suffix) {
288
295
  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
@@ -314,60 +321,102 @@ function createResumableState(
314
321
  moduleScriptResources: {}
315
322
  };
316
323
  }
317
- function createPreambleState() {
318
- return {
319
- htmlChunks: null,
320
- headChunks: null,
321
- bodyChunks: null,
322
- contribution: 0
323
- };
324
- }
325
- function createFormatContext(insertionMode, selectedValue, tagScope) {
324
+ function createFormatContext(
325
+ insertionMode,
326
+ selectedValue,
327
+ tagScope,
328
+ viewTransition
329
+ ) {
326
330
  return {
327
331
  insertionMode: insertionMode,
328
332
  selectedValue: selectedValue,
329
- tagScope: tagScope
333
+ tagScope: tagScope,
334
+ viewTransition: viewTransition
330
335
  };
331
336
  }
332
337
  function getChildFormatContext(parentContext, type, props) {
338
+ var subtreeScope = parentContext.tagScope & -25;
333
339
  switch (type) {
334
340
  case "noscript":
335
- return createFormatContext(2, null, parentContext.tagScope | 1);
341
+ return createFormatContext(2, null, subtreeScope | 1, null);
336
342
  case "select":
337
343
  return createFormatContext(
338
344
  2,
339
345
  null != props.value ? props.value : props.defaultValue,
340
- parentContext.tagScope
346
+ subtreeScope,
347
+ null
341
348
  );
342
349
  case "svg":
343
- return createFormatContext(4, null, parentContext.tagScope);
350
+ return createFormatContext(4, null, subtreeScope, null);
344
351
  case "picture":
345
- return createFormatContext(2, null, parentContext.tagScope | 2);
352
+ return createFormatContext(2, null, subtreeScope | 2, null);
346
353
  case "math":
347
- return createFormatContext(5, null, parentContext.tagScope);
354
+ return createFormatContext(5, null, subtreeScope, null);
348
355
  case "foreignObject":
349
- return createFormatContext(2, null, parentContext.tagScope);
356
+ return createFormatContext(2, null, subtreeScope, null);
350
357
  case "table":
351
- return createFormatContext(6, null, parentContext.tagScope);
358
+ return createFormatContext(6, null, subtreeScope, null);
352
359
  case "thead":
353
360
  case "tbody":
354
361
  case "tfoot":
355
- return createFormatContext(7, null, parentContext.tagScope);
362
+ return createFormatContext(7, null, subtreeScope, null);
356
363
  case "colgroup":
357
- return createFormatContext(9, null, parentContext.tagScope);
364
+ return createFormatContext(9, null, subtreeScope, null);
358
365
  case "tr":
359
- return createFormatContext(8, null, parentContext.tagScope);
366
+ return createFormatContext(8, null, subtreeScope, null);
360
367
  case "head":
361
368
  if (2 > parentContext.insertionMode)
362
- return createFormatContext(3, null, parentContext.tagScope);
369
+ return createFormatContext(3, null, subtreeScope, null);
363
370
  break;
364
371
  case "html":
365
372
  if (0 === parentContext.insertionMode)
366
- return createFormatContext(1, null, parentContext.tagScope);
373
+ return createFormatContext(1, null, subtreeScope, null);
367
374
  }
368
375
  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
369
- ? createFormatContext(2, null, parentContext.tagScope)
370
- : parentContext;
376
+ ? createFormatContext(2, null, subtreeScope, null)
377
+ : parentContext.tagScope !== subtreeScope
378
+ ? createFormatContext(
379
+ parentContext.insertionMode,
380
+ parentContext.selectedValue,
381
+ subtreeScope,
382
+ null
383
+ )
384
+ : parentContext;
385
+ }
386
+ function getSuspenseViewTransition(parentViewTransition) {
387
+ return null === parentViewTransition
388
+ ? null
389
+ : {
390
+ update: parentViewTransition.update,
391
+ enter: "none",
392
+ exit: "none",
393
+ share: parentViewTransition.update,
394
+ name: parentViewTransition.autoName,
395
+ autoName: parentViewTransition.autoName,
396
+ nameIdx: 0
397
+ };
398
+ }
399
+ function getSuspenseFallbackFormatContext(resumableState, parentContext) {
400
+ parentContext.tagScope & 32 && (resumableState.instructions |= 128);
401
+ return createFormatContext(
402
+ parentContext.insertionMode,
403
+ parentContext.selectedValue,
404
+ parentContext.tagScope | 12,
405
+ getSuspenseViewTransition(parentContext.viewTransition)
406
+ );
407
+ }
408
+ function getSuspenseContentFormatContext(resumableState, parentContext) {
409
+ resumableState = getSuspenseViewTransition(parentContext.viewTransition);
410
+ var subtreeScope = parentContext.tagScope | 16;
411
+ null !== resumableState &&
412
+ "none" !== resumableState.share &&
413
+ (subtreeScope |= 64);
414
+ return createFormatContext(
415
+ parentContext.insertionMode,
416
+ parentContext.selectedValue,
417
+ subtreeScope,
418
+ resumableState
419
+ );
371
420
  }
372
421
  var styleNameCache = new Map();
373
422
  function pushStyleAttribute(target, style) {
@@ -678,13 +727,25 @@ function flattenOptionChildren(children) {
678
727
  return content;
679
728
  }
680
729
  function injectFormReplayingRuntime(resumableState, renderState) {
681
- 0 === (resumableState.instructions & 16) &&
682
- ((resumableState.instructions |= 16),
683
- renderState.bootstrapChunks.unshift(
684
- renderState.startInlineScript,
685
- '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))}});',
686
- "\x3c/script>"
687
- ));
730
+ if (0 === (resumableState.instructions & 16)) {
731
+ resumableState.instructions |= 16;
732
+ var preamble = renderState.preamble,
733
+ bootstrapChunks = renderState.bootstrapChunks;
734
+ (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
735
+ ? (bootstrapChunks.push(renderState.startInlineScript),
736
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
737
+ bootstrapChunks.push(
738
+ ">",
739
+ '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))}});',
740
+ "\x3c/script>"
741
+ ))
742
+ : bootstrapChunks.unshift(
743
+ renderState.startInlineScript,
744
+ ">",
745
+ '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))}});',
746
+ "\x3c/script>"
747
+ );
748
+ }
688
749
  }
689
750
  function pushLinkImpl(target, props) {
690
751
  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":
@@ -1335,9 +1395,11 @@ function pushStartInstance(
1335
1395
  } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
1336
1396
  return JSCompiler_inline_result$jscomp$2;
1337
1397
  case "title":
1398
+ var noscriptTagInScope = formatContext.tagScope & 1,
1399
+ isFallback = formatContext.tagScope & 4;
1338
1400
  if (
1339
1401
  4 === formatContext.insertionMode ||
1340
- formatContext.tagScope & 1 ||
1402
+ noscriptTagInScope ||
1341
1403
  null != props.itemProp
1342
1404
  )
1343
1405
  var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
@@ -1351,12 +1413,14 @@ function pushStartInstance(
1351
1413
  (JSCompiler_inline_result$jscomp$3 = void 0));
1352
1414
  return JSCompiler_inline_result$jscomp$3;
1353
1415
  case "link":
1354
- var rel = props.rel,
1416
+ var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
1417
+ isFallback$jscomp$0 = formatContext.tagScope & 4,
1418
+ rel = props.rel,
1355
1419
  href = props.href,
1356
1420
  precedence = props.precedence;
1357
1421
  if (
1358
1422
  4 === formatContext.insertionMode ||
1359
- formatContext.tagScope & 1 ||
1423
+ noscriptTagInScope$jscomp$0 ||
1360
1424
  null != props.itemProp ||
1361
1425
  "string" !== typeof rel ||
1362
1426
  "string" !== typeof href ||
@@ -1423,12 +1487,13 @@ function pushStartInstance(
1423
1487
  props
1424
1488
  ))
1425
1489
  : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
1426
- (JSCompiler_inline_result$jscomp$4 = isFallback
1490
+ (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
1427
1491
  ? null
1428
1492
  : pushLinkImpl(renderState.hoistableChunks, props)));
1429
1493
  return JSCompiler_inline_result$jscomp$4;
1430
1494
  case "script":
1431
- var asyncProp = props.async;
1495
+ var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
1496
+ asyncProp = props.async;
1432
1497
  if (
1433
1498
  "string" !== typeof props.src ||
1434
1499
  !props.src ||
@@ -1438,7 +1503,7 @@ function pushStartInstance(
1438
1503
  props.onLoad ||
1439
1504
  props.onError ||
1440
1505
  4 === formatContext.insertionMode ||
1441
- formatContext.tagScope & 1 ||
1506
+ noscriptTagInScope$jscomp$1 ||
1442
1507
  null != props.itemProp
1443
1508
  )
1444
1509
  var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
@@ -1475,11 +1540,13 @@ function pushStartInstance(
1475
1540
  }
1476
1541
  return JSCompiler_inline_result$jscomp$5;
1477
1542
  case "style":
1478
- var precedence$jscomp$0 = props.precedence,
1479
- href$jscomp$0 = props.href;
1543
+ var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
1544
+ precedence$jscomp$0 = props.precedence,
1545
+ href$jscomp$0 = props.href,
1546
+ nonce = props.nonce;
1480
1547
  if (
1481
1548
  4 === formatContext.insertionMode ||
1482
- formatContext.tagScope & 1 ||
1549
+ noscriptTagInScope$jscomp$2 ||
1483
1550
  null != props.itemProp ||
1484
1551
  "string" !== typeof precedence$jscomp$0 ||
1485
1552
  "string" !== typeof href$jscomp$0 ||
@@ -1531,46 +1598,47 @@ function pushStartInstance(
1531
1598
  : void 0)
1532
1599
  ) {
1533
1600
  resumableState.styleResources[href$jscomp$0] = null;
1534
- styleQueue$jscomp$0
1535
- ? styleQueue$jscomp$0.hrefs.push(
1536
- escapeTextForBrowser(href$jscomp$0)
1537
- )
1538
- : ((styleQueue$jscomp$0 = {
1539
- precedence: escapeTextForBrowser(precedence$jscomp$0),
1540
- rules: [],
1541
- hrefs: [escapeTextForBrowser(href$jscomp$0)],
1542
- sheets: new Map()
1543
- }),
1544
- renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
1545
- var target = styleQueue$jscomp$0.rules,
1546
- children$jscomp$7 = null,
1547
- innerHTML$jscomp$6 = null,
1548
- propKey$jscomp$9;
1549
- for (propKey$jscomp$9 in props)
1550
- if (hasOwnProperty.call(props, propKey$jscomp$9)) {
1551
- var propValue$jscomp$9 = props[propKey$jscomp$9];
1552
- if (null != propValue$jscomp$9)
1553
- switch (propKey$jscomp$9) {
1554
- case "children":
1555
- children$jscomp$7 = propValue$jscomp$9;
1556
- break;
1557
- case "dangerouslySetInnerHTML":
1558
- innerHTML$jscomp$6 = propValue$jscomp$9;
1559
- }
1560
- }
1561
- var child$jscomp$0 = Array.isArray(children$jscomp$7)
1562
- ? 2 > children$jscomp$7.length
1563
- ? children$jscomp$7[0]
1564
- : null
1565
- : children$jscomp$7;
1566
- "function" !== typeof child$jscomp$0 &&
1567
- "symbol" !== typeof child$jscomp$0 &&
1568
- null !== child$jscomp$0 &&
1569
- void 0 !== child$jscomp$0 &&
1570
- target.push(
1571
- ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
1572
- );
1573
- pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
1601
+ styleQueue$jscomp$0 ||
1602
+ ((styleQueue$jscomp$0 = {
1603
+ precedence: escapeTextForBrowser(precedence$jscomp$0),
1604
+ rules: [],
1605
+ hrefs: [],
1606
+ sheets: new Map()
1607
+ }),
1608
+ renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
1609
+ var nonceStyle = renderState.nonce.style;
1610
+ if (!nonceStyle || nonceStyle === nonce) {
1611
+ styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));
1612
+ var target = styleQueue$jscomp$0.rules,
1613
+ children$jscomp$7 = null,
1614
+ innerHTML$jscomp$6 = null,
1615
+ propKey$jscomp$9;
1616
+ for (propKey$jscomp$9 in props)
1617
+ if (hasOwnProperty.call(props, propKey$jscomp$9)) {
1618
+ var propValue$jscomp$9 = props[propKey$jscomp$9];
1619
+ if (null != propValue$jscomp$9)
1620
+ switch (propKey$jscomp$9) {
1621
+ case "children":
1622
+ children$jscomp$7 = propValue$jscomp$9;
1623
+ break;
1624
+ case "dangerouslySetInnerHTML":
1625
+ innerHTML$jscomp$6 = propValue$jscomp$9;
1626
+ }
1627
+ }
1628
+ var child$jscomp$0 = Array.isArray(children$jscomp$7)
1629
+ ? 2 > children$jscomp$7.length
1630
+ ? children$jscomp$7[0]
1631
+ : null
1632
+ : children$jscomp$7;
1633
+ "function" !== typeof child$jscomp$0 &&
1634
+ "symbol" !== typeof child$jscomp$0 &&
1635
+ null !== child$jscomp$0 &&
1636
+ void 0 !== child$jscomp$0 &&
1637
+ target.push(
1638
+ ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
1639
+ );
1640
+ pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
1641
+ }
1574
1642
  }
1575
1643
  styleQueue$jscomp$0 &&
1576
1644
  hoistableState &&
@@ -1580,9 +1648,11 @@ function pushStartInstance(
1580
1648
  }
1581
1649
  return JSCompiler_inline_result$jscomp$6;
1582
1650
  case "meta":
1651
+ var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
1652
+ isFallback$jscomp$1 = formatContext.tagScope & 4;
1583
1653
  if (
1584
1654
  4 === formatContext.insertionMode ||
1585
- formatContext.tagScope & 1 ||
1655
+ noscriptTagInScope$jscomp$3 ||
1586
1656
  null != props.itemProp
1587
1657
  )
1588
1658
  var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
@@ -1592,7 +1662,7 @@ function pushStartInstance(
1592
1662
  );
1593
1663
  else
1594
1664
  textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
1595
- (JSCompiler_inline_result$jscomp$7 = isFallback
1665
+ (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
1596
1666
  ? null
1597
1667
  : "string" === typeof props.charSet
1598
1668
  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
@@ -1650,17 +1720,18 @@ function pushStartInstance(
1650
1720
  target$jscomp$0.push("\n");
1651
1721
  return children$jscomp$8;
1652
1722
  case "img":
1653
- var src = props.src,
1723
+ var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
1724
+ src = props.src,
1654
1725
  srcSet = props.srcSet;
1655
1726
  if (
1656
1727
  !(
1657
1728
  "lazy" === props.loading ||
1658
1729
  (!src && !srcSet) ||
1659
1730
  ("string" !== typeof src && null != src) ||
1660
- ("string" !== typeof srcSet && null != srcSet)
1731
+ ("string" !== typeof srcSet && null != srcSet) ||
1732
+ "low" === props.fetchPriority ||
1733
+ pictureOrNoScriptTagInScope
1661
1734
  ) &&
1662
- "low" !== props.fetchPriority &&
1663
- !1 === !!(formatContext.tagScope & 3) &&
1664
1735
  ("string" !== typeof src ||
1665
1736
  ":" !== src[4] ||
1666
1737
  ("d" !== src[0] && "D" !== src[0]) ||
@@ -1674,6 +1745,9 @@ function pushStartInstance(
1674
1745
  ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
1675
1746
  ("a" !== srcSet[3] && "A" !== srcSet[3]))
1676
1747
  ) {
1748
+ null !== hoistableState &&
1749
+ formatContext.tagScope & 64 &&
1750
+ (hoistableState.suspenseyImages = !0);
1677
1751
  var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
1678
1752
  key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
1679
1753
  promotablePreloads = renderState.preloads.images,
@@ -1764,6 +1838,7 @@ function pushStartInstance(
1764
1838
  var preamble = preambleState || renderState.preamble;
1765
1839
  if (preamble.headChunks)
1766
1840
  throw Error("The `<head>` tag may only be rendered once.");
1841
+ null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
1767
1842
  preamble.headChunks = [];
1768
1843
  var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
1769
1844
  preamble.headChunks,
@@ -1782,6 +1857,7 @@ function pushStartInstance(
1782
1857
  var preamble$jscomp$0 = preambleState || renderState.preamble;
1783
1858
  if (preamble$jscomp$0.bodyChunks)
1784
1859
  throw Error("The `<body>` tag may only be rendered once.");
1860
+ null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
1785
1861
  preamble$jscomp$0.bodyChunks = [];
1786
1862
  var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
1787
1863
  preamble$jscomp$0.bodyChunks,
@@ -1800,6 +1876,7 @@ function pushStartInstance(
1800
1876
  var preamble$jscomp$1 = preambleState || renderState.preamble;
1801
1877
  if (preamble$jscomp$1.htmlChunks)
1802
1878
  throw Error("The `<html>` tag may only be rendered once.");
1879
+ null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
1803
1880
  preamble$jscomp$1.htmlChunks = [""];
1804
1881
  var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
1805
1882
  preamble$jscomp$1.htmlChunks,
@@ -1877,16 +1954,13 @@ function hoistPreambleState(renderState, preambleState) {
1877
1954
  renderState = renderState.preamble;
1878
1955
  null === renderState.htmlChunks &&
1879
1956
  preambleState.htmlChunks &&
1880
- ((renderState.htmlChunks = preambleState.htmlChunks),
1881
- (preambleState.contribution |= 1));
1957
+ (renderState.htmlChunks = preambleState.htmlChunks);
1882
1958
  null === renderState.headChunks &&
1883
1959
  preambleState.headChunks &&
1884
- ((renderState.headChunks = preambleState.headChunks),
1885
- (preambleState.contribution |= 4));
1960
+ (renderState.headChunks = preambleState.headChunks);
1886
1961
  null === renderState.bodyChunks &&
1887
1962
  preambleState.bodyChunks &&
1888
- ((renderState.bodyChunks = preambleState.bodyChunks),
1889
- (preambleState.contribution |= 2));
1963
+ (renderState.bodyChunks = preambleState.bodyChunks);
1890
1964
  }
1891
1965
  function writeBootstrap(destination, renderState) {
1892
1966
  renderState = renderState.bootstrapChunks;
@@ -1907,13 +1981,6 @@ function writeStartPendingSuspenseBoundary(destination, renderState, id) {
1907
1981
  destination.push(renderState);
1908
1982
  return destination.push('"></template>');
1909
1983
  }
1910
- function writePreambleContribution(destination, preambleState) {
1911
- preambleState = preambleState.contribution;
1912
- 0 !== preambleState &&
1913
- (destination.push("\x3c!--"),
1914
- destination.push("" + preambleState),
1915
- destination.push("--\x3e"));
1916
- }
1917
1984
  function writeStartSegment(destination, renderState, formatContext, id) {
1918
1985
  switch (formatContext.insertionMode) {
1919
1986
  case 0:
@@ -2053,7 +2120,8 @@ function flushStyleTagsLateForBoundary(styleQueue) {
2053
2120
  hrefs = styleQueue.hrefs,
2054
2121
  i = 0;
2055
2122
  if (hrefs.length) {
2056
- this.push('<style media="not all" data-precedence="');
2123
+ this.push(currentlyFlushingRenderState.startInlineStyle);
2124
+ this.push(' media="not all" data-precedence="');
2057
2125
  this.push(styleQueue.precedence);
2058
2126
  for (this.push('" data-href="'); i < hrefs.length - 1; i++)
2059
2127
  this.push(hrefs[i]), this.push(" ");
@@ -2074,7 +2142,9 @@ function hasStylesToHoist(stylesheet) {
2074
2142
  function writeHoistablesForBoundary(destination, hoistableState, renderState) {
2075
2143
  currentlyRenderingBoundaryHasStylesToHoist = !1;
2076
2144
  destinationHasCapacity = !0;
2145
+ currentlyFlushingRenderState = renderState;
2077
2146
  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
2147
+ currentlyFlushingRenderState = null;
2078
2148
  hoistableState.stylesheets.forEach(hasStylesToHoist);
2079
2149
  currentlyRenderingBoundaryHasStylesToHoist &&
2080
2150
  (renderState.stylesToHoist = !0);
@@ -2099,7 +2169,8 @@ function flushStylesInPreamble(styleQueue) {
2099
2169
  var rules = styleQueue.rules,
2100
2170
  hrefs = styleQueue.hrefs;
2101
2171
  if (!hasStylesheets || hrefs.length) {
2102
- this.push('<style data-precedence="');
2172
+ this.push(currentlyFlushingRenderState.startInlineStyle);
2173
+ this.push(' data-precedence="');
2103
2174
  this.push(styleQueue.precedence);
2104
2175
  styleQueue = 0;
2105
2176
  if (hrefs.length) {
@@ -2147,6 +2218,15 @@ function preloadLateStyles(styleQueue) {
2147
2218
  styleQueue.sheets.forEach(preloadLateStyle, this);
2148
2219
  styleQueue.sheets.clear();
2149
2220
  }
2221
+ function pushCompletedShellIdAttribute(target, resumableState) {
2222
+ 0 === (resumableState.instructions & 32) &&
2223
+ ((resumableState.instructions |= 32),
2224
+ target.push(
2225
+ ' id="',
2226
+ escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
2227
+ '"'
2228
+ ));
2229
+ }
2150
2230
  function writeStyleResourceDependenciesInJS(destination, hoistableState) {
2151
2231
  destination.push("[");
2152
2232
  var nextArrayOpenBrackChunk = "[";
@@ -2247,7 +2327,7 @@ function writeStyleResourceAttributeInJS(destination, name, value) {
2247
2327
  destination.push(attributeName);
2248
2328
  }
2249
2329
  function createHoistableState() {
2250
- return { styles: new Set(), stylesheets: new Set() };
2330
+ return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
2251
2331
  }
2252
2332
  function prefetchDNS(href) {
2253
2333
  var request = currentRequest ? currentRequest : null;
@@ -2652,6 +2732,11 @@ function hoistStyleQueueDependency(styleQueue) {
2652
2732
  function hoistStylesheetDependency(stylesheet) {
2653
2733
  this.stylesheets.add(stylesheet);
2654
2734
  }
2735
+ function hoistHoistables(parentState, childState) {
2736
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
2737
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
2738
+ childState.suspenseyImages && (parentState.suspenseyImages = !0);
2739
+ }
2655
2740
  function createRenderState(resumableState, generateStaticMarkup) {
2656
2741
  var idPrefix = resumableState.idPrefix,
2657
2742
  bootstrapChunks = [],
@@ -2659,23 +2744,24 @@ function createRenderState(resumableState, generateStaticMarkup) {
2659
2744
  bootstrapScripts = resumableState.bootstrapScripts,
2660
2745
  bootstrapModules = resumableState.bootstrapModules;
2661
2746
  void 0 !== bootstrapScriptContent &&
2747
+ (bootstrapChunks.push("<script"),
2748
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
2662
2749
  bootstrapChunks.push(
2663
- "<script>",
2750
+ ">",
2664
2751
  ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer),
2665
2752
  "\x3c/script>"
2666
- );
2753
+ ));
2667
2754
  bootstrapScriptContent = idPrefix + "P:";
2668
- var JSCompiler_object_inline_segmentPrefix_1542 = idPrefix + "S:";
2755
+ var JSCompiler_object_inline_segmentPrefix_1673 = idPrefix + "S:";
2669
2756
  idPrefix += "B:";
2670
- var JSCompiler_object_inline_preamble_1545 = createPreambleState(),
2671
- JSCompiler_object_inline_preconnects_1555 = new Set(),
2672
- JSCompiler_object_inline_fontPreloads_1556 = new Set(),
2673
- JSCompiler_object_inline_highImagePreloads_1557 = new Set(),
2674
- JSCompiler_object_inline_styles_1558 = new Map(),
2675
- JSCompiler_object_inline_bootstrapScripts_1559 = new Set(),
2676
- JSCompiler_object_inline_scripts_1560 = new Set(),
2677
- JSCompiler_object_inline_bulkPreloads_1561 = new Set(),
2678
- JSCompiler_object_inline_preloads_1562 = {
2757
+ var JSCompiler_object_inline_preconnects_1687 = new Set(),
2758
+ JSCompiler_object_inline_fontPreloads_1688 = new Set(),
2759
+ JSCompiler_object_inline_highImagePreloads_1689 = new Set(),
2760
+ JSCompiler_object_inline_styles_1690 = new Map(),
2761
+ JSCompiler_object_inline_bootstrapScripts_1691 = new Set(),
2762
+ JSCompiler_object_inline_scripts_1692 = new Set(),
2763
+ JSCompiler_object_inline_bulkPreloads_1693 = new Set(),
2764
+ JSCompiler_object_inline_preloads_1694 = {
2679
2765
  images: new Map(),
2680
2766
  stylesheets: new Map(),
2681
2767
  scripts: new Map(),
@@ -2712,16 +2798,22 @@ function createRenderState(resumableState, generateStaticMarkup) {
2712
2798
  scriptConfig.moduleScriptResources[href] = null;
2713
2799
  scriptConfig = [];
2714
2800
  pushLinkImpl(scriptConfig, props);
2715
- JSCompiler_object_inline_bootstrapScripts_1559.add(scriptConfig);
2716
- bootstrapChunks.push('<script src="', escapeTextForBrowser(src));
2801
+ JSCompiler_object_inline_bootstrapScripts_1691.add(scriptConfig);
2802
+ bootstrapChunks.push('<script src="', escapeTextForBrowser(src), '"');
2717
2803
  "string" === typeof integrity &&
2718
- bootstrapChunks.push('" integrity="', escapeTextForBrowser(integrity));
2804
+ bootstrapChunks.push(
2805
+ ' integrity="',
2806
+ escapeTextForBrowser(integrity),
2807
+ '"'
2808
+ );
2719
2809
  "string" === typeof crossOrigin &&
2720
2810
  bootstrapChunks.push(
2721
- '" crossorigin="',
2722
- escapeTextForBrowser(crossOrigin)
2811
+ ' crossorigin="',
2812
+ escapeTextForBrowser(crossOrigin),
2813
+ '"'
2723
2814
  );
2724
- bootstrapChunks.push('" async="">\x3c/script>');
2815
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState);
2816
+ bootstrapChunks.push(' async="">\x3c/script>');
2725
2817
  }
2726
2818
  if (void 0 !== bootstrapModules)
2727
2819
  for (
@@ -2753,25 +2845,33 @@ function createRenderState(resumableState, generateStaticMarkup) {
2753
2845
  (props.moduleScriptResources[scriptConfig] = null),
2754
2846
  (props = []),
2755
2847
  pushLinkImpl(props, integrity),
2756
- JSCompiler_object_inline_bootstrapScripts_1559.add(props),
2848
+ JSCompiler_object_inline_bootstrapScripts_1691.add(props),
2757
2849
  bootstrapChunks.push(
2758
2850
  '<script type="module" src="',
2759
- escapeTextForBrowser(i)
2851
+ escapeTextForBrowser(i),
2852
+ '"'
2760
2853
  ),
2761
2854
  "string" === typeof crossOrigin &&
2762
2855
  bootstrapChunks.push(
2763
- '" integrity="',
2764
- escapeTextForBrowser(crossOrigin)
2856
+ ' integrity="',
2857
+ escapeTextForBrowser(crossOrigin),
2858
+ '"'
2765
2859
  ),
2766
2860
  "string" === typeof src &&
2767
- bootstrapChunks.push('" crossorigin="', escapeTextForBrowser(src)),
2768
- bootstrapChunks.push('" async="">\x3c/script>');
2861
+ bootstrapChunks.push(
2862
+ ' crossorigin="',
2863
+ escapeTextForBrowser(src),
2864
+ '"'
2865
+ ),
2866
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
2867
+ bootstrapChunks.push(' async="">\x3c/script>');
2769
2868
  return {
2770
2869
  placeholderPrefix: bootstrapScriptContent,
2771
- segmentPrefix: JSCompiler_object_inline_segmentPrefix_1542,
2870
+ segmentPrefix: JSCompiler_object_inline_segmentPrefix_1673,
2772
2871
  boundaryPrefix: idPrefix,
2773
- startInlineScript: "<script>",
2774
- preamble: JSCompiler_object_inline_preamble_1545,
2872
+ startInlineScript: "<script",
2873
+ startInlineStyle: "<style",
2874
+ preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
2775
2875
  externalRuntimeScript: null,
2776
2876
  bootstrapChunks: bootstrapChunks,
2777
2877
  importMapChunks: [],
@@ -2787,14 +2887,15 @@ function createRenderState(resumableState, generateStaticMarkup) {
2787
2887
  charsetChunks: [],
2788
2888
  viewportChunks: [],
2789
2889
  hoistableChunks: [],
2790
- preconnects: JSCompiler_object_inline_preconnects_1555,
2791
- fontPreloads: JSCompiler_object_inline_fontPreloads_1556,
2792
- highImagePreloads: JSCompiler_object_inline_highImagePreloads_1557,
2793
- styles: JSCompiler_object_inline_styles_1558,
2794
- bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1559,
2795
- scripts: JSCompiler_object_inline_scripts_1560,
2796
- bulkPreloads: JSCompiler_object_inline_bulkPreloads_1561,
2797
- preloads: JSCompiler_object_inline_preloads_1562,
2890
+ preconnects: JSCompiler_object_inline_preconnects_1687,
2891
+ fontPreloads: JSCompiler_object_inline_fontPreloads_1688,
2892
+ highImagePreloads: JSCompiler_object_inline_highImagePreloads_1689,
2893
+ styles: JSCompiler_object_inline_styles_1690,
2894
+ bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1691,
2895
+ scripts: JSCompiler_object_inline_scripts_1692,
2896
+ bulkPreloads: JSCompiler_object_inline_bulkPreloads_1693,
2897
+ preloads: JSCompiler_object_inline_preloads_1694,
2898
+ nonce: { script: void 0, style: void 0 },
2798
2899
  stylesToHoist: !1,
2799
2900
  generateStaticMarkup: generateStaticMarkup
2800
2901
  };
@@ -2841,7 +2942,7 @@ function getComponentNameFromType(type) {
2841
2942
  case REACT_PORTAL_TYPE:
2842
2943
  return "Portal";
2843
2944
  case REACT_CONTEXT_TYPE:
2844
- return (type.displayName || "Context") + ".Provider";
2945
+ return type.displayName || "Context";
2845
2946
  case REACT_CONSUMER_TYPE:
2846
2947
  return (type._context.displayName || "Context") + ".Consumer";
2847
2948
  case REACT_FORWARD_REF_TYPE:
@@ -2983,15 +3084,15 @@ function clz32Fallback(x) {
2983
3084
  x >>>= 0;
2984
3085
  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
2985
3086
  }
3087
+ function noop() {}
2986
3088
  var SuspenseException = Error(
2987
3089
  "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
2988
3090
  );
2989
- function noop$2() {}
2990
3091
  function trackUsedThenable(thenableState, thenable, index) {
2991
3092
  index = thenableState[index];
2992
3093
  void 0 === index
2993
3094
  ? thenableState.push(thenable)
2994
- : index !== thenable && (thenable.then(noop$2, noop$2), (thenable = index));
3095
+ : index !== thenable && (thenable.then(noop, noop), (thenable = index));
2995
3096
  switch (thenable.status) {
2996
3097
  case "fulfilled":
2997
3098
  return thenable.value;
@@ -2999,7 +3100,7 @@ function trackUsedThenable(thenableState, thenable, index) {
2999
3100
  throw thenable.reason;
3000
3101
  default:
3001
3102
  "string" === typeof thenable.status
3002
- ? thenable.then(noop$2, noop$2)
3103
+ ? thenable.then(noop, noop)
3003
3104
  : ((thenableState = thenable),
3004
3105
  (thenableState.status = "pending"),
3005
3106
  thenableState.then(
@@ -3179,6 +3280,11 @@ function dispatchAction(componentIdentity, queue, action) {
3179
3280
  queue.next = componentIdentity;
3180
3281
  }
3181
3282
  }
3283
+ function throwOnUseEffectEventCall() {
3284
+ throw Error(
3285
+ "A function wrapped in useEffectEvent can't be called during rendering."
3286
+ );
3287
+ }
3182
3288
  function unsupportedStartTransition() {
3183
3289
  throw Error("startTransition cannot be called during server rendering.");
3184
3290
  }
@@ -3256,7 +3362,6 @@ function unwrapThenable(thenable) {
3256
3362
  function unsupportedRefresh() {
3257
3363
  throw Error("Cache cannot be refreshed during server rendering.");
3258
3364
  }
3259
- function noop$1() {}
3260
3365
  var HooksDispatcher = {
3261
3366
  readContext: function (context) {
3262
3367
  return context._currentValue2;
@@ -3287,16 +3392,16 @@ var HooksDispatcher = {
3287
3392
  useState: function (initialState) {
3288
3393
  return useReducer(basicStateReducer, initialState);
3289
3394
  },
3290
- useInsertionEffect: noop$1,
3291
- useLayoutEffect: noop$1,
3395
+ useInsertionEffect: noop,
3396
+ useLayoutEffect: noop,
3292
3397
  useCallback: function (callback, deps) {
3293
3398
  return useMemo(function () {
3294
3399
  return callback;
3295
3400
  }, deps);
3296
3401
  },
3297
- useImperativeHandle: noop$1,
3298
- useEffect: noop$1,
3299
- useDebugValue: noop$1,
3402
+ useImperativeHandle: noop,
3403
+ useEffect: noop,
3404
+ useDebugValue: noop,
3300
3405
  useDeferredValue: function (value, initialValue) {
3301
3406
  resolveCurrentlyRenderingComponent();
3302
3407
  return void 0 !== initialValue ? initialValue : value;
@@ -3321,9 +3426,9 @@ var HooksDispatcher = {
3321
3426
  );
3322
3427
  overflow = localIdCounter++;
3323
3428
  JSCompiler_inline_result =
3324
- "\u00ab" + resumableState.idPrefix + "R" + JSCompiler_inline_result;
3429
+ "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
3325
3430
  0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
3326
- return JSCompiler_inline_result + "\u00bb";
3431
+ return JSCompiler_inline_result + "_";
3327
3432
  },
3328
3433
  useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
3329
3434
  if (void 0 === getServerSnapshot)
@@ -3349,12 +3454,18 @@ var HooksDispatcher = {
3349
3454
  },
3350
3455
  useCacheRefresh: function () {
3351
3456
  return unsupportedRefresh;
3457
+ },
3458
+ useEffectEvent: function () {
3459
+ return throwOnUseEffectEventCall;
3352
3460
  }
3353
3461
  },
3354
3462
  currentResumableState = null,
3355
3463
  DefaultAsyncDispatcher = {
3356
3464
  getCacheForType: function () {
3357
3465
  throw Error("Not implemented.");
3466
+ },
3467
+ cacheSignal: function () {
3468
+ throw Error("Not implemented.");
3358
3469
  }
3359
3470
  },
3360
3471
  prefix,
@@ -3532,13 +3643,37 @@ function describeComponentStackByType(type) {
3532
3643
  }
3533
3644
  return describeComponentStackByType(type);
3534
3645
  }
3535
- if ("string" === typeof type.name)
3536
- return (
3537
- (payload = type.env),
3538
- describeBuiltInComponentFrame(
3539
- type.name + (payload ? " [" + payload + "]" : "")
3540
- )
3541
- );
3646
+ if ("string" === typeof type.name) {
3647
+ a: {
3648
+ payload = type.name;
3649
+ lazyComponent = type.env;
3650
+ var location = type.debugLocation;
3651
+ if (
3652
+ null != location &&
3653
+ ((type = Error.prepareStackTrace),
3654
+ (Error.prepareStackTrace = void 0),
3655
+ (location = location.stack),
3656
+ (Error.prepareStackTrace = type),
3657
+ location.startsWith("Error: react-stack-top-frame\n") &&
3658
+ (location = location.slice(29)),
3659
+ (type = location.indexOf("\n")),
3660
+ -1 !== type && (location = location.slice(type + 1)),
3661
+ (type = location.indexOf("react_stack_bottom_frame")),
3662
+ -1 !== type && (type = location.lastIndexOf("\n", type)),
3663
+ (type = -1 !== type ? (location = location.slice(0, type)) : ""),
3664
+ (location = type.lastIndexOf("\n")),
3665
+ (type = -1 === location ? type : type.slice(location + 1)),
3666
+ -1 !== type.indexOf(payload))
3667
+ ) {
3668
+ payload = "\n" + type;
3669
+ break a;
3670
+ }
3671
+ payload = describeBuiltInComponentFrame(
3672
+ payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
3673
+ );
3674
+ }
3675
+ return payload;
3676
+ }
3542
3677
  }
3543
3678
  switch (type) {
3544
3679
  case REACT_SUSPENSE_LIST_TYPE:
@@ -3548,6 +3683,9 @@ function describeComponentStackByType(type) {
3548
3683
  }
3549
3684
  return "";
3550
3685
  }
3686
+ function isEligibleForOutlining(request, boundary) {
3687
+ return (500 < boundary.byteSize || !1) && null === boundary.contentPreamble;
3688
+ }
3551
3689
  function defaultErrorHandler(error) {
3552
3690
  if (
3553
3691
  "object" === typeof error &&
@@ -3563,14 +3701,13 @@ function defaultErrorHandler(error) {
3563
3701
  "[%s] " + error[0],
3564
3702
  " " + JSCompiler_inline_result + " "
3565
3703
  )
3566
- : error.splice(0, 0, "[%s] ", " " + JSCompiler_inline_result + " ");
3704
+ : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " ");
3567
3705
  error.unshift(console);
3568
3706
  JSCompiler_inline_result = bind.apply(console.error, error);
3569
3707
  JSCompiler_inline_result();
3570
3708
  } else console.error(error);
3571
3709
  return null;
3572
3710
  }
3573
- function noop() {}
3574
3711
  function RequestInstance(
3575
3712
  resumableState,
3576
3713
  renderState,
@@ -3596,6 +3733,7 @@ function RequestInstance(
3596
3733
  this.fatalError = null;
3597
3734
  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
3598
3735
  this.completedPreambleSegments = this.completedRootSegment = null;
3736
+ this.byteSize = 0;
3599
3737
  this.abortableTasks = abortSet;
3600
3738
  this.pingedTasks = [];
3601
3739
  this.clientRenderedBoundaries = [];
@@ -3661,7 +3799,7 @@ function createRequest(
3661
3799
  null,
3662
3800
  emptyTreeContext,
3663
3801
  null,
3664
- !1
3802
+ null
3665
3803
  );
3666
3804
  pushComponentStack(children);
3667
3805
  resumableState.pingedTasks.push(children);
@@ -3676,15 +3814,17 @@ function pingTask(request, task) {
3676
3814
  }
3677
3815
  function createSuspenseBoundary(
3678
3816
  request,
3817
+ row,
3679
3818
  fallbackAbortableTasks,
3680
3819
  contentPreamble,
3681
3820
  fallbackPreamble
3682
3821
  ) {
3683
- return {
3822
+ fallbackAbortableTasks = {
3684
3823
  status: 0,
3685
3824
  rootSegmentID: -1,
3686
3825
  parentFlushed: !1,
3687
3826
  pendingTasks: 0,
3827
+ row: row,
3688
3828
  completedSegments: [],
3689
3829
  byteSize: 0,
3690
3830
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -3696,6 +3836,17 @@ function createSuspenseBoundary(
3696
3836
  trackedContentKeyPath: null,
3697
3837
  trackedFallbackNode: null
3698
3838
  };
3839
+ null !== row &&
3840
+ (row.pendingTasks++,
3841
+ (contentPreamble = row.boundaries),
3842
+ null !== contentPreamble &&
3843
+ (request.allPendingTasks++,
3844
+ fallbackAbortableTasks.pendingTasks++,
3845
+ contentPreamble.push(fallbackAbortableTasks)),
3846
+ (request = row.inheritedHoistables),
3847
+ null !== request &&
3848
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
3849
+ return fallbackAbortableTasks;
3699
3850
  }
3700
3851
  function createRenderTask(
3701
3852
  request,
@@ -3711,13 +3862,14 @@ function createRenderTask(
3711
3862
  formatContext,
3712
3863
  context,
3713
3864
  treeContext,
3714
- componentStack,
3715
- isFallback
3865
+ row,
3866
+ componentStack
3716
3867
  ) {
3717
3868
  request.allPendingTasks++;
3718
3869
  null === blockedBoundary
3719
3870
  ? request.pendingRootTasks++
3720
3871
  : blockedBoundary.pendingTasks++;
3872
+ null !== row && row.pendingTasks++;
3721
3873
  var task = {
3722
3874
  replay: null,
3723
3875
  node: node,
@@ -3734,9 +3886,9 @@ function createRenderTask(
3734
3886
  formatContext: formatContext,
3735
3887
  context: context,
3736
3888
  treeContext: treeContext,
3889
+ row: row,
3737
3890
  componentStack: componentStack,
3738
- thenableState: thenableState,
3739
- isFallback: isFallback
3891
+ thenableState: thenableState
3740
3892
  };
3741
3893
  abortSet.add(task);
3742
3894
  return task;
@@ -3754,13 +3906,14 @@ function createReplayTask(
3754
3906
  formatContext,
3755
3907
  context,
3756
3908
  treeContext,
3757
- componentStack,
3758
- isFallback
3909
+ row,
3910
+ componentStack
3759
3911
  ) {
3760
3912
  request.allPendingTasks++;
3761
3913
  null === blockedBoundary
3762
3914
  ? request.pendingRootTasks++
3763
3915
  : blockedBoundary.pendingTasks++;
3916
+ null !== row && row.pendingTasks++;
3764
3917
  replay.pendingTasks++;
3765
3918
  var task = {
3766
3919
  replay: replay,
@@ -3778,9 +3931,9 @@ function createReplayTask(
3778
3931
  formatContext: formatContext,
3779
3932
  context: context,
3780
3933
  treeContext: treeContext,
3934
+ row: row,
3781
3935
  componentStack: componentStack,
3782
- thenableState: thenableState,
3783
- isFallback: isFallback
3936
+ thenableState: thenableState
3784
3937
  };
3785
3938
  abortSet.add(task);
3786
3939
  return task;
@@ -3815,6 +3968,13 @@ function pushComponentStack(task) {
3815
3968
  task.componentStack = { parent: task.componentStack, type: node.type };
3816
3969
  }
3817
3970
  }
3971
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
3972
+ componentStack
3973
+ ) {
3974
+ return null === componentStack
3975
+ ? null
3976
+ : { parent: componentStack.parent, type: "Suspense Fallback" };
3977
+ }
3818
3978
  function getThrownInfo(node$jscomp$0) {
3819
3979
  var errorInfo = {};
3820
3980
  node$jscomp$0 &&
@@ -3856,6 +4016,172 @@ function fatalError(request, error) {
3856
4016
  ? ((request.status = 14), request.destination.destroy(error))
3857
4017
  : ((request.status = 13), (request.fatalError = error));
3858
4018
  }
4019
+ function finishSuspenseListRow(request, row) {
4020
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4021
+ }
4022
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
4023
+ for (; null !== unblockedRow; ) {
4024
+ null !== inheritedHoistables &&
4025
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4026
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4027
+ var unblockedBoundaries = unblockedRow.boundaries;
4028
+ if (null !== unblockedBoundaries) {
4029
+ unblockedRow.boundaries = null;
4030
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4031
+ var unblockedBoundary = unblockedBoundaries[i];
4032
+ null !== inheritedHoistables &&
4033
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
4034
+ finishedTask(request, unblockedBoundary, null, null);
4035
+ }
4036
+ }
4037
+ unblockedRow.pendingTasks--;
4038
+ if (0 < unblockedRow.pendingTasks) break;
4039
+ inheritedHoistables = unblockedRow.hoistables;
4040
+ unblockedRow = unblockedRow.next;
4041
+ }
4042
+ }
4043
+ function tryToResolveTogetherRow(request, togetherRow) {
4044
+ var boundaries = togetherRow.boundaries;
4045
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
4046
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
4047
+ var rowBoundary = boundaries[i];
4048
+ if (
4049
+ 1 !== rowBoundary.pendingTasks ||
4050
+ rowBoundary.parentFlushed ||
4051
+ isEligibleForOutlining(request, rowBoundary)
4052
+ ) {
4053
+ allCompleteAndInlinable = !1;
4054
+ break;
4055
+ }
4056
+ }
4057
+ allCompleteAndInlinable &&
4058
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4059
+ }
4060
+ }
4061
+ function createSuspenseListRow(previousRow) {
4062
+ var newRow = {
4063
+ pendingTasks: 1,
4064
+ boundaries: null,
4065
+ hoistables: createHoistableState(),
4066
+ inheritedHoistables: null,
4067
+ together: !1,
4068
+ next: null
4069
+ };
4070
+ null !== previousRow &&
4071
+ 0 < previousRow.pendingTasks &&
4072
+ (newRow.pendingTasks++,
4073
+ (newRow.boundaries = []),
4074
+ (previousRow.next = newRow));
4075
+ return newRow;
4076
+ }
4077
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4078
+ var prevKeyPath = task.keyPath,
4079
+ prevTreeContext = task.treeContext,
4080
+ prevRow = task.row;
4081
+ task.keyPath = keyPath;
4082
+ keyPath = rows.length;
4083
+ var previousSuspenseListRow = null;
4084
+ if (null !== task.replay) {
4085
+ var resumeSlots = task.replay.slots;
4086
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4087
+ for (var n = 0; n < keyPath; n++) {
4088
+ var i =
4089
+ "backwards" !== revealOrder &&
4090
+ "unstable_legacy-backwards" !== revealOrder
4091
+ ? n
4092
+ : keyPath - 1 - n,
4093
+ node = rows[i];
4094
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4095
+ previousSuspenseListRow
4096
+ );
4097
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4098
+ var resumeSegmentID = resumeSlots[i];
4099
+ "number" === typeof resumeSegmentID
4100
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4101
+ delete resumeSlots[i])
4102
+ : renderNode(request, task, node, i);
4103
+ 0 === --previousSuspenseListRow.pendingTasks &&
4104
+ finishSuspenseListRow(request, previousSuspenseListRow);
4105
+ }
4106
+ else
4107
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4108
+ (n =
4109
+ "backwards" !== revealOrder &&
4110
+ "unstable_legacy-backwards" !== revealOrder
4111
+ ? resumeSlots
4112
+ : keyPath - 1 - resumeSlots),
4113
+ (i = rows[n]),
4114
+ (task.row = previousSuspenseListRow =
4115
+ createSuspenseListRow(previousSuspenseListRow)),
4116
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4117
+ renderNode(request, task, i, n),
4118
+ 0 === --previousSuspenseListRow.pendingTasks &&
4119
+ finishSuspenseListRow(request, previousSuspenseListRow);
4120
+ } else if (
4121
+ "backwards" !== revealOrder &&
4122
+ "unstable_legacy-backwards" !== revealOrder
4123
+ )
4124
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4125
+ (resumeSlots = rows[revealOrder]),
4126
+ (task.row = previousSuspenseListRow =
4127
+ createSuspenseListRow(previousSuspenseListRow)),
4128
+ (task.treeContext = pushTreeContext(
4129
+ prevTreeContext,
4130
+ keyPath,
4131
+ revealOrder
4132
+ )),
4133
+ renderNode(request, task, resumeSlots, revealOrder),
4134
+ 0 === --previousSuspenseListRow.pendingTasks &&
4135
+ finishSuspenseListRow(request, previousSuspenseListRow);
4136
+ else {
4137
+ revealOrder = task.blockedSegment;
4138
+ resumeSlots = revealOrder.children.length;
4139
+ n = revealOrder.chunks.length;
4140
+ for (i = keyPath - 1; 0 <= i; i--) {
4141
+ node = rows[i];
4142
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4143
+ previousSuspenseListRow
4144
+ );
4145
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4146
+ resumeSegmentID = createPendingSegment(
4147
+ request,
4148
+ n,
4149
+ null,
4150
+ task.formatContext,
4151
+ 0 === i ? revealOrder.lastPushedText : !0,
4152
+ !0
4153
+ );
4154
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4155
+ task.blockedSegment = resumeSegmentID;
4156
+ try {
4157
+ renderNode(request, task, node, i),
4158
+ pushSegmentFinale(
4159
+ resumeSegmentID.chunks,
4160
+ request.renderState,
4161
+ resumeSegmentID.lastPushedText,
4162
+ resumeSegmentID.textEmbedded
4163
+ ),
4164
+ (resumeSegmentID.status = 1),
4165
+ 0 === --previousSuspenseListRow.pendingTasks &&
4166
+ finishSuspenseListRow(request, previousSuspenseListRow);
4167
+ } catch (thrownValue) {
4168
+ throw (
4169
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4170
+ thrownValue)
4171
+ );
4172
+ }
4173
+ }
4174
+ task.blockedSegment = revealOrder;
4175
+ revealOrder.lastPushedText = !1;
4176
+ }
4177
+ null !== prevRow &&
4178
+ null !== previousSuspenseListRow &&
4179
+ 0 < previousSuspenseListRow.pendingTasks &&
4180
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4181
+ task.treeContext = prevTreeContext;
4182
+ task.row = prevRow;
4183
+ task.keyPath = prevKeyPath;
4184
+ }
3859
4185
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
3860
4186
  var prevThenableState = task.thenableState;
3861
4187
  task.thenableState = null;
@@ -3923,9 +4249,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
3923
4249
  var defaultProps = type.defaultProps;
3924
4250
  if (defaultProps) {
3925
4251
  newProps === props && (newProps = assign({}, newProps, props));
3926
- for (var propName$33 in defaultProps)
3927
- void 0 === newProps[propName$33] &&
3928
- (newProps[propName$33] = defaultProps[propName$33]);
4252
+ for (var propName$43 in defaultProps)
4253
+ void 0 === newProps[propName$43] &&
4254
+ (newProps[propName$43] = defaultProps[propName$43]);
3929
4255
  }
3930
4256
  props = newProps;
3931
4257
  newProps = emptyContextObject;
@@ -3985,16 +4311,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
3985
4311
  defaultProps = ref ? type[0] : newProps.state;
3986
4312
  initialState = !0;
3987
4313
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
3988
- (propName$33 = type[ref]),
3989
- (propName$33 =
3990
- "function" === typeof propName$33
3991
- ? propName$33.call(newProps, defaultProps, props, void 0)
3992
- : propName$33),
3993
- null != propName$33 &&
4314
+ (propName$43 = type[ref]),
4315
+ (propName$43 =
4316
+ "function" === typeof propName$43
4317
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4318
+ : propName$43),
4319
+ null != propName$43 &&
3994
4320
  (initialState
3995
4321
  ? ((initialState = !1),
3996
- (defaultProps = assign({}, defaultProps, propName$33)))
3997
- : assign(defaultProps, propName$33));
4322
+ (defaultProps = assign({}, defaultProps, propName$43)))
4323
+ : assign(defaultProps, propName$43));
3998
4324
  newProps.state = defaultProps;
3999
4325
  }
4000
4326
  else defaultProps.queue = null;
@@ -4028,7 +4354,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4028
4354
  (task.formatContext = defaultProps),
4029
4355
  (task.keyPath = initialState);
4030
4356
  else {
4031
- ref = pushStartInstance(
4357
+ initialState = pushStartInstance(
4032
4358
  newProps.chunks,
4033
4359
  type,
4034
4360
  props,
@@ -4037,47 +4363,43 @@ function renderElement(request, task, keyPath, type, props, ref) {
4037
4363
  task.blockedPreamble,
4038
4364
  task.hoistableState,
4039
4365
  task.formatContext,
4040
- newProps.lastPushedText,
4041
- task.isFallback
4366
+ newProps.lastPushedText
4042
4367
  );
4043
4368
  newProps.lastPushedText = !1;
4044
4369
  defaultProps = task.formatContext;
4045
- initialState = task.keyPath;
4370
+ ref = task.keyPath;
4046
4371
  task.keyPath = keyPath;
4047
- 3 ===
4048
- (task.formatContext = getChildFormatContext(defaultProps, type, props))
4049
- .insertionMode
4050
- ? ((keyPath = createPendingSegment(
4051
- request,
4052
- 0,
4053
- null,
4054
- task.formatContext,
4055
- !1,
4056
- !1
4057
- )),
4058
- newProps.preambleChildren.push(keyPath),
4059
- (keyPath = createRenderTask(
4060
- request,
4061
- null,
4062
- ref,
4063
- -1,
4064
- task.blockedBoundary,
4065
- keyPath,
4066
- task.blockedPreamble,
4067
- task.hoistableState,
4068
- request.abortableTasks,
4069
- task.keyPath,
4070
- task.formatContext,
4071
- task.context,
4072
- task.treeContext,
4073
- task.componentStack,
4074
- task.isFallback
4075
- )),
4076
- pushComponentStack(keyPath),
4077
- request.pingedTasks.push(keyPath))
4078
- : renderNode(request, task, ref, -1);
4372
+ if (
4373
+ 3 ===
4374
+ (task.formatContext = getChildFormatContext(defaultProps, type, props))
4375
+ .insertionMode
4376
+ ) {
4377
+ keyPath = createPendingSegment(
4378
+ request,
4379
+ 0,
4380
+ null,
4381
+ task.formatContext,
4382
+ !1,
4383
+ !1
4384
+ );
4385
+ newProps.preambleChildren.push(keyPath);
4386
+ task.blockedSegment = keyPath;
4387
+ try {
4388
+ (keyPath.status = 6),
4389
+ renderNode(request, task, initialState, -1),
4390
+ pushSegmentFinale(
4391
+ keyPath.chunks,
4392
+ request.renderState,
4393
+ keyPath.lastPushedText,
4394
+ keyPath.textEmbedded
4395
+ ),
4396
+ (keyPath.status = 1);
4397
+ } finally {
4398
+ task.blockedSegment = newProps;
4399
+ }
4400
+ } else renderNode(request, task, initialState, -1);
4079
4401
  task.formatContext = defaultProps;
4080
- task.keyPath = initialState;
4402
+ task.keyPath = ref;
4081
4403
  a: {
4082
4404
  task = newProps.chunks;
4083
4405
  request = request.resumableState;
@@ -4132,17 +4454,69 @@ function renderElement(request, task, keyPath, type, props, ref) {
4132
4454
  task.keyPath = type;
4133
4455
  return;
4134
4456
  case REACT_ACTIVITY_TYPE:
4135
- "hidden" !== props.mode &&
4136
- ((type = task.keyPath),
4137
- (task.keyPath = keyPath),
4138
- renderNodeDestructive(request, task, props.children, -1),
4139
- (task.keyPath = type));
4457
+ type = task.blockedSegment;
4458
+ null === type
4459
+ ? "hidden" !== props.mode &&
4460
+ ((type = task.keyPath),
4461
+ (task.keyPath = keyPath),
4462
+ renderNode(request, task, props.children, -1),
4463
+ (task.keyPath = type))
4464
+ : "hidden" !== props.mode &&
4465
+ (request.renderState.generateStaticMarkup ||
4466
+ type.chunks.push("\x3c!--&--\x3e"),
4467
+ (type.lastPushedText = !1),
4468
+ (newProps = task.keyPath),
4469
+ (task.keyPath = keyPath),
4470
+ renderNode(request, task, props.children, -1),
4471
+ (task.keyPath = newProps),
4472
+ request.renderState.generateStaticMarkup ||
4473
+ type.chunks.push("\x3c!--/&--\x3e"),
4474
+ (type.lastPushedText = !1));
4140
4475
  return;
4141
4476
  case REACT_SUSPENSE_LIST_TYPE:
4142
- type = task.keyPath;
4143
- task.keyPath = keyPath;
4144
- renderNodeDestructive(request, task, props.children, -1);
4145
- task.keyPath = type;
4477
+ a: {
4478
+ type = props.children;
4479
+ props = props.revealOrder;
4480
+ if (
4481
+ "forwards" === props ||
4482
+ "backwards" === props ||
4483
+ "unstable_legacy-backwards" === props
4484
+ ) {
4485
+ if (isArrayImpl(type)) {
4486
+ renderSuspenseListRows(request, task, keyPath, type, props);
4487
+ break a;
4488
+ }
4489
+ if ((newProps = getIteratorFn(type)))
4490
+ if ((newProps = newProps.call(type))) {
4491
+ defaultProps = newProps.next();
4492
+ if (!defaultProps.done) {
4493
+ do defaultProps = newProps.next();
4494
+ while (!defaultProps.done);
4495
+ renderSuspenseListRows(request, task, keyPath, type, props);
4496
+ }
4497
+ break a;
4498
+ }
4499
+ }
4500
+ "together" === props
4501
+ ? ((props = task.keyPath),
4502
+ (newProps = task.row),
4503
+ (defaultProps = task.row = createSuspenseListRow(null)),
4504
+ (defaultProps.boundaries = []),
4505
+ (defaultProps.together = !0),
4506
+ (task.keyPath = keyPath),
4507
+ renderNodeDestructive(request, task, type, -1),
4508
+ 0 === --defaultProps.pendingTasks &&
4509
+ finishSuspenseListRow(request, defaultProps),
4510
+ (task.keyPath = props),
4511
+ (task.row = newProps),
4512
+ null !== newProps &&
4513
+ 0 < defaultProps.pendingTasks &&
4514
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4515
+ : ((props = task.keyPath),
4516
+ (task.keyPath = keyPath),
4517
+ renderNodeDestructive(request, task, type, -1),
4518
+ (task.keyPath = props));
4519
+ }
4146
4520
  return;
4147
4521
  case REACT_VIEW_TRANSITION_TYPE:
4148
4522
  case REACT_SCOPE_TYPE:
@@ -4150,43 +4524,52 @@ function renderElement(request, task, keyPath, type, props, ref) {
4150
4524
  case REACT_SUSPENSE_TYPE:
4151
4525
  a: if (null !== task.replay) {
4152
4526
  type = task.keyPath;
4527
+ newProps = task.formatContext;
4528
+ defaultProps = task.row;
4153
4529
  task.keyPath = keyPath;
4530
+ task.formatContext = getSuspenseContentFormatContext(
4531
+ request.resumableState,
4532
+ newProps
4533
+ );
4534
+ task.row = null;
4154
4535
  keyPath = props.children;
4155
4536
  try {
4156
4537
  renderNode(request, task, keyPath, -1);
4157
4538
  } finally {
4158
- task.keyPath = type;
4539
+ (task.keyPath = type),
4540
+ (task.formatContext = newProps),
4541
+ (task.row = defaultProps);
4159
4542
  }
4160
4543
  } else {
4161
4544
  type = task.keyPath;
4162
- var parentBoundary = task.blockedBoundary;
4163
- ref = task.blockedPreamble;
4545
+ ref = task.formatContext;
4546
+ var prevRow = task.row,
4547
+ parentBoundary = task.blockedBoundary;
4548
+ propName$43 = task.blockedPreamble;
4164
4549
  var parentHoistableState = task.hoistableState;
4165
- propName$33 = task.blockedSegment;
4166
- propName = props.fallback;
4550
+ propName = task.blockedSegment;
4551
+ var fallback = props.fallback;
4167
4552
  props = props.children;
4168
4553
  var fallbackAbortSet = new Set();
4169
- var newBoundary =
4170
- 2 > task.formatContext.insertionMode
4171
- ? createSuspenseBoundary(
4172
- request,
4173
- fallbackAbortSet,
4174
- createPreambleState(),
4175
- createPreambleState()
4176
- )
4177
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4554
+ var newBoundary = createSuspenseBoundary(
4555
+ request,
4556
+ task.row,
4557
+ fallbackAbortSet,
4558
+ null,
4559
+ null
4560
+ );
4178
4561
  null !== request.trackedPostpones &&
4179
4562
  (newBoundary.trackedContentKeyPath = keyPath);
4180
4563
  var boundarySegment = createPendingSegment(
4181
4564
  request,
4182
- propName$33.chunks.length,
4565
+ propName.chunks.length,
4183
4566
  newBoundary,
4184
4567
  task.formatContext,
4185
4568
  !1,
4186
4569
  !1
4187
4570
  );
4188
- propName$33.children.push(boundarySegment);
4189
- propName$33.lastPushedText = !1;
4571
+ propName.children.push(boundarySegment);
4572
+ propName.lastPushedText = !1;
4190
4573
  var contentRootSegment = createPendingSegment(
4191
4574
  request,
4192
4575
  0,
@@ -4197,16 +4580,23 @@ function renderElement(request, task, keyPath, type, props, ref) {
4197
4580
  );
4198
4581
  contentRootSegment.parentFlushed = !0;
4199
4582
  if (null !== request.trackedPostpones) {
4200
- newProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4201
- defaultProps = [newProps[1], newProps[2], [], null];
4202
- request.trackedPostpones.workingMap.set(newProps, defaultProps);
4203
- newBoundary.trackedFallbackNode = defaultProps;
4583
+ newProps = task.componentStack;
4584
+ defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4585
+ initialState = [defaultProps[1], defaultProps[2], [], null];
4586
+ request.trackedPostpones.workingMap.set(defaultProps, initialState);
4587
+ newBoundary.trackedFallbackNode = initialState;
4204
4588
  task.blockedSegment = boundarySegment;
4205
4589
  task.blockedPreamble = newBoundary.fallbackPreamble;
4206
- task.keyPath = newProps;
4590
+ task.keyPath = defaultProps;
4591
+ task.formatContext = getSuspenseFallbackFormatContext(
4592
+ request.resumableState,
4593
+ ref
4594
+ );
4595
+ task.componentStack =
4596
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
4207
4597
  boundarySegment.status = 6;
4208
4598
  try {
4209
- renderNode(request, task, propName, -1),
4599
+ renderNode(request, task, fallback, -1),
4210
4600
  pushSegmentFinale(
4211
4601
  boundarySegment.chunks,
4212
4602
  request.renderState,
@@ -4220,9 +4610,10 @@ function renderElement(request, task, keyPath, type, props, ref) {
4220
4610
  thrownValue)
4221
4611
  );
4222
4612
  } finally {
4223
- (task.blockedSegment = propName$33),
4224
- (task.blockedPreamble = ref),
4225
- (task.keyPath = type);
4613
+ (task.blockedSegment = propName),
4614
+ (task.blockedPreamble = propName$43),
4615
+ (task.keyPath = type),
4616
+ (task.formatContext = ref);
4226
4617
  }
4227
4618
  task = createRenderTask(
4228
4619
  request,
@@ -4235,11 +4626,14 @@ function renderElement(request, task, keyPath, type, props, ref) {
4235
4626
  newBoundary.contentState,
4236
4627
  task.abortSet,
4237
4628
  keyPath,
4238
- task.formatContext,
4629
+ getSuspenseContentFormatContext(
4630
+ request.resumableState,
4631
+ task.formatContext
4632
+ ),
4239
4633
  task.context,
4240
4634
  task.treeContext,
4241
- task.componentStack,
4242
- task.isFallback
4635
+ null,
4636
+ newProps
4243
4637
  );
4244
4638
  pushComponentStack(task);
4245
4639
  request.pingedTasks.push(task);
@@ -4249,6 +4643,11 @@ function renderElement(request, task, keyPath, type, props, ref) {
4249
4643
  task.hoistableState = newBoundary.contentState;
4250
4644
  task.blockedSegment = contentRootSegment;
4251
4645
  task.keyPath = keyPath;
4646
+ task.formatContext = getSuspenseContentFormatContext(
4647
+ request.resumableState,
4648
+ ref
4649
+ );
4650
+ task.row = null;
4252
4651
  contentRootSegment.status = 6;
4253
4652
  try {
4254
4653
  if (
@@ -4263,19 +4662,29 @@ function renderElement(request, task, keyPath, type, props, ref) {
4263
4662
  queueCompletedSegment(newBoundary, contentRootSegment),
4264
4663
  0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4265
4664
  ) {
4266
- newBoundary.status = 1;
4267
- 0 === request.pendingRootTasks &&
4268
- task.blockedPreamble &&
4269
- preparePreamble(request);
4270
- break a;
4271
- }
4272
- } catch (thrownValue$28) {
4665
+ if (
4666
+ ((newBoundary.status = 1),
4667
+ !isEligibleForOutlining(request, newBoundary))
4668
+ ) {
4669
+ null !== prevRow &&
4670
+ 0 === --prevRow.pendingTasks &&
4671
+ finishSuspenseListRow(request, prevRow);
4672
+ 0 === request.pendingRootTasks &&
4673
+ task.blockedPreamble &&
4674
+ preparePreamble(request);
4675
+ break a;
4676
+ }
4677
+ } else
4678
+ null !== prevRow &&
4679
+ prevRow.together &&
4680
+ tryToResolveTogetherRow(request, prevRow);
4681
+ } catch (thrownValue$30) {
4273
4682
  (newBoundary.status = 4),
4274
4683
  12 === request.status
4275
4684
  ? ((contentRootSegment.status = 3),
4276
4685
  (newProps = request.fatalError))
4277
4686
  : ((contentRootSegment.status = 4),
4278
- (newProps = thrownValue$28)),
4687
+ (newProps = thrownValue$30)),
4279
4688
  (defaultProps = getThrownInfo(task.componentStack)),
4280
4689
  (initialState = logRecoverableError(
4281
4690
  request,
@@ -4286,15 +4695,17 @@ function renderElement(request, task, keyPath, type, props, ref) {
4286
4695
  untrackBoundary(request, newBoundary);
4287
4696
  } finally {
4288
4697
  (task.blockedBoundary = parentBoundary),
4289
- (task.blockedPreamble = ref),
4698
+ (task.blockedPreamble = propName$43),
4290
4699
  (task.hoistableState = parentHoistableState),
4291
- (task.blockedSegment = propName$33),
4292
- (task.keyPath = type);
4700
+ (task.blockedSegment = propName),
4701
+ (task.keyPath = type),
4702
+ (task.formatContext = ref),
4703
+ (task.row = prevRow);
4293
4704
  }
4294
4705
  task = createRenderTask(
4295
4706
  request,
4296
4707
  null,
4297
- propName,
4708
+ fallback,
4298
4709
  -1,
4299
4710
  parentBoundary,
4300
4711
  boundarySegment,
@@ -4302,11 +4713,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4302
4713
  newBoundary.fallbackState,
4303
4714
  fallbackAbortSet,
4304
4715
  [keyPath[0], "Suspense Fallback", keyPath[2]],
4305
- task.formatContext,
4716
+ getSuspenseFallbackFormatContext(
4717
+ request.resumableState,
4718
+ task.formatContext
4719
+ ),
4306
4720
  task.context,
4307
4721
  task.treeContext,
4308
- task.componentStack,
4309
- !0
4722
+ task.row,
4723
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
4724
+ task.componentStack
4725
+ )
4310
4726
  );
4311
4727
  pushComponentStack(task);
4312
4728
  request.pingedTasks.push(task);
@@ -4318,9 +4734,8 @@ function renderElement(request, task, keyPath, type, props, ref) {
4318
4734
  switch (type.$$typeof) {
4319
4735
  case REACT_FORWARD_REF_TYPE:
4320
4736
  if ("ref" in props)
4321
- for (newBoundary in ((newProps = {}), props))
4322
- "ref" !== newBoundary &&
4323
- (newProps[newBoundary] = props[newBoundary]);
4737
+ for (fallback in ((newProps = {}), props))
4738
+ "ref" !== fallback && (newProps[fallback] = props[fallback]);
4324
4739
  else newProps = props;
4325
4740
  type = renderWithHooks(
4326
4741
  request,
@@ -4343,7 +4758,6 @@ function renderElement(request, task, keyPath, type, props, ref) {
4343
4758
  case REACT_MEMO_TYPE:
4344
4759
  renderElement(request, task, keyPath, type.type, props, ref);
4345
4760
  return;
4346
- case REACT_PROVIDER_TYPE:
4347
4761
  case REACT_CONTEXT_TYPE:
4348
4762
  defaultProps = props.children;
4349
4763
  newProps = task.keyPath;
@@ -4487,17 +4901,20 @@ function retryNode(request, task) {
4487
4901
  "function" === typeof x.then)
4488
4902
  )
4489
4903
  throw (
4490
- (task.node === keyOrIndex && (task.replay = replay),
4904
+ (task.node === keyOrIndex
4905
+ ? (task.replay = replay)
4906
+ : childIndex.splice(node, 1),
4491
4907
  x)
4492
4908
  );
4493
4909
  task.replay.pendingTasks--;
4494
4910
  props = getThrownInfo(task.componentStack);
4495
- key = task.blockedBoundary;
4911
+ key = request;
4912
+ request = task.blockedBoundary;
4496
4913
  type = x;
4497
- props = logRecoverableError(request, type, props);
4914
+ props = logRecoverableError(key, type, props);
4498
4915
  abortRemainingReplayNodes(
4499
- request,
4500
4916
  key,
4917
+ request,
4501
4918
  childNodes,
4502
4919
  name,
4503
4920
  type,
@@ -4522,31 +4939,31 @@ function retryNode(request, task) {
4522
4939
  node$jscomp$0 =
4523
4940
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4524
4941
  var prevKeyPath = task.keyPath,
4942
+ prevContext = task.formatContext,
4943
+ prevRow = task.row,
4525
4944
  previousReplaySet = task.replay,
4526
4945
  parentBoundary = task.blockedBoundary,
4527
4946
  parentHoistableState = task.hoistableState,
4528
4947
  content = props.children,
4529
4948
  fallback = props.fallback,
4530
4949
  fallbackAbortSet = new Set();
4531
- props =
4532
- 2 > task.formatContext.insertionMode
4533
- ? createSuspenseBoundary(
4534
- request,
4535
- fallbackAbortSet,
4536
- createPreambleState(),
4537
- createPreambleState()
4538
- )
4539
- : createSuspenseBoundary(
4540
- request,
4541
- fallbackAbortSet,
4542
- null,
4543
- null
4544
- );
4950
+ props = createSuspenseBoundary(
4951
+ request,
4952
+ task.row,
4953
+ fallbackAbortSet,
4954
+ null,
4955
+ null
4956
+ );
4545
4957
  props.parentFlushed = !0;
4546
4958
  props.rootSegmentID = type;
4547
4959
  task.blockedBoundary = props;
4548
4960
  task.hoistableState = props.contentState;
4549
4961
  task.keyPath = key;
4962
+ task.formatContext = getSuspenseContentFormatContext(
4963
+ request.resumableState,
4964
+ prevContext
4965
+ );
4966
+ task.row = null;
4550
4967
  task.replay = {
4551
4968
  nodes: ref,
4552
4969
  slots: name,
@@ -4582,9 +4999,11 @@ function retryNode(request, task) {
4582
4999
  (task.blockedBoundary = parentBoundary),
4583
5000
  (task.hoistableState = parentHoistableState),
4584
5001
  (task.replay = previousReplaySet),
4585
- (task.keyPath = prevKeyPath);
5002
+ (task.keyPath = prevKeyPath),
5003
+ (task.formatContext = prevContext),
5004
+ (task.row = prevRow);
4586
5005
  }
4587
- task = createReplayTask(
5006
+ childNodes = createReplayTask(
4588
5007
  request,
4589
5008
  null,
4590
5009
  {
@@ -4598,14 +5017,19 @@ function retryNode(request, task) {
4598
5017
  props.fallbackState,
4599
5018
  fallbackAbortSet,
4600
5019
  [key[0], "Suspense Fallback", key[2]],
4601
- task.formatContext,
5020
+ getSuspenseFallbackFormatContext(
5021
+ request.resumableState,
5022
+ task.formatContext
5023
+ ),
4602
5024
  task.context,
4603
5025
  task.treeContext,
4604
- task.componentStack,
4605
- !0
5026
+ task.row,
5027
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5028
+ task.componentStack
5029
+ )
4606
5030
  );
4607
- pushComponentStack(task);
4608
- request.pingedTasks.push(task);
5031
+ pushComponentStack(childNodes);
5032
+ request.pingedTasks.push(childNodes);
4609
5033
  }
4610
5034
  }
4611
5035
  childIndex.splice(node, 1);
@@ -4630,22 +5054,17 @@ function retryNode(request, task) {
4630
5054
  renderChildrenArray(request, task, node, childIndex);
4631
5055
  return;
4632
5056
  }
4633
- null === node || "object" !== typeof node
4634
- ? (childNodes = null)
4635
- : ((childNodes =
4636
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
4637
- node["@@iterator"]),
4638
- (childNodes = "function" === typeof childNodes ? childNodes : null));
4639
- if (childNodes && (childNodes = childNodes.call(node))) {
4640
- node = childNodes.next();
4641
- if (!node.done) {
4642
- props = [];
4643
- do props.push(node.value), (node = childNodes.next());
4644
- while (!node.done);
4645
- renderChildrenArray(request, task, props, childIndex);
5057
+ if ((childNodes = getIteratorFn(node)))
5058
+ if ((childNodes = childNodes.call(node))) {
5059
+ node = childNodes.next();
5060
+ if (!node.done) {
5061
+ props = [];
5062
+ do props.push(node.value), (node = childNodes.next());
5063
+ while (!node.done);
5064
+ renderChildrenArray(request, task, props, childIndex);
5065
+ }
5066
+ return;
4646
5067
  }
4647
- return;
4648
- }
4649
5068
  if ("function" === typeof node.then)
4650
5069
  return (
4651
5070
  (task.thenableState = null),
@@ -4765,6 +5184,105 @@ function renderChildrenArray(request, task, children, childIndex) {
4765
5184
  task.treeContext = replay;
4766
5185
  task.keyPath = prevKeyPath;
4767
5186
  }
5187
+ function trackPostponedBoundary(request, trackedPostpones, boundary) {
5188
+ boundary.status = 5;
5189
+ boundary.rootSegmentID = request.nextSegmentId++;
5190
+ request = boundary.trackedContentKeyPath;
5191
+ if (null === request)
5192
+ throw Error(
5193
+ "It should not be possible to postpone at the root. This is a bug in React."
5194
+ );
5195
+ var fallbackReplayNode = boundary.trackedFallbackNode,
5196
+ children = [],
5197
+ boundaryNode = trackedPostpones.workingMap.get(request);
5198
+ if (void 0 === boundaryNode)
5199
+ return (
5200
+ (boundary = [
5201
+ request[1],
5202
+ request[2],
5203
+ children,
5204
+ null,
5205
+ fallbackReplayNode,
5206
+ boundary.rootSegmentID
5207
+ ]),
5208
+ trackedPostpones.workingMap.set(request, boundary),
5209
+ addToReplayParent(boundary, request[0], trackedPostpones),
5210
+ boundary
5211
+ );
5212
+ boundaryNode[4] = fallbackReplayNode;
5213
+ boundaryNode[5] = boundary.rootSegmentID;
5214
+ return boundaryNode;
5215
+ }
5216
+ function trackPostpone(request, trackedPostpones, task, segment) {
5217
+ segment.status = 5;
5218
+ var keyPath = task.keyPath,
5219
+ boundary = task.blockedBoundary;
5220
+ if (null === boundary)
5221
+ (segment.id = request.nextSegmentId++),
5222
+ (trackedPostpones.rootSlots = segment.id),
5223
+ null !== request.completedRootSegment &&
5224
+ (request.completedRootSegment.status = 5);
5225
+ else {
5226
+ if (null !== boundary && 0 === boundary.status) {
5227
+ var boundaryNode = trackPostponedBoundary(
5228
+ request,
5229
+ trackedPostpones,
5230
+ boundary
5231
+ );
5232
+ if (
5233
+ boundary.trackedContentKeyPath === keyPath &&
5234
+ -1 === task.childIndex
5235
+ ) {
5236
+ -1 === segment.id &&
5237
+ (segment.id = segment.parentFlushed
5238
+ ? boundary.rootSegmentID
5239
+ : request.nextSegmentId++);
5240
+ boundaryNode[3] = segment.id;
5241
+ return;
5242
+ }
5243
+ }
5244
+ -1 === segment.id &&
5245
+ (segment.id =
5246
+ segment.parentFlushed && null !== boundary
5247
+ ? boundary.rootSegmentID
5248
+ : request.nextSegmentId++);
5249
+ if (-1 === task.childIndex)
5250
+ null === keyPath
5251
+ ? (trackedPostpones.rootSlots = segment.id)
5252
+ : ((task = trackedPostpones.workingMap.get(keyPath)),
5253
+ void 0 === task
5254
+ ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
5255
+ addToReplayParent(task, keyPath[0], trackedPostpones))
5256
+ : (task[3] = segment.id));
5257
+ else {
5258
+ if (null === keyPath)
5259
+ if (((request = trackedPostpones.rootSlots), null === request))
5260
+ request = trackedPostpones.rootSlots = {};
5261
+ else {
5262
+ if ("number" === typeof request)
5263
+ throw Error(
5264
+ "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
5265
+ );
5266
+ }
5267
+ else if (
5268
+ ((boundary = trackedPostpones.workingMap),
5269
+ (boundaryNode = boundary.get(keyPath)),
5270
+ void 0 === boundaryNode)
5271
+ )
5272
+ (request = {}),
5273
+ (boundaryNode = [keyPath[1], keyPath[2], [], request]),
5274
+ boundary.set(keyPath, boundaryNode),
5275
+ addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
5276
+ else if (((request = boundaryNode[3]), null === request))
5277
+ request = boundaryNode[3] = {};
5278
+ else if ("number" === typeof request)
5279
+ throw Error(
5280
+ "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
5281
+ );
5282
+ request[task.childIndex] = segment.id;
5283
+ }
5284
+ }
5285
+ }
4768
5286
  function untrackBoundary(request, boundary) {
4769
5287
  request = request.trackedPostpones;
4770
5288
  null !== request &&
@@ -4788,8 +5306,8 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
4788
5306
  task.formatContext,
4789
5307
  task.context,
4790
5308
  task.treeContext,
4791
- task.componentStack,
4792
- task.isFallback
5309
+ task.row,
5310
+ task.componentStack
4793
5311
  );
4794
5312
  }
4795
5313
  function spawnNewSuspendedRenderTask(request, task, thenableState) {
@@ -4818,8 +5336,8 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
4818
5336
  task.formatContext,
4819
5337
  task.context,
4820
5338
  task.treeContext,
4821
- task.componentStack,
4822
- task.isFallback
5339
+ task.row,
5340
+ task.componentStack
4823
5341
  );
4824
5342
  }
4825
5343
  function renderNode(request, task, node, childIndex) {
@@ -4829,7 +5347,8 @@ function renderNode(request, task, node, childIndex) {
4829
5347
  previousTreeContext = task.treeContext,
4830
5348
  previousComponentStack = task.componentStack,
4831
5349
  segment = task.blockedSegment;
4832
- if (null === segment)
5350
+ if (null === segment) {
5351
+ segment = task.replay;
4833
5352
  try {
4834
5353
  return renderNodeDestructive(request, task, node, childIndex);
4835
5354
  } catch (thrownValue) {
@@ -4839,10 +5358,13 @@ function renderNode(request, task, node, childIndex) {
4839
5358
  thrownValue === SuspenseException
4840
5359
  ? getSuspendedThenable()
4841
5360
  : thrownValue),
4842
- "object" === typeof node && null !== node)
5361
+ 12 !== request.status && "object" === typeof node && null !== node)
4843
5362
  ) {
4844
5363
  if ("function" === typeof node.then) {
4845
- childIndex = getThenableStateAfterSuspending();
5364
+ childIndex =
5365
+ thrownValue === SuspenseException
5366
+ ? getThenableStateAfterSuspending()
5367
+ : null;
4846
5368
  request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
4847
5369
  node.then(request, request);
4848
5370
  task.formatContext = previousFormatContext;
@@ -4850,11 +5372,15 @@ function renderNode(request, task, node, childIndex) {
4850
5372
  task.keyPath = previousKeyPath;
4851
5373
  task.treeContext = previousTreeContext;
4852
5374
  task.componentStack = previousComponentStack;
5375
+ task.replay = segment;
4853
5376
  switchContext(previousContext);
4854
5377
  return;
4855
5378
  }
4856
5379
  if ("Maximum call stack size exceeded" === node.message) {
4857
- node = getThenableStateAfterSuspending();
5380
+ node =
5381
+ thrownValue === SuspenseException
5382
+ ? getThenableStateAfterSuspending()
5383
+ : null;
4858
5384
  node = spawnNewSuspendedReplayTask(request, task, node);
4859
5385
  request.pingedTasks.push(node);
4860
5386
  task.formatContext = previousFormatContext;
@@ -4862,31 +5388,36 @@ function renderNode(request, task, node, childIndex) {
4862
5388
  task.keyPath = previousKeyPath;
4863
5389
  task.treeContext = previousTreeContext;
4864
5390
  task.componentStack = previousComponentStack;
5391
+ task.replay = segment;
4865
5392
  switchContext(previousContext);
4866
5393
  return;
4867
5394
  }
4868
5395
  }
4869
5396
  }
4870
- else {
5397
+ } else {
4871
5398
  var childrenLength = segment.children.length,
4872
5399
  chunkLength = segment.chunks.length;
4873
5400
  try {
4874
5401
  return renderNodeDestructive(request, task, node, childIndex);
4875
- } catch (thrownValue$48) {
5402
+ } catch (thrownValue$62) {
4876
5403
  if (
4877
5404
  (resetHooksState(),
4878
5405
  (segment.children.length = childrenLength),
4879
5406
  (segment.chunks.length = chunkLength),
4880
5407
  (node =
4881
- thrownValue$48 === SuspenseException
5408
+ thrownValue$62 === SuspenseException
4882
5409
  ? getSuspendedThenable()
4883
- : thrownValue$48),
4884
- "object" === typeof node && null !== node)
5410
+ : thrownValue$62),
5411
+ 12 !== request.status && "object" === typeof node && null !== node)
4885
5412
  ) {
4886
5413
  if ("function" === typeof node.then) {
4887
- childIndex = getThenableStateAfterSuspending();
4888
- request = spawnNewSuspendedRenderTask(request, task, childIndex).ping;
4889
- node.then(request, request);
5414
+ segment = node;
5415
+ node =
5416
+ thrownValue$62 === SuspenseException
5417
+ ? getThenableStateAfterSuspending()
5418
+ : null;
5419
+ request = spawnNewSuspendedRenderTask(request, task, node).ping;
5420
+ segment.then(request, request);
4890
5421
  task.formatContext = previousFormatContext;
4891
5422
  task.context = previousContext;
4892
5423
  task.keyPath = previousKeyPath;
@@ -4896,9 +5427,12 @@ function renderNode(request, task, node, childIndex) {
4896
5427
  return;
4897
5428
  }
4898
5429
  if ("Maximum call stack size exceeded" === node.message) {
4899
- node = getThenableStateAfterSuspending();
4900
- node = spawnNewSuspendedRenderTask(request, task, node);
4901
- request.pingedTasks.push(node);
5430
+ segment =
5431
+ thrownValue$62 === SuspenseException
5432
+ ? getThenableStateAfterSuspending()
5433
+ : null;
5434
+ segment = spawnNewSuspendedRenderTask(request, task, segment);
5435
+ request.pingedTasks.push(segment);
4902
5436
  task.formatContext = previousFormatContext;
4903
5437
  task.context = previousContext;
4904
5438
  task.keyPath = previousKeyPath;
@@ -4918,9 +5452,10 @@ function renderNode(request, task, node, childIndex) {
4918
5452
  throw node;
4919
5453
  }
4920
5454
  function abortTaskSoft(task) {
4921
- var boundary = task.blockedBoundary;
4922
- task = task.blockedSegment;
4923
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5455
+ var boundary = task.blockedBoundary,
5456
+ segment = task.blockedSegment;
5457
+ null !== segment &&
5458
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
4924
5459
  }
4925
5460
  function abortRemainingReplayNodes(
4926
5461
  request$jscomp$0,
@@ -4947,6 +5482,7 @@ function abortRemainingReplayNodes(
4947
5482
  errorDigest = errorDigest$jscomp$0,
4948
5483
  resumedBoundary = createSuspenseBoundary(
4949
5484
  request,
5485
+ null,
4950
5486
  new Set(),
4951
5487
  null,
4952
5488
  null
@@ -4980,44 +5516,69 @@ function abortTask(task, request, error) {
4980
5516
  if (6 === segment.status) return;
4981
5517
  segment.status = 3;
4982
5518
  }
4983
- segment = getThrownInfo(task.componentStack);
5519
+ var errorInfo = getThrownInfo(task.componentStack);
4984
5520
  if (null === boundary) {
4985
5521
  if (13 !== request.status && 14 !== request.status) {
4986
5522
  boundary = task.replay;
4987
5523
  if (null === boundary) {
4988
- logRecoverableError(request, error, segment);
4989
- fatalError(request, error);
5524
+ null !== request.trackedPostpones && null !== segment
5525
+ ? ((boundary = request.trackedPostpones),
5526
+ logRecoverableError(request, error, errorInfo),
5527
+ trackPostpone(request, boundary, task, segment),
5528
+ finishedTask(request, null, task.row, segment))
5529
+ : (logRecoverableError(request, error, errorInfo),
5530
+ fatalError(request, error));
4990
5531
  return;
4991
5532
  }
4992
5533
  boundary.pendingTasks--;
4993
5534
  0 === boundary.pendingTasks &&
4994
5535
  0 < boundary.nodes.length &&
4995
- ((task = logRecoverableError(request, error, segment)),
5536
+ ((segment = logRecoverableError(request, error, errorInfo)),
4996
5537
  abortRemainingReplayNodes(
4997
5538
  request,
4998
5539
  null,
4999
5540
  boundary.nodes,
5000
5541
  boundary.slots,
5001
5542
  error,
5002
- task
5543
+ segment
5003
5544
  ));
5004
5545
  request.pendingRootTasks--;
5005
5546
  0 === request.pendingRootTasks && completeShell(request);
5006
5547
  }
5007
- } else
5008
- boundary.pendingTasks--,
5009
- 4 !== boundary.status &&
5010
- ((boundary.status = 4),
5011
- (task = logRecoverableError(request, error, segment)),
5012
- (boundary.status = 4),
5013
- (boundary.errorDigest = task),
5014
- untrackBoundary(request, boundary),
5015
- boundary.parentFlushed &&
5016
- request.clientRenderedBoundaries.push(boundary)),
5017
- boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5018
- return abortTask(fallbackTask, request, error);
5019
- }),
5020
- boundary.fallbackAbortableTasks.clear();
5548
+ } else {
5549
+ var trackedPostpones$63 = request.trackedPostpones;
5550
+ if (4 !== boundary.status) {
5551
+ if (null !== trackedPostpones$63 && null !== segment)
5552
+ return (
5553
+ logRecoverableError(request, error, errorInfo),
5554
+ trackPostpone(request, trackedPostpones$63, task, segment),
5555
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5556
+ return abortTask(fallbackTask, request, error);
5557
+ }),
5558
+ boundary.fallbackAbortableTasks.clear(),
5559
+ finishedTask(request, boundary, task.row, segment)
5560
+ );
5561
+ boundary.status = 4;
5562
+ segment = logRecoverableError(request, error, errorInfo);
5563
+ boundary.status = 4;
5564
+ boundary.errorDigest = segment;
5565
+ untrackBoundary(request, boundary);
5566
+ boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
5567
+ }
5568
+ boundary.pendingTasks--;
5569
+ segment = boundary.row;
5570
+ null !== segment &&
5571
+ 0 === --segment.pendingTasks &&
5572
+ finishSuspenseListRow(request, segment);
5573
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5574
+ return abortTask(fallbackTask, request, error);
5575
+ });
5576
+ boundary.fallbackAbortableTasks.clear();
5577
+ }
5578
+ task = task.row;
5579
+ null !== task &&
5580
+ 0 === --task.pendingTasks &&
5581
+ finishSuspenseListRow(request, task);
5021
5582
  request.allPendingTasks--;
5022
5583
  0 === request.allPendingTasks && completeAll(request);
5023
5584
  }
@@ -5111,10 +5672,18 @@ function queueCompletedSegment(boundary, segment) {
5111
5672
  var childSegment = segment.children[0];
5112
5673
  childSegment.id = segment.id;
5113
5674
  childSegment.parentFlushed = !0;
5114
- 1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
5675
+ (1 !== childSegment.status &&
5676
+ 3 !== childSegment.status &&
5677
+ 4 !== childSegment.status) ||
5678
+ queueCompletedSegment(boundary, childSegment);
5115
5679
  } else boundary.completedSegments.push(segment);
5116
5680
  }
5117
- function finishedTask(request, boundary, segment) {
5681
+ function finishedTask(request, boundary, row, segment) {
5682
+ null !== row &&
5683
+ (0 === --row.pendingTasks
5684
+ ? finishSuspenseListRow(request, row)
5685
+ : row.together && tryToResolveTogetherRow(request, row));
5686
+ request.allPendingTasks--;
5118
5687
  if (null === boundary) {
5119
5688
  if (null !== segment && segment.parentFlushed) {
5120
5689
  if (null !== request.completedRootSegment)
@@ -5125,32 +5694,68 @@ function finishedTask(request, boundary, segment) {
5125
5694
  }
5126
5695
  request.pendingRootTasks--;
5127
5696
  0 === request.pendingRootTasks && completeShell(request);
5128
- } else
5129
- boundary.pendingTasks--,
5130
- 4 !== boundary.status &&
5131
- (0 === boundary.pendingTasks
5132
- ? (0 === boundary.status && (boundary.status = 1),
5133
- null !== segment &&
5134
- segment.parentFlushed &&
5135
- 1 === segment.status &&
5136
- queueCompletedSegment(boundary, segment),
5137
- boundary.parentFlushed &&
5138
- request.completedBoundaries.push(boundary),
5139
- 1 === boundary.status &&
5140
- (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
5141
- boundary.fallbackAbortableTasks.clear(),
5142
- 0 === request.pendingRootTasks &&
5143
- null === request.trackedPostpones &&
5144
- null !== boundary.contentPreamble &&
5145
- preparePreamble(request)))
5146
- : null !== segment &&
5147
- segment.parentFlushed &&
5148
- 1 === segment.status &&
5149
- (queueCompletedSegment(boundary, segment),
5150
- 1 === boundary.completedSegments.length &&
5151
- boundary.parentFlushed &&
5152
- request.partialBoundaries.push(boundary)));
5153
- request.allPendingTasks--;
5697
+ } else if ((boundary.pendingTasks--, 4 !== boundary.status))
5698
+ if (0 === boundary.pendingTasks)
5699
+ if (
5700
+ (0 === boundary.status && (boundary.status = 1),
5701
+ null !== segment &&
5702
+ segment.parentFlushed &&
5703
+ (1 === segment.status || 3 === segment.status) &&
5704
+ queueCompletedSegment(boundary, segment),
5705
+ boundary.parentFlushed && request.completedBoundaries.push(boundary),
5706
+ 1 === boundary.status)
5707
+ )
5708
+ (row = boundary.row),
5709
+ null !== row &&
5710
+ hoistHoistables(row.hoistables, boundary.contentState),
5711
+ isEligibleForOutlining(request, boundary) ||
5712
+ (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
5713
+ boundary.fallbackAbortableTasks.clear(),
5714
+ null !== row &&
5715
+ 0 === --row.pendingTasks &&
5716
+ finishSuspenseListRow(request, row)),
5717
+ 0 === request.pendingRootTasks &&
5718
+ null === request.trackedPostpones &&
5719
+ null !== boundary.contentPreamble &&
5720
+ preparePreamble(request);
5721
+ else {
5722
+ if (
5723
+ 5 === boundary.status &&
5724
+ ((boundary = boundary.row), null !== boundary)
5725
+ ) {
5726
+ if (null !== request.trackedPostpones) {
5727
+ row = request.trackedPostpones;
5728
+ var postponedRow = boundary.next;
5729
+ if (
5730
+ null !== postponedRow &&
5731
+ ((segment = postponedRow.boundaries), null !== segment)
5732
+ )
5733
+ for (
5734
+ postponedRow.boundaries = null, postponedRow = 0;
5735
+ postponedRow < segment.length;
5736
+ postponedRow++
5737
+ ) {
5738
+ var postponedBoundary = segment[postponedRow];
5739
+ trackPostponedBoundary(request, row, postponedBoundary);
5740
+ finishedTask(request, postponedBoundary, null, null);
5741
+ }
5742
+ }
5743
+ 0 === --boundary.pendingTasks &&
5744
+ finishSuspenseListRow(request, boundary);
5745
+ }
5746
+ }
5747
+ else
5748
+ null === segment ||
5749
+ !segment.parentFlushed ||
5750
+ (1 !== segment.status && 3 !== segment.status) ||
5751
+ (queueCompletedSegment(boundary, segment),
5752
+ 1 === boundary.completedSegments.length &&
5753
+ boundary.parentFlushed &&
5754
+ request.partialBoundaries.push(boundary)),
5755
+ (boundary = boundary.row),
5756
+ null !== boundary &&
5757
+ boundary.together &&
5758
+ tryToResolveTogetherRow(request, boundary);
5154
5759
  0 === request.allPendingTasks && completeAll(request);
5155
5760
  }
5156
5761
  function performWork(request$jscomp$2) {
@@ -5194,7 +5799,12 @@ function performWork(request$jscomp$2) {
5194
5799
  );
5195
5800
  task.replay.pendingTasks--;
5196
5801
  task.abortSet.delete(task);
5197
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5802
+ finishedTask(
5803
+ request$jscomp$0,
5804
+ task.blockedBoundary,
5805
+ task.row,
5806
+ null
5807
+ );
5198
5808
  } catch (thrownValue) {
5199
5809
  resetHooksState();
5200
5810
  var x =
@@ -5208,7 +5818,10 @@ function performWork(request$jscomp$2) {
5208
5818
  ) {
5209
5819
  var ping = task.ping;
5210
5820
  x.then(ping, ping);
5211
- task.thenableState = getThenableStateAfterSuspending();
5821
+ task.thenableState =
5822
+ thrownValue === SuspenseException
5823
+ ? getThenableStateAfterSuspending()
5824
+ : null;
5212
5825
  } else {
5213
5826
  task.replay.pendingTasks--;
5214
5827
  task.abortSet.delete(task);
@@ -5264,7 +5877,12 @@ function performWork(request$jscomp$2) {
5264
5877
  ),
5265
5878
  task.abortSet.delete(task),
5266
5879
  (request$jscomp$1.status = 1),
5267
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5880
+ finishedTask(
5881
+ request,
5882
+ task.blockedBoundary,
5883
+ task.row,
5884
+ request$jscomp$1
5885
+ );
5268
5886
  } catch (thrownValue) {
5269
5887
  resetHooksState();
5270
5888
  request$jscomp$1.children.length = childrenLength;
@@ -5275,39 +5893,64 @@ function performWork(request$jscomp$2) {
5275
5893
  : 12 === request.status
5276
5894
  ? request.fatalError
5277
5895
  : thrownValue;
5278
- if (
5896
+ if (12 === request.status && null !== request.trackedPostpones) {
5897
+ var trackedPostpones = request.trackedPostpones,
5898
+ thrownInfo = getThrownInfo(task.componentStack);
5899
+ task.abortSet.delete(task);
5900
+ logRecoverableError(request, x$jscomp$0, thrownInfo);
5901
+ trackPostpone(request, trackedPostpones, task, request$jscomp$1);
5902
+ finishedTask(
5903
+ request,
5904
+ task.blockedBoundary,
5905
+ task.row,
5906
+ request$jscomp$1
5907
+ );
5908
+ } else if (
5279
5909
  "object" === typeof x$jscomp$0 &&
5280
5910
  null !== x$jscomp$0 &&
5281
5911
  "function" === typeof x$jscomp$0.then
5282
5912
  ) {
5283
5913
  request$jscomp$1.status = 0;
5284
- task.thenableState = getThenableStateAfterSuspending();
5914
+ task.thenableState =
5915
+ thrownValue === SuspenseException
5916
+ ? getThenableStateAfterSuspending()
5917
+ : null;
5285
5918
  var ping$jscomp$0 = task.ping;
5286
5919
  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
5287
5920
  } else {
5288
5921
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5289
5922
  task.abortSet.delete(task);
5290
5923
  request$jscomp$1.status = 4;
5291
- var boundary$jscomp$0 = task.blockedBoundary;
5924
+ var boundary$jscomp$0 = task.blockedBoundary,
5925
+ row = task.row;
5926
+ null !== row &&
5927
+ 0 === --row.pendingTasks &&
5928
+ finishSuspenseListRow(request, row);
5929
+ request.allPendingTasks--;
5292
5930
  request$jscomp$0 = logRecoverableError(
5293
5931
  request,
5294
5932
  x$jscomp$0,
5295
5933
  errorInfo$jscomp$0
5296
5934
  );
5297
- null === boundary$jscomp$0
5298
- ? fatalError(request, x$jscomp$0)
5299
- : (boundary$jscomp$0.pendingTasks--,
5300
- 4 !== boundary$jscomp$0.status &&
5301
- ((boundary$jscomp$0.status = 4),
5302
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5303
- untrackBoundary(request, boundary$jscomp$0),
5304
- boundary$jscomp$0.parentFlushed &&
5305
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5306
- 0 === request.pendingRootTasks &&
5307
- null === request.trackedPostpones &&
5308
- null !== boundary$jscomp$0.contentPreamble &&
5309
- preparePreamble(request)));
5310
- request.allPendingTasks--;
5935
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
5936
+ else if (
5937
+ (boundary$jscomp$0.pendingTasks--,
5938
+ 4 !== boundary$jscomp$0.status)
5939
+ ) {
5940
+ boundary$jscomp$0.status = 4;
5941
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
5942
+ untrackBoundary(request, boundary$jscomp$0);
5943
+ var boundaryRow = boundary$jscomp$0.row;
5944
+ null !== boundaryRow &&
5945
+ 0 === --boundaryRow.pendingTasks &&
5946
+ finishSuspenseListRow(request, boundaryRow);
5947
+ boundary$jscomp$0.parentFlushed &&
5948
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
5949
+ 0 === request.pendingRootTasks &&
5950
+ null === request.trackedPostpones &&
5951
+ null !== boundary$jscomp$0.contentPreamble &&
5952
+ preparePreamble(request);
5953
+ }
5311
5954
  0 === request.allPendingTasks && completeAll(request);
5312
5955
  }
5313
5956
  } finally {
@@ -5363,6 +6006,7 @@ function preparePreambleFromSegment(
5363
6006
  switch (boundary.status) {
5364
6007
  case 1:
5365
6008
  hoistPreambleState(request.renderState, preamble);
6009
+ request.byteSize += boundary.byteSize;
5366
6010
  segment = boundary.completedSegments[0];
5367
6011
  if (!segment)
5368
6012
  throw Error(
@@ -5395,17 +6039,16 @@ function preparePreamble(request) {
5395
6039
  null === request.completedPreambleSegments
5396
6040
  ) {
5397
6041
  var collectedPreambleSegments = [],
6042
+ originalRequestByteSize = request.byteSize,
5398
6043
  hasPendingPreambles = preparePreambleFromSegment(
5399
6044
  request,
5400
6045
  request.completedRootSegment,
5401
6046
  collectedPreambleSegments
5402
6047
  ),
5403
6048
  preamble = request.renderState.preamble;
5404
- if (
5405
- !1 === hasPendingPreambles ||
5406
- (preamble.headChunks && preamble.bodyChunks)
5407
- )
5408
- request.completedPreambleSegments = collectedPreambleSegments;
6049
+ !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
6050
+ ? (request.completedPreambleSegments = collectedPreambleSegments)
6051
+ : (request.byteSize = originalRequestByteSize);
5409
6052
  }
5410
6053
  }
5411
6054
  function flushSubtree(request, destination, segment, hoistableState) {
@@ -5440,36 +6083,40 @@ function flushSubtree(request, destination, segment, hoistableState) {
5440
6083
  destination.push(chunks[chunkIdx]);
5441
6084
  chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx]));
5442
6085
  return r;
6086
+ case 3:
6087
+ return !0;
5443
6088
  default:
5444
6089
  throw Error(
5445
6090
  "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
5446
6091
  );
5447
6092
  }
5448
6093
  }
6094
+ var flushedByteSize = 0;
5449
6095
  function flushSegment(request, destination, segment, hoistableState) {
5450
6096
  var boundary = segment.boundary;
5451
6097
  if (null === boundary)
5452
6098
  return flushSubtree(request, destination, segment, hoistableState);
5453
6099
  boundary.parentFlushed = !0;
5454
6100
  if (4 === boundary.status) {
5455
- if (!request.renderState.generateStaticMarkup) {
5456
- var errorDigest = boundary.errorDigest;
5457
- destination.push("\x3c!--$!--\x3e");
5458
- destination.push("<template");
5459
- errorDigest &&
6101
+ var row = boundary.row;
6102
+ null !== row &&
6103
+ 0 === --row.pendingTasks &&
6104
+ finishSuspenseListRow(request, row);
6105
+ request.renderState.generateStaticMarkup ||
6106
+ ((boundary = boundary.errorDigest),
6107
+ destination.push("\x3c!--$!--\x3e"),
6108
+ destination.push("<template"),
6109
+ boundary &&
5460
6110
  (destination.push(' data-dgst="'),
5461
- (errorDigest = escapeTextForBrowser(errorDigest)),
5462
- destination.push(errorDigest),
5463
- destination.push('"'));
5464
- destination.push("></template>");
5465
- }
6111
+ (boundary = escapeTextForBrowser(boundary)),
6112
+ destination.push(boundary),
6113
+ destination.push('"')),
6114
+ destination.push("></template>"));
5466
6115
  flushSubtree(request, destination, segment, hoistableState);
5467
- request.renderState.generateStaticMarkup
5468
- ? (destination = !0)
5469
- : ((request = boundary.fallbackPreamble) &&
5470
- writePreambleContribution(destination, request),
5471
- (destination = destination.push("\x3c!--/$--\x3e")));
5472
- return destination;
6116
+ request = request.renderState.generateStaticMarkup
6117
+ ? !0
6118
+ : destination.push("\x3c!--/$--\x3e");
6119
+ return request;
5473
6120
  }
5474
6121
  if (1 !== boundary.status)
5475
6122
  return (
@@ -5482,17 +6129,15 @@ function flushSegment(request, destination, segment, hoistableState) {
5482
6129
  request.renderState,
5483
6130
  boundary.rootSegmentID
5484
6131
  ),
5485
- hoistableState &&
5486
- ((boundary = boundary.fallbackState),
5487
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5488
- boundary.stylesheets.forEach(
5489
- hoistStylesheetDependency,
5490
- hoistableState
5491
- )),
6132
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
5492
6133
  flushSubtree(request, destination, segment, hoistableState),
5493
6134
  destination.push("\x3c!--/$--\x3e")
5494
6135
  );
5495
- if (boundary.byteSize > request.progressiveChunkSize)
6136
+ if (
6137
+ !flushingPartialBoundaries &&
6138
+ isEligibleForOutlining(request, boundary) &&
6139
+ flushedByteSize + boundary.byteSize > request.progressiveChunkSize
6140
+ )
5496
6141
  return (
5497
6142
  (boundary.rootSegmentID = request.nextSegmentId++),
5498
6143
  request.completedBoundaries.push(boundary),
@@ -5504,10 +6149,13 @@ function flushSegment(request, destination, segment, hoistableState) {
5504
6149
  flushSubtree(request, destination, segment, hoistableState),
5505
6150
  destination.push("\x3c!--/$--\x3e")
5506
6151
  );
5507
- hoistableState &&
5508
- ((segment = boundary.contentState),
5509
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5510
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
6152
+ flushedByteSize += boundary.byteSize;
6153
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
6154
+ segment = boundary.row;
6155
+ null !== segment &&
6156
+ isEligibleForOutlining(request, boundary) &&
6157
+ 0 === --segment.pendingTasks &&
6158
+ finishSuspenseListRow(request, segment);
5511
6159
  request.renderState.generateStaticMarkup ||
5512
6160
  destination.push("\x3c!--$--\x3e");
5513
6161
  segment = boundary.completedSegments;
@@ -5516,12 +6164,10 @@ function flushSegment(request, destination, segment, hoistableState) {
5516
6164
  "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
5517
6165
  );
5518
6166
  flushSegment(request, destination, segment[0], hoistableState);
5519
- request.renderState.generateStaticMarkup
5520
- ? (destination = !0)
5521
- : ((request = boundary.contentPreamble) &&
5522
- writePreambleContribution(destination, request),
5523
- (destination = destination.push("\x3c!--/$--\x3e")));
5524
- return destination;
6167
+ request = request.renderState.generateStaticMarkup
6168
+ ? !0
6169
+ : destination.push("\x3c!--/$--\x3e");
6170
+ return request;
5525
6171
  }
5526
6172
  function flushSegmentContainer(request, destination, segment, hoistableState) {
5527
6173
  writeStartSegment(
@@ -5534,6 +6180,7 @@ function flushSegmentContainer(request, destination, segment, hoistableState) {
5534
6180
  return writeEndSegment(destination, segment.parentFormatContext);
5535
6181
  }
5536
6182
  function flushCompletedBoundary(request, destination, boundary) {
6183
+ flushedByteSize = boundary.byteSize;
5537
6184
  for (
5538
6185
  var completedSegments = boundary.completedSegments, i = 0;
5539
6186
  i < completedSegments.length;
@@ -5546,6 +6193,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5546
6193
  completedSegments[i]
5547
6194
  );
5548
6195
  completedSegments.length = 0;
6196
+ completedSegments = boundary.row;
6197
+ null !== completedSegments &&
6198
+ isEligibleForOutlining(request, boundary) &&
6199
+ 0 === --completedSegments.pendingTasks &&
6200
+ finishSuspenseListRow(request, completedSegments);
5549
6201
  writeHoistablesForBoundary(
5550
6202
  destination,
5551
6203
  boundary.contentState,
@@ -5558,24 +6210,30 @@ function flushCompletedBoundary(request, destination, boundary) {
5558
6210
  var requiresStyleInsertion = request.stylesToHoist;
5559
6211
  request.stylesToHoist = !1;
5560
6212
  destination.push(request.startInlineScript);
6213
+ destination.push(">");
5561
6214
  requiresStyleInsertion
5562
- ? 0 === (completedSegments.instructions & 2)
5563
- ? ((completedSegments.instructions |= 10),
6215
+ ? (0 === (completedSegments.instructions & 4) &&
6216
+ ((completedSegments.instructions |= 4),
5564
6217
  destination.push(
5565
- '$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("'
5566
- ))
5567
- : 0 === (completedSegments.instructions & 8)
6218
+ '$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())};'
6219
+ )),
6220
+ 0 === (completedSegments.instructions & 2) &&
6221
+ ((completedSegments.instructions |= 2),
6222
+ destination.push(
6223
+ '$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)};'
6224
+ )),
6225
+ 0 === (completedSegments.instructions & 8)
5568
6226
  ? ((completedSegments.instructions |= 8),
5569
6227
  destination.push(
5570
- '$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("'
6228
+ '$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("'
5571
6229
  ))
5572
- : destination.push('$RR("')
5573
- : 0 === (completedSegments.instructions & 2)
5574
- ? ((completedSegments.instructions |= 2),
6230
+ : destination.push('$RR("'))
6231
+ : (0 === (completedSegments.instructions & 2) &&
6232
+ ((completedSegments.instructions |= 2),
5575
6233
  destination.push(
5576
- '$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("'
5577
- ))
5578
- : destination.push('$RC("');
6234
+ '$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)};'
6235
+ )),
6236
+ destination.push('$RC("'));
5579
6237
  completedSegments = i.toString(16);
5580
6238
  destination.push(request.boundaryPrefix);
5581
6239
  destination.push(completedSegments);
@@ -5611,6 +6269,7 @@ function flushPartiallyCompletedSegment(
5611
6269
  boundary = request.resumableState;
5612
6270
  request = request.renderState;
5613
6271
  destination.push(request.startInlineScript);
6272
+ destination.push(">");
5614
6273
  0 === (boundary.instructions & 1)
5615
6274
  ? ((boundary.instructions |= 1),
5616
6275
  destination.push(
@@ -5626,6 +6285,7 @@ function flushPartiallyCompletedSegment(
5626
6285
  destination = destination.push('")\x3c/script>');
5627
6286
  return destination;
5628
6287
  }
6288
+ var flushingPartialBoundaries = !1;
5629
6289
  function flushCompletedQueues(request, destination) {
5630
6290
  try {
5631
6291
  if (!(0 < request.pendingRootTasks)) {
@@ -5635,7 +6295,9 @@ function flushCompletedQueues(request, destination) {
5635
6295
  if (5 === completedRootSegment.status) return;
5636
6296
  var completedPreambleSegments = request.completedPreambleSegments;
5637
6297
  if (null === completedPreambleSegments) return;
5638
- var renderState = request.renderState,
6298
+ flushedByteSize = request.byteSize;
6299
+ var resumableState = request.resumableState,
6300
+ renderState = request.renderState,
5639
6301
  preamble = renderState.preamble,
5640
6302
  htmlChunks = preamble.htmlChunks,
5641
6303
  headChunks = preamble.headChunks,
@@ -5668,7 +6330,9 @@ function flushCompletedQueues(request, destination) {
5668
6330
  renderState.fontPreloads.clear();
5669
6331
  renderState.highImagePreloads.forEach(flushResource, destination);
5670
6332
  renderState.highImagePreloads.clear();
6333
+ currentlyFlushingRenderState = renderState;
5671
6334
  renderState.styles.forEach(flushStylesInPreamble, destination);
6335
+ currentlyFlushingRenderState = null;
5672
6336
  var importMapChunks = renderState.importMapChunks;
5673
6337
  for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
5674
6338
  destination.push(importMapChunks[i$jscomp$0]);
@@ -5678,17 +6342,18 @@ function flushCompletedQueues(request, destination) {
5678
6342
  renderState.scripts.clear();
5679
6343
  renderState.bulkPreloads.forEach(flushResource, destination);
5680
6344
  renderState.bulkPreloads.clear();
6345
+ resumableState.instructions |= 32;
5681
6346
  var hoistableChunks = renderState.hoistableChunks;
5682
6347
  for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
5683
6348
  destination.push(hoistableChunks[i$jscomp$0]);
5684
6349
  for (
5685
- renderState = hoistableChunks.length = 0;
5686
- renderState < completedPreambleSegments.length;
5687
- renderState++
6350
+ resumableState = hoistableChunks.length = 0;
6351
+ resumableState < completedPreambleSegments.length;
6352
+ resumableState++
5688
6353
  ) {
5689
- var segments = completedPreambleSegments[renderState];
5690
- for (preamble = 0; preamble < segments.length; preamble++)
5691
- flushSegment(request, destination, segments[preamble], null);
6354
+ var segments = completedPreambleSegments[resumableState];
6355
+ for (renderState = 0; renderState < segments.length; renderState++)
6356
+ flushSegment(request, destination, segments[renderState], null);
5692
6357
  }
5693
6358
  var preamble$jscomp$0 = request.renderState.preamble,
5694
6359
  headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
@@ -5706,11 +6371,39 @@ function flushCompletedQueues(request, destination) {
5706
6371
  destination.push(bodyChunks[completedPreambleSegments]);
5707
6372
  flushSegment(request, destination, completedRootSegment, null);
5708
6373
  request.completedRootSegment = null;
5709
- writeBootstrap(destination, request.renderState);
6374
+ var renderState$jscomp$0 = request.renderState;
6375
+ if (
6376
+ 0 !== request.allPendingTasks ||
6377
+ 0 !== request.clientRenderedBoundaries.length ||
6378
+ 0 !== request.completedBoundaries.length ||
6379
+ (null !== request.trackedPostpones &&
6380
+ (0 !== request.trackedPostpones.rootNodes.length ||
6381
+ null !== request.trackedPostpones.rootSlots))
6382
+ ) {
6383
+ var resumableState$jscomp$0 = request.resumableState;
6384
+ if (0 === (resumableState$jscomp$0.instructions & 64)) {
6385
+ resumableState$jscomp$0.instructions |= 64;
6386
+ destination.push(renderState$jscomp$0.startInlineScript);
6387
+ if (0 === (resumableState$jscomp$0.instructions & 32)) {
6388
+ resumableState$jscomp$0.instructions |= 32;
6389
+ var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
6390
+ destination.push(' id="');
6391
+ var chunk$jscomp$1 = escapeTextForBrowser(shellId);
6392
+ destination.push(chunk$jscomp$1);
6393
+ destination.push('"');
6394
+ }
6395
+ destination.push(">");
6396
+ destination.push(
6397
+ "requestAnimationFrame(function(){$RT=performance.now()});"
6398
+ );
6399
+ destination.push("\x3c/script>");
6400
+ }
6401
+ }
6402
+ writeBootstrap(destination, renderState$jscomp$0);
5710
6403
  }
5711
- var renderState$jscomp$0 = request.renderState;
6404
+ var renderState$jscomp$1 = request.renderState;
5712
6405
  completedRootSegment = 0;
5713
- var viewportChunks$jscomp$0 = renderState$jscomp$0.viewportChunks;
6406
+ var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
5714
6407
  for (
5715
6408
  completedRootSegment = 0;
5716
6409
  completedRootSegment < viewportChunks$jscomp$0.length;
@@ -5718,21 +6411,21 @@ function flushCompletedQueues(request, destination) {
5718
6411
  )
5719
6412
  destination.push(viewportChunks$jscomp$0[completedRootSegment]);
5720
6413
  viewportChunks$jscomp$0.length = 0;
5721
- renderState$jscomp$0.preconnects.forEach(flushResource, destination);
5722
- renderState$jscomp$0.preconnects.clear();
5723
- renderState$jscomp$0.fontPreloads.forEach(flushResource, destination);
5724
- renderState$jscomp$0.fontPreloads.clear();
5725
- renderState$jscomp$0.highImagePreloads.forEach(
6414
+ renderState$jscomp$1.preconnects.forEach(flushResource, destination);
6415
+ renderState$jscomp$1.preconnects.clear();
6416
+ renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
6417
+ renderState$jscomp$1.fontPreloads.clear();
6418
+ renderState$jscomp$1.highImagePreloads.forEach(
5726
6419
  flushResource,
5727
6420
  destination
5728
6421
  );
5729
- renderState$jscomp$0.highImagePreloads.clear();
5730
- renderState$jscomp$0.styles.forEach(preloadLateStyles, destination);
5731
- renderState$jscomp$0.scripts.forEach(flushResource, destination);
5732
- renderState$jscomp$0.scripts.clear();
5733
- renderState$jscomp$0.bulkPreloads.forEach(flushResource, destination);
5734
- renderState$jscomp$0.bulkPreloads.clear();
5735
- var hoistableChunks$jscomp$0 = renderState$jscomp$0.hoistableChunks;
6422
+ renderState$jscomp$1.highImagePreloads.clear();
6423
+ renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
6424
+ renderState$jscomp$1.scripts.forEach(flushResource, destination);
6425
+ renderState$jscomp$1.scripts.clear();
6426
+ renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
6427
+ renderState$jscomp$1.bulkPreloads.clear();
6428
+ var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
5736
6429
  for (
5737
6430
  completedRootSegment = 0;
5738
6431
  completedRootSegment < hoistableChunks$jscomp$0.length;
@@ -5743,31 +6436,32 @@ function flushCompletedQueues(request, destination) {
5743
6436
  var clientRenderedBoundaries = request.clientRenderedBoundaries;
5744
6437
  for (i = 0; i < clientRenderedBoundaries.length; i++) {
5745
6438
  var boundary = clientRenderedBoundaries[i];
5746
- renderState$jscomp$0 = destination;
5747
- var resumableState = request.resumableState,
5748
- renderState$jscomp$1 = request.renderState,
6439
+ renderState$jscomp$1 = destination;
6440
+ var resumableState$jscomp$1 = request.resumableState,
6441
+ renderState$jscomp$2 = request.renderState,
5749
6442
  id = boundary.rootSegmentID,
5750
6443
  errorDigest = boundary.errorDigest;
5751
- renderState$jscomp$0.push(renderState$jscomp$1.startInlineScript);
5752
- 0 === (resumableState.instructions & 4)
5753
- ? ((resumableState.instructions |= 4),
5754
- renderState$jscomp$0.push(
6444
+ renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript);
6445
+ renderState$jscomp$1.push(">");
6446
+ 0 === (resumableState$jscomp$1.instructions & 4)
6447
+ ? ((resumableState$jscomp$1.instructions |= 4),
6448
+ renderState$jscomp$1.push(
5755
6449
  '$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("'
5756
6450
  ))
5757
- : renderState$jscomp$0.push('$RX("');
5758
- renderState$jscomp$0.push(renderState$jscomp$1.boundaryPrefix);
5759
- var chunk$jscomp$1 = id.toString(16);
5760
- renderState$jscomp$0.push(chunk$jscomp$1);
5761
- renderState$jscomp$0.push('"');
6451
+ : renderState$jscomp$1.push('$RX("');
6452
+ renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix);
6453
+ var chunk$jscomp$2 = id.toString(16);
6454
+ renderState$jscomp$1.push(chunk$jscomp$2);
6455
+ renderState$jscomp$1.push('"');
5762
6456
  if (errorDigest) {
5763
- renderState$jscomp$0.push(",");
5764
- var chunk$jscomp$2 = escapeJSStringsForInstructionScripts(
6457
+ renderState$jscomp$1.push(",");
6458
+ var chunk$jscomp$3 = escapeJSStringsForInstructionScripts(
5765
6459
  errorDigest || ""
5766
6460
  );
5767
- renderState$jscomp$0.push(chunk$jscomp$2);
6461
+ renderState$jscomp$1.push(chunk$jscomp$3);
5768
6462
  }
5769
6463
  var JSCompiler_inline_result =
5770
- renderState$jscomp$0.push(")\x3c/script>");
6464
+ renderState$jscomp$1.push(")\x3c/script>");
5771
6465
  if (!JSCompiler_inline_result) {
5772
6466
  request.destination = null;
5773
6467
  i++;
@@ -5787,13 +6481,15 @@ function flushCompletedQueues(request, destination) {
5787
6481
  return;
5788
6482
  }
5789
6483
  completedBoundaries.splice(0, i);
6484
+ flushingPartialBoundaries = !0;
5790
6485
  var partialBoundaries = request.partialBoundaries;
5791
6486
  for (i = 0; i < partialBoundaries.length; i++) {
5792
- var boundary$51 = partialBoundaries[i];
6487
+ var boundary$69 = partialBoundaries[i];
5793
6488
  a: {
5794
6489
  clientRenderedBoundaries = request;
5795
6490
  boundary = destination;
5796
- var completedSegments = boundary$51.completedSegments;
6491
+ flushedByteSize = boundary$69.byteSize;
6492
+ var completedSegments = boundary$69.completedSegments;
5797
6493
  for (
5798
6494
  JSCompiler_inline_result = 0;
5799
6495
  JSCompiler_inline_result < completedSegments.length;
@@ -5803,7 +6499,7 @@ function flushCompletedQueues(request, destination) {
5803
6499
  !flushPartiallyCompletedSegment(
5804
6500
  clientRenderedBoundaries,
5805
6501
  boundary,
5806
- boundary$51,
6502
+ boundary$69,
5807
6503
  completedSegments[JSCompiler_inline_result]
5808
6504
  )
5809
6505
  ) {
@@ -5813,9 +6509,20 @@ function flushCompletedQueues(request, destination) {
5813
6509
  break a;
5814
6510
  }
5815
6511
  completedSegments.splice(0, JSCompiler_inline_result);
6512
+ var row = boundary$69.row;
6513
+ null !== row &&
6514
+ row.together &&
6515
+ 1 === boundary$69.pendingTasks &&
6516
+ (1 === row.pendingTasks
6517
+ ? unblockSuspenseListRow(
6518
+ clientRenderedBoundaries,
6519
+ row,
6520
+ row.hoistables
6521
+ )
6522
+ : row.pendingTasks--);
5816
6523
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
5817
6524
  boundary,
5818
- boundary$51.contentState,
6525
+ boundary$69.contentState,
5819
6526
  clientRenderedBoundaries.renderState
5820
6527
  );
5821
6528
  }
@@ -5827,6 +6534,7 @@ function flushCompletedQueues(request, destination) {
5827
6534
  }
5828
6535
  }
5829
6536
  partialBoundaries.splice(0, i);
6537
+ flushingPartialBoundaries = !1;
5830
6538
  var largeBoundaries = request.completedBoundaries;
5831
6539
  for (i = 0; i < largeBoundaries.length; i++)
5832
6540
  if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
@@ -5838,19 +6546,19 @@ function flushCompletedQueues(request, destination) {
5838
6546
  largeBoundaries.splice(0, i);
5839
6547
  }
5840
6548
  } finally {
5841
- 0 === request.allPendingTasks &&
5842
- 0 === request.pingedTasks.length &&
5843
- 0 === request.clientRenderedBoundaries.length &&
5844
- 0 === request.completedBoundaries.length &&
5845
- ((request.flushScheduled = !1),
5846
- (i = request.resumableState),
5847
- i.hasBody &&
5848
- ((partialBoundaries = endChunkForTag("body")),
5849
- destination.push(partialBoundaries)),
5850
- i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
5851
- (request.status = 14),
5852
- destination.push(null),
5853
- (request.destination = null));
6549
+ (flushingPartialBoundaries = !1),
6550
+ 0 === request.allPendingTasks &&
6551
+ 0 === request.clientRenderedBoundaries.length &&
6552
+ 0 === request.completedBoundaries.length &&
6553
+ ((request.flushScheduled = !1),
6554
+ (i = request.resumableState),
6555
+ i.hasBody &&
6556
+ ((partialBoundaries = endChunkForTag("body")),
6557
+ destination.push(partialBoundaries)),
6558
+ i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
6559
+ (request.status = 14),
6560
+ destination.push(null),
6561
+ (request.destination = null));
5854
6562
  }
5855
6563
  }
5856
6564
  function enqueueFlush(request) {
@@ -5899,8 +6607,20 @@ function abort(request, reason) {
5899
6607
  }
5900
6608
  null !== request.destination &&
5901
6609
  flushCompletedQueues(request, request.destination);
5902
- } catch (error$53) {
5903
- logRecoverableError(request, error$53, {}), fatalError(request, error$53);
6610
+ } catch (error$71) {
6611
+ logRecoverableError(request, error$71, {}), fatalError(request, error$71);
6612
+ }
6613
+ }
6614
+ function addToReplayParent(node, parentKeyPath, trackedPostpones) {
6615
+ if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
6616
+ else {
6617
+ var workingMap = trackedPostpones.workingMap,
6618
+ parentNode = workingMap.get(parentKeyPath);
6619
+ void 0 === parentNode &&
6620
+ ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
6621
+ workingMap.set(parentKeyPath, parentNode),
6622
+ addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
6623
+ parentNode[2].push(node);
5904
6624
  }
5905
6625
  }
5906
6626
  function onError() {}
@@ -5919,7 +6639,7 @@ function renderToStringImpl(
5919
6639
  children,
5920
6640
  options,
5921
6641
  createRenderState(options, generateStaticMarkup),
5922
- createFormatContext(0, null, 0),
6642
+ createFormatContext(0, null, 0, null),
5923
6643
  Infinity,
5924
6644
  onError,
5925
6645
  void 0,
@@ -5969,4 +6689,4 @@ exports.renderToString = function (children, options) {
5969
6689
  '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 "renderToPipeableStream" which supports Suspense on the server'
5970
6690
  );
5971
6691
  };
5972
- exports.version = "19.1.0";
6692
+ exports.version = "19.2.4";