@epic-web/workshop-app 6.14.2 → 6.14.3

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.
Files changed (331) hide show
  1. package/build/client/assets/{_-DV4Ha66L.js → _-BuqsX9jL.js} +2 -2
  2. package/build/client/assets/{_-DV4Ha66L.js.map → _-BuqsX9jL.js.map} +1 -1
  3. package/build/client/assets/{_-BEfdnu_S.js → _-DinosGr4.js} +2 -2
  4. package/build/client/assets/_-DinosGr4.js.map +1 -0
  5. package/build/client/assets/{_basePickBy-BXbL7qon.js → _basePickBy-BWxiEF6L.js} +2 -2
  6. package/build/client/assets/{_basePickBy-BXbL7qon.js.map → _basePickBy-BWxiEF6L.js.map} +1 -1
  7. package/build/client/assets/{_baseUniq-CtZFfRif.js → _baseUniq-D0omyKdo.js} +2 -2
  8. package/build/client/assets/{_baseUniq-CtZFfRif.js.map → _baseUniq-D0omyKdo.js.map} +1 -1
  9. package/build/client/assets/{_exerciseNumber-BcHM923A.js → _exerciseNumber-CRbv3t2H.js} +2 -2
  10. package/build/client/assets/{_exerciseNumber-BcHM923A.js.map → _exerciseNumber-CRbv3t2H.js.map} +1 -1
  11. package/build/client/assets/{_exerciseNumber_._stepNumber-DkoV9tCf.js → _exerciseNumber_._stepNumber-Q9yj8rZH.js} +2 -2
  12. package/build/client/assets/{_exerciseNumber_._stepNumber-DkoV9tCf.js.map → _exerciseNumber_._stepNumber-Q9yj8rZH.js.map} +1 -1
  13. package/build/client/assets/_exerciseNumber_._stepNumber.index-CpmpbABn.js +2 -0
  14. package/build/client/assets/_exerciseNumber_._stepNumber.index-CpmpbABn.js.map +1 -0
  15. package/build/client/assets/{_exerciseNumber_.finished-BzyI4yot.js → _exerciseNumber_.finished-CF34bJFr.js} +2 -2
  16. package/build/client/assets/{_exerciseNumber_.finished-BzyI4yot.js.map → _exerciseNumber_.finished-CF34bJFr.js.map} +1 -1
  17. package/build/client/assets/{_layout-DHLUa4_9.js → _layout-CnPbZRab.js} +2 -2
  18. package/build/client/assets/{_layout-DHLUa4_9.js.map → _layout-CnPbZRab.js.map} +1 -1
  19. package/build/client/assets/_layout-DiAMIdWk.js +2 -0
  20. package/build/client/assets/{_layout-DQs7hBSg.js.map → _layout-DiAMIdWk.js.map} +1 -1
  21. package/build/client/assets/{_layout-EWv-HN0t.js → _layout-gt3F6WY7.js} +2 -2
  22. package/build/client/assets/{_layout-EWv-HN0t.js.map → _layout-gt3F6WY7.js.map} +1 -1
  23. package/build/client/assets/{_layout-C2qBYSs9.js → _layout-rnQcLakR.js} +2 -2
  24. package/build/client/assets/{_layout-C2qBYSs9.js.map → _layout-rnQcLakR.js.map} +1 -1
  25. package/build/client/assets/{accordion-BNwue7tP.js → accordion-AYJh-rtE.js} +2 -2
  26. package/build/client/assets/{accordion-BNwue7tP.js.map → accordion-AYJh-rtE.js.map} +1 -1
  27. package/build/client/assets/{account-DpWyl5D8.js → account-DG43IEEo.js} +2 -2
  28. package/build/client/assets/{account-DpWyl5D8.js.map → account-DG43IEEo.js.map} +1 -1
  29. package/build/client/assets/api._-CpmpbABn.js +2 -0
  30. package/build/client/assets/api._-CpmpbABn.js.map +1 -0
  31. package/build/client/assets/app-BejX_HAI.js +2 -0
  32. package/build/client/assets/{app-B6Asqz0_.js.map → app-BejX_HAI.js.map} +1 -1
  33. package/build/client/assets/app.epic_ws_.js_-CpmpbABn.js +2 -0
  34. package/build/client/assets/app.epic_ws_.js_-CpmpbABn.js.map +1 -0
  35. package/build/client/assets/apps-Btba-K9Q.js +2 -0
  36. package/build/client/assets/apps-Btba-K9Q.js.map +1 -0
  37. package/build/client/assets/apps-CpmpbABn.js +2 -0
  38. package/build/client/assets/apps-CpmpbABn.js.map +1 -0
  39. package/build/client/assets/{arc-BMVfhJT3.js → arc-DnPvHhUK.js} +2 -2
  40. package/build/client/assets/{arc-BMVfhJT3.js.map → arc-DnPvHhUK.js.map} +1 -1
  41. package/build/client/assets/{architectureDiagram-NQ2NVSRB-BIdrgV0s.js → architectureDiagram-NQ2NVSRB-DkGn5Zso.js} +2 -2
  42. package/build/client/assets/{architectureDiagram-NQ2NVSRB-BIdrgV0s.js.map → architectureDiagram-NQ2NVSRB-DkGn5Zso.js.map} +1 -1
  43. package/build/client/assets/{blockDiagram-PHRCVELO-BbpPuqMV.js → blockDiagram-PHRCVELO-CWEnQ3zq.js} +2 -2
  44. package/build/client/assets/{blockDiagram-PHRCVELO-BbpPuqMV.js.map → blockDiagram-PHRCVELO-CWEnQ3zq.js.map} +1 -1
  45. package/build/client/assets/{button-D02M3k_A.js → button-Bj2M84MD.js} +2 -2
  46. package/build/client/assets/{button-D02M3k_A.js.map → button-Bj2M84MD.js.map} +1 -1
  47. package/build/client/assets/{c4Diagram-6F6E4RAY-fp3r0ui0.js → c4Diagram-6F6E4RAY-CT_sEMCs.js} +2 -2
  48. package/build/client/assets/{c4Diagram-6F6E4RAY-fp3r0ui0.js.map → c4Diagram-6F6E4RAY-CT_sEMCs.js.map} +1 -1
  49. package/build/client/assets/cache-CpmpbABn.js +2 -0
  50. package/build/client/assets/cache-CpmpbABn.js.map +1 -0
  51. package/build/client/assets/channel-BeLxxkZE.js +2 -0
  52. package/build/client/assets/{channel-BWGVHDK-.js.map → channel-BeLxxkZE.js.map} +1 -1
  53. package/build/client/assets/{chunk-353BL4L5-C8aHupyU.js → chunk-353BL4L5-DdT6pwPP.js} +2 -2
  54. package/build/client/assets/{chunk-353BL4L5-C8aHupyU.js.map → chunk-353BL4L5-DdT6pwPP.js.map} +1 -1
  55. package/build/client/assets/{chunk-67H74DCK-BOeVunjk.js → chunk-67H74DCK-B92r5qri.js} +2 -2
  56. package/build/client/assets/{chunk-67H74DCK-BOeVunjk.js.map → chunk-67H74DCK-B92r5qri.js.map} +1 -1
  57. package/build/client/assets/{chunk-6OLS64BW-CFvuQ04p.js → chunk-6OLS64BW-BEy9KJ5f.js} +2 -2
  58. package/build/client/assets/{chunk-6OLS64BW-CFvuQ04p.js.map → chunk-6OLS64BW-BEy9KJ5f.js.map} +1 -1
  59. package/build/client/assets/{chunk-AACKK3MU-BetTIqd0.js → chunk-AACKK3MU-Cw-HKrX6.js} +2 -2
  60. package/build/client/assets/{chunk-AACKK3MU-BetTIqd0.js.map → chunk-AACKK3MU-Cw-HKrX6.js.map} +1 -1
  61. package/build/client/assets/{chunk-BFAMUDN2-C2PbRhzm.js → chunk-BFAMUDN2-9lgHCThd.js} +2 -2
  62. package/build/client/assets/{chunk-BFAMUDN2-C2PbRhzm.js.map → chunk-BFAMUDN2-9lgHCThd.js.map} +1 -1
  63. package/build/client/assets/{chunk-E2GYISFI-Bl4n1xdN.js → chunk-E2GYISFI-CEJToJ2v.js} +2 -2
  64. package/build/client/assets/{chunk-E2GYISFI-Bl4n1xdN.js.map → chunk-E2GYISFI-CEJToJ2v.js.map} +1 -1
  65. package/build/client/assets/{chunk-QEP2MXWD-mvodIAlz.js → chunk-QEP2MXWD-BofXD0BC.js} +2 -2
  66. package/build/client/assets/{chunk-QEP2MXWD-mvodIAlz.js.map → chunk-QEP2MXWD-BofXD0BC.js.map} +1 -1
  67. package/build/client/assets/{chunk-QMGIS6GS-Du-_uMOD.js → chunk-QMGIS6GS-s1sqUxzz.js} +2 -2
  68. package/build/client/assets/{chunk-QMGIS6GS-Du-_uMOD.js.map → chunk-QMGIS6GS-s1sqUxzz.js.map} +1 -1
  69. package/build/client/assets/{chunk-SKB7J2MH-Bbw5Ks_7.js → chunk-SKB7J2MH-DXa3NVrE.js} +2 -2
  70. package/build/client/assets/{chunk-SKB7J2MH-Bbw5Ks_7.js.map → chunk-SKB7J2MH-DXa3NVrE.js.map} +1 -1
  71. package/build/client/assets/classDiagram-BGRH5UQR-aV0KX_qv.js +2 -0
  72. package/build/client/assets/{classDiagram-BGRH5UQR-B43E4NNs.js.map → classDiagram-BGRH5UQR-aV0KX_qv.js.map} +1 -1
  73. package/build/client/assets/classDiagram-v2-O24JOBDK-aV0KX_qv.js +2 -0
  74. package/build/client/assets/{classDiagram-v2-O24JOBDK-B43E4NNs.js.map → classDiagram-v2-O24JOBDK-aV0KX_qv.js.map} +1 -1
  75. package/build/client/assets/clone-DqaJG4aH.js +2 -0
  76. package/build/client/assets/{clone-BniOf7Yb.js.map → clone-DqaJG4aH.js.map} +1 -1
  77. package/build/client/assets/{dagre-FFZHY6LT-vKH6qeW_.js → dagre-FFZHY6LT-B68Pp1mI.js} +2 -2
  78. package/build/client/assets/{dagre-FFZHY6LT-vKH6qeW_.js.map → dagre-FFZHY6LT-B68Pp1mI.js.map} +1 -1
  79. package/build/client/assets/{diagram-3EMPZRKU-D3BTQE0v.js → diagram-3EMPZRKU-DRVvTI2i.js} +2 -2
  80. package/build/client/assets/{diagram-3EMPZRKU-D3BTQE0v.js.map → diagram-3EMPZRKU-DRVvTI2i.js.map} +1 -1
  81. package/build/client/assets/{diagram-5UYTHUR4-BadShsGf.js → diagram-5UYTHUR4-D_dp2UMv.js} +2 -2
  82. package/build/client/assets/{diagram-5UYTHUR4-BadShsGf.js.map → diagram-5UYTHUR4-D_dp2UMv.js.map} +1 -1
  83. package/build/client/assets/{diagram-ZTM2IBQH-D9jJN3bl.js → diagram-ZTM2IBQH-RObBkpH0.js} +2 -2
  84. package/build/client/assets/{diagram-ZTM2IBQH-D9jJN3bl.js.map → diagram-ZTM2IBQH-RObBkpH0.js.map} +1 -1
  85. package/build/client/assets/diff-B7gB6c2G.js +2 -0
  86. package/build/client/assets/{diff-CQVU7E-h.js.map → diff-B7gB6c2G.js.map} +1 -1
  87. package/build/client/assets/{diff-B376IevU.js → diff-DhipGoJ9.js} +2 -2
  88. package/build/client/assets/{diff-B376IevU.js.map → diff-DhipGoJ9.js.map} +1 -1
  89. package/build/client/assets/{discord-Cx03Cky4.js → discord-CcDU3lmV.js} +2 -2
  90. package/build/client/assets/{discord-Cx03Cky4.js.map → discord-CcDU3lmV.js.map} +1 -1
  91. package/build/client/assets/discord-WVHyDde2.js +2 -0
  92. package/build/client/assets/discord-WVHyDde2.js.map +1 -0
  93. package/build/client/assets/{entry.client-C-f7Acxq.js → entry.client-Bep3EH-f.js} +2 -2
  94. package/build/client/assets/{entry.client-C-f7Acxq.js.map → entry.client-Bep3EH-f.js.map} +1 -1
  95. package/build/client/assets/{epic-video-CYB9v08Z.js → epic-video-BXvzDHIB.js} +2 -2
  96. package/build/client/assets/{epic-video-CYB9v08Z.js.map → epic-video-BXvzDHIB.js.map} +1 -1
  97. package/build/client/assets/epic_ws_.js_-CpmpbABn.js +2 -0
  98. package/build/client/assets/epic_ws_.js_-CpmpbABn.js.map +1 -0
  99. package/build/client/assets/{erDiagram-R3QVA2FD-DA8ObfcQ.js → erDiagram-R3QVA2FD-BM1lu2-V.js} +2 -2
  100. package/build/client/assets/{erDiagram-R3QVA2FD-DA8ObfcQ.js.map → erDiagram-R3QVA2FD-BM1lu2-V.js.map} +1 -1
  101. package/build/client/assets/{error-boundary-BVQLpMgs.js → error-boundary-BhpCzxkD.js} +2 -2
  102. package/build/client/assets/{error-boundary-BVQLpMgs.js.map → error-boundary-BhpCzxkD.js.map} +1 -1
  103. package/build/client/assets/exercises-CpmpbABn.js +2 -0
  104. package/build/client/assets/exercises-CpmpbABn.js.map +1 -0
  105. package/build/client/assets/{finished-CdbbjXVl.js → finished-DFXv9XzM.js} +2 -2
  106. package/build/client/assets/{finished-CdbbjXVl.js.map → finished-DFXv9XzM.js.map} +1 -1
  107. package/build/client/assets/{flowDiagram-PKI6S5ZS-Cl53QYkW.js → flowDiagram-PKI6S5ZS-CWmSD1H_.js} +2 -2
  108. package/build/client/assets/{flowDiagram-PKI6S5ZS-Cl53QYkW.js.map → flowDiagram-PKI6S5ZS-CWmSD1H_.js.map} +1 -1
  109. package/build/client/assets/{ganttDiagram-EK5VF46D-BvSMSlCf.js → ganttDiagram-EK5VF46D-BbzicWDr.js} +2 -2
  110. package/build/client/assets/{ganttDiagram-EK5VF46D-BvSMSlCf.js.map → ganttDiagram-EK5VF46D-BbzicWDr.js.map} +1 -1
  111. package/build/client/assets/{gitGraphDiagram-GW3U2K7C-BC4jDCQG.js → gitGraphDiagram-GW3U2K7C-DGTS4k9w.js} +2 -2
  112. package/build/client/assets/{gitGraphDiagram-GW3U2K7C-BC4jDCQG.js.map → gitGraphDiagram-GW3U2K7C-DGTS4k9w.js.map} +1 -1
  113. package/build/client/assets/{graph-DmoNxkW1.js → graph-CaVVBXRF.js} +2 -2
  114. package/build/client/assets/{graph-DmoNxkW1.js.map → graph-CaVVBXRF.js.map} +1 -1
  115. package/build/client/assets/healthcheck-CpmpbABn.js +2 -0
  116. package/build/client/assets/healthcheck-CpmpbABn.js.map +1 -0
  117. package/build/client/assets/{index-2LBjIZsR.js → index-2vn7TKln.js} +2 -2
  118. package/build/client/assets/{index-2LBjIZsR.js.map → index-2vn7TKln.js.map} +1 -1
  119. package/build/client/assets/{index-CQpafIsR.js → index-5WrUDw0m.js} +2 -2
  120. package/build/client/assets/{index-CQpafIsR.js.map → index-5WrUDw0m.js.map} +1 -1
  121. package/build/client/assets/{index-wYr49Min.js → index-7ddSzI6h.js} +2 -2
  122. package/build/client/assets/{index-wYr49Min.js.map → index-7ddSzI6h.js.map} +1 -1
  123. package/build/client/assets/{index-DhyRhm-a.js → index-B-ImQw77.js} +2 -2
  124. package/build/client/assets/{index-DhyRhm-a.js.map → index-B-ImQw77.js.map} +1 -1
  125. package/build/client/assets/{index-CBUrmkWa.js → index-BAZ-dfnH.js} +2 -2
  126. package/build/client/assets/{index-CBUrmkWa.js.map → index-BAZ-dfnH.js.map} +1 -1
  127. package/build/client/assets/{index-DxebmNVe.js → index-BCIyCTKq.js} +2 -2
  128. package/build/client/assets/{index-DxebmNVe.js.map → index-BCIyCTKq.js.map} +1 -1
  129. package/build/client/assets/{index-B8smZwSG.js → index-BmZYK7HN.js} +2 -2
  130. package/build/client/assets/{index-B8smZwSG.js.map → index-BmZYK7HN.js.map} +1 -1
  131. package/build/client/assets/index-Btba-K9Q.js +2 -0
  132. package/build/client/assets/index-Btba-K9Q.js.map +1 -0
  133. package/build/client/assets/{index-C245u_6M.js → index-CVx7Nbhh.js} +2 -2
  134. package/build/client/assets/{index-C245u_6M.js.map → index-CVx7Nbhh.js.map} +1 -1
  135. package/build/client/assets/index-CZxXGZFL.js +2 -0
  136. package/build/client/assets/index-CZxXGZFL.js.map +1 -0
  137. package/build/client/assets/index-CpmpbABn.js +2 -0
  138. package/build/client/assets/index-CpmpbABn.js.map +1 -0
  139. package/build/client/assets/{index-CsJM7KSY.js → index-YkiF92kh.js} +2 -2
  140. package/build/client/assets/{index-CsJM7KSY.js.map → index-YkiF92kh.js.map} +1 -1
  141. package/build/client/assets/infoDiagram-XT3IWWJI-DxGcRrxo.js +3 -0
  142. package/build/client/assets/{infoDiagram-XT3IWWJI-_8npXlsz.js.map → infoDiagram-XT3IWWJI-DxGcRrxo.js.map} +1 -1
  143. package/build/client/assets/{journeyDiagram-EWQZEKCU-CLMB5SLF.js → journeyDiagram-EWQZEKCU-wZB6fB2A.js} +2 -2
  144. package/build/client/assets/{journeyDiagram-EWQZEKCU-CLMB5SLF.js.map → journeyDiagram-EWQZEKCU-wZB6fB2A.js.map} +1 -1
  145. package/build/client/assets/{jsx-runtime-DKBD_fLS.js → jsx-runtime-DXAEI3Eb.js} +2 -2
  146. package/build/client/assets/{jsx-runtime-DKBD_fLS.js.map → jsx-runtime-DXAEI3Eb.js.map} +1 -1
  147. package/build/client/assets/{kanban-definition-ILFWEQ3N-5PudnDcU.js → kanban-definition-ILFWEQ3N-CK6yB-ML.js} +2 -2
  148. package/build/client/assets/{kanban-definition-ILFWEQ3N-5PudnDcU.js.map → kanban-definition-ILFWEQ3N-CK6yB-ML.js.map} +1 -1
  149. package/build/client/assets/l-B7D7yXbG.js +2 -0
  150. package/build/client/assets/{l-CjuVWd7j.js.map → l-B7D7yXbG.js.map} +1 -1
  151. package/build/client/assets/launch-editor-CpmpbABn.js +2 -0
  152. package/build/client/assets/launch-editor-CpmpbABn.js.map +1 -0
  153. package/build/client/assets/{layout-BXfvL1vj.js → layout-D4Warzdd.js} +2 -2
  154. package/build/client/assets/{layout-BXfvL1vj.js.map → layout-D4Warzdd.js.map} +1 -1
  155. package/build/client/assets/{linear-DhCwCW7Y.js → linear-CM1Phdip.js} +2 -2
  156. package/build/client/assets/{linear-DhCwCW7Y.js.map → linear-CM1Phdip.js.map} +1 -1
  157. package/build/client/assets/{loading-BuvISkeY.js → loading-CwyhGvvd.js} +2 -2
  158. package/build/client/assets/{loading-BuvISkeY.js.map → loading-CwyhGvvd.js.map} +1 -1
  159. package/build/client/assets/{login-BH4ljGt7.js → login-DfqSkVaO.js} +2 -2
  160. package/build/client/assets/{login-BH4ljGt7.js.map → login-DfqSkVaO.js.map} +1 -1
  161. package/build/client/assets/login-sse-CpmpbABn.js +2 -0
  162. package/build/client/assets/login-sse-CpmpbABn.js.map +1 -0
  163. package/build/client/assets/lookout-CpmpbABn.js +2 -0
  164. package/build/client/assets/lookout-CpmpbABn.js.map +1 -0
  165. package/build/client/assets/manifest-57b5a7c4.js +1 -0
  166. package/build/client/assets/{mdx-DdK1AGxI.js → mdx-D3zuEMw_.js} +3 -3
  167. package/build/client/assets/{mdx-DdK1AGxI.js.map → mdx-D3zuEMw_.js.map} +1 -1
  168. package/build/client/assets/{mermaid.core-tdjgKLol.js → mermaid.core-DN2yK8JU.js} +5 -5
  169. package/build/client/assets/{mermaid.core-tdjgKLol.js.map → mermaid.core-DN2yK8JU.js.map} +1 -1
  170. package/build/client/assets/{mindmap-definition-CZNETY7S-DocEjJYU.js → mindmap-definition-CZNETY7S-CbD8GVId.js} +2 -2
  171. package/build/client/assets/{mindmap-definition-CZNETY7S-DocEjJYU.js.map → mindmap-definition-CZNETY7S-CbD8GVId.js.map} +1 -1
  172. package/build/client/assets/{misc-D7yrZhQB.js → misc-CFnU1MK_.js} +2 -2
  173. package/build/client/assets/{misc-D7yrZhQB.js.map → misc-CFnU1MK_.js.map} +1 -1
  174. package/build/client/assets/{nav-chevrons-DWkM88G0.js → nav-chevrons-j93TK8de.js} +2 -2
  175. package/build/client/assets/{nav-chevrons-DWkM88G0.js.map → nav-chevrons-j93TK8de.js.map} +1 -1
  176. package/build/client/assets/notifications-CpmpbABn.js +2 -0
  177. package/build/client/assets/notifications-CpmpbABn.js.map +1 -0
  178. package/build/client/assets/og-CpmpbABn.js +2 -0
  179. package/build/client/assets/og-CpmpbABn.js.map +1 -0
  180. package/build/client/assets/{onboarding-C59GmR50.js → onboarding-DopOuziu.js} +2 -2
  181. package/build/client/assets/{onboarding-C59GmR50.js.map → onboarding-DopOuziu.js.map} +1 -1
  182. package/build/client/assets/{online-D4vODkth.js → online-CVRagwjj.js} +2 -2
  183. package/build/client/assets/{online-D4vODkth.js.map → online-CVRagwjj.js.map} +1 -1
  184. package/build/client/assets/{pe-CdmQkMqU.js → pe-B4x-9zwV.js} +2 -2
  185. package/build/client/assets/{pe-CdmQkMqU.js.map → pe-B4x-9zwV.js.map} +1 -1
  186. package/build/client/assets/{pieDiagram-NIOCPIFQ-DVmMnK74.js → pieDiagram-NIOCPIFQ-CnVqKmIe.js} +2 -2
  187. package/build/client/assets/{pieDiagram-NIOCPIFQ-DVmMnK74.js.map → pieDiagram-NIOCPIFQ-CnVqKmIe.js.map} +1 -1
  188. package/build/client/assets/{preferences-DfB9rP8a.js → preferences-D-17xd45.js} +2 -2
  189. package/build/client/assets/{preferences-DfB9rP8a.js.map → preferences-D-17xd45.js.map} +1 -1
  190. package/build/client/assets/{presence-DWQewy5j.js → presence-4HURsnNL.js} +2 -2
  191. package/build/client/assets/{presence-DWQewy5j.js.map → presence-4HURsnNL.js.map} +1 -1
  192. package/build/client/assets/{preview-CwjqbpcS.js → preview-4wZFBAy9.js} +2 -2
  193. package/build/client/assets/{preview-CwjqbpcS.js.map → preview-4wZFBAy9.js.map} +1 -1
  194. package/build/client/assets/processes-CpmpbABn.js +2 -0
  195. package/build/client/assets/processes-CpmpbABn.js.map +1 -0
  196. package/build/client/assets/{product-KkdaVQou.js → product-DX8-l4ph.js} +2 -2
  197. package/build/client/assets/{product-KkdaVQou.js.map → product-DX8-l4ph.js.map} +1 -1
  198. package/build/client/assets/{progress-CdZ-Vcyn.js → progress-BDknFYzk.js} +2 -2
  199. package/build/client/assets/{progress-CdZ-Vcyn.js.map → progress-BDknFYzk.js.map} +1 -1
  200. package/build/client/assets/progress-CpmpbABn.js +2 -0
  201. package/build/client/assets/progress-CpmpbABn.js.map +1 -0
  202. package/build/client/assets/{progress-bar-B3_pKtoN.js → progress-bar-FGfYP6Rz.js} +2 -2
  203. package/build/client/assets/{progress-bar-B3_pKtoN.js.map → progress-bar-FGfYP6Rz.js.map} +1 -1
  204. package/build/client/assets/{quadrantDiagram-2OG54O6I-BpG5BmQ3.js → quadrantDiagram-2OG54O6I-D_2NEbEQ.js} +2 -2
  205. package/build/client/assets/{quadrantDiagram-2OG54O6I-BpG5BmQ3.js.map → quadrantDiagram-2OG54O6I-D_2NEbEQ.js.map} +1 -1
  206. package/build/client/assets/{requirementDiagram-SO3GGRV7-CeVkImIX.js → requirementDiagram-SO3GGRV7-DNgmIySA.js} +2 -2
  207. package/build/client/assets/{requirementDiagram-SO3GGRV7-CeVkImIX.js.map → requirementDiagram-SO3GGRV7-DNgmIySA.js.map} +1 -1
  208. package/build/client/assets/{revalidation-ws-Do4fE9JQ.js → revalidation-ws-1umHIswK.js} +2 -2
  209. package/build/client/assets/{revalidation-ws-Do4fE9JQ.js.map → revalidation-ws-1umHIswK.js.map} +1 -1
  210. package/build/client/assets/robots_._txt-CpmpbABn.js +2 -0
  211. package/build/client/assets/robots_._txt-CpmpbABn.js.map +1 -0
  212. package/build/client/assets/{root-C0Bm0Ely.js → root-CXMubBMj.js} +2 -2
  213. package/build/client/assets/{root-C0Bm0Ely.js.map → root-CXMubBMj.js.map} +1 -1
  214. package/build/client/assets/{sankeyDiagram-4UZDY2LN-CMy-UAmy.js → sankeyDiagram-4UZDY2LN-CZX30OZU.js} +2 -2
  215. package/build/client/assets/{sankeyDiagram-4UZDY2LN-CMy-UAmy.js.map → sankeyDiagram-4UZDY2LN-CZX30OZU.js.map} +1 -1
  216. package/build/client/assets/{seo-P_yhbn7-.js → seo-B067fiyK.js} +2 -2
  217. package/build/client/assets/{seo-P_yhbn7-.js.map → seo-B067fiyK.js.map} +1 -1
  218. package/build/client/assets/{sequenceDiagram-ZIKVLSP4-BvE7ME5W.js → sequenceDiagram-ZIKVLSP4-BZ3UBzRg.js} +2 -2
  219. package/build/client/assets/{sequenceDiagram-ZIKVLSP4-BvE7ME5W.js.map → sequenceDiagram-ZIKVLSP4-BZ3UBzRg.js.map} +1 -1
  220. package/build/client/assets/{set-playground-1BzordBz.js → set-playground-BCWzPlz8.js} +2 -2
  221. package/build/client/assets/{set-playground-1BzordBz.js.map → set-playground-BCWzPlz8.js.map} +1 -1
  222. package/build/client/assets/set-playground-CpmpbABn.js +2 -0
  223. package/build/client/assets/set-playground-CpmpbABn.js.map +1 -0
  224. package/build/client/assets/sitemap_._xml-CpmpbABn.js +2 -0
  225. package/build/client/assets/sitemap_._xml-CpmpbABn.js.map +1 -0
  226. package/build/client/assets/start-CpmpbABn.js +2 -0
  227. package/build/client/assets/start-CpmpbABn.js.map +1 -0
  228. package/build/client/assets/{stateDiagram-XX37X6EN-DZlrR-hS.js → stateDiagram-XX37X6EN-Bhcagz06.js} +2 -2
  229. package/build/client/assets/{stateDiagram-XX37X6EN-DZlrR-hS.js.map → stateDiagram-XX37X6EN-Bhcagz06.js.map} +1 -1
  230. package/build/client/assets/stateDiagram-v2-GD6S3NHB-CoWM3q8d.js +2 -0
  231. package/build/client/assets/{stateDiagram-v2-GD6S3NHB-D6K_ePXI.js.map → stateDiagram-v2-GD6S3NHB-CoWM3q8d.js.map} +1 -1
  232. package/build/client/assets/{support-D2ZulF0D.js → support-Bf_2rgd_.js} +2 -2
  233. package/build/client/assets/{support-D2ZulF0D.js.map → support-Bf_2rgd_.js.map} +1 -1
  234. package/build/client/assets/test-CpmpbABn.js +2 -0
  235. package/build/client/assets/test-CpmpbABn.js.map +1 -0
  236. package/build/client/assets/test-CrM0XvT4.js +2 -0
  237. package/build/client/assets/{test-D7r_HsN4.js.map → test-CrM0XvT4.js.map} +1 -1
  238. package/build/client/assets/test._testName-CpmpbABn.js +2 -0
  239. package/build/client/assets/test._testName-CpmpbABn.js.map +1 -0
  240. package/build/client/assets/test.epic_ws_.js_-CpmpbABn.js +2 -0
  241. package/build/client/assets/test.epic_ws_.js_-CpmpbABn.js.map +1 -0
  242. package/build/client/assets/{tests-DaEG5aZr.js → tests-B9wdQykM.js} +2 -2
  243. package/build/client/assets/{tests-DaEG5aZr.js.map → tests-B9wdQykM.js.map} +1 -1
  244. package/build/client/assets/{timeline-definition-RI47OAVP-1EQPBN04.js → timeline-definition-RI47OAVP-Dy7dfzOy.js} +2 -2
  245. package/build/client/assets/{timeline-definition-RI47OAVP-1EQPBN04.js.map → timeline-definition-RI47OAVP-Dy7dfzOy.js.map} +1 -1
  246. package/build/client/assets/{tooltip-CUdKgIRf.js → tooltip-BVlcAOVw.js} +2 -2
  247. package/build/client/assets/{tooltip-CUdKgIRf.js.map → tooltip-BVlcAOVw.js.map} +1 -1
  248. package/build/client/assets/{treemap-6Y5VK53G-CCaJF09R.js → treemap-6Y5VK53G-FTlofOA6.js} +2 -2
  249. package/build/client/assets/{treemap-6Y5VK53G-CCaJF09R.js.map → treemap-6Y5VK53G-FTlofOA6.js.map} +1 -1
  250. package/build/client/assets/{use-event-source-BOTYusqH.js → use-event-source-Dy62QvPu.js} +2 -2
  251. package/build/client/assets/{use-event-source-BOTYusqH.js.map → use-event-source-Dy62QvPu.js.map} +1 -1
  252. package/build/client/assets/{user-BUyyWGpK.js → user-DwkYL1w0.js} +2 -2
  253. package/build/client/assets/{user-BUyyWGpK.js.map → user-DwkYL1w0.js.map} +1 -1
  254. package/build/client/assets/{version-VDBggzrB.js → version-BeSyxmUj.js} +2 -2
  255. package/build/client/assets/{version-VDBggzrB.js.map → version-BeSyxmUj.js.map} +1 -1
  256. package/build/client/assets/workshop-config-C-eyJXJM.js +2 -0
  257. package/build/client/assets/{workshop-config-eejws2-k.js.map → workshop-config-C-eyJXJM.js.map} +1 -1
  258. package/build/client/assets/{workspace-structure-DwQUtU0r.js → workspace-structure-D69bt3vr.js} +2 -2
  259. package/build/client/assets/{workspace-structure-DwQUtU0r.js.map → workspace-structure-D69bt3vr.js.map} +1 -1
  260. package/build/client/assets/{xychartDiagram-H2YORKM3-ZB2741wi.js → xychartDiagram-H2YORKM3-Bmq6avq2.js} +2 -2
  261. package/build/client/assets/{xychartDiagram-H2YORKM3-ZB2741wi.js.map → xychartDiagram-H2YORKM3-Bmq6avq2.js.map} +1 -1
  262. package/build/server/index.js +2 -2
  263. package/package.json +1 -1
  264. package/build/client/assets/_-BEfdnu_S.js.map +0 -1
  265. package/build/client/assets/_exerciseNumber_._stepNumber.index-D9zwSM-a.js +0 -2
  266. package/build/client/assets/_exerciseNumber_._stepNumber.index-D9zwSM-a.js.map +0 -1
  267. package/build/client/assets/_layout-DQs7hBSg.js +0 -2
  268. package/build/client/assets/api._-D9zwSM-a.js +0 -2
  269. package/build/client/assets/api._-D9zwSM-a.js.map +0 -1
  270. package/build/client/assets/app-B6Asqz0_.js +0 -2
  271. package/build/client/assets/app.epic_ws_.js_-D9zwSM-a.js +0 -2
  272. package/build/client/assets/app.epic_ws_.js_-D9zwSM-a.js.map +0 -1
  273. package/build/client/assets/apps-D9zwSM-a.js +0 -2
  274. package/build/client/assets/apps-D9zwSM-a.js.map +0 -1
  275. package/build/client/assets/apps-DxgBeJoD.js +0 -2
  276. package/build/client/assets/apps-DxgBeJoD.js.map +0 -1
  277. package/build/client/assets/cache-D9zwSM-a.js +0 -2
  278. package/build/client/assets/cache-D9zwSM-a.js.map +0 -1
  279. package/build/client/assets/channel-BWGVHDK-.js +0 -2
  280. package/build/client/assets/classDiagram-BGRH5UQR-B43E4NNs.js +0 -2
  281. package/build/client/assets/classDiagram-v2-O24JOBDK-B43E4NNs.js +0 -2
  282. package/build/client/assets/clone-BniOf7Yb.js +0 -2
  283. package/build/client/assets/diff-CQVU7E-h.js +0 -2
  284. package/build/client/assets/discord-B39XeN10.js +0 -2
  285. package/build/client/assets/discord-B39XeN10.js.map +0 -1
  286. package/build/client/assets/epic_ws_.js_-D9zwSM-a.js +0 -2
  287. package/build/client/assets/epic_ws_.js_-D9zwSM-a.js.map +0 -1
  288. package/build/client/assets/exercises-D9zwSM-a.js +0 -2
  289. package/build/client/assets/exercises-D9zwSM-a.js.map +0 -1
  290. package/build/client/assets/healthcheck-D9zwSM-a.js +0 -2
  291. package/build/client/assets/healthcheck-D9zwSM-a.js.map +0 -1
  292. package/build/client/assets/index-BcumkKvQ.js +0 -2
  293. package/build/client/assets/index-BcumkKvQ.js.map +0 -1
  294. package/build/client/assets/index-D9zwSM-a.js +0 -2
  295. package/build/client/assets/index-D9zwSM-a.js.map +0 -1
  296. package/build/client/assets/index-DxgBeJoD.js +0 -2
  297. package/build/client/assets/index-DxgBeJoD.js.map +0 -1
  298. package/build/client/assets/infoDiagram-XT3IWWJI-_8npXlsz.js +0 -3
  299. package/build/client/assets/l-CjuVWd7j.js +0 -2
  300. package/build/client/assets/launch-editor-D9zwSM-a.js +0 -2
  301. package/build/client/assets/launch-editor-D9zwSM-a.js.map +0 -1
  302. package/build/client/assets/login-sse-D9zwSM-a.js +0 -2
  303. package/build/client/assets/login-sse-D9zwSM-a.js.map +0 -1
  304. package/build/client/assets/lookout-D9zwSM-a.js +0 -2
  305. package/build/client/assets/lookout-D9zwSM-a.js.map +0 -1
  306. package/build/client/assets/manifest-f4a6d68a.js +0 -1
  307. package/build/client/assets/notifications-D9zwSM-a.js +0 -2
  308. package/build/client/assets/notifications-D9zwSM-a.js.map +0 -1
  309. package/build/client/assets/og-D9zwSM-a.js +0 -2
  310. package/build/client/assets/og-D9zwSM-a.js.map +0 -1
  311. package/build/client/assets/processes-D9zwSM-a.js +0 -2
  312. package/build/client/assets/processes-D9zwSM-a.js.map +0 -1
  313. package/build/client/assets/progress-D9zwSM-a.js +0 -2
  314. package/build/client/assets/progress-D9zwSM-a.js.map +0 -1
  315. package/build/client/assets/robots_._txt-D9zwSM-a.js +0 -2
  316. package/build/client/assets/robots_._txt-D9zwSM-a.js.map +0 -1
  317. package/build/client/assets/set-playground-D9zwSM-a.js +0 -2
  318. package/build/client/assets/set-playground-D9zwSM-a.js.map +0 -1
  319. package/build/client/assets/sitemap_._xml-D9zwSM-a.js +0 -2
  320. package/build/client/assets/sitemap_._xml-D9zwSM-a.js.map +0 -1
  321. package/build/client/assets/start-D9zwSM-a.js +0 -2
  322. package/build/client/assets/start-D9zwSM-a.js.map +0 -1
  323. package/build/client/assets/stateDiagram-v2-GD6S3NHB-D6K_ePXI.js +0 -2
  324. package/build/client/assets/test-D7r_HsN4.js +0 -2
  325. package/build/client/assets/test-D9zwSM-a.js +0 -2
  326. package/build/client/assets/test-D9zwSM-a.js.map +0 -1
  327. package/build/client/assets/test._testName-D9zwSM-a.js +0 -2
  328. package/build/client/assets/test._testName-D9zwSM-a.js.map +0 -1
  329. package/build/client/assets/test.epic_ws_.js_-D9zwSM-a.js +0 -2
  330. package/build/client/assets/test.epic_ws_.js_-D9zwSM-a.js.map +0 -1
  331. package/build/client/assets/workshop-config-eejws2-k.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"diff-CQVU7E-h.js","sources":["../../../app/routes/diff.tsx"],"sourcesContent":["import {\n\tgetAppByName,\n\tgetAppDisplayName,\n\tgetApps,\n\tisExerciseStepApp,\n} from '@epic-web/workshop-utils/apps.server'\nimport { getDiffCode } from '@epic-web/workshop-utils/diff.server'\nimport { makeTimings } from '@epic-web/workshop-utils/timing.server'\nimport {\n\ttype LoaderFunctionArgs,\n\tuseLoaderData,\n\tuseNavigation,\n\tuseSearchParams,\n} from 'react-router'\nimport { useSpinDelay } from 'spin-delay'\nimport { Diff } from '#app/components/diff.tsx'\nimport { NavChevrons } from '#app/components/nav-chevrons.tsx'\nimport { cn } from '#app/utils/misc.tsx'\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst reqUrl = new URL(request.url)\n\tconst searchParams = reqUrl.searchParams\n\tconst timings = makeTimings('diffLoader')\n\tconst cacheOptions = { request, timings }\n\tconst allAppsFull = await getApps()\n\tconst app1Name = reqUrl.searchParams.get('app1')\n\tconst app2Name = reqUrl.searchParams.get('app2')\n\n\tconst usingDefaultApp1 = !app1Name\n\n\t// defaults to first problem app\n\tconst app1 = app1Name\n\t\t? await getAppByName(app1Name)\n\t\t: allAppsFull.filter(isExerciseStepApp).at(0)\n\n\t// defaults to last exercise step app\n\tconst app2 = app2Name\n\t\t? await getAppByName(app2Name)\n\t\t: allAppsFull.filter(isExerciseStepApp).at(-1)\n\n\tasync function getDiffProp() {\n\t\tif (!app1 || !app2) {\n\t\t\treturn {\n\t\t\t\tapp1: app1?.name,\n\t\t\t\tapp2: app2?.name,\n\t\t\t\tdiffCode: null,\n\t\t\t}\n\t\t}\n\t\tconst diffCode = await getDiffCode(app1, app2, {\n\t\t\t...cacheOptions,\n\t\t\tforceFresh: searchParams.get('forceFresh') === 'diff',\n\t\t}).catch((e) => {\n\t\t\tconsole.error(e)\n\t\t\treturn null\n\t\t})\n\t\treturn {\n\t\t\tapp1: app1.name,\n\t\t\tapp2: app2.name,\n\t\t\tdiffCode,\n\t\t}\n\t}\n\n\tconst allApps = allAppsFull\n\t\t.filter((a, i, ar) => ar.findIndex((b) => a.name === b.name) === i)\n\t\t.map((a) => ({\n\t\t\tdisplayName: getAppDisplayName(a, allAppsFull),\n\t\t\tname: a.name,\n\t\t\ttitle: a.title,\n\t\t\ttype: a.type,\n\t\t}))\n\n\tconst diff = getDiffProp()\n\tconst app1Index = allApps.findIndex((a) => a.name === app1?.name)\n\tconst prevApp1Index = usingDefaultApp1\n\t\t? allApps.length - 2\n\t\t: app1Index === 0\n\t\t\t? -2\n\t\t\t: app1Index - 1\n\tconst prevApp2Index = prevApp1Index + 1\n\tconst nextApp1Index = usingDefaultApp1\n\t\t? 0\n\t\t: app1Index + 1 < allApps.length\n\t\t\t? app1Index + 1\n\t\t\t: -2\n\tconst nextApp2Index = nextApp1Index + 1\n\tconst prevApp1 = allAppsFull[prevApp1Index]?.name\n\tconst prevApp2 = allAppsFull[prevApp2Index]?.name\n\tconst nextApp1 = allAppsFull[nextApp1Index]?.name\n\tconst nextApp2 = allAppsFull[nextApp2Index]?.name\n\tconst prevSearchParams = new URLSearchParams(reqUrl.searchParams)\n\tprevSearchParams.set('app1', prevApp1 ?? '')\n\tprevSearchParams.set('app2', prevApp2 ?? '')\n\tconst nextSearchParams = new URLSearchParams(reqUrl.searchParams)\n\tnextSearchParams.set('app1', nextApp1 ?? '')\n\tnextSearchParams.set('app2', nextApp2 ?? '')\n\treturn {\n\t\tallApps,\n\t\tdiff,\n\t\tprevLink:\n\t\t\tprevApp1 && prevApp2\n\t\t\t\t? { to: `/diff?${prevSearchParams}`, 'aria-label': 'Previous App' }\n\t\t\t\t: { to: '/diff' },\n\t\tnextLink:\n\t\t\tnextApp1 && nextApp2\n\t\t\t\t? { to: `/diff?${nextSearchParams}`, 'aria-label': 'Next App' }\n\t\t\t\t: { to: '/diff' },\n\t}\n}\n\nexport default function DiffViewer() {\n\tconst data = useLoaderData<typeof loader>()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst isNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 200,\n\t\tminDuration: 200,\n\t})\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('grid h-full grid-rows-[1fr,auto]', {\n\t\t\t\t'cursor-wait opacity-30': isNavigating,\n\t\t\t})}\n\t\t>\n\t\t\t<div className=\"overflow-y-auto\">\n\t\t\t\t<Diff diff={data.diff} allApps={data.allApps} />\n\t\t\t</div>\n\t\t\t<div className=\"flex h-16 items-center justify-end border-t\">\n\t\t\t\t<NavChevrons prev={data.prevLink} next={data.nextLink} />\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n"],"names":["diff","_UNSAFE_withComponentProps","data","useLoaderData","params","useSearchParams","URLSearchParams","set","navigation","useNavigation","isNavigating","useSpinDelay","state","delay","minDuration","jsxs","className","cn","children","jsx","Diff","allApps","NavChevrons","prev","prevLink","next","nextLink"],"mappings":"8wBA6GA,MAAAA,EAAAC,EAAA,UAAqC,CACpC,MAAMC,EAAOC,EAAA,EACP,CAACC,CAAM,EAAIC,EAAA,EACe,IAAIC,gBAAgBF,CAAM,EAClCG,IAAI,aAAc,MAAM,EAChD,MAAMC,EAAaC,EAAA,EACbC,EAAeC,EAAAA,aAAaH,EAAWI,QAAU,OAAQ,CAC9DC,MAAO,IACPC,YAAa,GACd,CAAC,EAED,OACCC,EAAAA,KAAC,MAAA,CACAC,UAAWC,EAAG,mCAAoC,CACjD,yBAA0BP,CAC3B,CAAC,EAEDQ,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAIH,UAAU,kBACdE,SAAAC,EAAAA,IAACC,EAAA,CAAKpB,KAAME,EAAKF,KAAMqB,QAASnB,EAAKmB,QAAS,CAAA,CAC/C,EACAF,EAAAA,IAAC,MAAA,CAAIH,UAAU,8CACdE,SAAAC,EAAAA,IAACG,EAAA,CAAYC,KAAMrB,EAAKsB,SAAUC,KAAMvB,EAAKwB,SAAU,CAAA,CACxD,CAAA,CAAA,CACD,CAEF,CAAA"}
1
+ {"version":3,"file":"diff-B7gB6c2G.js","sources":["../../../app/routes/diff.tsx"],"sourcesContent":["import {\n\tgetAppByName,\n\tgetAppDisplayName,\n\tgetApps,\n\tisExerciseStepApp,\n} from '@epic-web/workshop-utils/apps.server'\nimport { getDiffCode } from '@epic-web/workshop-utils/diff.server'\nimport { makeTimings } from '@epic-web/workshop-utils/timing.server'\nimport {\n\ttype LoaderFunctionArgs,\n\tuseLoaderData,\n\tuseNavigation,\n\tuseSearchParams,\n} from 'react-router'\nimport { useSpinDelay } from 'spin-delay'\nimport { Diff } from '#app/components/diff.tsx'\nimport { NavChevrons } from '#app/components/nav-chevrons.tsx'\nimport { cn } from '#app/utils/misc.tsx'\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst reqUrl = new URL(request.url)\n\tconst searchParams = reqUrl.searchParams\n\tconst timings = makeTimings('diffLoader')\n\tconst cacheOptions = { request, timings }\n\tconst allAppsFull = await getApps()\n\tconst app1Name = reqUrl.searchParams.get('app1')\n\tconst app2Name = reqUrl.searchParams.get('app2')\n\n\tconst usingDefaultApp1 = !app1Name\n\n\t// defaults to first problem app\n\tconst app1 = app1Name\n\t\t? await getAppByName(app1Name)\n\t\t: allAppsFull.filter(isExerciseStepApp).at(0)\n\n\t// defaults to last exercise step app\n\tconst app2 = app2Name\n\t\t? await getAppByName(app2Name)\n\t\t: allAppsFull.filter(isExerciseStepApp).at(-1)\n\n\tasync function getDiffProp() {\n\t\tif (!app1 || !app2) {\n\t\t\treturn {\n\t\t\t\tapp1: app1?.name,\n\t\t\t\tapp2: app2?.name,\n\t\t\t\tdiffCode: null,\n\t\t\t}\n\t\t}\n\t\tconst diffCode = await getDiffCode(app1, app2, {\n\t\t\t...cacheOptions,\n\t\t\tforceFresh: searchParams.get('forceFresh') === 'diff',\n\t\t}).catch((e) => {\n\t\t\tconsole.error(e)\n\t\t\treturn null\n\t\t})\n\t\treturn {\n\t\t\tapp1: app1.name,\n\t\t\tapp2: app2.name,\n\t\t\tdiffCode,\n\t\t}\n\t}\n\n\tconst allApps = allAppsFull\n\t\t.filter((a, i, ar) => ar.findIndex((b) => a.name === b.name) === i)\n\t\t.map((a) => ({\n\t\t\tdisplayName: getAppDisplayName(a, allAppsFull),\n\t\t\tname: a.name,\n\t\t\ttitle: a.title,\n\t\t\ttype: a.type,\n\t\t}))\n\n\tconst diff = getDiffProp()\n\tconst app1Index = allApps.findIndex((a) => a.name === app1?.name)\n\tconst prevApp1Index = usingDefaultApp1\n\t\t? allApps.length - 2\n\t\t: app1Index === 0\n\t\t\t? -2\n\t\t\t: app1Index - 1\n\tconst prevApp2Index = prevApp1Index + 1\n\tconst nextApp1Index = usingDefaultApp1\n\t\t? 0\n\t\t: app1Index + 1 < allApps.length\n\t\t\t? app1Index + 1\n\t\t\t: -2\n\tconst nextApp2Index = nextApp1Index + 1\n\tconst prevApp1 = allAppsFull[prevApp1Index]?.name\n\tconst prevApp2 = allAppsFull[prevApp2Index]?.name\n\tconst nextApp1 = allAppsFull[nextApp1Index]?.name\n\tconst nextApp2 = allAppsFull[nextApp2Index]?.name\n\tconst prevSearchParams = new URLSearchParams(reqUrl.searchParams)\n\tprevSearchParams.set('app1', prevApp1 ?? '')\n\tprevSearchParams.set('app2', prevApp2 ?? '')\n\tconst nextSearchParams = new URLSearchParams(reqUrl.searchParams)\n\tnextSearchParams.set('app1', nextApp1 ?? '')\n\tnextSearchParams.set('app2', nextApp2 ?? '')\n\treturn {\n\t\tallApps,\n\t\tdiff,\n\t\tprevLink:\n\t\t\tprevApp1 && prevApp2\n\t\t\t\t? { to: `/diff?${prevSearchParams}`, 'aria-label': 'Previous App' }\n\t\t\t\t: { to: '/diff' },\n\t\tnextLink:\n\t\t\tnextApp1 && nextApp2\n\t\t\t\t? { to: `/diff?${nextSearchParams}`, 'aria-label': 'Next App' }\n\t\t\t\t: { to: '/diff' },\n\t}\n}\n\nexport default function DiffViewer() {\n\tconst data = useLoaderData<typeof loader>()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst isNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 200,\n\t\tminDuration: 200,\n\t})\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('grid h-full grid-rows-[1fr,auto]', {\n\t\t\t\t'cursor-wait opacity-30': isNavigating,\n\t\t\t})}\n\t\t>\n\t\t\t<div className=\"overflow-y-auto\">\n\t\t\t\t<Diff diff={data.diff} allApps={data.allApps} />\n\t\t\t</div>\n\t\t\t<div className=\"flex h-16 items-center justify-end border-t\">\n\t\t\t\t<NavChevrons prev={data.prevLink} next={data.nextLink} />\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n"],"names":["diff","_UNSAFE_withComponentProps","data","useLoaderData","params","useSearchParams","URLSearchParams","set","navigation","useNavigation","isNavigating","useSpinDelay","state","delay","minDuration","jsxs","className","cn","children","jsx","Diff","allApps","NavChevrons","prev","prevLink","next","nextLink"],"mappings":"8wBA6GA,MAAAA,EAAAC,EAAA,UAAqC,CACpC,MAAMC,EAAOC,EAAA,EACP,CAACC,CAAM,EAAIC,EAAA,EACe,IAAIC,gBAAgBF,CAAM,EAClCG,IAAI,aAAc,MAAM,EAChD,MAAMC,EAAaC,EAAA,EACbC,EAAeC,EAAAA,aAAaH,EAAWI,QAAU,OAAQ,CAC9DC,MAAO,IACPC,YAAa,GACd,CAAC,EAED,OACCC,EAAAA,KAAC,MAAA,CACAC,UAAWC,EAAG,mCAAoC,CACjD,yBAA0BP,CAC3B,CAAC,EAEDQ,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAIH,UAAU,kBACdE,SAAAC,EAAAA,IAACC,EAAA,CAAKpB,KAAME,EAAKF,KAAMqB,QAASnB,EAAKmB,QAAS,CAAA,CAC/C,EACAF,EAAAA,IAAC,MAAA,CAAIH,UAAU,8CACdE,SAAAC,EAAAA,IAACG,EAAA,CAAYC,KAAMrB,EAAKsB,SAAUC,KAAMvB,EAAKwB,SAAU,CAAA,CACxD,CAAA,CAAA,CACD,CAEF,CAAA"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"./jsx-runtime-DKBD_fLS.js";import{R as u,A as j}from"./accordion-BNwue7tP.js";import{R as w,T as b,I as g,P as N,C as v,S as y,a as S,G as k,L as D,b as R,V as A,c as C,d as I,e as T}from"./index-DxebmNVe.js";import{c as x}from"./clsx-B-dksMZM.js";import{k as P,l as V,f as $,r as L,A as E,L as F,F as U}from"./chunk-QMGIS6GS-Du-_uMOD.js";import{d as B,I as o,c as G}from"./misc-D7yrZhQB.js";import{M as H,u as M}from"./mdx-DdK1AGxI.js";import{D as W}from"./epic-video-CYB9v08Z.js";import{u as z}from"./revalidation-ws-Do4fE9JQ.js";import{S as m}from"./tooltip-CUdKgIRf.js";import{b as Y}from"./user-BUyyWGpK.js";import"./_-BEfdnu_S.js";const q=t=>e.jsx("pre",{...t}),J={Accordion:j,pre:q};function K({app1:t,app2:a}){const n=M(),r=n.find(l=>l.name===t),i=n.find(l=>l.name===a);return z({watchPaths:[r?.fullPath,i?.fullPath].filter(Boolean)}),null}function ce({diff:t,allApps:a}){const n=Y(),r=P(),[i]=V(),l=new URLSearchParams(i);l.set("forceFresh","diff");const h=$(),f=B.useSpinDelay(h.state!=="idle",{delay:0,minDuration:1e3}),p=[];for(const[s,c]of i.entries())s==="app1"||s==="app2"||p.push(e.jsx("input",{type:"hidden",name:s,value:c},s));return n?e.jsx(L.Suspense,{fallback:e.jsx("div",{className:"flex items-center justify-center p-8",children:e.jsx(m,{content:"Loading diff",children:e.jsx(o,{name:"Refresh",className:"animate-spin"})})}),children:e.jsx(E,{resolve:t,errorElement:e.jsx("p",{className:"p-6 text-foreground-destructive",children:"There was an error calculating the diff. Sorry."}),children:s=>e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsxs("div",{className:"flex h-14 min-h-14 w-full overflow-x-hidden border-b",children:[e.jsx("div",{className:"border-r",children:e.jsx(m,{content:"Reload diff",children:e.jsx(F,{to:`.?${l}`,className:"flex h-full w-14 items-center justify-center",children:e.jsx(o,{name:"Refresh",className:G({"animate-spin":f})})})})}),e.jsxs(U,{onChange:c=>r(c.currentTarget),className:"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar",children:[p,e.jsx(d,{name:"app1",label:"App 1",className:"border-r",allApps:a,defaultValue:s.app1}),e.jsx(d,{name:"app2",label:"App 2",allApps:a,defaultValue:s.app2})]},`${s.app1}${s.app2}`)]}),e.jsx("div",{className:"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar",children:s.diffCode?e.jsx("div",{children:e.jsx(u,{className:"w-full",type:"multiple",children:e.jsx(H,{code:s.diffCode,components:J})})}):s.app1&&s.app2?e.jsx("p",{className:"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background",children:"There was a problem generating the diff"}):e.jsx("p",{className:"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background",children:"Select two apps to compare"})}),e.jsx(K,{app1:s.app1,app2:s.app2})]})})}):e.jsxs("div",{className:"w-full p-12",children:[e.jsxs("div",{className:"flex w-full flex-col gap-4 text-center",children:[e.jsx("p",{className:"text-2xl font-bold",children:"Access Denied"}),e.jsx("p",{className:"text-lg",children:"You must login or register for the workshop to view the diff."})]}),e.jsx("div",{className:"h-16"}),e.jsx("p",{className:"pb-4",children:"Check out this video to see how the diff tab works."}),e.jsx(W,{url:"https://www.epicweb.dev/tips/epic-workshop-diff-tab-demo"})]})}function d({name:t,label:a,className:n,allApps:r,defaultValue:i}){return e.jsxs(w,{name:t,defaultValue:i,children:[e.jsxs(b,{className:x("flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none",n),"aria-label":`Select ${a} for git Diff`,children:[e.jsxs("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:[a,":"," ",e.jsx(Q,{placeholder:`Select ${a}`,className:"inline-block w-40 text-ellipsis"})]}),e.jsx(g,{className:"",children:e.jsx(o,{name:"TriangleDownSmall"})})]}),e.jsx(N,{children:e.jsxs(v,{position:"popper",align:"start",className:"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]",children:[e.jsx(y,{className:"flex h-5 cursor-default items-center justify-center",children:e.jsx(o,{name:"ChevronUp"})}),e.jsx(S,{className:"p-3",children:e.jsxs(k,{children:[e.jsx(D,{className:"px-5 pb-3 font-mono uppercase",children:a}),r.map(l=>e.jsx(O,{value:l.name,children:l.displayName},l.name))]})}),e.jsx(R,{className:"flex h-5 cursor-default items-center justify-center",children:e.jsx(o,{name:"ChevronDown"})})]})})]})}const O=({ref:t,children:a,className:n,...r})=>e.jsxs(C,{className:x("relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100",n),...r,ref:t,children:[e.jsx(I,{children:a}),e.jsx(T,{className:"absolute left-0 inline-flex w-[25px] items-center justify-center",children:e.jsx(o,{name:"CheckSmall"})})]}),Q=({ref:t,children:a,className:n,...r})=>e.jsx(A,{...r,ref:t,children:r.value});export{ce as D};
2
- //# sourceMappingURL=diff-B376IevU.js.map
1
+ import{j as e}from"./jsx-runtime-DXAEI3Eb.js";import{R as u,A as j}from"./accordion-AYJh-rtE.js";import{R as w,T as b,I as g,P as N,C as v,S as y,a as S,G as k,L as D,b as R,V as A,c as C,d as I,e as T}from"./index-BCIyCTKq.js";import{c as x}from"./clsx-B-dksMZM.js";import{k as P,l as V,f as $,r as L,A as E,L as F,F as U}from"./chunk-QMGIS6GS-s1sqUxzz.js";import{d as B,I as o,c as G}from"./misc-CFnU1MK_.js";import{M as H,u as M}from"./mdx-D3zuEMw_.js";import{D as W}from"./epic-video-BXvzDHIB.js";import{u as z}from"./revalidation-ws-1umHIswK.js";import{S as m}from"./tooltip-BVlcAOVw.js";import{b as Y}from"./user-DwkYL1w0.js";import"./_-DinosGr4.js";const q=t=>e.jsx("pre",{...t}),J={Accordion:j,pre:q};function K({app1:t,app2:a}){const n=M(),r=n.find(l=>l.name===t),i=n.find(l=>l.name===a);return z({watchPaths:[r?.fullPath,i?.fullPath].filter(Boolean)}),null}function ce({diff:t,allApps:a}){const n=Y(),r=P(),[i]=V(),l=new URLSearchParams(i);l.set("forceFresh","diff");const h=$(),f=B.useSpinDelay(h.state!=="idle",{delay:0,minDuration:1e3}),p=[];for(const[s,c]of i.entries())s==="app1"||s==="app2"||p.push(e.jsx("input",{type:"hidden",name:s,value:c},s));return n?e.jsx(L.Suspense,{fallback:e.jsx("div",{className:"flex items-center justify-center p-8",children:e.jsx(m,{content:"Loading diff",children:e.jsx(o,{name:"Refresh",className:"animate-spin"})})}),children:e.jsx(E,{resolve:t,errorElement:e.jsx("p",{className:"p-6 text-foreground-destructive",children:"There was an error calculating the diff. Sorry."}),children:s=>e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsxs("div",{className:"flex h-14 min-h-14 w-full overflow-x-hidden border-b",children:[e.jsx("div",{className:"border-r",children:e.jsx(m,{content:"Reload diff",children:e.jsx(F,{to:`.?${l}`,className:"flex h-full w-14 items-center justify-center",children:e.jsx(o,{name:"Refresh",className:G({"animate-spin":f})})})})}),e.jsxs(U,{onChange:c=>r(c.currentTarget),className:"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar",children:[p,e.jsx(d,{name:"app1",label:"App 1",className:"border-r",allApps:a,defaultValue:s.app1}),e.jsx(d,{name:"app2",label:"App 2",allApps:a,defaultValue:s.app2})]},`${s.app1}${s.app2}`)]}),e.jsx("div",{className:"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar",children:s.diffCode?e.jsx("div",{children:e.jsx(u,{className:"w-full",type:"multiple",children:e.jsx(H,{code:s.diffCode,components:J})})}):s.app1&&s.app2?e.jsx("p",{className:"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background",children:"There was a problem generating the diff"}):e.jsx("p",{className:"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background",children:"Select two apps to compare"})}),e.jsx(K,{app1:s.app1,app2:s.app2})]})})}):e.jsxs("div",{className:"w-full p-12",children:[e.jsxs("div",{className:"flex w-full flex-col gap-4 text-center",children:[e.jsx("p",{className:"text-2xl font-bold",children:"Access Denied"}),e.jsx("p",{className:"text-lg",children:"You must login or register for the workshop to view the diff."})]}),e.jsx("div",{className:"h-16"}),e.jsx("p",{className:"pb-4",children:"Check out this video to see how the diff tab works."}),e.jsx(W,{url:"https://www.epicweb.dev/tips/epic-workshop-diff-tab-demo"})]})}function d({name:t,label:a,className:n,allApps:r,defaultValue:i}){return e.jsxs(w,{name:t,defaultValue:i,children:[e.jsxs(b,{className:x("flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none",n),"aria-label":`Select ${a} for git Diff`,children:[e.jsxs("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:[a,":"," ",e.jsx(Q,{placeholder:`Select ${a}`,className:"inline-block w-40 text-ellipsis"})]}),e.jsx(g,{className:"",children:e.jsx(o,{name:"TriangleDownSmall"})})]}),e.jsx(N,{children:e.jsxs(v,{position:"popper",align:"start",className:"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]",children:[e.jsx(y,{className:"flex h-5 cursor-default items-center justify-center",children:e.jsx(o,{name:"ChevronUp"})}),e.jsx(S,{className:"p-3",children:e.jsxs(k,{children:[e.jsx(D,{className:"px-5 pb-3 font-mono uppercase",children:a}),r.map(l=>e.jsx(O,{value:l.name,children:l.displayName},l.name))]})}),e.jsx(R,{className:"flex h-5 cursor-default items-center justify-center",children:e.jsx(o,{name:"ChevronDown"})})]})})]})}const O=({ref:t,children:a,className:n,...r})=>e.jsxs(C,{className:x("relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100",n),...r,ref:t,children:[e.jsx(I,{children:a}),e.jsx(T,{className:"absolute left-0 inline-flex w-[25px] items-center justify-center",children:e.jsx(o,{name:"CheckSmall"})})]}),Q=({ref:t,children:a,className:n,...r})=>e.jsx(A,{...r,ref:t,children:r.value});export{ce as D};
2
+ //# sourceMappingURL=diff-DhipGoJ9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-B376IevU.js","sources":["../../../app/components/diff.tsx"],"sourcesContent":["import * as Accordion from '@radix-ui/react-accordion'\nimport * as Select from '@radix-ui/react-select'\nimport { clsx } from 'clsx'\nimport React, { Suspense } from 'react'\nimport {\n\tAwait,\n\tForm,\n\tLink,\n\tuseNavigation,\n\tuseSearchParams,\n\tuseSubmit,\n} from 'react-router'\nimport { useSpinDelay } from 'spin-delay'\nimport AccordionComponent from '#app/components/accordion.tsx'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { useApps } from './apps.tsx'\nimport { DeferredEpicVideo } from './epic-video.tsx'\nimport { Icon } from './icons.tsx'\nimport { useRevalidationWS } from './revalidation-ws.tsx'\nimport { SimpleTooltip } from './ui/tooltip.tsx'\nimport { useUserHasAccess } from './user.tsx'\n\ntype diffProp = {\n\tapp1?: string\n\tapp2?: string\n\tdiffCode?: string | null\n}\n\nconst pre = (props: any) => <pre {...props} />\n\nconst mdxComponents = {\n\tAccordion: AccordionComponent,\n\t// override the pre-with-buttons\n\tpre,\n}\n\nfunction RevalidateApps({\n\tapp1: app1Name,\n\tapp2: app2Name,\n}: {\n\tapp1?: string\n\tapp2?: string\n}) {\n\tconst apps = useApps()\n\tconst app1 = apps.find((app) => app.name === app1Name)\n\tconst app2 = apps.find((app) => app.name === app2Name)\n\n\tuseRevalidationWS({\n\t\twatchPaths: [app1?.fullPath, app2?.fullPath].filter(Boolean),\n\t})\n\treturn null\n}\n\nexport function Diff({\n\tdiff,\n\tallApps,\n}: {\n\tdiff: Promise<diffProp> | diffProp\n\tallApps: Array<{ name: string; displayName: string }>\n}) {\n\tconst userHasAccess = useUserHasAccess()\n\tconst submit = useSubmit()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst spinnerNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 0,\n\t\tminDuration: 1000,\n\t})\n\n\tconst hiddenInputs: Array<React.ReactNode> = []\n\tfor (const [key, value] of params.entries()) {\n\t\tif (key === 'app1' || key === 'app2') continue\n\t\thiddenInputs.push(\n\t\t\t<input key={key} type=\"hidden\" name={key} value={value} />,\n\t\t)\n\t}\n\n\tif (!userHasAccess) {\n\t\treturn (\n\t\t\t<div className=\"w-full p-12\">\n\t\t\t\t<div className=\"flex w-full flex-col gap-4 text-center\">\n\t\t\t\t\t<p className=\"text-2xl font-bold\">Access Denied</p>\n\t\t\t\t\t<p className=\"text-lg\">\n\t\t\t\t\t\tYou must login or register for the workshop to view the diff.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"h-16\" />\n\t\t\t\t<p className=\"pb-4\">\n\t\t\t\t\tCheck out this video to see how the diff tab works.\n\t\t\t\t</p>\n\t\t\t\t<DeferredEpicVideo url=\"https://www.epicweb.dev/tips/epic-workshop-diff-tab-demo\" />\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<Suspense\n\t\t\tfallback={\n\t\t\t\t<div className=\"flex items-center justify-center p-8\">\n\t\t\t\t\t<SimpleTooltip content=\"Loading diff\">\n\t\t\t\t\t\t<Icon name=\"Refresh\" className=\"animate-spin\" />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t}\n\t\t>\n\t\t\t<Await\n\t\t\t\tresolve={diff}\n\t\t\t\terrorElement={\n\t\t\t\t\t<p className=\"p-6 text-foreground-destructive\">\n\t\t\t\t\t\tThere was an error calculating the diff. Sorry.\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{(diff) => (\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">\n\t\t\t\t\t\t<div className=\"flex h-14 min-h-14 w-full overflow-x-hidden border-b\">\n\t\t\t\t\t\t\t<div className=\"border-r\">\n\t\t\t\t\t\t\t\t<SimpleTooltip content=\"Reload diff\">\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tto={`.?${paramsWithForcedRefresh}`}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex h-full w-14 items-center justify-center\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tname=\"Refresh\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn({ 'animate-spin': spinnerNavigating })}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Form\n\t\t\t\t\t\t\t\tonChange={(e) => submit(e.currentTarget)}\n\t\t\t\t\t\t\t\tclassName=\"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar\"\n\t\t\t\t\t\t\t\tkey={`${diff.app1}${diff.app2}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{hiddenInputs}\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app1\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 1\"\n\t\t\t\t\t\t\t\t\tclassName=\"border-r\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app1}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app2\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 2\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app2}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t\t{diff.diffCode ? (\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<Accordion.Root className=\"w-full\" type=\"multiple\">\n\t\t\t\t\t\t\t\t\t\t<Mdx code={diff.diffCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t\t</Accordion.Root>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : diff.app1 && diff.app2 ? (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tThere was a problem generating the diff\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tSelect two apps to compare\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<RevalidateApps app1={diff.app1} app2={diff.app2} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Await>\n\t\t</Suspense>\n\t)\n}\n\nfunction SelectFileToDiff({\n\tname,\n\tlabel,\n\tclassName,\n\tallApps,\n\tdefaultValue,\n}: {\n\tname: string\n\tlabel: string\n\tclassName?: string\n\tallApps: Array<{ name: string; displayName: string }>\n\tdefaultValue?: string\n}) {\n\treturn (\n\t\t<Select.Root name={name} defaultValue={defaultValue}>\n\t\t\t<Select.Trigger\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\taria-label={`Select ${label} for git Diff`}\n\t\t\t>\n\t\t\t\t<span className=\"overflow-hidden text-ellipsis whitespace-nowrap\">\n\t\t\t\t\t{label}:{' '}\n\t\t\t\t\t<SelectValue\n\t\t\t\t\t\tplaceholder={`Select ${label}`}\n\t\t\t\t\t\tclassName=\"inline-block w-40 text-ellipsis\"\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<Select.Icon className=\"\">\n\t\t\t\t\t<Icon name=\"TriangleDownSmall\" />\n\t\t\t\t</Select.Icon>\n\t\t\t</Select.Trigger>\n\t\t\t<Select.Portal>\n\t\t\t\t<Select.Content\n\t\t\t\t\tposition=\"popper\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t\tclassName=\"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]\"\n\t\t\t\t>\n\t\t\t\t\t<Select.ScrollUpButton className=\"flex h-5 cursor-default items-center justify-center\">\n\t\t\t\t\t\t<Icon name=\"ChevronUp\" />\n\t\t\t\t\t</Select.ScrollUpButton>\n\t\t\t\t\t<Select.Viewport className=\"p-3\">\n\t\t\t\t\t\t<Select.Group>\n\t\t\t\t\t\t\t<Select.Label className=\"px-5 pb-3 font-mono uppercase\">\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</Select.Label>\n\t\t\t\t\t\t\t{allApps.map((app) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SelectItem key={app.name} value={app.name}>\n\t\t\t\t\t\t\t\t\t\t{app.displayName}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Select.Group>\n\t\t\t\t\t</Select.Viewport>\n\t\t\t\t\t<Select.ScrollDownButton className=\"flex h-5 cursor-default items-center justify-center\">\n\t\t\t\t\t\t<Icon name=\"ChevronDown\" />\n\t\t\t\t\t</Select.ScrollDownButton>\n\t\t\t\t</Select.Content>\n\t\t\t</Select.Portal>\n\t\t</Select.Root>\n\t)\n}\n\nconst SelectItem: React.FC<any> = ({\n\tref: forwardedRef,\n\tchildren,\n\tclassName,\n\t...props\n}) => {\n\treturn (\n\t\t<Select.Item\n\t\t\tclassName={clsx(\n\t\t\t\t'relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100',\n\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t\tref={forwardedRef}\n\t\t>\n\t\t\t<Select.ItemText>{children}</Select.ItemText>\n\t\t\t<Select.ItemIndicator className=\"absolute left-0 inline-flex w-[25px] items-center justify-center\">\n\t\t\t\t<Icon name=\"CheckSmall\" />\n\t\t\t</Select.ItemIndicator>\n\t\t</Select.Item>\n\t)\n}\n\nconst SelectValue: React.FC<any> = ({\n\tref: forwardedRef,\n\tchildren,\n\tclassName,\n\t...props\n}) => {\n\treturn (\n\t\t<Select.Value {...props} ref={forwardedRef}>\n\t\t\t{props.value}\n\t\t</Select.Value>\n\t)\n}\n"],"names":["pre","props","jsx","mdxComponents","AccordionComponent","RevalidateApps","app1Name","app2Name","apps","useApps","app1","app","app2","useRevalidationWS","Diff","diff","allApps","userHasAccess","useUserHasAccess","submit","useSubmit","params","useSearchParams","paramsWithForcedRefresh","navigation","useNavigation","spinnerNavigating","useSpinDelay","hiddenInputs","key","value","Suspense","SimpleTooltip","Icon","Await","jsxs","Link","cn","Form","e","SelectFileToDiff","Accordion.Root","Mdx","DeferredEpicVideo","name","label","className","defaultValue","Select.Root","Select.Trigger","clsx","SelectValue","Select.Icon","Select.Portal","Select.Content","Select.ScrollUpButton","Select.Viewport","Select.Group","Select.Label","SelectItem","Select.ScrollDownButton","forwardedRef","children","Select.Item","Select.ItemText","Select.ItemIndicator","Select.Value"],"mappings":"gpBA6BA,MAAMA,EAAOC,GAAeC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EAAO,EAEtCE,EAAgB,CACrB,UAAWC,EAEX,IAAAJ,CACD,EAEA,SAASK,EAAe,CACvB,KAAMC,EACN,KAAMC,CACP,EAGG,CACF,MAAMC,EAAOC,EAAA,EACPC,EAAOF,EAAK,KAAMG,GAAQA,EAAI,OAASL,CAAQ,EAC/CM,EAAOJ,EAAK,KAAMG,GAAQA,EAAI,OAASJ,CAAQ,EAErD,OAAAM,EAAkB,CACjB,WAAY,CAACH,GAAM,SAAUE,GAAM,QAAQ,EAAE,OAAO,OAAO,CAAA,CAC3D,EACM,IACR,CAEO,SAASE,GAAK,CACpB,KAAAC,EACA,QAAAC,CACD,EAGG,CACF,MAAMC,EAAgBC,EAAA,EAChBC,EAASC,EAAA,EACT,CAACC,CAAM,EAAIC,EAAA,EACXC,EAA0B,IAAI,gBAAgBF,CAAM,EAC1DE,EAAwB,IAAI,aAAc,MAAM,EAChD,MAAMC,EAAaC,EAAA,EACbC,EAAoBC,EAAAA,aAAaH,EAAW,QAAU,OAAQ,CACnE,MAAO,EACP,YAAa,GAAA,CACb,EAEKI,EAAuC,CAAA,EAC7C,SAAW,CAACC,EAAKC,CAAK,IAAKT,EAAO,UAC7BQ,IAAQ,QAAUA,IAAQ,QAC9BD,EAAa,WACX,QAAA,CAAgB,KAAK,SAAS,KAAMC,EAAK,MAAAC,GAA9BD,CAA4C,CAAA,EAI1D,OAAKZ,EAmBJf,EAAAA,IAAC6B,EAAAA,SAAA,CACA,SACC7B,EAAAA,IAAC,MAAA,CAAI,UAAU,uCACd,eAAC8B,EAAA,CAAc,QAAQ,eACtB,SAAA9B,EAAAA,IAAC+B,GAAK,KAAK,UAAU,UAAU,cAAA,CAAe,EAC/C,EACD,EAGD,SAAA/B,EAAAA,IAACgC,EAAA,CACA,QAASnB,EACT,aACCb,EAAAA,IAAC,IAAA,CAAE,UAAU,kCAAkC,SAAA,kDAE/C,EAGA,SAACa,GACDoB,EAAAA,KAAC,MAAA,CAAI,UAAU,8BACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uDACd,SAAA,CAAAjC,EAAAA,IAAC,OAAI,UAAU,WACd,SAAAA,MAAC8B,EAAA,CAAc,QAAQ,cACtB,SAAA9B,EAAAA,IAACkC,EAAA,CACA,GAAI,KAAKb,CAAuB,GAChC,UAAU,+CAEV,SAAArB,EAAAA,IAAC+B,EAAA,CACA,KAAK,UACL,UAAWI,EAAG,CAAE,eAAgBX,EAAmB,CAAA,CAAA,CACpD,CAAA,EAEF,CAAA,CACD,EACAS,EAAAA,KAACG,EAAA,CACA,SAAWC,GAAMpB,EAAOoB,EAAE,aAAa,EACvC,UAAU,2FAGT,SAAA,CAAAX,EACD1B,EAAAA,IAACsC,EAAA,CACA,KAAK,OACL,MAAM,QACN,UAAU,WACV,QAAAxB,EACA,aAAcD,EAAK,IAAA,CAAA,EAEpBb,EAAAA,IAACsC,EAAA,CACA,KAAK,OACL,MAAM,QACN,QAAAxB,EACA,aAAcD,EAAK,IAAA,CAAA,CACpB,CAAA,EAfK,GAAGA,EAAK,IAAI,GAAGA,EAAK,IAAI,EAAA,CAgB9B,EACD,QACC,MAAA,CAAI,UAAU,uEACb,SAAAA,EAAK,SACLb,EAAAA,IAAC,MAAA,CACA,eAACuC,EAAA,CAAe,UAAU,SAAS,KAAK,WACvC,SAAAvC,EAAAA,IAACwC,GAAI,KAAM3B,EAAK,SAAU,WAAYZ,EAAe,CAAA,CACtD,CAAA,CACD,EACGY,EAAK,MAAQA,EAAK,KACrBb,MAAC,KAAE,UAAU,oHAAoH,mDAEjI,EAEAA,EAAAA,IAAC,KAAE,UAAU,oHAAoH,sCAEjI,CAAA,CAEF,QACCG,EAAA,CAAe,KAAMU,EAAK,KAAM,KAAMA,EAAK,IAAA,CAAM,CAAA,CAAA,CACnD,CAAA,CAAA,CAEF,CAAA,EA3FAoB,EAAAA,KAAC,MAAA,CAAI,UAAU,cACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACd,SAAA,CAAAjC,EAAAA,IAAC,IAAA,CAAE,UAAU,qBAAqB,SAAA,gBAAa,EAC/CA,EAAAA,IAAC,IAAA,CAAE,UAAU,UAAU,SAAA,+DAAA,CAEvB,CAAA,EACD,EACAA,EAAAA,IAAC,MAAA,CAAI,UAAU,MAAA,CAAO,EACtBA,EAAAA,IAAC,IAAA,CAAE,UAAU,OAAO,SAAA,sDAEpB,EACAA,EAAAA,IAACyC,EAAA,CAAkB,IAAI,0DAAA,CAA2D,CAAA,EACnF,CAkFH,CAEA,SAASH,EAAiB,CACzB,KAAAI,EACA,MAAAC,EACA,UAAAC,EACA,QAAA9B,EACA,aAAA+B,CACD,EAMG,CACF,OACCZ,EAAAA,KAACa,EAAA,CAAY,KAAAJ,EAAY,aAAAG,EACxB,SAAA,CAAAZ,EAAAA,KAACc,EAAA,CACA,UAAWC,EACV,wIACAJ,CAAA,EAED,aAAY,UAAUD,CAAK,gBAE3B,SAAA,CAAAV,EAAAA,KAAC,OAAA,CAAK,UAAU,kDACd,SAAA,CAAAU,EAAM,IAAE,IACT3C,EAAAA,IAACiD,EAAA,CACA,YAAa,UAAUN,CAAK,GAC5B,UAAU,iCAAA,CAAA,CACX,EACD,EACA3C,EAAAA,IAACkD,EAAA,CAAY,UAAU,GACtB,SAAAlD,EAAAA,IAAC+B,EAAA,CAAK,KAAK,mBAAA,CAAoB,CAAA,CAChC,CAAA,CAAA,CAAA,EAED/B,MAACmD,EAAA,CACA,SAAAlB,EAAAA,KAACmB,EAAA,CACA,SAAS,SACT,MAAM,QACN,UAAU,wDAEV,SAAA,CAAApD,EAAAA,IAACqD,EAAA,CAAsB,UAAU,sDAChC,SAAArD,MAAC+B,EAAA,CAAK,KAAK,WAAA,CAAY,CAAA,CACxB,EACA/B,MAACsD,EAAA,CAAgB,UAAU,MAC1B,SAAArB,EAAAA,KAACsB,EAAA,CACA,SAAA,CAAAvD,EAAAA,IAACwD,EAAA,CAAa,UAAU,gCACtB,SAAAb,EACF,EACC7B,EAAQ,IAAKL,GAEZT,MAACyD,GAA0B,MAAOhD,EAAI,KACpC,SAAAA,EAAI,aADWA,EAAI,IAErB,CAED,CAAA,CAAA,CACF,CAAA,CACD,EACAT,EAAAA,IAAC0D,EAAA,CAAwB,UAAU,sDAClC,SAAA1D,EAAAA,IAAC+B,EAAA,CAAK,KAAK,aAAA,CAAc,CAAA,CAC1B,CAAA,CAAA,CAAA,CACD,CACD,CAAA,EACD,CAEF,CAEA,MAAM0B,EAA4B,CAAC,CAClC,IAAKE,EACL,SAAAC,EACA,UAAAhB,EACA,GAAG7C,CACJ,IAEEkC,EAAAA,KAAC4B,EAAA,CACA,UAAWb,EACV,4NAEAJ,CAAA,EAEA,GAAG7C,EACJ,IAAK4D,EAEL,SAAA,CAAA3D,MAAC8D,EAAA,CAAiB,SAAAF,EAAS,EAC3B5D,EAAAA,IAAC+D,EAAA,CAAqB,UAAU,mEAC/B,SAAA/D,EAAAA,IAAC+B,EAAA,CAAK,KAAK,YAAA,CAAa,CAAA,CACzB,CAAA,CAAA,CAAA,EAKGkB,EAA6B,CAAC,CACnC,IAAKU,EACL,SAAAC,EACA,UAAAhB,EACA,GAAG7C,CACJ,IAEEC,EAAAA,IAACgE,EAAA,CAAc,GAAGjE,EAAO,IAAK4D,EAC5B,SAAA5D,EAAM,MACR"}
1
+ {"version":3,"file":"diff-DhipGoJ9.js","sources":["../../../app/components/diff.tsx"],"sourcesContent":["import * as Accordion from '@radix-ui/react-accordion'\nimport * as Select from '@radix-ui/react-select'\nimport { clsx } from 'clsx'\nimport React, { Suspense } from 'react'\nimport {\n\tAwait,\n\tForm,\n\tLink,\n\tuseNavigation,\n\tuseSearchParams,\n\tuseSubmit,\n} from 'react-router'\nimport { useSpinDelay } from 'spin-delay'\nimport AccordionComponent from '#app/components/accordion.tsx'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { useApps } from './apps.tsx'\nimport { DeferredEpicVideo } from './epic-video.tsx'\nimport { Icon } from './icons.tsx'\nimport { useRevalidationWS } from './revalidation-ws.tsx'\nimport { SimpleTooltip } from './ui/tooltip.tsx'\nimport { useUserHasAccess } from './user.tsx'\n\ntype diffProp = {\n\tapp1?: string\n\tapp2?: string\n\tdiffCode?: string | null\n}\n\nconst pre = (props: any) => <pre {...props} />\n\nconst mdxComponents = {\n\tAccordion: AccordionComponent,\n\t// override the pre-with-buttons\n\tpre,\n}\n\nfunction RevalidateApps({\n\tapp1: app1Name,\n\tapp2: app2Name,\n}: {\n\tapp1?: string\n\tapp2?: string\n}) {\n\tconst apps = useApps()\n\tconst app1 = apps.find((app) => app.name === app1Name)\n\tconst app2 = apps.find((app) => app.name === app2Name)\n\n\tuseRevalidationWS({\n\t\twatchPaths: [app1?.fullPath, app2?.fullPath].filter(Boolean),\n\t})\n\treturn null\n}\n\nexport function Diff({\n\tdiff,\n\tallApps,\n}: {\n\tdiff: Promise<diffProp> | diffProp\n\tallApps: Array<{ name: string; displayName: string }>\n}) {\n\tconst userHasAccess = useUserHasAccess()\n\tconst submit = useSubmit()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst spinnerNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 0,\n\t\tminDuration: 1000,\n\t})\n\n\tconst hiddenInputs: Array<React.ReactNode> = []\n\tfor (const [key, value] of params.entries()) {\n\t\tif (key === 'app1' || key === 'app2') continue\n\t\thiddenInputs.push(\n\t\t\t<input key={key} type=\"hidden\" name={key} value={value} />,\n\t\t)\n\t}\n\n\tif (!userHasAccess) {\n\t\treturn (\n\t\t\t<div className=\"w-full p-12\">\n\t\t\t\t<div className=\"flex w-full flex-col gap-4 text-center\">\n\t\t\t\t\t<p className=\"text-2xl font-bold\">Access Denied</p>\n\t\t\t\t\t<p className=\"text-lg\">\n\t\t\t\t\t\tYou must login or register for the workshop to view the diff.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"h-16\" />\n\t\t\t\t<p className=\"pb-4\">\n\t\t\t\t\tCheck out this video to see how the diff tab works.\n\t\t\t\t</p>\n\t\t\t\t<DeferredEpicVideo url=\"https://www.epicweb.dev/tips/epic-workshop-diff-tab-demo\" />\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<Suspense\n\t\t\tfallback={\n\t\t\t\t<div className=\"flex items-center justify-center p-8\">\n\t\t\t\t\t<SimpleTooltip content=\"Loading diff\">\n\t\t\t\t\t\t<Icon name=\"Refresh\" className=\"animate-spin\" />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t}\n\t\t>\n\t\t\t<Await\n\t\t\t\tresolve={diff}\n\t\t\t\terrorElement={\n\t\t\t\t\t<p className=\"p-6 text-foreground-destructive\">\n\t\t\t\t\t\tThere was an error calculating the diff. Sorry.\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{(diff) => (\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">\n\t\t\t\t\t\t<div className=\"flex h-14 min-h-14 w-full overflow-x-hidden border-b\">\n\t\t\t\t\t\t\t<div className=\"border-r\">\n\t\t\t\t\t\t\t\t<SimpleTooltip content=\"Reload diff\">\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tto={`.?${paramsWithForcedRefresh}`}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex h-full w-14 items-center justify-center\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tname=\"Refresh\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn({ 'animate-spin': spinnerNavigating })}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Form\n\t\t\t\t\t\t\t\tonChange={(e) => submit(e.currentTarget)}\n\t\t\t\t\t\t\t\tclassName=\"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar\"\n\t\t\t\t\t\t\t\tkey={`${diff.app1}${diff.app2}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{hiddenInputs}\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app1\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 1\"\n\t\t\t\t\t\t\t\t\tclassName=\"border-r\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app1}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app2\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 2\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app2}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t\t{diff.diffCode ? (\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<Accordion.Root className=\"w-full\" type=\"multiple\">\n\t\t\t\t\t\t\t\t\t\t<Mdx code={diff.diffCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t\t</Accordion.Root>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : diff.app1 && diff.app2 ? (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tThere was a problem generating the diff\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tSelect two apps to compare\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<RevalidateApps app1={diff.app1} app2={diff.app2} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Await>\n\t\t</Suspense>\n\t)\n}\n\nfunction SelectFileToDiff({\n\tname,\n\tlabel,\n\tclassName,\n\tallApps,\n\tdefaultValue,\n}: {\n\tname: string\n\tlabel: string\n\tclassName?: string\n\tallApps: Array<{ name: string; displayName: string }>\n\tdefaultValue?: string\n}) {\n\treturn (\n\t\t<Select.Root name={name} defaultValue={defaultValue}>\n\t\t\t<Select.Trigger\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\taria-label={`Select ${label} for git Diff`}\n\t\t\t>\n\t\t\t\t<span className=\"overflow-hidden text-ellipsis whitespace-nowrap\">\n\t\t\t\t\t{label}:{' '}\n\t\t\t\t\t<SelectValue\n\t\t\t\t\t\tplaceholder={`Select ${label}`}\n\t\t\t\t\t\tclassName=\"inline-block w-40 text-ellipsis\"\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<Select.Icon className=\"\">\n\t\t\t\t\t<Icon name=\"TriangleDownSmall\" />\n\t\t\t\t</Select.Icon>\n\t\t\t</Select.Trigger>\n\t\t\t<Select.Portal>\n\t\t\t\t<Select.Content\n\t\t\t\t\tposition=\"popper\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t\tclassName=\"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]\"\n\t\t\t\t>\n\t\t\t\t\t<Select.ScrollUpButton className=\"flex h-5 cursor-default items-center justify-center\">\n\t\t\t\t\t\t<Icon name=\"ChevronUp\" />\n\t\t\t\t\t</Select.ScrollUpButton>\n\t\t\t\t\t<Select.Viewport className=\"p-3\">\n\t\t\t\t\t\t<Select.Group>\n\t\t\t\t\t\t\t<Select.Label className=\"px-5 pb-3 font-mono uppercase\">\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</Select.Label>\n\t\t\t\t\t\t\t{allApps.map((app) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SelectItem key={app.name} value={app.name}>\n\t\t\t\t\t\t\t\t\t\t{app.displayName}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Select.Group>\n\t\t\t\t\t</Select.Viewport>\n\t\t\t\t\t<Select.ScrollDownButton className=\"flex h-5 cursor-default items-center justify-center\">\n\t\t\t\t\t\t<Icon name=\"ChevronDown\" />\n\t\t\t\t\t</Select.ScrollDownButton>\n\t\t\t\t</Select.Content>\n\t\t\t</Select.Portal>\n\t\t</Select.Root>\n\t)\n}\n\nconst SelectItem: React.FC<any> = ({\n\tref: forwardedRef,\n\tchildren,\n\tclassName,\n\t...props\n}) => {\n\treturn (\n\t\t<Select.Item\n\t\t\tclassName={clsx(\n\t\t\t\t'relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100',\n\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t\tref={forwardedRef}\n\t\t>\n\t\t\t<Select.ItemText>{children}</Select.ItemText>\n\t\t\t<Select.ItemIndicator className=\"absolute left-0 inline-flex w-[25px] items-center justify-center\">\n\t\t\t\t<Icon name=\"CheckSmall\" />\n\t\t\t</Select.ItemIndicator>\n\t\t</Select.Item>\n\t)\n}\n\nconst SelectValue: React.FC<any> = ({\n\tref: forwardedRef,\n\tchildren,\n\tclassName,\n\t...props\n}) => {\n\treturn (\n\t\t<Select.Value {...props} ref={forwardedRef}>\n\t\t\t{props.value}\n\t\t</Select.Value>\n\t)\n}\n"],"names":["pre","props","jsx","mdxComponents","AccordionComponent","RevalidateApps","app1Name","app2Name","apps","useApps","app1","app","app2","useRevalidationWS","Diff","diff","allApps","userHasAccess","useUserHasAccess","submit","useSubmit","params","useSearchParams","paramsWithForcedRefresh","navigation","useNavigation","spinnerNavigating","useSpinDelay","hiddenInputs","key","value","Suspense","SimpleTooltip","Icon","Await","jsxs","Link","cn","Form","e","SelectFileToDiff","Accordion.Root","Mdx","DeferredEpicVideo","name","label","className","defaultValue","Select.Root","Select.Trigger","clsx","SelectValue","Select.Icon","Select.Portal","Select.Content","Select.ScrollUpButton","Select.Viewport","Select.Group","Select.Label","SelectItem","Select.ScrollDownButton","forwardedRef","children","Select.Item","Select.ItemText","Select.ItemIndicator","Select.Value"],"mappings":"gpBA6BA,MAAMA,EAAOC,GAAeC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EAAO,EAEtCE,EAAgB,CACrB,UAAWC,EAEX,IAAAJ,CACD,EAEA,SAASK,EAAe,CACvB,KAAMC,EACN,KAAMC,CACP,EAGG,CACF,MAAMC,EAAOC,EAAA,EACPC,EAAOF,EAAK,KAAMG,GAAQA,EAAI,OAASL,CAAQ,EAC/CM,EAAOJ,EAAK,KAAMG,GAAQA,EAAI,OAASJ,CAAQ,EAErD,OAAAM,EAAkB,CACjB,WAAY,CAACH,GAAM,SAAUE,GAAM,QAAQ,EAAE,OAAO,OAAO,CAAA,CAC3D,EACM,IACR,CAEO,SAASE,GAAK,CACpB,KAAAC,EACA,QAAAC,CACD,EAGG,CACF,MAAMC,EAAgBC,EAAA,EAChBC,EAASC,EAAA,EACT,CAACC,CAAM,EAAIC,EAAA,EACXC,EAA0B,IAAI,gBAAgBF,CAAM,EAC1DE,EAAwB,IAAI,aAAc,MAAM,EAChD,MAAMC,EAAaC,EAAA,EACbC,EAAoBC,EAAAA,aAAaH,EAAW,QAAU,OAAQ,CACnE,MAAO,EACP,YAAa,GAAA,CACb,EAEKI,EAAuC,CAAA,EAC7C,SAAW,CAACC,EAAKC,CAAK,IAAKT,EAAO,UAC7BQ,IAAQ,QAAUA,IAAQ,QAC9BD,EAAa,WACX,QAAA,CAAgB,KAAK,SAAS,KAAMC,EAAK,MAAAC,GAA9BD,CAA4C,CAAA,EAI1D,OAAKZ,EAmBJf,EAAAA,IAAC6B,EAAAA,SAAA,CACA,SACC7B,EAAAA,IAAC,MAAA,CAAI,UAAU,uCACd,eAAC8B,EAAA,CAAc,QAAQ,eACtB,SAAA9B,EAAAA,IAAC+B,GAAK,KAAK,UAAU,UAAU,cAAA,CAAe,EAC/C,EACD,EAGD,SAAA/B,EAAAA,IAACgC,EAAA,CACA,QAASnB,EACT,aACCb,EAAAA,IAAC,IAAA,CAAE,UAAU,kCAAkC,SAAA,kDAE/C,EAGA,SAACa,GACDoB,EAAAA,KAAC,MAAA,CAAI,UAAU,8BACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uDACd,SAAA,CAAAjC,EAAAA,IAAC,OAAI,UAAU,WACd,SAAAA,MAAC8B,EAAA,CAAc,QAAQ,cACtB,SAAA9B,EAAAA,IAACkC,EAAA,CACA,GAAI,KAAKb,CAAuB,GAChC,UAAU,+CAEV,SAAArB,EAAAA,IAAC+B,EAAA,CACA,KAAK,UACL,UAAWI,EAAG,CAAE,eAAgBX,EAAmB,CAAA,CAAA,CACpD,CAAA,EAEF,CAAA,CACD,EACAS,EAAAA,KAACG,EAAA,CACA,SAAWC,GAAMpB,EAAOoB,EAAE,aAAa,EACvC,UAAU,2FAGT,SAAA,CAAAX,EACD1B,EAAAA,IAACsC,EAAA,CACA,KAAK,OACL,MAAM,QACN,UAAU,WACV,QAAAxB,EACA,aAAcD,EAAK,IAAA,CAAA,EAEpBb,EAAAA,IAACsC,EAAA,CACA,KAAK,OACL,MAAM,QACN,QAAAxB,EACA,aAAcD,EAAK,IAAA,CAAA,CACpB,CAAA,EAfK,GAAGA,EAAK,IAAI,GAAGA,EAAK,IAAI,EAAA,CAgB9B,EACD,QACC,MAAA,CAAI,UAAU,uEACb,SAAAA,EAAK,SACLb,EAAAA,IAAC,MAAA,CACA,eAACuC,EAAA,CAAe,UAAU,SAAS,KAAK,WACvC,SAAAvC,EAAAA,IAACwC,GAAI,KAAM3B,EAAK,SAAU,WAAYZ,EAAe,CAAA,CACtD,CAAA,CACD,EACGY,EAAK,MAAQA,EAAK,KACrBb,MAAC,KAAE,UAAU,oHAAoH,mDAEjI,EAEAA,EAAAA,IAAC,KAAE,UAAU,oHAAoH,sCAEjI,CAAA,CAEF,QACCG,EAAA,CAAe,KAAMU,EAAK,KAAM,KAAMA,EAAK,IAAA,CAAM,CAAA,CAAA,CACnD,CAAA,CAAA,CAEF,CAAA,EA3FAoB,EAAAA,KAAC,MAAA,CAAI,UAAU,cACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACd,SAAA,CAAAjC,EAAAA,IAAC,IAAA,CAAE,UAAU,qBAAqB,SAAA,gBAAa,EAC/CA,EAAAA,IAAC,IAAA,CAAE,UAAU,UAAU,SAAA,+DAAA,CAEvB,CAAA,EACD,EACAA,EAAAA,IAAC,MAAA,CAAI,UAAU,MAAA,CAAO,EACtBA,EAAAA,IAAC,IAAA,CAAE,UAAU,OAAO,SAAA,sDAEpB,EACAA,EAAAA,IAACyC,EAAA,CAAkB,IAAI,0DAAA,CAA2D,CAAA,EACnF,CAkFH,CAEA,SAASH,EAAiB,CACzB,KAAAI,EACA,MAAAC,EACA,UAAAC,EACA,QAAA9B,EACA,aAAA+B,CACD,EAMG,CACF,OACCZ,EAAAA,KAACa,EAAA,CAAY,KAAAJ,EAAY,aAAAG,EACxB,SAAA,CAAAZ,EAAAA,KAACc,EAAA,CACA,UAAWC,EACV,wIACAJ,CAAA,EAED,aAAY,UAAUD,CAAK,gBAE3B,SAAA,CAAAV,EAAAA,KAAC,OAAA,CAAK,UAAU,kDACd,SAAA,CAAAU,EAAM,IAAE,IACT3C,EAAAA,IAACiD,EAAA,CACA,YAAa,UAAUN,CAAK,GAC5B,UAAU,iCAAA,CAAA,CACX,EACD,EACA3C,EAAAA,IAACkD,EAAA,CAAY,UAAU,GACtB,SAAAlD,EAAAA,IAAC+B,EAAA,CAAK,KAAK,mBAAA,CAAoB,CAAA,CAChC,CAAA,CAAA,CAAA,EAED/B,MAACmD,EAAA,CACA,SAAAlB,EAAAA,KAACmB,EAAA,CACA,SAAS,SACT,MAAM,QACN,UAAU,wDAEV,SAAA,CAAApD,EAAAA,IAACqD,EAAA,CAAsB,UAAU,sDAChC,SAAArD,MAAC+B,EAAA,CAAK,KAAK,WAAA,CAAY,CAAA,CACxB,EACA/B,MAACsD,EAAA,CAAgB,UAAU,MAC1B,SAAArB,EAAAA,KAACsB,EAAA,CACA,SAAA,CAAAvD,EAAAA,IAACwD,EAAA,CAAa,UAAU,gCACtB,SAAAb,EACF,EACC7B,EAAQ,IAAKL,GAEZT,MAACyD,GAA0B,MAAOhD,EAAI,KACpC,SAAAA,EAAI,aADWA,EAAI,IAErB,CAED,CAAA,CAAA,CACF,CAAA,CACD,EACAT,EAAAA,IAAC0D,EAAA,CAAwB,UAAU,sDAClC,SAAA1D,EAAAA,IAAC+B,EAAA,CAAK,KAAK,aAAA,CAAc,CAAA,CAC1B,CAAA,CAAA,CAAA,CACD,CACD,CAAA,EACD,CAEF,CAEA,MAAM0B,EAA4B,CAAC,CAClC,IAAKE,EACL,SAAAC,EACA,UAAAhB,EACA,GAAG7C,CACJ,IAEEkC,EAAAA,KAAC4B,EAAA,CACA,UAAWb,EACV,4NAEAJ,CAAA,EAEA,GAAG7C,EACJ,IAAK4D,EAEL,SAAA,CAAA3D,MAAC8D,EAAA,CAAiB,SAAAF,EAAS,EAC3B5D,EAAAA,IAAC+D,EAAA,CAAqB,UAAU,mEAC/B,SAAA/D,EAAAA,IAAC+B,EAAA,CAAK,KAAK,YAAA,CAAa,CAAA,CACzB,CAAA,CAAA,CAAA,EAKGkB,EAA6B,CAAC,CACnC,IAAKU,EACL,SAAAC,EACA,UAAAhB,EACA,GAAG7C,CACJ,IAEEC,EAAAA,IAACgE,EAAA,CAAc,GAAGjE,EAAO,IAAK4D,EAC5B,SAAA5D,EAAM,MACR"}
@@ -1,2 +1,2 @@
1
- import{w as d,L as s}from"./chunk-QMGIS6GS-Du-_uMOD.js";import{j as e}from"./jsx-runtime-DKBD_fLS.js";import{I as t}from"./misc-D7yrZhQB.js";import{c as i,a as c}from"./user-BUyyWGpK.js";import{u as a}from"./workshop-config-eejws2-k.js";import"./_-BEfdnu_S.js";const g={getSitemapEntries:()=>null};function l(){const{product:{host:r}}=a();return`https://${r}/discord`}function D(){const r=i(),n=c(),o=l();return r?n?"https://discord.com/channels/715220730605731931/1161045224907341972":o:"/login"}function h(){const r=i(),n=c(),o=l();return r?n?e.jsxs("div",{className:"flex items-center justify-center gap-2 text-xl underline",children:[e.jsx(s,{to:"discord://discord.com/channels/715220730605731931/1161045224907341972",children:e.jsx(t,{name:"Discord",size:"2xl"})}),e.jsx(s,{to:"https://discord.com/channels/715220730605731931/1161045224907341972",target:"_blank",rel:"noreferrer noopener",children:"Open Discord"})]}):e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2 text-xl",children:[e.jsxs(s,{to:o,className:"flex items-center gap-2 underline",children:[e.jsx(t,{name:"Discord",size:"2xl"}),"Connect Discord"]})," ",e.jsxs("span",{children:["to get access to the exclusive"," ",e.jsx(s,{to:"/discord",className:"underline",children:"discord channel"}),"."]})]}):e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2 text-xl",children:[e.jsxs(s,{to:"/login",className:"inline-flex items-center gap-2 underline",children:[e.jsx(t,{name:"Discord",size:"2xl"}),"Login"]})," ",e.jsxs("span",{children:["to get access to the exclusive"," ",e.jsx(s,{to:"/discord",className:"underline",children:"discord channel"}),"."]})]})}const y=d(function(){return e.jsxs("div",{className:"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12",children:[e.jsx(h,{}),e.jsxs("p",{children:["The"," ",e.jsx(s,{target:"_blank",rel:"noreferrer noopener",className:"underline",to:"https://kentcdodds.com/discord",children:"Epic Web Community on Discord"})," ","is a great place to hang out with other developers who are working through this workshop. You can ask questions, get help, and solidify what you're learning by helping others."]}),e.jsx("p",{children:e.jsxs("small",{className:"text-sm",children:["If you've not joined the Epic Web Community on Discord yet, you'll be required to go through a short onboarding process first. A friendly bot will explain the process when you"," ",e.jsx(s,{to:"https://kcd.im/discord",target:"_blank",rel:"noreferrer noopener",className:"underline",children:"join"}),"."]})})]})});export{h as D,y as d,g as h,D as u};
2
- //# sourceMappingURL=discord-Cx03Cky4.js.map
1
+ import{w as d,L as s}from"./chunk-QMGIS6GS-s1sqUxzz.js";import{j as e}from"./jsx-runtime-DXAEI3Eb.js";import{I as t}from"./misc-CFnU1MK_.js";import{c as i,a as c}from"./user-DwkYL1w0.js";import{u as a}from"./workshop-config-C-eyJXJM.js";import"./_-DinosGr4.js";const g={getSitemapEntries:()=>null};function l(){const{product:{host:r}}=a();return`https://${r}/discord`}function D(){const r=i(),n=c(),o=l();return r?n?"https://discord.com/channels/715220730605731931/1161045224907341972":o:"/login"}function h(){const r=i(),n=c(),o=l();return r?n?e.jsxs("div",{className:"flex items-center justify-center gap-2 text-xl underline",children:[e.jsx(s,{to:"discord://discord.com/channels/715220730605731931/1161045224907341972",children:e.jsx(t,{name:"Discord",size:"2xl"})}),e.jsx(s,{to:"https://discord.com/channels/715220730605731931/1161045224907341972",target:"_blank",rel:"noreferrer noopener",children:"Open Discord"})]}):e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2 text-xl",children:[e.jsxs(s,{to:o,className:"flex items-center gap-2 underline",children:[e.jsx(t,{name:"Discord",size:"2xl"}),"Connect Discord"]})," ",e.jsxs("span",{children:["to get access to the exclusive"," ",e.jsx(s,{to:"/discord",className:"underline",children:"discord channel"}),"."]})]}):e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2 text-xl",children:[e.jsxs(s,{to:"/login",className:"inline-flex items-center gap-2 underline",children:[e.jsx(t,{name:"Discord",size:"2xl"}),"Login"]})," ",e.jsxs("span",{children:["to get access to the exclusive"," ",e.jsx(s,{to:"/discord",className:"underline",children:"discord channel"}),"."]})]})}const y=d(function(){return e.jsxs("div",{className:"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12",children:[e.jsx(h,{}),e.jsxs("p",{children:["The"," ",e.jsx(s,{target:"_blank",rel:"noreferrer noopener",className:"underline",to:"https://kentcdodds.com/discord",children:"Epic Web Community on Discord"})," ","is a great place to hang out with other developers who are working through this workshop. You can ask questions, get help, and solidify what you're learning by helping others."]}),e.jsx("p",{children:e.jsxs("small",{className:"text-sm",children:["If you've not joined the Epic Web Community on Discord yet, you'll be required to go through a short onboarding process first. A friendly bot will explain the process when you"," ",e.jsx(s,{to:"https://kcd.im/discord",target:"_blank",rel:"noreferrer noopener",className:"underline",children:"join"}),"."]})})]})});export{h as D,y as d,g as h,D as u};
2
+ //# sourceMappingURL=discord-CcDU3lmV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discord-Cx03Cky4.js","sources":["../../../app/routes/_app+/discord.tsx"],"sourcesContent":["import { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport { Link } from 'react-router'\nimport { Icon } from '#app/components/icons.tsx'\nimport {\n\tuseOptionalDiscordMember,\n\tuseOptionalUser,\n} from '#app/components/user.tsx'\nimport { useWorkshopConfig } from '#app/components/workshop-config.tsx'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => null,\n}\n\nfunction useConnectDiscordURL() {\n\tconst {\n\t\tproduct: { host },\n\t} = useWorkshopConfig()\n\treturn `https://${host}/discord`\n}\n\nexport function useDiscordCTALink() {\n\tconst user = useOptionalUser()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\n\tif (!user) {\n\t\treturn '/login'\n\t}\n\tif (!discordMember) {\n\t\treturn connectDiscordURL\n\t}\n\n\treturn 'https://discord.com/channels/715220730605731931/1161045224907341972'\n}\n\nexport function DiscordCTA() {\n\tconst user = useOptionalUser()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\tif (!user) {\n\t\treturn (\n\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2 text-xl\">\n\t\t\t\t<Link to=\"/login\" className=\"inline-flex items-center gap-2 underline\">\n\t\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t\t\tLogin\n\t\t\t\t</Link>{' '}\n\t\t\t\t<span>\n\t\t\t\t\tto get access to the exclusive{' '}\n\t\t\t\t\t<Link to=\"/discord\" className=\"underline\">\n\t\t\t\t\t\tdiscord channel\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t)\n\t}\n\tif (!discordMember) {\n\t\treturn (\n\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2 text-xl\">\n\t\t\t\t<Link\n\t\t\t\t\tto={connectDiscordURL}\n\t\t\t\t\tclassName=\"flex items-center gap-2 underline\"\n\t\t\t\t>\n\t\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t\t\tConnect Discord\n\t\t\t\t</Link>{' '}\n\t\t\t\t<span>\n\t\t\t\t\tto get access to the exclusive{' '}\n\t\t\t\t\t<Link to=\"/discord\" className=\"underline\">\n\t\t\t\t\t\tdiscord channel\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div className=\"flex items-center justify-center gap-2 text-xl underline\">\n\t\t\t<Link to=\"discord://discord.com/channels/715220730605731931/1161045224907341972\">\n\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t</Link>\n\t\t\t<Link\n\t\t\t\tto=\"https://discord.com/channels/715220730605731931/1161045224907341972\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t>\n\t\t\t\tOpen Discord\n\t\t\t</Link>\n\t\t</div>\n\t)\n}\n\nexport default function DiscordRoute() {\n\treturn (\n\t\t<div className=\"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12\">\n\t\t\t<DiscordCTA />\n\t\t\t<p>\n\t\t\t\tThe{' '}\n\t\t\t\t<Link\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\tto=\"https://kentcdodds.com/discord\"\n\t\t\t\t>\n\t\t\t\t\tEpic Web Community on Discord\n\t\t\t\t</Link>{' '}\n\t\t\t\tis a great place to hang out with other developers who are working\n\t\t\t\tthrough this workshop. You can ask questions, get help, and solidify\n\t\t\t\twhat you're learning by helping others.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t<small className=\"text-sm\">\n\t\t\t\t\tIf you've not joined the Epic Web Community on Discord yet, you'll be\n\t\t\t\t\trequired to go through a short onboarding process first. A friendly\n\t\t\t\t\tbot will explain the process when you{' '}\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"https://kcd.im/discord\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\tjoin\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</small>\n\t\t\t</p>\n\t\t</div>\n\t)\n}\n"],"names":["handle","getSitemapEntries","useConnectDiscordURL","product","host","useWorkshopConfig","useDiscordCTALink","user","useOptionalUser","discordMember","useOptionalDiscordMember","connectDiscordURL","DiscordCTA","jsxs","className","children","jsx","Link","to","Icon","name","size","target","rel","discord","_UNSAFE_withComponentProps"],"mappings":"qQASO,MAAMA,EAAoB,CAChCC,kBAAmBA,IAAM,IAC1B,EAEA,SAASC,GAAuB,CAC/B,KAAM,CACLC,QAAS,CAAEC,KAAAA,CAAK,GACbC,EAAA,EACJ,MAAO,WAAWD,CAAI,UACvB,CAEO,SAASE,GAAoB,CACnC,MAAMC,EAAOC,EAAA,EACPC,EAAgBC,EAAA,EAChBC,EAAoBT,EAAA,EAE1B,OAAKK,EAGAE,EAIE,sEAHCE,EAHA,QAOT,CAEO,SAASC,GAAa,CAC5B,MAAML,EAAOC,EAAA,EACPC,EAAgBC,EAAA,EAChBC,EAAoBT,EAAA,EAC1B,OAAKK,EAiBAE,EAsBJI,EAAAA,KAAC,MAAA,CAAIC,UAAU,2DACdC,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAKC,GAAG,wEACRH,SAAAC,EAAAA,IAACG,GAAKC,KAAK,UAAUC,KAAK,MAAM,CAAA,CACjC,EACAL,EAAAA,IAACC,EAAA,CACAC,GAAG,sEACHI,OAAO,SACPC,IAAI,sBACJR,SAAA,cAAA,CAED,CAAA,CAAA,CACD,EA/BCF,EAAAA,KAAC,MAAA,CAAIC,UAAU,2DACdC,SAAA,CAAAF,EAAAA,KAACI,EAAA,CACAC,GAAIP,EACJG,UAAU,oCAEVC,SAAA,CAAAC,EAAAA,IAACG,EAAA,CAAKC,KAAK,UAAUC,KAAK,MAAM,EAAE,iBAAA,EAEnC,EAAQ,WACP,OAAA,CAAKN,SAAA,CAAA,iCAC0B,UAC9BE,EAAA,CAAKC,GAAG,WAAWJ,UAAU,YAAYC,SAAA,kBAE1C,EAAO,GAAA,CAAA,CAER,CAAA,CAAA,CACD,EAhCAF,EAAAA,KAAC,MAAA,CAAIC,UAAU,2DACdC,SAAA,CAAAF,EAAAA,KAACI,EAAA,CAAKC,GAAG,SAASJ,UAAU,2CAC3BC,SAAA,CAAAC,EAAAA,IAACG,EAAA,CAAKC,KAAK,UAAUC,KAAK,MAAM,EAAE,OAAA,EAEnC,EAAQ,WACP,OAAA,CAAKN,SAAA,CAAA,iCAC0B,UAC9BE,EAAA,CAAKC,GAAG,WAAWJ,UAAU,YAAYC,SAAA,kBAE1C,EAAO,GAAA,CAAA,CAER,CAAA,CAAA,CACD,CAsCH,CAEA,MAAAS,EAAAC,EAAA,UAAuC,CACtC,OACCZ,EAAAA,KAAC,MAAA,CAAIC,UAAU,kFACdC,SAAA,CAAAC,EAAAA,IAACJ,EAAA,CAAA,CAAW,SACX,IAAA,CAAEG,SAAA,CAAA,MACE,IACJC,EAAAA,IAACC,EAAA,CACAK,OAAO,SACPC,IAAI,sBACJT,UAAU,YACVI,GAAG,iCACHH,SAAA,+BAAA,CAED,EAAQ,IAAI,iLAAA,CAAA,CAIb,EACAC,EAAAA,IAAC,IAAA,CACAD,SAAAF,EAAAA,KAAC,QAAA,CAAMC,UAAU,UAAUC,SAAA,CAAA,kLAGY,IACtCC,EAAAA,IAACC,EAAA,CACAC,GAAG,yBACHI,OAAO,SACPC,IAAI,sBACJT,UAAU,YACVC,SAAA,OAED,EAAO,GAAA,EAER,CAAA,CACD,CAAA,CAAA,CACD,CAEF,CAAA"}
1
+ {"version":3,"file":"discord-CcDU3lmV.js","sources":["../../../app/routes/_app+/discord.tsx"],"sourcesContent":["import { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport { Link } from 'react-router'\nimport { Icon } from '#app/components/icons.tsx'\nimport {\n\tuseOptionalDiscordMember,\n\tuseOptionalUser,\n} from '#app/components/user.tsx'\nimport { useWorkshopConfig } from '#app/components/workshop-config.tsx'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => null,\n}\n\nfunction useConnectDiscordURL() {\n\tconst {\n\t\tproduct: { host },\n\t} = useWorkshopConfig()\n\treturn `https://${host}/discord`\n}\n\nexport function useDiscordCTALink() {\n\tconst user = useOptionalUser()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\n\tif (!user) {\n\t\treturn '/login'\n\t}\n\tif (!discordMember) {\n\t\treturn connectDiscordURL\n\t}\n\n\treturn 'https://discord.com/channels/715220730605731931/1161045224907341972'\n}\n\nexport function DiscordCTA() {\n\tconst user = useOptionalUser()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\tif (!user) {\n\t\treturn (\n\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2 text-xl\">\n\t\t\t\t<Link to=\"/login\" className=\"inline-flex items-center gap-2 underline\">\n\t\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t\t\tLogin\n\t\t\t\t</Link>{' '}\n\t\t\t\t<span>\n\t\t\t\t\tto get access to the exclusive{' '}\n\t\t\t\t\t<Link to=\"/discord\" className=\"underline\">\n\t\t\t\t\t\tdiscord channel\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t)\n\t}\n\tif (!discordMember) {\n\t\treturn (\n\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2 text-xl\">\n\t\t\t\t<Link\n\t\t\t\t\tto={connectDiscordURL}\n\t\t\t\t\tclassName=\"flex items-center gap-2 underline\"\n\t\t\t\t>\n\t\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t\t\tConnect Discord\n\t\t\t\t</Link>{' '}\n\t\t\t\t<span>\n\t\t\t\t\tto get access to the exclusive{' '}\n\t\t\t\t\t<Link to=\"/discord\" className=\"underline\">\n\t\t\t\t\t\tdiscord channel\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div className=\"flex items-center justify-center gap-2 text-xl underline\">\n\t\t\t<Link to=\"discord://discord.com/channels/715220730605731931/1161045224907341972\">\n\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t</Link>\n\t\t\t<Link\n\t\t\t\tto=\"https://discord.com/channels/715220730605731931/1161045224907341972\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t>\n\t\t\t\tOpen Discord\n\t\t\t</Link>\n\t\t</div>\n\t)\n}\n\nexport default function DiscordRoute() {\n\treturn (\n\t\t<div className=\"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12\">\n\t\t\t<DiscordCTA />\n\t\t\t<p>\n\t\t\t\tThe{' '}\n\t\t\t\t<Link\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\tto=\"https://kentcdodds.com/discord\"\n\t\t\t\t>\n\t\t\t\t\tEpic Web Community on Discord\n\t\t\t\t</Link>{' '}\n\t\t\t\tis a great place to hang out with other developers who are working\n\t\t\t\tthrough this workshop. You can ask questions, get help, and solidify\n\t\t\t\twhat you're learning by helping others.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t<small className=\"text-sm\">\n\t\t\t\t\tIf you've not joined the Epic Web Community on Discord yet, you'll be\n\t\t\t\t\trequired to go through a short onboarding process first. A friendly\n\t\t\t\t\tbot will explain the process when you{' '}\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"https://kcd.im/discord\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\tjoin\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</small>\n\t\t\t</p>\n\t\t</div>\n\t)\n}\n"],"names":["handle","getSitemapEntries","useConnectDiscordURL","product","host","useWorkshopConfig","useDiscordCTALink","user","useOptionalUser","discordMember","useOptionalDiscordMember","connectDiscordURL","DiscordCTA","jsxs","className","children","jsx","Link","to","Icon","name","size","target","rel","discord","_UNSAFE_withComponentProps"],"mappings":"qQASO,MAAMA,EAAoB,CAChCC,kBAAmBA,IAAM,IAC1B,EAEA,SAASC,GAAuB,CAC/B,KAAM,CACLC,QAAS,CAAEC,KAAAA,CAAK,GACbC,EAAA,EACJ,MAAO,WAAWD,CAAI,UACvB,CAEO,SAASE,GAAoB,CACnC,MAAMC,EAAOC,EAAA,EACPC,EAAgBC,EAAA,EAChBC,EAAoBT,EAAA,EAE1B,OAAKK,EAGAE,EAIE,sEAHCE,EAHA,QAOT,CAEO,SAASC,GAAa,CAC5B,MAAML,EAAOC,EAAA,EACPC,EAAgBC,EAAA,EAChBC,EAAoBT,EAAA,EAC1B,OAAKK,EAiBAE,EAsBJI,EAAAA,KAAC,MAAA,CAAIC,UAAU,2DACdC,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAKC,GAAG,wEACRH,SAAAC,EAAAA,IAACG,GAAKC,KAAK,UAAUC,KAAK,MAAM,CAAA,CACjC,EACAL,EAAAA,IAACC,EAAA,CACAC,GAAG,sEACHI,OAAO,SACPC,IAAI,sBACJR,SAAA,cAAA,CAED,CAAA,CAAA,CACD,EA/BCF,EAAAA,KAAC,MAAA,CAAIC,UAAU,2DACdC,SAAA,CAAAF,EAAAA,KAACI,EAAA,CACAC,GAAIP,EACJG,UAAU,oCAEVC,SAAA,CAAAC,EAAAA,IAACG,EAAA,CAAKC,KAAK,UAAUC,KAAK,MAAM,EAAE,iBAAA,EAEnC,EAAQ,WACP,OAAA,CAAKN,SAAA,CAAA,iCAC0B,UAC9BE,EAAA,CAAKC,GAAG,WAAWJ,UAAU,YAAYC,SAAA,kBAE1C,EAAO,GAAA,CAAA,CAER,CAAA,CAAA,CACD,EAhCAF,EAAAA,KAAC,MAAA,CAAIC,UAAU,2DACdC,SAAA,CAAAF,EAAAA,KAACI,EAAA,CAAKC,GAAG,SAASJ,UAAU,2CAC3BC,SAAA,CAAAC,EAAAA,IAACG,EAAA,CAAKC,KAAK,UAAUC,KAAK,MAAM,EAAE,OAAA,EAEnC,EAAQ,WACP,OAAA,CAAKN,SAAA,CAAA,iCAC0B,UAC9BE,EAAA,CAAKC,GAAG,WAAWJ,UAAU,YAAYC,SAAA,kBAE1C,EAAO,GAAA,CAAA,CAER,CAAA,CAAA,CACD,CAsCH,CAEA,MAAAS,EAAAC,EAAA,UAAuC,CACtC,OACCZ,EAAAA,KAAC,MAAA,CAAIC,UAAU,kFACdC,SAAA,CAAAC,EAAAA,IAACJ,EAAA,CAAA,CAAW,SACX,IAAA,CAAEG,SAAA,CAAA,MACE,IACJC,EAAAA,IAACC,EAAA,CACAK,OAAO,SACPC,IAAI,sBACJT,UAAU,YACVI,GAAG,iCACHH,SAAA,+BAAA,CAED,EAAQ,IAAI,iLAAA,CAAA,CAIb,EACAC,EAAAA,IAAC,IAAA,CACAD,SAAAF,EAAAA,KAAC,QAAA,CAAMC,UAAU,UAAUC,SAAA,CAAA,kLAGY,IACtCC,EAAAA,IAACC,EAAA,CACAC,GAAG,yBACHI,OAAO,SACPC,IAAI,sBACJT,UAAU,YACVC,SAAA,OAED,EAAO,GAAA,EAER,CAAA,CACD,CAAA,CAAA,CACD,CAEF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{d as f,h}from"./discord-CcDU3lmV.js";import"./_-DinosGr4.js";import"./chunk-QMGIS6GS-s1sqUxzz.js";import"./jsx-runtime-DXAEI3Eb.js";import"./misc-CFnU1MK_.js";import"./clsx-B-dksMZM.js";import"./user-DwkYL1w0.js";import"./workshop-config-C-eyJXJM.js";export{f as default,h as handle};
2
+ //# sourceMappingURL=discord-WVHyDde2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord-WVHyDde2.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import{j as Y0}from"./jsx-runtime-DKBD_fLS.js";import"./_-BEfdnu_S.js";import{n as G0,r as je,t as Lg,v as j0,x as X0,y as V0,z as Q0,B as Z0,C as K0,D as F0,E as J0,G as W0,H as $0,I as P0,J as t_,K as e_,P as n_,Q as a_}from"./chunk-QMGIS6GS-Du-_uMOD.js";import{a as i_,r as r_}from"./index-B8smZwSG.js";import{D as Tt,d as St,g as ta,G as Vt,n as rf,a as Vs,b as l_,e as Bg,S as Hg,f as Ig,m as s_,u as Ra,h as Rp,i as lf,j as Op,r as Tn,k as qg,l as Yg,p as Gg,o as u_,q as o_,s as wi,t as sf,v as Ds,w as jg,x as Ap,y as c_,z as f_,A as xc,B as Zr,C as Dp,E as Kt,F as uf,H as Ea,I as Kr,J as Nc,K as d_,L as be,M as wp,N as Cp,O as En,P as Xg,Q as ws,R as h_,T as Qs,U as m_,V as p_,W as kc,X as Yr,c as Vg,Y as Qg,Z as xp,_ as g_,$ as of,a0 as y_,a1 as v_,a2 as bt,a3 as Ur,a4 as S_,a5 as Mi,a6 as cf,a7 as __,a8 as Np,a9 as kp,aa as zp,ab as Zg,ac as E_,ad as ff,ae as zc,af as ba,ag as b_,ah as T_,ai as M_,aj as R_,ak as Kg,al as O_,am as A_}from"./debug-build-Dv-lEFrZ.js";var pc={exports:{}},Nr={},gc={exports:{}},yc={};/**
1
+ import{j as Y0}from"./jsx-runtime-DXAEI3Eb.js";import"./_-DinosGr4.js";import{n as G0,r as je,t as Lg,v as j0,x as X0,y as V0,z as Q0,B as Z0,C as K0,D as F0,E as J0,G as W0,H as $0,I as P0,J as t_,K as e_,P as n_,Q as a_}from"./chunk-QMGIS6GS-s1sqUxzz.js";import{a as i_,r as r_}from"./index-BmZYK7HN.js";import{D as Tt,d as St,g as ta,G as Vt,n as rf,a as Vs,b as l_,e as Bg,S as Hg,f as Ig,m as s_,u as Ra,h as Rp,i as lf,j as Op,r as Tn,k as qg,l as Yg,p as Gg,o as u_,q as o_,s as wi,t as sf,v as Ds,w as jg,x as Ap,y as c_,z as f_,A as xc,B as Zr,C as Dp,E as Kt,F as uf,H as Ea,I as Kr,J as Nc,K as d_,L as be,M as wp,N as Cp,O as En,P as Xg,Q as ws,R as h_,T as Qs,U as m_,V as p_,W as kc,X as Yr,c as Vg,Y as Qg,Z as xp,_ as g_,$ as of,a0 as y_,a1 as v_,a2 as bt,a3 as Ur,a4 as S_,a5 as Mi,a6 as cf,a7 as __,a8 as Np,a9 as kp,aa as zp,ab as Zg,ac as E_,ad as ff,ae as zc,af as ba,ag as b_,ah as T_,ai as M_,aj as R_,ak as Kg,al as O_,am as A_}from"./debug-build-Dv-lEFrZ.js";var pc={exports:{}},Nr={},gc={exports:{}},yc={};/**
2
2
  * @license React
3
3
  * scheduler.production.js
4
4
  *
@@ -52,4 +52,4 @@ now you can use replayer.getMirror() to access the mirror instance of a replayer
52
52
  or you can use record.mirror to access the mirror instance during recording.`;let mg={map:{},getId(){return console.error(yi),-1},getNode(){return console.error(yi),null},removeNodeFromMap(){console.error(yi)},has(){return console.error(yi),!1},reset(){console.error(yi)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(mg=new Proxy(mg,{get(n,i,l){return i==="map"&&console.error(yi),Reflect.get(n,i,l)}}));function Vr(n,i,l={}){let s=null,c=0;return function(...f){const h=Date.now();!c&&l.leading===!1&&(c=h);const g=i-(h-c),m=this;g<=0||g>i?(s&&(aM(s),s=null),c=h,n.apply(m,f)):!s&&l.trailing!==!1&&(s=Ps(()=>{c=l.leading===!1?0:Date.now(),s=null,n.apply(m,f)},g))}}function Hy(n,i,l,s,c=window){const f=c.Object.getOwnPropertyDescriptor(n,i);return c.Object.defineProperty(n,i,s?l:{set(h){Ps(()=>{l.set.call(this,h)},0),f&&f.set&&f.set.call(this,h)}}),()=>Hy(n,i,f||{},!0)}function Rf(n,i,l){try{if(!(i in n))return()=>{};const s=n[i],c=l(s);return typeof c=="function"&&(c.prototype=c.prototype||{},Object.defineProperties(c,{__rrweb_original__:{enumerable:!1,value:s}})),n[i]=c,()=>{n[i]=s}}catch{return()=>{}}}let Is=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(Is=()=>new Date().getTime());function Iy(n){const i=n.document;return{left:i.scrollingElement?i.scrollingElement.scrollLeft:n.pageXOffset!==void 0?n.pageXOffset:i?.documentElement.scrollLeft||i?.body?.parentElement?.scrollLeft||i?.body?.scrollLeft||0,top:i.scrollingElement?i.scrollingElement.scrollTop:n.pageYOffset!==void 0?n.pageYOffset:i?.documentElement.scrollTop||i?.body?.parentElement?.scrollTop||i?.body?.scrollTop||0}}function qy(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function Yy(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function Gy(n){if(!n)return null;try{return n.nodeType===n.ELEMENT_NODE?n:n.parentElement}catch{return null}}function Ne(n,i,l,s,c){if(!n)return!1;const f=Gy(n);if(!f)return!1;const h=Ei(i,l);if(!c){const y=s&&f.matches(s);return h(f)&&!y}const g=Ta(f,h);let m=-1;return g<0?!1:(s&&(m=Ta(f,Ei(null,s))),g>-1&&m<0?!0:g<m)}function WT(n,i){return i.getId(n)!==-1}function Ac(n,i){return i.getId(n)===Xr}function jy(n,i){if(Hr(n))return!1;const l=i.getId(n);return i.has(l)?n.parentNode&&n.parentNode.nodeType===n.DOCUMENT_NODE?!1:n.parentNode?jy(n.parentNode,i):!0:!0}function Jc(n){return!!n.changedTouches}function $T(n=window){"NodeList"in n&&!n.NodeList.prototype.forEach&&(n.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in n&&!n.DOMTokenList.prototype.forEach&&(n.DOMTokenList.prototype.forEach=Array.prototype.forEach),Node.prototype.contains||(Node.prototype.contains=(...i)=>{let l=i[0];if(!(0 in i))throw new TypeError("1 argument is required");do if(this===l)return!0;while(l=l&&l.parentNode);return!1})}function Xy(n,i){return!!(n.nodeName==="IFRAME"&&i.getMeta(n))}function Vy(n,i){return!!(n.nodeName==="LINK"&&n.nodeType===n.ELEMENT_NODE&&n.getAttribute&&n.getAttribute("rel")==="stylesheet"&&i.getMeta(n))}function Wc(n){return!!n?.shadowRoot}class PT{constructor(){this.id=1,this.styleIDMap=new WeakMap,this.idStyleMap=new Map}getId(i){return this.styleIDMap.get(i)??-1}has(i){return this.styleIDMap.has(i)}add(i,l){if(this.has(i))return this.getId(i);let s;return l===void 0?s=this.id++:s=l,this.styleIDMap.set(i,s),this.idStyleMap.set(s,i),s}getStyle(i){return this.idStyleMap.get(i)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function Qy(n){let i=null;return n.getRootNode?.()?.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&n.getRootNode().host&&(i=n.getRootNode().host),i}function tM(n){let i=n,l;for(;l=Qy(i);)i=l;return i}function eM(n){const i=n.ownerDocument;if(!i)return!1;const l=tM(n);return i.contains(l)}function Zy(n){const i=n.ownerDocument;return i?i.contains(n)||eM(n):!1}const pg={};function Of(n){const i=pg[n];if(i)return i;const l=window.document;let s=window[n];if(l&&typeof l.createElement=="function")try{const c=l.createElement("iframe");c.hidden=!0,l.head.appendChild(c);const f=c.contentWindow;f&&f[n]&&(s=f[n]),l.head.removeChild(c)}catch{}return pg[n]=s.bind(window)}function nM(...n){return Of("requestAnimationFrame")(...n)}function Ps(...n){return Of("setTimeout")(...n)}function aM(...n){return Of("clearTimeout")(...n)}var it=(n=>(n[n.DomContentLoaded=0]="DomContentLoaded",n[n.Load=1]="Load",n[n.FullSnapshot=2]="FullSnapshot",n[n.IncrementalSnapshot=3]="IncrementalSnapshot",n[n.Meta=4]="Meta",n[n.Custom=5]="Custom",n[n.Plugin=6]="Plugin",n))(it||{}),tt=(n=>(n[n.Mutation=0]="Mutation",n[n.MouseMove=1]="MouseMove",n[n.MouseInteraction=2]="MouseInteraction",n[n.Scroll=3]="Scroll",n[n.ViewportResize=4]="ViewportResize",n[n.Input=5]="Input",n[n.TouchMove=6]="TouchMove",n[n.MediaInteraction=7]="MediaInteraction",n[n.StyleSheetRule=8]="StyleSheetRule",n[n.CanvasMutation=9]="CanvasMutation",n[n.Font=10]="Font",n[n.Log=11]="Log",n[n.Drag=12]="Drag",n[n.StyleDeclaration=13]="StyleDeclaration",n[n.Selection=14]="Selection",n[n.AdoptedStyleSheet=15]="AdoptedStyleSheet",n[n.CustomElement=16]="CustomElement",n))(tt||{}),he=(n=>(n[n.MouseUp=0]="MouseUp",n[n.MouseDown=1]="MouseDown",n[n.Click=2]="Click",n[n.ContextMenu=3]="ContextMenu",n[n.DblClick=4]="DblClick",n[n.Focus=5]="Focus",n[n.Blur=6]="Blur",n[n.TouchStart=7]="TouchStart",n[n.TouchMove_Departed=8]="TouchMove_Departed",n[n.TouchEnd=9]="TouchEnd",n[n.TouchCancel=10]="TouchCancel",n))(he||{}),_n=(n=>(n[n.Mouse=0]="Mouse",n[n.Pen=1]="Pen",n[n.Touch=2]="Touch",n))(_n||{}),vi=(n=>(n[n.Play=0]="Play",n[n.Pause=1]="Pause",n[n.Seeked=2]="Seeked",n[n.VolumeChange=3]="VolumeChange",n[n.RateChange=4]="RateChange",n))(vi||{});function Af(n){try{return n.contentDocument}catch{}}function iM(n){try{return n.contentWindow}catch{}}function gg(n){return"__ln"in n}class rM{constructor(){this.length=0,this.head=null,this.tail=null}get(i){if(i>=this.length)throw new Error("Position outside of list range");let l=this.head;for(let s=0;s<i;s++)l=l?.next||null;return l}addNode(i){const l={value:i,previous:null,next:null};if(i.__ln=l,i.previousSibling&&gg(i.previousSibling)){const s=i.previousSibling.__ln.next;l.next=s,l.previous=i.previousSibling.__ln,i.previousSibling.__ln.next=l,s&&(s.previous=l)}else if(i.nextSibling&&gg(i.nextSibling)&&i.nextSibling.__ln.previous){const s=i.nextSibling.__ln.previous;l.previous=s,l.next=i.nextSibling.__ln,i.nextSibling.__ln.previous=l,s&&(s.next=l)}else this.head&&(this.head.previous=l),l.next=this.head,this.head=l;l.next===null&&(this.tail=l),this.length++}removeNode(i){const l=i.__ln;this.head&&(l.previous?(l.previous.next=l.next,l.next?l.next.previous=l.previous:this.tail=l.previous):(this.head=l.next,this.head?this.head.previous=null:this.tail=null),i.__ln&&delete i.__ln,this.length--)}}const yg=(n,i)=>`${n}@${i}`;class lM{constructor(){this.frozen=!1,this.locked=!1,this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.mapRemoves=[],this.movedMap={},this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.processMutations=i=>{i.forEach(this.processMutation),this.emit()},this.emit=()=>{if(this.frozen||this.locked)return;const i=[],l=new Set,s=new rM,c=m=>{let y=m,E=Xr;for(;E===Xr;)y=y&&y.nextSibling,E=y&&this.mirror.getId(y);return E},f=m=>{if(!m.parentNode||!Zy(m))return;const y=Hr(m.parentNode)?this.mirror.getId(Qy(m)):this.mirror.getId(m.parentNode),E=c(m);if(y===-1||E===-1)return s.addNode(m);const _=bi(m,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskAllText:this.maskAllText,unblockSelector:this.unblockSelector,maskTextClass:this.maskTextClass,unmaskTextClass:this.unmaskTextClass,maskTextSelector:this.maskTextSelector,unmaskTextSelector:this.unmaskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskAttributeFn:this.maskAttributeFn,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,onSerialize:R=>{Xy(R,this.mirror)&&!Ne(R,this.blockClass,this.blockSelector,this.unblockSelector,!1)&&this.iframeManager.addIframe(R),Vy(R,this.mirror)&&this.stylesheetManager.trackLinkElement(R),Wc(m)&&this.shadowDomManager.addShadowRoot(m.shadowRoot,this.doc)},onIframeLoad:(R,w)=>{Ne(R,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(this.iframeManager.attachIframe(R,w),R.contentWindow&&this.canvasManager.addWindow(R.contentWindow),this.shadowDomManager.observeAttachShadow(R))},onStylesheetLoad:(R,w)=>{this.stylesheetManager.attachLinkElement(R,w)}});_&&(i.push({parentId:y,nextId:E,node:_}),l.add(_.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const m of this.movedSet)vg(this.removes,m,this.mirror)&&!this.movedSet.has(m.parentNode)||f(m);for(const m of this.addedSet)!Sg(this.droppedSet,m)&&!vg(this.removes,m,this.mirror)||Sg(this.movedSet,m)?f(m):this.droppedSet.add(m);let h=null;for(;s.length;){let m=null;if(h){const y=this.mirror.getId(h.value.parentNode),E=c(h.value);y!==-1&&E!==-1&&(m=h)}if(!m){let y=s.tail;for(;y;){const E=y;if(y=y.previous,E){const _=this.mirror.getId(E.value.parentNode);if(c(E.value)===-1)continue;if(_!==-1){m=E;break}else{const w=E.value;if(w.parentNode&&w.parentNode.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const k=w.parentNode.host;if(this.mirror.getId(k)!==-1){m=E;break}}}}}}if(!m){for(;s.head;)s.removeNode(s.head.value);break}h=m.previous,s.removeNode(m.value),f(m.value)}const g={texts:this.texts.map(m=>({id:this.mirror.getId(m.node),value:m.value})).filter(m=>!l.has(m.id)).filter(m=>this.mirror.has(m.id)),attributes:this.attributes.map(m=>{const{attributes:y}=m;if(typeof y.style=="string"){const E=JSON.stringify(m.styleDiff),_=JSON.stringify(m._unchangedStyles);E.length<y.style.length&&(E+_).split("var(").length===y.style.split("var(").length&&(y.style=m.styleDiff)}return{id:this.mirror.getId(m.node),attributes:y}}).filter(m=>!l.has(m.id)).filter(m=>this.mirror.has(m.id)),removes:this.removes,adds:i};!g.texts.length&&!g.attributes.length&&!g.removes.length&&!g.adds.length||(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.movedMap={},this.mutationCb(g))},this.processMutation=i=>{if(!Ac(i.target,this.mirror))switch(i.type){case"characterData":{const l=i.target.textContent;!Ne(i.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)&&l!==i.oldValue&&this.texts.push({value:Ai(i.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,this.maskAllText)&&l?this.maskTextFn?this.maskTextFn(l,Gy(i.target)):l.replace(/[\S]/g,"*"):l,node:i.target});break}case"attributes":{const l=i.target;let s=i.attributeName,c=i.target.getAttribute(s);if(s==="value"){const h=Tf(l),g=l.tagName;c=Bs(l,g,h);const m=Ws({maskInputOptions:this.maskInputOptions,tagName:g,type:h}),y=Ai(i.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,m);c=jr({isMasked:y,element:l,value:c,maskInputFn:this.maskInputFn})}if(Ne(i.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||c===i.oldValue)return;let f=this.attributeMap.get(i.target);if(l.tagName==="IFRAME"&&s==="src"&&!this.keepIframeSrcFn(c))if(!Af(l))s="rr_src";else return;if(f||(f={node:i.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(f),this.attributeMap.set(i.target,f)),s==="type"&&l.tagName==="INPUT"&&(i.oldValue||"").toLowerCase()==="password"&&l.setAttribute("data-rr-is-password","true"),!Ly(l.tagName,s)&&(f.attributes[s]=Uy(this.doc,Oi(l.tagName),Oi(s),c,l,this.maskAttributeFn),s==="style")){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch{this.unattachedDoc=this.doc}const h=this.unattachedDoc.createElement("span");i.oldValue&&h.setAttribute("style",i.oldValue);for(const g of Array.from(l.style)){const m=l.style.getPropertyValue(g),y=l.style.getPropertyPriority(g);m!==h.style.getPropertyValue(g)||y!==h.style.getPropertyPriority(g)?y===""?f.styleDiff[g]=m:f.styleDiff[g]=[m,y]:f._unchangedStyles[g]=[m,y]}for(const g of Array.from(h.style))l.style.getPropertyValue(g)===""&&(f.styleDiff[g]=!1)}break}case"childList":{if(Ne(i.target,this.blockClass,this.blockSelector,this.unblockSelector,!0))return;i.addedNodes.forEach(l=>this.genAdds(l,i.target)),i.removedNodes.forEach(l=>{const s=this.mirror.getId(l),c=Hr(i.target)?this.mirror.getId(i.target.host):this.mirror.getId(i.target);Ne(i.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||Ac(l,this.mirror)||!WT(l,this.mirror)||(this.addedSet.has(l)?($c(this.addedSet,l),this.droppedSet.add(l)):this.addedSet.has(i.target)&&s===-1||jy(i.target,this.mirror)||(this.movedSet.has(l)&&this.movedMap[yg(s,c)]?$c(this.movedSet,l):this.removes.push({parentId:c,id:s,isShadow:Hr(i.target)&&Ir(i.target)?!0:void 0})),this.mapRemoves.push(l))});break}}},this.genAdds=(i,l)=>{if(!this.processedNodeManager.inOtherBuffer(i,this)&&!(this.addedSet.has(i)||this.movedSet.has(i))){if(this.mirror.hasNode(i)){if(Ac(i,this.mirror))return;this.movedSet.add(i);let s=null;l&&this.mirror.hasNode(l)&&(s=this.mirror.getId(l)),s&&s!==-1&&(this.movedMap[yg(this.mirror.getId(i),s)]=!0)}else this.addedSet.add(i),this.droppedSet.delete(i);Ne(i,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(i.childNodes.forEach(s=>this.genAdds(s)),Wc(i)&&i.shadowRoot.childNodes.forEach(s=>{this.processedNodeManager.add(s,this),this.genAdds(s,i)}))}}}init(i){["mutationCb","blockClass","blockSelector","unblockSelector","maskAllText","maskTextClass","unmaskTextClass","maskTextSelector","unmaskTextSelector","inlineStylesheet","maskInputOptions","maskAttributeFn","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager"].forEach(l=>{this[l]=i[l]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function $c(n,i){n.delete(i),i.childNodes.forEach(l=>$c(n,l))}function vg(n,i,l){return n.length===0?!1:sM(n,i,l)}function sM(n,i,l){let s=i.parentNode;for(;s;){const c=l.getId(s);if(n.some(f=>f.id===c))return!0;s=s.parentNode}return!1}function Sg(n,i){return n.size===0?!1:Ky(n,i)}function Ky(n,i){const{parentNode:l}=i;return l?n.has(l)?!0:Ky(n,l):!1}let qr;function uM(n){qr=n}function oM(){qr=void 0}const pt=n=>qr?(...l)=>{try{return n(...l)}catch(s){if(qr&&qr(s)===!0)return()=>{};throw s}}:n,Ti=[];function Pr(n){try{if("composedPath"in n){const i=n.composedPath();if(i.length)return i[0]}else if("path"in n&&n.path.length)return n.path[0]}catch{}return n&&n.target}function Fy(n,i){const l=new lM;Ti.push(l),l.init(n);let s=window.MutationObserver||window.__rrMutationObserver;const c=window?.Zone?.__symbol__?.("MutationObserver");c&&window[c]&&(s=window[c]);const f=new s(pt(h=>{n.onMutation&&n.onMutation(h)===!1||l.processMutations.bind(l)(h)}));return f.observe(i,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),f}function cM({mousemoveCb:n,sampling:i,doc:l,mirror:s}){if(i.mousemove===!1)return()=>{};const c=typeof i.mousemove=="number"?i.mousemove:50,f=typeof i.mousemoveCallback=="number"?i.mousemoveCallback:500;let h=[],g;const m=Vr(pt(_=>{const R=Date.now()-g;n(h.map(w=>(w.timeOffset-=R,w)),_),h=[],g=null}),f),y=pt(Vr(pt(_=>{const R=Pr(_),{clientX:w,clientY:k}=Jc(_)?_.changedTouches[0]:_;g||(g=Is()),h.push({x:w,y:k,id:s.getId(R),timeOffset:Is()-g}),m(typeof DragEvent<"u"&&_ instanceof DragEvent?tt.Drag:_ instanceof MouseEvent?tt.MouseMove:tt.TouchMove)}),c,{trailing:!1})),E=[me("mousemove",y,l),me("touchmove",y,l),me("drag",y,l)];return pt(()=>{E.forEach(_=>_())})}function fM({mouseInteractionCb:n,doc:i,mirror:l,blockClass:s,blockSelector:c,unblockSelector:f,sampling:h}){if(h.mouseInteraction===!1)return()=>{};const g=h.mouseInteraction===!0||h.mouseInteraction===void 0?{}:h.mouseInteraction,m=[];let y=null;const E=_=>R=>{const w=Pr(R);if(Ne(w,s,c,f,!0))return;let k=null,U=_;if("pointerType"in R){switch(R.pointerType){case"mouse":k=_n.Mouse;break;case"touch":k=_n.Touch;break;case"pen":k=_n.Pen;break}k===_n.Touch?he[_]===he.MouseDown?U="TouchStart":he[_]===he.MouseUp&&(U="TouchEnd"):_n.Pen}else Jc(R)&&(k=_n.Touch);k!==null?(y=k,(U.startsWith("Touch")&&k===_n.Touch||U.startsWith("Mouse")&&k===_n.Mouse)&&(k=null)):he[_]===he.Click&&(k=y,y=null);const I=Jc(R)?R.changedTouches[0]:R;if(!I)return;const q=l.getId(w),{clientX:Z,clientY:nt}=I;pt(n)({type:he[U],id:q,x:Z,y:nt,...k!==null&&{pointerType:k}})};return Object.keys(he).filter(_=>Number.isNaN(Number(_))&&!_.endsWith("_Departed")&&g[_]!==!1).forEach(_=>{let R=Oi(_);const w=E(_);if(window.PointerEvent)switch(he[_]){case he.MouseDown:case he.MouseUp:R=R.replace("mouse","pointer");break;case he.TouchStart:case he.TouchEnd:return}m.push(me(R,w,i))}),pt(()=>{m.forEach(_=>_())})}function Jy({scrollCb:n,doc:i,mirror:l,blockClass:s,blockSelector:c,unblockSelector:f,sampling:h}){const g=pt(Vr(pt(m=>{const y=Pr(m);if(!y||Ne(y,s,c,f,!0))return;const E=l.getId(y);if(y===i&&i.defaultView){const _=Iy(i.defaultView);n({id:E,x:_.left,y:_.top})}else n({id:E,x:y.scrollLeft,y:y.scrollTop})}),h.scroll||100));return me("scroll",g,i)}function dM({viewportResizeCb:n},{win:i}){let l=-1,s=-1;const c=pt(Vr(pt(()=>{const f=qy(),h=Yy();(l!==f||s!==h)&&(n({width:Number(h),height:Number(f)}),l=f,s=h)}),200));return me("resize",c,i)}const hM=["INPUT","TEXTAREA","SELECT"],_g=new WeakMap;function mM({inputCb:n,doc:i,mirror:l,blockClass:s,blockSelector:c,unblockSelector:f,ignoreClass:h,ignoreSelector:g,maskInputOptions:m,maskInputFn:y,sampling:E,userTriggeredOnInput:_,maskTextClass:R,unmaskTextClass:w,maskTextSelector:k,unmaskTextSelector:U}){function I(P){let F=Pr(P);const B=P.isTrusted,Q=F&&Kc(F.tagName);if(Q==="OPTION"&&(F=F.parentElement),!F||!Q||hM.indexOf(Q)<0||Ne(F,s,c,f,!0))return;const dt=F;if(dt.classList.contains(h)||g&&dt.matches(g))return;const ot=Tf(F);let Lt=Bs(dt,Q,ot),It=!1;const Yt=Ws({maskInputOptions:m,tagName:Q,type:ot}),A=Ai(F,R,k,w,U,Yt);(ot==="radio"||ot==="checkbox")&&(It=F.checked),Lt=jr({isMasked:A,element:F,value:Lt,maskInputFn:y}),q(F,_?{text:Lt,isChecked:It,userTriggered:B}:{text:Lt,isChecked:It});const z=F.name;ot==="radio"&&z&&It&&i.querySelectorAll(`input[type="radio"][name="${z}"]`).forEach(L=>{if(L!==F){const lt=jr({isMasked:A,element:L,value:Bs(L,Q,ot),maskInputFn:y});q(L,_?{text:lt,isChecked:!It,userTriggered:!1}:{text:lt,isChecked:!It})}})}function q(P,F){const B=_g.get(P);if(!B||B.text!==F.text||B.isChecked!==F.isChecked){_g.set(P,F);const Q=l.getId(P);pt(n)({...F,id:Q})}}const nt=(E.input==="last"?["change"]:["input","change"]).map(P=>me(P,pt(I),i)),et=i.defaultView;if(!et)return()=>{nt.forEach(P=>P())};const K=et.Object.getOwnPropertyDescriptor(et.HTMLInputElement.prototype,"value"),G=[[et.HTMLInputElement.prototype,"value"],[et.HTMLInputElement.prototype,"checked"],[et.HTMLSelectElement.prototype,"value"],[et.HTMLTextAreaElement.prototype,"value"],[et.HTMLSelectElement.prototype,"selectedIndex"],[et.HTMLOptionElement.prototype,"selected"]];return K&&K.set&&nt.push(...G.map(P=>Hy(P[0],P[1],{set(){pt(I)({target:this,isTrusted:!1})}},!1,et))),pt(()=>{nt.forEach(P=>P())})}function qs(n){const i=[];function l(s,c){if(vs("CSSGroupingRule")&&s.parentRule instanceof CSSGroupingRule||vs("CSSMediaRule")&&s.parentRule instanceof CSSMediaRule||vs("CSSSupportsRule")&&s.parentRule instanceof CSSSupportsRule||vs("CSSConditionRule")&&s.parentRule instanceof CSSConditionRule){const h=Array.from(s.parentRule.cssRules).indexOf(s);c.unshift(h)}else if(s.parentStyleSheet){const h=Array.from(s.parentStyleSheet.cssRules).indexOf(s);c.unshift(h)}return c}return l(n,i)}function Wn(n,i,l){let s,c;return n?(n.ownerNode?s=i.getId(n.ownerNode):c=l.getId(n),{styleId:c,id:s}):{}}function pM({styleSheetRuleCb:n,mirror:i,stylesheetManager:l},{win:s}){if(!s.CSSStyleSheet||!s.CSSStyleSheet.prototype)return()=>{};const c=s.CSSStyleSheet.prototype.insertRule;s.CSSStyleSheet.prototype.insertRule=new Proxy(c,{apply:pt((E,_,R)=>{const[w,k]=R,{id:U,styleId:I}=Wn(_,i,l.styleMirror);return(U&&U!==-1||I&&I!==-1)&&n({id:U,styleId:I,adds:[{rule:w,index:k}]}),E.apply(_,R)})});const f=s.CSSStyleSheet.prototype.deleteRule;s.CSSStyleSheet.prototype.deleteRule=new Proxy(f,{apply:pt((E,_,R)=>{const[w]=R,{id:k,styleId:U}=Wn(_,i,l.styleMirror);return(k&&k!==-1||U&&U!==-1)&&n({id:k,styleId:U,removes:[{index:w}]}),E.apply(_,R)})});let h;s.CSSStyleSheet.prototype.replace&&(h=s.CSSStyleSheet.prototype.replace,s.CSSStyleSheet.prototype.replace=new Proxy(h,{apply:pt((E,_,R)=>{const[w]=R,{id:k,styleId:U}=Wn(_,i,l.styleMirror);return(k&&k!==-1||U&&U!==-1)&&n({id:k,styleId:U,replace:w}),E.apply(_,R)})}));let g;s.CSSStyleSheet.prototype.replaceSync&&(g=s.CSSStyleSheet.prototype.replaceSync,s.CSSStyleSheet.prototype.replaceSync=new Proxy(g,{apply:pt((E,_,R)=>{const[w]=R,{id:k,styleId:U}=Wn(_,i,l.styleMirror);return(k&&k!==-1||U&&U!==-1)&&n({id:k,styleId:U,replaceSync:w}),E.apply(_,R)})}));const m={};Ss("CSSGroupingRule")?m.CSSGroupingRule=s.CSSGroupingRule:(Ss("CSSMediaRule")&&(m.CSSMediaRule=s.CSSMediaRule),Ss("CSSConditionRule")&&(m.CSSConditionRule=s.CSSConditionRule),Ss("CSSSupportsRule")&&(m.CSSSupportsRule=s.CSSSupportsRule));const y={};return Object.entries(m).forEach(([E,_])=>{y[E]={insertRule:_.prototype.insertRule,deleteRule:_.prototype.deleteRule},_.prototype.insertRule=new Proxy(y[E].insertRule,{apply:pt((R,w,k)=>{const[U,I]=k,{id:q,styleId:Z}=Wn(w.parentStyleSheet,i,l.styleMirror);return(q&&q!==-1||Z&&Z!==-1)&&n({id:q,styleId:Z,adds:[{rule:U,index:[...qs(w),I||0]}]}),R.apply(w,k)})}),_.prototype.deleteRule=new Proxy(y[E].deleteRule,{apply:pt((R,w,k)=>{const[U]=k,{id:I,styleId:q}=Wn(w.parentStyleSheet,i,l.styleMirror);return(I&&I!==-1||q&&q!==-1)&&n({id:I,styleId:q,removes:[{index:[...qs(w),U]}]}),R.apply(w,k)})})}),pt(()=>{s.CSSStyleSheet.prototype.insertRule=c,s.CSSStyleSheet.prototype.deleteRule=f,h&&(s.CSSStyleSheet.prototype.replace=h),g&&(s.CSSStyleSheet.prototype.replaceSync=g),Object.entries(m).forEach(([E,_])=>{_.prototype.insertRule=y[E].insertRule,_.prototype.deleteRule=y[E].deleteRule})})}function Wy({mirror:n,stylesheetManager:i},l){let s=null;l.nodeName==="#document"?s=n.getId(l):s=n.getId(l.host);const c=l.nodeName==="#document"?l.defaultView?.Document:l.ownerDocument?.defaultView?.ShadowRoot,f=c?.prototype?Object.getOwnPropertyDescriptor(c?.prototype,"adoptedStyleSheets"):void 0;return s===null||s===-1||!c||!f?()=>{}:(Object.defineProperty(l,"adoptedStyleSheets",{configurable:f.configurable,enumerable:f.enumerable,get(){return f.get?.call(this)},set(h){const g=f.set?.call(this,h);if(s!==null&&s!==-1)try{i.adoptStyleSheets(h,s)}catch{}return g}}),pt(()=>{Object.defineProperty(l,"adoptedStyleSheets",{configurable:f.configurable,enumerable:f.enumerable,get:f.get,set:f.set})}))}function gM({styleDeclarationCb:n,mirror:i,ignoreCSSAttributes:l,stylesheetManager:s},{win:c}){const f=c.CSSStyleDeclaration.prototype.setProperty;c.CSSStyleDeclaration.prototype.setProperty=new Proxy(f,{apply:pt((g,m,y)=>{const[E,_,R]=y;if(l.has(E))return f.apply(m,[E,_,R]);const{id:w,styleId:k}=Wn(m.parentRule?.parentStyleSheet,i,s.styleMirror);return(w&&w!==-1||k&&k!==-1)&&n({id:w,styleId:k,set:{property:E,value:_,priority:R},index:qs(m.parentRule)}),g.apply(m,y)})});const h=c.CSSStyleDeclaration.prototype.removeProperty;return c.CSSStyleDeclaration.prototype.removeProperty=new Proxy(h,{apply:pt((g,m,y)=>{const[E]=y;if(l.has(E))return h.apply(m,[E]);const{id:_,styleId:R}=Wn(m.parentRule?.parentStyleSheet,i,s.styleMirror);return(_&&_!==-1||R&&R!==-1)&&n({id:_,styleId:R,remove:{property:E},index:qs(m.parentRule)}),g.apply(m,y)})}),pt(()=>{c.CSSStyleDeclaration.prototype.setProperty=f,c.CSSStyleDeclaration.prototype.removeProperty=h})}function yM({mediaInteractionCb:n,blockClass:i,blockSelector:l,unblockSelector:s,mirror:c,sampling:f,doc:h}){const g=pt(y=>Vr(pt(E=>{const _=Pr(E);if(!_||Ne(_,i,l,s,!0))return;const{currentTime:R,volume:w,muted:k,playbackRate:U}=_;n({type:y,id:c.getId(_),currentTime:R,volume:w,muted:k,playbackRate:U})}),f.media||500)),m=[me("play",g(vi.Play),h),me("pause",g(vi.Pause),h),me("seeked",g(vi.Seeked),h),me("volumechange",g(vi.VolumeChange),h),me("ratechange",g(vi.RateChange),h)];return pt(()=>{m.forEach(y=>y())})}function vM({fontCb:n,doc:i}){const l=i.defaultView;if(!l)return()=>{};const s=[],c=new WeakMap,f=l.FontFace;l.FontFace=function(m,y,E){const _=new f(m,y,E);return c.set(_,{family:m,buffer:typeof y!="string",descriptors:E,fontSource:typeof y=="string"?y:JSON.stringify(Array.from(new Uint8Array(y)))}),_};const h=Rf(i.fonts,"add",function(g){return function(m){return Ps(pt(()=>{const y=c.get(m);y&&(n(y),c.delete(m))}),0),g.apply(this,[m])}});return s.push(()=>{l.FontFace=f}),s.push(h),pt(()=>{s.forEach(g=>g())})}function SM(n){const{doc:i,mirror:l,blockClass:s,blockSelector:c,unblockSelector:f,selectionCb:h}=n;let g=!0;const m=pt(()=>{const y=i.getSelection();if(!y||g&&y?.isCollapsed)return;g=y.isCollapsed||!1;const E=[],_=y.rangeCount||0;for(let R=0;R<_;R++){const w=y.getRangeAt(R),{startContainer:k,startOffset:U,endContainer:I,endOffset:q}=w;Ne(k,s,c,f,!0)||Ne(I,s,c,f,!0)||E.push({start:l.getId(k),startOffset:U,end:l.getId(I),endOffset:q})}h({ranges:E})});return m(),me("selectionchange",m)}function _M({doc:n,customElementCb:i}){const l=n.defaultView;return!l||!l.customElements?()=>{}:Rf(l.customElements,"define",function(c){return function(f,h,g){try{i({define:{name:f}})}catch{}return c.apply(this,[f,h,g])}})}function EM(n,i={}){const l=n.doc.defaultView;if(!l)return()=>{};let s;n.recordDOM&&(s=Fy(n,n.doc));const c=cM(n),f=fM(n),h=Jy(n),g=dM(n,{win:l}),m=mM(n),y=yM(n);let E=()=>{},_=()=>{},R=()=>{},w=()=>{};n.recordDOM&&(E=pM(n,{win:l}),_=Wy(n,n.doc),R=gM(n,{win:l}),n.collectFonts&&(w=vM(n)));const k=SM(n),U=_M(n),I=[];for(const q of n.plugins)I.push(q.observer(q.callback,l,q.options));return pt(()=>{Ti.forEach(q=>q.reset()),s?.disconnect(),c(),f(),h(),g(),m(),y(),E(),_(),R(),w(),k(),U(),I.forEach(q=>q())})}function vs(n){return typeof window[n]<"u"}function Ss(n){return!!(typeof window[n]<"u"&&window[n].prototype&&"insertRule"in window[n].prototype&&"deleteRule"in window[n].prototype)}class Pc{constructor(i){this.generateIdFn=i,this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap}getId(i,l,s,c){const f=s||this.getIdToRemoteIdMap(i),h=c||this.getRemoteIdToIdMap(i);let g=f.get(l);return g||(g=this.generateIdFn(),f.set(l,g),h.set(g,l)),g}getIds(i,l){const s=this.getIdToRemoteIdMap(i),c=this.getRemoteIdToIdMap(i);return l.map(f=>this.getId(i,f,s,c))}getRemoteId(i,l,s){const c=s||this.getRemoteIdToIdMap(i);if(typeof l!="number")return l;const f=c.get(l);return f||-1}getRemoteIds(i,l){const s=this.getRemoteIdToIdMap(i);return l.map(c=>this.getRemoteId(i,c,s))}reset(i){if(!i){this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap;return}this.iframeIdToRemoteIdMap.delete(i),this.iframeRemoteIdToIdMap.delete(i)}getIdToRemoteIdMap(i){let l=this.iframeIdToRemoteIdMap.get(i);return l||(l=new Map,this.iframeIdToRemoteIdMap.set(i,l)),l}getRemoteIdToIdMap(i){let l=this.iframeRemoteIdToIdMap.get(i);return l||(l=new Map,this.iframeRemoteIdToIdMap.set(i,l)),l}}class bM{constructor(){this.crossOriginIframeMirror=new Pc(Mf),this.crossOriginIframeRootIdMap=new WeakMap}addIframe(){}addLoadListener(){}attachIframe(){}}class TM{constructor(i){this.iframes=new WeakMap,this.crossOriginIframeMap=new WeakMap,this.crossOriginIframeMirror=new Pc(Mf),this.crossOriginIframeRootIdMap=new WeakMap,this.mutationCb=i.mutationCb,this.wrappedEmit=i.wrappedEmit,this.stylesheetManager=i.stylesheetManager,this.recordCrossOriginIframes=i.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new Pc(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=i.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(i){this.iframes.set(i,!0),i.contentWindow&&this.crossOriginIframeMap.set(i.contentWindow,i)}addLoadListener(i){this.loadListener=i}attachIframe(i,l){this.mutationCb({adds:[{parentId:this.mirror.getId(i),nextId:null,node:l}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&i.contentWindow?.addEventListener("message",this.handleMessage.bind(this)),this.loadListener?.(i);const s=Af(i);s&&s.adoptedStyleSheets&&s.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(s.adoptedStyleSheets,this.mirror.getId(s))}handleMessage(i){const l=i;if(l.data.type!=="rrweb"||l.origin!==l.data.origin||!i.source)return;const c=this.crossOriginIframeMap.get(i.source);if(!c)return;const f=this.transformCrossOriginEvent(c,l.data.event);f&&this.wrappedEmit(f,l.data.isCheckout)}transformCrossOriginEvent(i,l){switch(l.type){case it.FullSnapshot:{this.crossOriginIframeMirror.reset(i),this.crossOriginIframeStyleMirror.reset(i),this.replaceIdOnNode(l.data.node,i);const s=l.data.node.id;return this.crossOriginIframeRootIdMap.set(i,s),this.patchRootIdOnNode(l.data.node,s),{timestamp:l.timestamp,type:it.IncrementalSnapshot,data:{source:tt.Mutation,adds:[{parentId:this.mirror.getId(i),nextId:null,node:l.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case it.Meta:case it.Load:case it.DomContentLoaded:return!1;case it.Plugin:return l;case it.Custom:return this.replaceIds(l.data.payload,i,["id","parentId","previousId","nextId"]),l;case it.IncrementalSnapshot:switch(l.data.source){case tt.Mutation:return l.data.adds.forEach(s=>{this.replaceIds(s,i,["parentId","nextId","previousId"]),this.replaceIdOnNode(s.node,i);const c=this.crossOriginIframeRootIdMap.get(i);c&&this.patchRootIdOnNode(s.node,c)}),l.data.removes.forEach(s=>{this.replaceIds(s,i,["parentId","id"])}),l.data.attributes.forEach(s=>{this.replaceIds(s,i,["id"])}),l.data.texts.forEach(s=>{this.replaceIds(s,i,["id"])}),l;case tt.Drag:case tt.TouchMove:case tt.MouseMove:return l.data.positions.forEach(s=>{this.replaceIds(s,i,["id"])}),l;case tt.ViewportResize:return!1;case tt.MediaInteraction:case tt.MouseInteraction:case tt.Scroll:case tt.CanvasMutation:case tt.Input:return this.replaceIds(l.data,i,["id"]),l;case tt.StyleSheetRule:case tt.StyleDeclaration:return this.replaceIds(l.data,i,["id"]),this.replaceStyleIds(l.data,i,["styleId"]),l;case tt.Font:return l;case tt.Selection:return l.data.ranges.forEach(s=>{this.replaceIds(s,i,["start","end"])}),l;case tt.AdoptedStyleSheet:return this.replaceIds(l.data,i,["id"]),this.replaceStyleIds(l.data,i,["styleIds"]),l.data.styles?.forEach(s=>{this.replaceStyleIds(s,i,["styleId"])}),l}}return!1}replace(i,l,s,c){for(const f of c)!Array.isArray(l[f])&&typeof l[f]!="number"||(Array.isArray(l[f])?l[f]=i.getIds(s,l[f]):l[f]=i.getId(s,l[f]));return l}replaceIds(i,l,s){return this.replace(this.crossOriginIframeMirror,i,l,s)}replaceStyleIds(i,l,s){return this.replace(this.crossOriginIframeStyleMirror,i,l,s)}replaceIdOnNode(i,l){this.replaceIds(i,l,["id","rootId"]),"childNodes"in i&&i.childNodes.forEach(s=>{this.replaceIdOnNode(s,l)})}patchRootIdOnNode(i,l){i.type!==re.Document&&!i.rootId&&(i.rootId=l),"childNodes"in i&&i.childNodes.forEach(s=>{this.patchRootIdOnNode(s,l)})}}class MM{init(){}addShadowRoot(){}observeAttachShadow(){}reset(){}}class RM{constructor(i){this.shadowDoms=new WeakSet,this.restoreHandlers=[],this.mutationCb=i.mutationCb,this.scrollCb=i.scrollCb,this.bypassOptions=i.bypassOptions,this.mirror=i.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(i,l){if(!Ir(i)||this.shadowDoms.has(i))return;this.shadowDoms.add(i),this.bypassOptions.canvasManager.addShadowRoot(i);const s=Fy({...this.bypassOptions,doc:l,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this},i);this.restoreHandlers.push(()=>s.disconnect()),this.restoreHandlers.push(Jy({...this.bypassOptions,scrollCb:this.scrollCb,doc:i,mirror:this.mirror})),Ps(()=>{i.adoptedStyleSheets&&i.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(i.adoptedStyleSheets,this.mirror.getId(i.host)),this.restoreHandlers.push(Wy({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},i))},0)}observeAttachShadow(i){const l=Af(i),s=iM(i);!l||!s||this.patchAttachShadow(s.Element,l)}patchAttachShadow(i,l){const s=this;this.restoreHandlers.push(Rf(i.prototype,"attachShadow",function(c){return function(f){const h=c.call(this,f);return this.shadowRoot&&Zy(this)&&s.addShadowRoot(this.shadowRoot,l),h}}))}reset(){this.restoreHandlers.forEach(i=>{try{i()}catch{}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet,this.bypassOptions.canvasManager.resetShadowRoots()}}var Eg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",OM=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(var _s=0;_s<Eg.length;_s++)OM[Eg.charCodeAt(_s)]=_s;class bg{reset(){}freeze(){}unfreeze(){}lock(){}unlock(){}snapshot(){}addWindow(){}addShadowRoot(){}resetShadowRoots(){}}class AM{constructor(i){this.trackedLinkElements=new WeakSet,this.styleMirror=new PT,this.mutationCb=i.mutationCb,this.adoptedStyleSheetCb=i.adoptedStyleSheetCb}attachLinkElement(i,l){"_cssText"in l.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:l.id,attributes:l.attributes}]}),this.trackLinkElement(i)}trackLinkElement(i){this.trackedLinkElements.has(i)||(this.trackedLinkElements.add(i),this.trackStylesheetInLinkElement(i))}adoptStyleSheets(i,l){if(i.length===0)return;const s={id:l,styleIds:[]},c=[];for(const f of i){let h;this.styleMirror.has(f)?h=this.styleMirror.getId(f):(h=this.styleMirror.add(f),c.push({styleId:h,rules:Array.from(f.rules||CSSRule,(g,m)=>({rule:wy(g),index:m}))})),s.styleIds.push(h)}c.length>0&&(s.styles=c),this.adoptedStyleSheetCb(s)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(i){}}class DM{constructor(){this.nodeMap=new WeakMap,this.active=!1}inOtherBuffer(i,l){const s=this.nodeMap.get(i);return s&&Array.from(s).some(c=>c!==l)}add(i,l){this.active||(this.active=!0,nM(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(i,(this.nodeMap.get(i)||new Set).add(l))}destroy(){}}let Xt,Ys;try{if(Array.from([1],n=>n*2)[0]!==2){const n=document.createElement("iframe");document.body.appendChild(n),Array.from=n.contentWindow?.Array.from||Array.from,document.body.removeChild(n)}}catch(n){console.debug("Unable to override Array.from",n)}const Ke=DT();function bn(n={}){const{emit:i,checkoutEveryNms:l,checkoutEveryNth:s,blockClass:c="rr-block",blockSelector:f=null,unblockSelector:h=null,ignoreClass:g="rr-ignore",ignoreSelector:m=null,maskAllText:y=!1,maskTextClass:E="rr-mask",unmaskTextClass:_=null,maskTextSelector:R=null,unmaskTextSelector:w=null,inlineStylesheet:k=!0,maskAllInputs:U,maskInputOptions:I,slimDOMOptions:q,maskAttributeFn:Z,maskInputFn:nt,maskTextFn:et,maxCanvasSize:K=null,packFn:G,sampling:P={},dataURLOptions:F={},mousemoveWait:B,recordDOM:Q=!0,recordCanvas:dt=!1,recordCrossOriginIframes:ot=!1,recordAfter:Lt=n.recordAfter==="DOMContentLoaded"?n.recordAfter:"load",userTriggeredOnInput:It=!1,collectFonts:Yt=!1,inlineImages:A=!1,plugins:z,keepIframeSrcFn:L=()=>!1,ignoreCSSAttributes:lt=new Set([]),errorHandler:ft,onMutation:Pt,getCanvasManager:zt}=n;uM(ft);const gt=ot?window.parent===window:!0;let Bt=!1;if(!gt)try{window.parent.document&&(Bt=!1)}catch{Bt=!0}if(gt&&!i)throw new Error("emit function is required");if(!gt&&!Bt)return()=>{};B!==void 0&&P.mousemove===void 0&&(P.mousemove=B),Ke.reset();const pe=U===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,radio:!0,checkbox:!0}:I!==void 0?I:{},ke=q===!0||q==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:q==="all",headMetaDescKeywords:q==="all"}:q||{};$T();let Mn,Rn=0;const nn=ht=>{for(const oe of z||[])oe.eventProcessor&&(ht=oe.eventProcessor(ht));return G&&!Bt&&(ht=G(ht)),ht};Xt=(ht,oe)=>{const ct=ht;if(ct.timestamp=Is(),Ti[0]?.isFrozen()&&ct.type!==it.FullSnapshot&&!(ct.type===it.IncrementalSnapshot&&ct.data.source===tt.Mutation)&&Ti.forEach(te=>te.unfreeze()),gt)i?.(nn(ct),oe);else if(Bt){const te={type:"rrweb",event:nn(ct),origin:window.location.origin,isCheckout:oe};window.parent.postMessage(te,"*")}if(ct.type===it.FullSnapshot)Mn=ct,Rn=0;else if(ct.type===it.IncrementalSnapshot){if(ct.data.source===tt.Mutation&&ct.data.isAttachIframe)return;Rn++;const te=s&&Rn>=s,_t=l&&Mn&&ct.timestamp-Mn.timestamp>l;(te||_t)&&Ca(!0)}};const On=ht=>{Xt({type:it.IncrementalSnapshot,data:{source:tt.Mutation,...ht}})},na=ht=>Xt({type:it.IncrementalSnapshot,data:{source:tt.Scroll,...ht}}),xi=ht=>Xt({type:it.IncrementalSnapshot,data:{source:tt.CanvasMutation,...ht}}),Ni=ht=>Xt({type:it.IncrementalSnapshot,data:{source:tt.AdoptedStyleSheet,...ht}}),Xe=new AM({mutationCb:On,adoptedStyleSheetCb:Ni}),an=typeof __RRWEB_EXCLUDE_IFRAME__=="boolean"&&__RRWEB_EXCLUDE_IFRAME__?new bM:new TM({mirror:Ke,mutationCb:On,stylesheetManager:Xe,recordCrossOriginIframes:ot,wrappedEmit:Xt});for(const ht of z||[])ht.getMirror&&ht.getMirror({nodeMirror:Ke,crossOriginIframeMirror:an.crossOriginIframeMirror,crossOriginIframeStyleMirror:an.crossOriginIframeStyleMirror});const ki=new DM,ge=CM(zt,{mirror:Ke,win:window,mutationCb:ht=>Xt({type:it.IncrementalSnapshot,data:{source:tt.CanvasMutation,...ht}}),recordCanvas:dt,blockClass:c,blockSelector:f,unblockSelector:h,maxCanvasSize:K,sampling:P.canvas,dataURLOptions:F,errorHandler:ft}),wa=typeof __RRWEB_EXCLUDE_SHADOW_DOM__=="boolean"&&__RRWEB_EXCLUDE_SHADOW_DOM__?new MM:new RM({mutationCb:On,scrollCb:na,bypassOptions:{onMutation:Pt,blockClass:c,blockSelector:f,unblockSelector:h,maskAllText:y,maskTextClass:E,unmaskTextClass:_,maskTextSelector:R,unmaskTextSelector:w,inlineStylesheet:k,maskInputOptions:pe,dataURLOptions:F,maskAttributeFn:Z,maskTextFn:et,maskInputFn:nt,recordCanvas:dt,inlineImages:A,sampling:P,slimDOMOptions:ke,iframeManager:an,stylesheetManager:Xe,canvasManager:ge,keepIframeSrcFn:L,processedNodeManager:ki},mirror:Ke}),Ca=(ht=!1)=>{if(!Q)return;Xt({type:it.Meta,data:{href:window.location.href,width:Yy(),height:qy()}},ht),Xe.reset(),wa.init(),Ti.forEach(ct=>ct.lock());const oe=JT(document,{mirror:Ke,blockClass:c,blockSelector:f,unblockSelector:h,maskAllText:y,maskTextClass:E,unmaskTextClass:_,maskTextSelector:R,unmaskTextSelector:w,inlineStylesheet:k,maskAllInputs:pe,maskAttributeFn:Z,maskInputFn:nt,maskTextFn:et,slimDOM:ke,dataURLOptions:F,recordCanvas:dt,inlineImages:A,onSerialize:ct=>{Xy(ct,Ke)&&an.addIframe(ct),Vy(ct,Ke)&&Xe.trackLinkElement(ct),Wc(ct)&&wa.addShadowRoot(ct.shadowRoot,document)},onIframeLoad:(ct,te)=>{an.attachIframe(ct,te),ct.contentWindow&&ge.addWindow(ct.contentWindow),wa.observeAttachShadow(ct)},onStylesheetLoad:(ct,te)=>{Xe.attachLinkElement(ct,te)},keepIframeSrcFn:L});if(!oe)return console.warn("Failed to snapshot the document");Xt({type:it.FullSnapshot,data:{node:oe,initialOffset:Iy(window)}}),Ti.forEach(ct=>ct.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&Xe.adoptStyleSheets(document.adoptedStyleSheets,Ke.getId(document))};Ys=Ca;try{const ht=[],oe=te=>pt(EM)({onMutation:Pt,mutationCb:On,mousemoveCb:(_t,zi)=>Xt({type:it.IncrementalSnapshot,data:{source:zi,positions:_t}}),mouseInteractionCb:_t=>Xt({type:it.IncrementalSnapshot,data:{source:tt.MouseInteraction,..._t}}),scrollCb:na,viewportResizeCb:_t=>Xt({type:it.IncrementalSnapshot,data:{source:tt.ViewportResize,..._t}}),inputCb:_t=>Xt({type:it.IncrementalSnapshot,data:{source:tt.Input,..._t}}),mediaInteractionCb:_t=>Xt({type:it.IncrementalSnapshot,data:{source:tt.MediaInteraction,..._t}}),styleSheetRuleCb:_t=>Xt({type:it.IncrementalSnapshot,data:{source:tt.StyleSheetRule,..._t}}),styleDeclarationCb:_t=>Xt({type:it.IncrementalSnapshot,data:{source:tt.StyleDeclaration,..._t}}),canvasMutationCb:xi,fontCb:_t=>Xt({type:it.IncrementalSnapshot,data:{source:tt.Font,..._t}}),selectionCb:_t=>{Xt({type:it.IncrementalSnapshot,data:{source:tt.Selection,..._t}})},customElementCb:_t=>{Xt({type:it.IncrementalSnapshot,data:{source:tt.CustomElement,..._t}})},blockClass:c,ignoreClass:g,ignoreSelector:m,maskAllText:y,maskTextClass:E,unmaskTextClass:_,maskTextSelector:R,unmaskTextSelector:w,maskInputOptions:pe,inlineStylesheet:k,sampling:P,recordDOM:Q,recordCanvas:dt,inlineImages:A,userTriggeredOnInput:It,collectFonts:Yt,doc:te,maskAttributeFn:Z,maskInputFn:nt,maskTextFn:et,keepIframeSrcFn:L,blockSelector:f,unblockSelector:h,slimDOMOptions:ke,dataURLOptions:F,mirror:Ke,iframeManager:an,stylesheetManager:Xe,shadowDomManager:wa,processedNodeManager:ki,canvasManager:ge,ignoreCSSAttributes:lt,plugins:z?.filter(_t=>_t.observer)?.map(_t=>({observer:_t.observer,options:_t.options,callback:zi=>Xt({type:it.Plugin,data:{plugin:_t.name,payload:zi}})}))||[]},{});an.addLoadListener(te=>{try{ht.push(oe(te.contentDocument))}catch(_t){console.warn(_t)}});const ct=()=>{Ca(),ht.push(oe(document))};return document.readyState==="interactive"||document.readyState==="complete"?ct():(ht.push(me("DOMContentLoaded",()=>{Xt({type:it.DomContentLoaded,data:{}}),Lt==="DOMContentLoaded"&&ct()})),ht.push(me("load",()=>{Xt({type:it.Load,data:{}}),Lt==="load"&&ct()},window))),()=>{ht.forEach(te=>te()),ki.destroy(),Ys=void 0,oM()}}catch(ht){console.warn(ht)}}function wM(n){if(!Ys)throw new Error("please take full snapshot after start recording");Ys(n)}bn.mirror=Ke;bn.takeFullSnapshot=wM;function CM(n,i){try{return n?n(i):new bg}catch{return console.warn("Unable to initialize CanvasManager"),new bg}}var Tg;(function(n){n[n.NotStarted=0]="NotStarted",n[n.Running=1]="Running",n[n.Stopped=2]="Stopped"})(Tg||(Tg={}));const xM=3,NM=5;function Df(n){return n>9999999999?n:n*1e3}function Dc(n){return n>9999999999?n/1e3:n}function tl(n,i){i.category!=="sentry.transaction"&&(["ui.click","ui.input"].includes(i.category)?n.triggerUserActivity():n.checkAndHandleExpiredSession(),n.addUpdate(()=>(n.throttledAddEvent({type:it.Custom,timestamp:(i.timestamp||0)*1e3,data:{tag:"breadcrumb",payload:rf(i,10,1e3)}}),i.category==="console")))}const kM="button,a";function $y(n){return n.closest(kM)||n}function Py(n){const i=tv(n);return!i||!(i instanceof Element)?i:$y(i)}function tv(n){return zM(n)?n.target:n}function zM(n){return typeof n=="object"&&!!n&&"target"in n}let $n;function UM(n){return $n||($n=[],LM()),$n.push(n),()=>{const i=$n?$n.indexOf(n):-1;i>-1&&$n.splice(i,1)}}function LM(){be(Nt,"open",function(n){return function(...i){if($n)try{$n.forEach(l=>l())}catch{}return n.apply(Nt,i)}})}const BM=new Set([tt.Mutation,tt.StyleSheetRule,tt.StyleDeclaration,tt.AdoptedStyleSheet,tt.CanvasMutation,tt.Selection,tt.MediaInteraction]);function HM(n,i,l){n.handleClick(i,l)}class IM{constructor(i,l,s=tl){this._lastMutation=0,this._lastScroll=0,this._clicks=[],this._timeout=l.timeout/1e3,this._threshold=l.threshold/1e3,this._scrollTimeout=l.scrollTimeout/1e3,this._replay=i,this._ignoreSelector=l.ignoreSelector,this._addBreadcrumbEvent=s}addListeners(){const i=UM(()=>{this._lastMutation=Mg()});this._teardown=()=>{i(),this._clicks=[],this._lastMutation=0,this._lastScroll=0}}removeListeners(){this._teardown&&this._teardown(),this._checkClickTimeout&&clearTimeout(this._checkClickTimeout)}handleClick(i,l){if(YM(l,this._ignoreSelector)||!GM(i))return;const s={timestamp:Dc(i.timestamp),clickBreadcrumb:i,clickCount:0,node:l};this._clicks.some(c=>c.node===s.node&&Math.abs(c.timestamp-s.timestamp)<1)||(this._clicks.push(s),this._clicks.length===1&&this._scheduleCheckClicks())}registerMutation(i=Date.now()){this._lastMutation=Dc(i)}registerScroll(i=Date.now()){this._lastScroll=Dc(i)}registerClick(i){const l=$y(i);this._handleMultiClick(l)}_handleMultiClick(i){this._getClicks(i).forEach(l=>{l.clickCount++})}_getClicks(i){return this._clicks.filter(l=>l.node===i)}_checkClicks(){const i=[],l=Mg();this._clicks.forEach(s=>{!s.mutationAfter&&this._lastMutation&&(s.mutationAfter=s.timestamp<=this._lastMutation?this._lastMutation-s.timestamp:void 0),!s.scrollAfter&&this._lastScroll&&(s.scrollAfter=s.timestamp<=this._lastScroll?this._lastScroll-s.timestamp:void 0),s.timestamp+this._timeout<=l&&i.push(s)});for(const s of i){const c=this._clicks.indexOf(s);c>-1&&(this._generateBreadcrumbs(s),this._clicks.splice(c,1))}this._clicks.length&&this._scheduleCheckClicks()}_generateBreadcrumbs(i){const l=this._replay,s=i.scrollAfter&&i.scrollAfter<=this._scrollTimeout,c=i.mutationAfter&&i.mutationAfter<=this._threshold,f=!s&&!c,{clickCount:h,clickBreadcrumb:g}=i;if(f){const m=Math.min(i.mutationAfter||this._timeout,this._timeout)*1e3,y=m<this._timeout*1e3?"mutation":"timeout",E={type:"default",message:g.message,timestamp:g.timestamp,category:"ui.slowClickDetected",data:{...g.data,url:Nt.location.href,route:l.getCurrentRoute(),timeAfterClickMs:m,endReason:y,clickCount:h||1}};this._addBreadcrumbEvent(l,E);return}if(h>1){const m={type:"default",message:g.message,timestamp:g.timestamp,category:"ui.multiClick",data:{...g.data,url:Nt.location.href,route:l.getCurrentRoute(),clickCount:h,metric:!0}};this._addBreadcrumbEvent(l,m)}}_scheduleCheckClicks(){this._checkClickTimeout&&clearTimeout(this._checkClickTimeout),this._checkClickTimeout=$r(()=>this._checkClicks(),1e3)}}const qM=["A","BUTTON","INPUT"];function YM(n,i){return!!(!qM.includes(n.tagName)||n.tagName==="INPUT"&&!["submit","button"].includes(n.getAttribute("type")||"")||n.tagName==="A"&&(n.hasAttribute("download")||n.hasAttribute("target")&&n.getAttribute("target")!=="_self")||i&&n.matches(i))}function GM(n){return!!(n.data&&typeof n.data.nodeId=="number"&&n.timestamp)}function Mg(){return Date.now()/1e3}function jM(n,i){try{if(!XM(i))return;const{source:l}=i.data;if(BM.has(l)&&n.registerMutation(i.timestamp),l===tt.Scroll&&n.registerScroll(i.timestamp),VM(i)){const{type:s,id:c}=i.data,f=bn.mirror.getNode(c);f instanceof HTMLElement&&s===he.Click&&n.registerClick(f)}}catch{}}function XM(n){return n.type===xM}function VM(n){return n.data.source===tt.MouseInteraction}function en(n){return{timestamp:Date.now()/1e3,type:"default",...n}}var wf=(n=>(n[n.Document=0]="Document",n[n.DocumentType=1]="DocumentType",n[n.Element=2]="Element",n[n.Text=3]="Text",n[n.CDATA=4]="CDATA",n[n.Comment=5]="Comment",n))(wf||{});const QM=new Set(["id","class","aria-label","role","name","alt","title","data-test-id","data-testid","disabled","aria-disabled","data-sentry-component"]);function ZM(n){const i={};!n["data-sentry-component"]&&n["data-sentry-element"]&&(n["data-sentry-component"]=n["data-sentry-element"]);for(const l in n)if(QM.has(l)){let s=l;(l==="data-testid"||l==="data-test-id")&&(s="testId"),i[s]=n[l]}return i}const KM=n=>i=>{if(!n.isEnabled())return;const l=FM(i);if(!l)return;const s=i.name==="click",c=s?i.event:void 0;s&&n.clickDetector&&c&&c.target&&!c.altKey&&!c.metaKey&&!c.ctrlKey&&!c.shiftKey&&HM(n.clickDetector,l,Py(i.event)),tl(n,l)};function ev(n,i){const l=bn.mirror.getId(n),s=l&&bn.mirror.getNode(l),c=s&&bn.mirror.getMeta(s),f=c&&WM(c)?c:null;return{message:i,data:f?{nodeId:l,node:{id:l,tagName:f.tagName,textContent:Array.from(f.childNodes).map(h=>h.type===wf.Text&&h.textContent).filter(Boolean).map(h=>h.trim()).join(""),attributes:ZM(f.attributes)}}:{}}}function FM(n){const{target:i,message:l}=JM(n);return en({category:`ui.${n.name}`,...ev(i,l)})}function JM(n){const i=n.name==="click";let l,s=null;try{s=i?Py(n.event):tv(n.event),l=cf(s,{maxStringLength:200})||"<unknown>"}catch{l="<unknown>"}return{target:s,message:l}}function WM(n){return n.type===wf.Element}function $M(n,i){if(!n.isEnabled())return;n.updateUserActivity();const l=PM(i);l&&tl(n,l)}function PM(n){const{metaKey:i,shiftKey:l,ctrlKey:s,altKey:c,key:f,target:h}=n;if(!h||tR(h)||!f)return null;const g=i||s||c,m=f.length===1;if(!g&&m)return null;const y=cf(h,{maxStringLength:200})||"<unknown>",E=ev(h,y);return en({category:"ui.keyDown",message:y,data:{...E.data,metaKey:i,shiftKey:l,ctrlKey:s,altKey:c,key:f}})}function tR(n){return n.tagName==="INPUT"||n.tagName==="TEXTAREA"||n.isContentEditable}const eR={resource:lR,paint:iR,navigation:rR};function Es(n,i){return({metric:l})=>void i.replayPerformanceEntries.push(n(l))}function nR(n){return n.map(aR).filter(Boolean)}function aR(n){const i=eR[n.entryType];return i?i(n):null}function Di(n){return((Kg()||Nt.performance.timeOrigin)+n)/1e3}function iR(n){const{duration:i,entryType:l,name:s,startTime:c}=n,f=Di(c);return{type:l,name:s,start:f,end:f+i,data:void 0}}function rR(n){const{entryType:i,name:l,decodedBodySize:s,duration:c,domComplete:f,encodedBodySize:h,domContentLoadedEventStart:g,domContentLoadedEventEnd:m,domInteractive:y,loadEventStart:E,loadEventEnd:_,redirectCount:R,startTime:w,transferSize:k,type:U}=n;return c===0?null:{type:`${i}.${U}`,start:Di(w),end:Di(f),name:l,data:{size:k,decodedBodySize:s,encodedBodySize:h,duration:c,domInteractive:y,domContentLoadedEventStart:g,domContentLoadedEventEnd:m,loadEventStart:E,loadEventEnd:_,domComplete:f,redirectCount:R}}}function lR(n){const{entryType:i,initiatorType:l,name:s,responseEnd:c,startTime:f,decodedBodySize:h,encodedBodySize:g,responseStatus:m,transferSize:y}=n;return["fetch","xmlhttprequest"].includes(l)?null:{type:`${i}.${l}`,start:Di(f),end:Di(c),name:s,data:{size:y,statusCode:m,decodedBodySize:h,encodedBodySize:g}}}function sR(n){const i=n.entries[n.entries.length-1],l=i?.element?[i.element]:void 0;return tu(n,"largest-contentful-paint",l)}function uR(n){return n.sources!==void 0}function oR(n){const i=[],l=[];for(const s of n.entries)if(uR(s)){const c=[];for(const f of s.sources)if(f.node){l.push(f.node);const h=bn.mirror.getId(f.node);h&&c.push(h)}i.push({value:s.value,nodeIds:c.length?c:void 0})}return tu(n,"cumulative-layout-shift",l,i)}function cR(n){const i=n.entries[n.entries.length-1],l=i?.target?[i.target]:void 0;return tu(n,"first-input-delay",l)}function fR(n){const i=n.entries[n.entries.length-1],l=i?.target?[i.target]:void 0;return tu(n,"interaction-to-next-paint",l)}function tu(n,i,l,s){const c=n.value,f=n.rating,h=Di(c);return{type:"web-vital",name:i,start:h,end:h,data:{value:c,size:c,rating:f,nodeIds:l?l.map(g=>bn.mirror.getId(g)):void 0,attributions:s}}}function dR(n){function i(c){n.performanceEntries.includes(c)||n.performanceEntries.push(c)}function l({entries:c}){c.forEach(i)}const s=[];return["navigation","paint","resource"].forEach(c=>{s.push(Zb(c,l))}),s.push(Xb(Es(sR,n)),jb(Es(oR,n)),Vb(Es(cR,n)),Qb(Es(fR,n))),()=>{s.forEach(c=>c())}}const W=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,hR='var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),s=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(t,e){for(var i=new n(31),s=0;s<31;++s)i[s]=e+=1<<t[s-1];var a=new r(i[30]);for(s=1;s<30;++s)for(var o=i[s];o<i[s+1];++o)a[o]=o-i[s]<<5|s;return{b:i,r:a}},o=a(e,2),h=o.b,f=o.r;h[28]=258,f[258]=28;for(var l=a(i,0).r,u=new n(32768),c=0;c<32768;++c){var v=(43690&c)>>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,s=0,a=new n(r);s<i;++s)t[s]&&++a[t[s]-1];var o,h=new n(r);for(s=1;s<r;++s)h[s]=h[s-1]+a[s-1]<<1;if(e){o=new n(1<<r);var f=15-r;for(s=0;s<i;++s)if(t[s])for(var l=s<<4|t[s],c=r-t[s],v=h[t[s]-1]++<<c,d=v|(1<<c)-1;v<=d;++v)o[u[v]>>f]=l}else for(o=new n(i),s=0;s<i;++s)t[s]&&(o[s]=u[h[t[s]-1]++]>>15-t[s]);return o},p=new t(288);for(c=0;c<144;++c)p[c]=8;for(c=144;c<256;++c)p[c]=9;for(c=256;c<280;++c)p[c]=7;for(c=280;c<288;++c)p[c]=8;var g=new t(32);for(c=0;c<32;++c)g[c]=5;var w=d(p,9,0),y=d(g,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},_=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},x=function(r,e){for(var i=[],s=0;s<r.length;++s)r[s]&&i.push({s:s,f:r[s]});var a=i.length,o=i.slice();if(!a)return{t:F,l:0};if(1==a){var h=new t(i[0].s+1);return h[i[0].s]=1,{t:h,l:1}}i.sort(function(t,n){return t.f-n.f}),i.push({s:-1,f:25001});var f=i[0],l=i[1],u=0,c=1,v=2;for(i[0]={s:-1,f:f.f+l.f,l:f,r:l};c!=a-1;)f=i[i[u].f<i[v].f?u++:v++],l=i[u!=c&&i[u].f<i[v].f?u++:v++],i[c++]={s:-1,f:f.f+l.f,l:f,r:l};var d=o[0].s;for(s=1;s<a;++s)o[s].s>d&&(d=o[s].s);var p=new n(d+1),g=A(i[c-1],p,0);if(g>e){s=0;var w=0,y=g-e,m=1<<y;for(o.sort(function(t,n){return p[n.s]-p[t.s]||t.f-n.f});s<a;++s){var b=o[s].s;if(!(p[b]>e))break;w+=m-(1<<g-p[b]),p[b]=e}for(w>>=y;w>0;){var M=o[s].s;p[M]<e?w-=1<<e-p[M]++-1:++s}for(;s>=0&&w;--s){var E=o[s].s;p[E]==e&&(--p[E],++w)}g=e}return{t:new t(p),l:g}},A=function(t,n,r){return-1==t.s?Math.max(A(t.l,n,r+1),A(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,s=t[0],a=1,o=function(t){e[i++]=t},h=1;h<=r;++h)if(t[h]==s&&h!=r)++a;else{if(!s&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(s),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(s);a=1,s=t[h]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e<n.length;++e)r+=t[e]*n[e];return r},k=function(t,n,r){var e=r.length,i=m(n+2);t[i]=255&e,t[i+1]=e>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var s=0;s<e;++s)t[i+s+4]=r[s];return 8*(i+4+e)},U=function(t,r,a,o,h,f,l,u,c,v,m){z(r,m++,a),++h[256];for(var b=x(h,15),M=b.t,E=b.l,A=x(f,15),U=A.t,C=A.l,F=D(M),I=F.c,S=F.n,L=D(U),O=L.c,j=L.n,q=new n(19),B=0;B<I.length;++B)++q[31&I[B]];for(B=0;B<O.length;++B)++q[31&O[B]];for(var G=x(q,7),H=G.t,J=G.l,K=19;K>4&&!H[s[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(h,p)+T(f,g)+l,X=T(h,M)+T(f,U)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X<W)),m+=2,X<W){N=d(M,E,0),P=M,Q=d(U,C,0),R=U;var Y=d(H,J,0);z(r,m,S-257),z(r,m+5,j-1),z(r,m+10,K-4),m+=14;for(B=0;B<K;++B)z(r,m+3*B,H[s[B]]);m+=3*K;for(var Z=[I,O],$=0;$<2;++$){var tt=Z[$];for(B=0;B<tt.length;++B){var nt=31&tt[B];z(r,m,Y[nt]),m+=H[nt],nt>15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=w,P=p,Q=y,R=g;for(B=0;B<u;++B){var rt=o[B];if(rt>255){_(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;_(r,m,Q[et]),m+=R[et],et>3&&(_(r,m,rt>>5&8191),m+=i[et])}else _(r,m,N[rt]),m+=P[rt]}return _(r,m,N[256]),m+P[256]},C=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,s=0|r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a<o;++a)i+=e+=r[a];e=(65535&e)+15*(e>>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(s,a,o,h,u){if(!u&&(u={l:1},a.dictionary)){var c=a.dictionary.subarray(-32768),v=new t(c.length+s.length);v.set(c),v.set(s,c.length),s=v,u.w=c.length}return function(s,a,o,h,u,c){var v=c.z||s.length,d=new t(h+v+5*(1+Math.ceil(v/7e3))+u),p=d.subarray(h,d.length-u),g=c.l,w=7&(c.r||0);if(a){w&&(p[0]=c.r>>3);for(var y=C[a-1],M=y>>13,E=8191&y,z=(1<<o)-1,_=c.p||new n(32768),x=c.h||new n(z+1),A=Math.ceil(o/3),D=2*A,T=function(t){return(s[t]^s[t+1]<<A^s[t+2]<<D)&z},F=new r(25e3),I=new n(288),S=new n(32),L=0,O=0,j=c.i||0,q=0,B=c.w||0,G=0;j+2<v;++j){var H=T(j),J=32767&j,K=x[H];if(_[J]=K,x[H]=J,B<=j){var N=v-j;if((L>7e3||q>24576)&&(N>423||!g)){w=U(s,p,0,F,I,S,O,q,G,j-G,w),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(s[j+Q]==s[j+Q-W]){for(var $=0;$<Z&&s[j+$]==s[j+$-W];++$);if($>Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;P<tt;++P){var rt=j-W+P&32767,et=rt-_[rt]&32767;et>nt&&(nt=et,K=rt)}}}W+=(J=K)-(K=_[J])&32767}if(R){F[q++]=268435456|f[Q]<<18|l[R];var it=31&f[Q],st=31&l[R];O+=e[it]+i[st],++I[257+it],++S[st],B=j+Q,++L}else F[q++]=s[j],++I[s[j]]}}for(j=Math.max(j,B);j<v;++j)F[q++]=s[j],++I[s[j]];w=U(s,p,g,F,I,S,O,q,G,j-G,w),g||(c.r=7&w|p[w/8|0]<<3,w-=7,c.h=x,c.p=_,c.i=j,c.w=B)}else{for(j=c.w||0;j<v+g;j+=65535){var at=j+65535;at>=v&&(p[w/8|0]=g,at=v),w=k(p,w+1,s.subarray(j,at))}c.i=v}return b(d,0,h+m(w)+u)}(s,null==a.level?6:a.level,null==a.mem?u.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(s.length)))):20:12+a.mem,o,h,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if("function"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var s=this.b.length-this.s.z;this.b.set(n.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(s),32768),this.s.z=n.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n.prototype.flush=function(){this.ondata||E(5),this.s.l&&E(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e<n.length;++e)r=I[255&r^n[e]]^r>>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,s=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),a=s.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(s,n),O(s,a-8,r.d()),O(s,a-4,e),s}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t.prototype.flush=function(){j.prototype.flush.call(this)},t}(),G="undefined"!=typeof TextEncoder&&new TextEncoder,H="undefined"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(G)return G.encode(n);for(var e=n.length,i=new t(n.length+(n.length>>1)),s=0,a=function(t){i[s++]=t},o=0;o<e;++o){if(s+5>i.length){var h=new t(s+8+(e-o<<1));h.set(i),i=h}var f=n.charCodeAt(o);f<128||r?a(f):f<2048?(a(192|f>>6),a(128|63&f)):f>55295&&f<57344?(a(240|(f=65536+(1047552&f)|1023&n.charCodeAt(++o))>>18),a(128|f>>12&63),a(128|f>>6&63),a(128|63&f)):(a(224|f>>12),a(128|f>>6&63),a(128|63&f))}return b(i,0,s)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error("Adding invalid event");const n=this._hasEvents?",":"";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push("]",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n<i;n++){const i=t[n];r.set(i,e),e+=i.length}return r}(this._deflatedData);return this._init(),t}_init(){this._hasEvents=!1,this._deflatedData=[],this.deflate=new B,this.deflate.ondata=(t,n)=>{this._deflatedData.push(t)},this.stream=new J((t,n)=>{this.deflate.push(t,n)}),this.stream.push("[")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener("message",function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&"function"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}}),postMessage({id:void 0,method:"init",success:!0,response:void 0});';function mR(){const n=new Blob([hR]);return URL.createObjectURL(n)}const Rg=["info","warn","error","log"],Os="[Replay] ";function wc(n,i="info"){ea({category:"console",data:{logger:"replay"},level:i,message:`${Os}${n}`},{level:i})}function pR(){let n=!1,i=!1;const l={exception:()=>{},infoTick:()=>{},setConfig:s=>{n=!!s.captureExceptions,i=!!s.traceInternals}};return W?(Rg.forEach(s=>{l[s]=(...c)=>{bt[s](Os,...c),i&&wc(c.join(""),ry(s))}}),l.exception=(s,...c)=>{c.length&&l.error&&l.error(...c),bt.error(Os,s),n?Vg(s):i&&wc(s,"error")},l.infoTick=(...s)=>{bt.info(Os,...s),i&&setTimeout(()=>wc(s[0]),0)}):Rg.forEach(s=>{l[s]=()=>{}}),l}const $=pR();class Cf extends Error{constructor(){super(`Event buffer exceeded maximum size of ${bf}.`)}}class nv{constructor(){this.events=[],this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return this.events.length>0}get type(){return"sync"}destroy(){this.events=[]}async addEvent(i){const l=JSON.stringify(i).length;if(this._totalSize+=l,this._totalSize>bf)throw new Cf;this.events.push(i)}finish(){return new Promise(i=>{const l=this.events;this.clear(),i(JSON.stringify(l))})}clear(){this.events=[],this._totalSize=0,this.hasCheckout=!1}getEarliestTimestamp(){const i=this.events.map(l=>l.timestamp).sort()[0];return i?Df(i):null}}class gR{constructor(i){this._worker=i,this._id=0}ensureReady(){return this._ensureReadyPromise?this._ensureReadyPromise:(this._ensureReadyPromise=new Promise((i,l)=>{this._worker.addEventListener("message",({data:s})=>{s.success?i():l()},{once:!0}),this._worker.addEventListener("error",s=>{l(s)},{once:!0})}),this._ensureReadyPromise)}destroy(){W&&$.info("Destroying compression worker"),this._worker.terminate()}postMessage(i,l){const s=this._getAndIncrementId();return new Promise((c,f)=>{const h=({data:g})=>{const m=g;if(m.method===i&&m.id===s){if(this._worker.removeEventListener("message",h),!m.success){W&&$.error("Error in compression worker: ",m.response),f(new Error("Error in compression worker"));return}c(m.response)}};this._worker.addEventListener("message",h),this._worker.postMessage({id:s,method:i,arg:l})})}_getAndIncrementId(){return this._id++}}class yR{constructor(i){this._worker=new gR(i),this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return!!this._earliestTimestamp}get type(){return"worker"}ensureReady(){return this._worker.ensureReady()}destroy(){this._worker.destroy()}addEvent(i){const l=Df(i.timestamp);(!this._earliestTimestamp||l<this._earliestTimestamp)&&(this._earliestTimestamp=l);const s=JSON.stringify(i);return this._totalSize+=s.length,this._totalSize>bf?Promise.reject(new Cf):this._sendEventToWorker(s)}finish(){return this._finishRequest()}clear(){this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this._worker.postMessage("clear").then(null,i=>{W&&$.exception(i,'Sending "clear" message to worker failed',i)})}getEarliestTimestamp(){return this._earliestTimestamp}_sendEventToWorker(i){return this._worker.postMessage("addEvent",i)}async _finishRequest(){const i=await this._worker.postMessage("finish");return this._earliestTimestamp=null,this._totalSize=0,i}}class vR{constructor(i){this._fallback=new nv,this._compression=new yR(i),this._used=this._fallback,this._ensureWorkerIsLoadedPromise=this._ensureWorkerIsLoaded()}get waitForCheckout(){return this._used.waitForCheckout}get type(){return this._used.type}get hasEvents(){return this._used.hasEvents}get hasCheckout(){return this._used.hasCheckout}set hasCheckout(i){this._used.hasCheckout=i}set waitForCheckout(i){this._used.waitForCheckout=i}destroy(){this._fallback.destroy(),this._compression.destroy()}clear(){return this._used.clear()}getEarliestTimestamp(){return this._used.getEarliestTimestamp()}addEvent(i){return this._used.addEvent(i)}async finish(){return await this.ensureWorkerIsLoaded(),this._used.finish()}ensureWorkerIsLoaded(){return this._ensureWorkerIsLoadedPromise}async _ensureWorkerIsLoaded(){try{await this._compression.ensureReady()}catch(i){W&&$.exception(i,"Failed to load the compression worker, falling back to simple buffer");return}await this._switchToCompressionWorker()}async _switchToCompressionWorker(){const{events:i,hasCheckout:l,waitForCheckout:s}=this._fallback,c=[];for(const f of i)c.push(this._compression.addEvent(f));this._compression.hasCheckout=l,this._compression.waitForCheckout=s,this._used=this._compression;try{await Promise.all(c),this._fallback.clear()}catch(f){W&&$.exception(f,"Failed to add events when switching buffers.")}}}function SR({useCompression:n,workerUrl:i}){if(n&&window.Worker){const l=_R(i);if(l)return l}return W&&$.info("Using simple buffer"),new nv}function _R(n){try{const i=n||ER();if(!i)return;W&&$.info(`Using compression worker${n?` from ${n}`:""}`);const l=new Worker(i);return new vR(l)}catch(i){W&&$.exception(i,"Failed to create compression worker")}}function ER(){return typeof __SENTRY_EXCLUDE_REPLAY_WORKER__>"u"||!__SENTRY_EXCLUDE_REPLAY_WORKER__?mR():""}function xf(){try{return"sessionStorage"in Nt&&!!Nt.sessionStorage}catch{return!1}}function bR(n){TR(),n.session=void 0}function TR(){if(xf())try{Nt.sessionStorage.removeItem(_f)}catch{}}function av(n){return n===void 0?!1:Math.random()<n}function Nf(n){if(xf())try{Nt.sessionStorage.setItem(_f,JSON.stringify(n))}catch{}}function iv(n){const i=Date.now(),l=n.id||Ra(),s=n.started||i,c=n.lastActivity||i,f=n.segmentId||0,h=n.sampled,g=n.previousSessionId;return{id:l,started:s,lastActivity:c,segmentId:f,sampled:h,previousSessionId:g}}function MR(n,i){return av(n)?"session":i?"buffer":!1}function Og({sessionSampleRate:n,allowBuffering:i,stickySession:l=!1},{previousSessionId:s}={}){const c=MR(n,i),f=iv({sampled:c,previousSessionId:s});return l&&Nf(f),f}function RR(){if(!xf())return null;try{const n=Nt.sessionStorage.getItem(_f);if(!n)return null;const i=JSON.parse(n);return W&&$.infoTick("Loading existing session"),iv(i)}catch{return null}}function tf(n,i,l=+new Date){return n===null||i===void 0||i<0?!0:i===0?!1:n+i<=l}function rv(n,{maxReplayDuration:i,sessionIdleExpire:l,targetTime:s=Date.now()}){return tf(n.started,i,s)||tf(n.lastActivity,l,s)}function lv(n,{sessionIdleExpire:i,maxReplayDuration:l}){return!(!rv(n,{sessionIdleExpire:i,maxReplayDuration:l})||n.sampled==="buffer"&&n.segmentId===0)}function Cc({sessionIdleExpire:n,maxReplayDuration:i,previousSessionId:l},s){const c=s.stickySession&&RR();return c?lv(c,{sessionIdleExpire:n,maxReplayDuration:i})?(W&&$.infoTick("Session in sessionStorage is expired, creating new one..."),Og(s,{previousSessionId:c.id})):c:(W&&$.infoTick("Creating new session"),Og(s,{previousSessionId:l}))}function OR(n){return n.type===it.Custom}function kf(n,i,l){return uv(n,i)?(sv(n,i,l),!0):!1}function AR(n,i,l){return uv(n,i)?sv(n,i,l):Promise.resolve(null)}async function sv(n,i,l){const{eventBuffer:s}=n;if(!s||s.waitForCheckout&&!l)return null;const c=n.recordingMode==="buffer";try{l&&c&&s.clear(),l&&(s.hasCheckout=!0,s.waitForCheckout=!1);const f=n.getOptions(),h=DR(i,f.beforeAddRecordingEvent);return h?await s.addEvent(h):void 0}catch(f){const h=f&&f instanceof Cf,g=h?"addEventSizeExceeded":"addEvent";if(h&&c)return s.clear(),s.waitForCheckout=!0,null;n.handleException(f),await n.stop({reason:g});const m=Kt();m&&m.recordDroppedEvent("internal_sdk_error","replay")}}function uv(n,i){if(!n.eventBuffer||n.isPaused()||!n.isEnabled())return!1;const l=Df(i.timestamp);return l+n.timeouts.sessionIdlePause<Date.now()?!1:l>n.getContext().initialTimestamp+n.getOptions().maxReplayDuration?(W&&$.infoTick(`Skipping event with timestamp ${l} because it is after maxReplayDuration`),!1):!0}function DR(n,i){try{if(typeof i=="function"&&OR(n))return i(n)}catch(l){return W&&$.exception(l,"An error occurred in the `beforeAddRecordingEvent` callback, skipping the event..."),null}return n}function zf(n){return!n.type}function ef(n){return n.type==="transaction"}function wR(n){return n.type==="replay_event"}function Ag(n){return n.type==="feedback"}function CR(n){return(i,l)=>{if(!n.isEnabled()||!zf(i)&&!ef(i))return;const s=l?.statusCode;if(!(!s||s<200||s>=300)){if(ef(i)){xR(n,i);return}NR(n,i)}}}function xR(n,i){const l=n.getContext();i.contexts?.trace?.trace_id&&l.traceIds.size<100&&l.traceIds.add(i.contexts.trace.trace_id)}function NR(n,i){const l=n.getContext();if(i.event_id&&l.errorIds.size<100&&l.errorIds.add(i.event_id),n.recordingMode!=="buffer"||!i.tags||!i.tags.replayId)return;const{beforeErrorSampling:s}=n.getOptions();typeof s=="function"&&!s(i)||$r(async()=>{try{await n.sendBufferedReplayOrFlush()}catch(c){n.handleException(c)}})}function kR(n){return i=>{!n.isEnabled()||!zf(i)||zR(n,i)}}function zR(n,i){const l=i.exception?.values?.[0]?.value;if(typeof l=="string"&&(l.match(/(reactjs\.org\/docs\/error-decoder\.html\?invariant=|react\.dev\/errors\/)(418|419|422|423|425)/)||l.match(/(does not match server-rendered HTML|Hydration failed because)/i))){const s=en({category:"replay.hydrate-error",data:{url:Qs()}});tl(n,s)}}function UR(n){const i=Kt();i&&i.on("beforeAddBreadcrumb",l=>LR(n,l))}function LR(n,i){if(!n.isEnabled()||!ov(i))return;const l=BR(i);l&&tl(n,l)}function BR(n){return!ov(n)||["fetch","xhr","sentry.event","sentry.transaction"].includes(n.category)||n.category.startsWith("ui.")?null:n.category==="console"?HR(n):en(n)}function HR(n){const i=n.data?.arguments;if(!Array.isArray(i)||i.length===0)return en(n);let l=!1;const s=i.map(c=>{if(!c)return c;if(typeof c=="string")return c.length>ys?(l=!0,`${c.slice(0,ys)}…`):c;if(typeof c=="object")try{const f=rf(c,7);return JSON.stringify(f).length>ys?(l=!0,`${JSON.stringify(f,null,2).slice(0,ys)}…`):f}catch{}return c});return en({...n,data:{...n.data,arguments:s,...l?{_meta:{warnings:["CONSOLE_ARG_TRUNCATED"]}}:{}}})}function ov(n){return!!n.category}function IR(n,i){return n.type||!n.exception||!n.exception.values||!n.exception.values.length?!1:!!i.originalException?.__rrweb__}function cv(){const n=wi().getPropagationContext().dsc;n&&delete n.replay_id;const i=ff();if(i){const l=T_(i);delete l.replay_id}}function qR(n,i){n.triggerUserActivity(),n.addUpdate(()=>i.timestamp?(n.throttledAddEvent({type:it.Custom,timestamp:i.timestamp*1e3,data:{tag:"breadcrumb",payload:{timestamp:i.timestamp,type:"default",category:"sentry.feedback",data:{feedbackId:i.event_id}}}}),!1):!0)}function YR(n,i){return n.recordingMode!=="buffer"||i.message===Ef||!i.exception||i.type?!1:av(n.getOptions().errorSampleRate)}function GR(n){return Object.assign((i,l)=>!n.isEnabled()||n.isPaused()?i:wR(i)?(delete i.breadcrumbs,i):!zf(i)&&!ef(i)&&!Ag(i)?i:n.checkAndHandleExpiredSession()?Ag(i)?(n.flush(),i.contexts.feedback.replay_id=n.getSessionId(),qR(n,i),i):IR(i,l)&&!n.getOptions()._experiments.captureExceptions?(W&&$.log("Ignoring error from rrweb internals",i),null):((YR(n,i)||n.recordingMode==="session")&&(i.tags={...i.tags,replayId:n.getSessionId()}),i):(cv(),i),{id:"Replay"})}function eu(n,i){return i.map(({type:l,start:s,end:c,name:f,data:h})=>{const g=n.throttledAddEvent({type:it.Custom,timestamp:s,data:{tag:"performanceSpan",payload:{op:l,description:f,startTimestamp:s,endTimestamp:c,data:h}}});return typeof g=="string"?Promise.resolve(null):g})}function jR(n){const{from:i,to:l}=n,s=Date.now()/1e3;return{type:"navigation.push",start:s,end:s,name:l,data:{previous:i}}}function XR(n){return i=>{if(!n.isEnabled())return;const l=jR(i);l!==null&&(n.getContext().urls.push(l.name),n.triggerUserActivity(),n.addUpdate(()=>(eu(n,[l]),!1)))}}function VR(n,i){return W&&n.getOptions()._experiments.traceInternals?!1:_E(i,Kt())}function fv(n,i){n.isEnabled()&&i!==null&&(VR(n,i.name)||n.addUpdate(()=>(eu(n,[i]),!0)))}function nu(n){if(!n)return;const i=new TextEncoder;try{if(typeof n=="string")return i.encode(n).length;if(n instanceof URLSearchParams)return i.encode(n.toString()).length;if(n instanceof FormData){const l=My(n);return i.encode(l).length}if(n instanceof Blob)return n.size;if(n instanceof ArrayBuffer)return n.byteLength}catch{}}function dv(n){if(!n)return;const i=parseInt(n,10);return isNaN(i)?void 0:i}function Gs(n,i){if(!n)return{headers:{},size:void 0,_meta:{warnings:[i]}};const l={...n._meta},s=l.warnings||[];return l.warnings=[...s,i],n._meta=l,n}function hv(n,i){if(!i)return null;const{startTimestamp:l,endTimestamp:s,url:c,method:f,statusCode:h,request:g,response:m}=i;return{type:n,start:l/1e3,end:s/1e3,name:c,data:{method:f,statusCode:h,request:g,response:m}}}function Qr(n){return{headers:{},size:n,_meta:{warnings:["URL_SKIPPED"]}}}function Pn(n,i,l){if(!i&&Object.keys(n).length===0)return;if(!i)return{headers:n};if(!l)return{headers:n,size:i};const s={headers:n,size:i},{body:c,warnings:f}=QR(l);return s.body=c,f?.length&&(s._meta={warnings:f}),s}function nf(n,i){return Object.entries(n).reduce((l,[s,c])=>{const f=s.toLowerCase();return i.includes(f)&&n[s]&&(l[f]=c),l},{})}function QR(n){if(!n||typeof n!="string")return{body:n};const i=n.length>sg,l=ZR(n);if(i){const s=n.slice(0,sg);return l?{body:s,warnings:["MAYBE_JSON_TRUNCATED"]}:{body:`${s}…`,warnings:["TEXT_TRUNCATED"]}}if(l)try{return{body:JSON.parse(n)}}catch{}return{body:n}}function ZR(n){const i=n[0],l=n[n.length-1];return i==="["&&l==="]"||i==="{"&&l==="}"}function js(n,i){const l=KR(n);return Kr(l,i)}function KR(n,i=Nt.document.baseURI){if(n.startsWith("http://")||n.startsWith("https://")||n.startsWith(Nt.location.origin))return n;const l=new URL(n,i);if(l.origin!==new URL(i).origin)return n;const s=l.href;return!n.endsWith("/")&&s.endsWith("/")?s.slice(0,-1):s}async function FR(n,i,l){try{const s=await WR(n,i,l),c=hv("resource.fetch",s);fv(l.replay,c)}catch(s){W&&$.exception(s,"Failed to capture fetch breadcrumb")}}function JR(n,i){const{input:l,response:s}=i,c=l?Oy(l):void 0,f=nu(c),h=s?dv(s.headers.get("content-length")):void 0;f!==void 0&&(n.data.request_body_size=f),h!==void 0&&(n.data.response_body_size=h)}async function WR(n,i,l){const s=Date.now(),{startTimestamp:c=s,endTimestamp:f=s}=i,{url:h,method:g,status_code:m=0,request_body_size:y,response_body_size:E}=n.data,_=js(h,l.networkDetailAllowUrls)&&!js(h,l.networkDetailDenyUrls),R=_?$R(l,i.input,y):Qr(y),w=await PR(_,l,i.response,E);return{startTimestamp:c,endTimestamp:f,url:h,method:g,statusCode:m,request:R,response:w}}function $R({networkCaptureBodies:n,networkRequestHeaders:i},l,s){const c=l?nO(l,i):{};if(!n)return Pn(c,s,void 0);const f=Oy(l),[h,g]=Ry(f,$),m=Pn(c,s,h);return g?Gs(m,g):m}async function PR(n,{networkCaptureBodies:i,networkResponseHeaders:l},s,c){if(!n&&c!==void 0)return Qr(c);const f=s?mv(s.headers,l):{};if(!s||!i&&c!==void 0)return Pn(f,c,void 0);const[h,g]=await eO(s),m=tO(h,{networkCaptureBodies:i,responseBodySize:c,captureDetails:n,headers:f});return g?Gs(m,g):m}function tO(n,{networkCaptureBodies:i,responseBodySize:l,captureDetails:s,headers:c}){try{const f=n?.length&&l===void 0?nu(n):l;return s?i?Pn(c,f,n):Pn(c,f,void 0):Qr(f)}catch(f){return W&&$.exception(f,"Failed to serialize response body"),Pn(c,l,void 0)}}async function eO(n){const i=aO(n);if(!i)return[void 0,"BODY_PARSE_ERROR"];try{return[await iO(i)]}catch(l){return l instanceof Error&&l.message.indexOf("Timeout")>-1?(W&&$.warn("Parsing text body from response timed out"),[void 0,"BODY_PARSE_TIMEOUT"]):(W&&$.exception(l,"Failed to get text body from response"),[void 0,"BODY_PARSE_ERROR"])}}function mv(n,i){const l={};return i.forEach(s=>{n.get(s)&&(l[s]=n.get(s))}),l}function nO(n,i){return n.length===1&&typeof n[0]!="string"?Dg(n[0],i):n.length===2?Dg(n[1],i):{}}function Dg(n,i){if(!n)return{};const l=n.headers;return l?l instanceof Headers?mv(l,i):Array.isArray(l)?{}:nf(l,i):{}}function aO(n){try{return n.clone()}catch(i){W&&$.exception(i,"Failed to clone response body")}}function iO(n){return new Promise((i,l)=>{const s=$r(()=>l(new Error("Timeout while trying to read response body")),500);rO(n).then(c=>i(c),c=>l(c)).finally(()=>clearTimeout(s))})}async function rO(n){return await n.text()}async function lO(n,i,l){try{const s=uO(n,i,l),c=hv("resource.xhr",s);fv(l.replay,c)}catch(s){W&&$.exception(s,"Failed to capture xhr breadcrumb")}}function sO(n,i){const{xhr:l,input:s}=i;if(!l)return;const c=nu(s),f=l.getResponseHeader("content-length")?dv(l.getResponseHeader("content-length")):dO(l.response,l.responseType);c!==void 0&&(n.data.request_body_size=c),f!==void 0&&(n.data.response_body_size=f)}function uO(n,i,l){const s=Date.now(),{startTimestamp:c=s,endTimestamp:f=s,input:h,xhr:g}=i,{url:m,method:y,status_code:E=0,request_body_size:_,response_body_size:R}=n.data;if(!m)return null;if(!g||!js(m,l.networkDetailAllowUrls)||js(m,l.networkDetailDenyUrls)){const G=Qr(_),P=Qr(R);return{startTimestamp:c,endTimestamp:f,url:m,method:y,statusCode:E,request:G,response:P}}const w=g[Si],k=w?nf(w.request_headers,l.networkRequestHeaders):{},U=nf(oO(g),l.networkResponseHeaders),[I,q]=l.networkCaptureBodies?Ry(h,$):[void 0],[Z,nt]=l.networkCaptureBodies?cO(g):[void 0],et=Pn(k,_,I),K=Pn(U,R,Z);return{startTimestamp:c,endTimestamp:f,url:m,method:y,statusCode:E,request:q?Gs(et,q):et,response:nt?Gs(K,nt):K}}function oO(n){const i=n.getAllResponseHeaders();return i?i.split(`\r
53
53
  `).reduce((l,s)=>{const[c,f]=s.split(": ");return f&&(l[c.toLowerCase()]=f),l},{}):{}}function cO(n){const i=[];try{return[n.responseText]}catch(l){i.push(l)}try{return fO(n.response,n.responseType)}catch(l){i.push(l)}return W&&$.warn("Failed to get xhr response body",...i),[void 0]}function fO(n,i){try{if(typeof n=="string")return[n];if(n instanceof Document)return[n.body.outerHTML];if(i==="json"&&n&&typeof n=="object")return[JSON.stringify(n)];if(!n)return[void 0]}catch(l){return W&&$.exception(l,"Failed to serialize body",n),[void 0,"BODY_PARSE_ERROR"]}return W&&$.info("Skipping network body because of body type",n),[void 0,"UNPARSEABLE_BODY_TYPE"]}function dO(n,i){try{const l=i==="json"&&n&&typeof n=="object"?JSON.stringify(n):n;return nu(l)}catch{return}}function hO(n){const i=Kt();try{const{networkDetailAllowUrls:l,networkDetailDenyUrls:s,networkCaptureBodies:c,networkRequestHeaders:f,networkResponseHeaders:h}=n.getOptions(),g={replay:n,networkDetailAllowUrls:l,networkDetailDenyUrls:s,networkCaptureBodies:c,networkRequestHeaders:f,networkResponseHeaders:h};i&&i.on("beforeAddBreadcrumb",(m,y)=>mO(g,m,y))}catch{}}function mO(n,i,l){if(i.data)try{pO(i)&&yO(l)&&(sO(i,l),lO(i,l,n)),gO(i)&&vO(l)&&(JR(i,l),FR(i,l,n))}catch(s){W&&$.exception(s,"Error when enriching network breadcrumb")}}function pO(n){return n.category==="xhr"}function gO(n){return n.category==="fetch"}function yO(n){return n?.xhr}function vO(n){return n?.response}function SO(n,{autoFlushOnFeedback:i}){const l=Kt();by(KM(n)),Sf(XR(n)),UR(n),hO(n);const s=GR(n);M_(s),l&&(l.on("beforeSendEvent",kR(n)),l.on("afterSendEvent",CR(n)),l.on("createDsc",c=>{const f=n.getSessionId();f&&n.isEnabled()&&n.recordingMode==="session"&&n.checkAndHandleExpiredSession()&&(c.replay_id=f)}),l.on("spanStart",c=>{n.lastActiveSpan=c}),l.on("spanEnd",c=>{n.lastActiveSpan=c}),l.on("beforeSendFeedback",async(c,f)=>{const h=n.getSessionId();f?.includeReplay&&n.isEnabled()&&h&&c.contexts?.feedback&&(c.contexts.feedback.source==="api"&&i&&await n.flush(),c.contexts.feedback.replay_id=h)}),i&&l.on("openFeedbackWidget",async()=>{await n.flush()}))}async function _O(n){try{return Promise.all(eu(n,[EO(Nt.performance.memory)]))}catch{return[]}}function EO(n){const{jsHeapSizeLimit:i,totalJSHeapSize:l,usedJSHeapSize:s}=n,c=Date.now()/1e3;return{type:"memory",name:"memory",start:c,end:c,data:{memory:{jsHeapSizeLimit:i,totalJSHeapSize:l,usedJSHeapSize:s}}}}function bO(n,i,l){return RE(n,i,{...l,setTimeoutImpl:$r})}const bs=Vt.navigator;function TO(){return/iPhone|iPad|iPod/i.test(bs?.userAgent??"")||/Macintosh/i.test(bs?.userAgent??"")&&bs?.maxTouchPoints&&bs?.maxTouchPoints>1?{sampling:{mousemove:!1}}:{}}function MO(n){let i=!1;return(l,s)=>{if(!n.checkAndHandleExpiredSession()){W&&$.warn("Received replay event after session expired.");return}const c=s||!i;i=!0,n.clickDetector&&jM(n.clickDetector,l),n.addUpdate(()=>{if(n.recordingMode==="buffer"&&c&&n.setInitialState(),!kf(n,l,c))return!0;if(!c)return!1;const f=n.session;if(OO(n,c),n.recordingMode==="buffer"&&f&&n.eventBuffer){const h=n.eventBuffer.getEarliestTimestamp();h&&(W&&$.info(`Updating session start time to earliest event in buffer to ${new Date(h)}`),f.started=h,n.getOptions().stickySession&&Nf(f))}return f?.previousSessionId||n.recordingMode==="session"&&n.flush(),!0})}}function RO(n){const i=n.getOptions();return{type:it.Custom,timestamp:Date.now(),data:{tag:"options",payload:{shouldRecordCanvas:n.isRecordingCanvas(),sessionSampleRate:i.sessionSampleRate,errorSampleRate:i.errorSampleRate,useCompressionOption:i.useCompression,blockAllMedia:i.blockAllMedia,maskAllText:i.maskAllText,maskAllInputs:i.maskAllInputs,useCompression:n.eventBuffer?n.eventBuffer.type==="worker":!1,networkDetailHasUrls:i.networkDetailAllowUrls.length>0,networkCaptureBodies:i.networkCaptureBodies,networkRequestHasHeaders:i.networkRequestHeaders.length>0,networkResponseHasHeaders:i.networkResponseHeaders.length>0}}}}function OO(n,i){!i||!n.session||n.session.segmentId!==0||kf(n,RO(n),!1)}function AO(n){if(!n)return null;try{return n.nodeType===n.ELEMENT_NODE?n:n.parentElement}catch{return null}}function DO(n,i,l,s){return Ci(Fg(n,df(n),s,l),[[{type:"replay_event"},n],[{type:"replay_recording",length:typeof i=="string"?new TextEncoder().encode(i).length:i.length},i]])}function wO({recordingData:n,headers:i}){let l;const s=`${JSON.stringify(i)}
54
54
  `;if(typeof n=="string")l=`${s}${n}`;else{const f=new TextEncoder().encode(s);l=new Uint8Array(f.length+n.length),l.set(f),l.set(n,f.length)}return l}async function CO({client:n,scope:i,replayId:l,event:s}){const c=typeof n._integrations=="object"&&n._integrations!==null&&!Array.isArray(n._integrations)?Object.keys(n._integrations):void 0,f={event_id:l,integrations:c};n.emit("preprocessEvent",s,f);const h=await Gg(n.getOptions(),s,f,i,n,sf());if(!h)return null;n.emit("postprocessEvent",h,f),h.platform=h.platform||"javascript";const g=n.getSdkMetadata(),{name:m,version:y}=g?.sdk||{};return h.sdk={...h.sdk,name:m||"sentry.javascript.unknown",version:y||"0.0.0"},h}async function xO({recordingData:n,replayId:i,segmentId:l,eventContext:s,timestamp:c,session:f}){const h=wO({recordingData:n,headers:{segment_id:l}}),{urls:g,errorIds:m,traceIds:y,initialTimestamp:E}=s,_=Kt(),R=wi(),w=_?.getTransport(),k=_?.getDsn();if(!_||!w||!k||!f.sampled)return Tn({});const U={type:sT,replay_start_timestamp:E/1e3,timestamp:c/1e3,error_ids:m,trace_ids:y,urls:g,replay_id:i,segment_id:l,replay_type:f.sampled},I=await CO({scope:R,client:_,replayId:i,event:U});if(!I)return _.recordDroppedEvent("event_processor","replay"),W&&$.info("An event processor returned `null`, will not send event."),Tn({});delete I.sdkProcessingMetadata;const q=DO(I,h,k,_.getOptions().tunnel);let Z;try{Z=await w.send(q)}catch(et){const K=new Error(Ef);try{K.cause=et}catch{}throw K}if(typeof Z.statusCode=="number"&&(Z.statusCode<200||Z.statusCode>=300))throw new pv(Z.statusCode);const nt=ay({},Z);if(ny(nt,"replay"))throw new Uf(nt);return Z}class pv extends Error{constructor(i){super(`Transport returned status code ${i}`)}}class Uf extends Error{constructor(i){super("Rate limit hit"),this.rateLimits=i}}async function gv(n,i={count:0,interval:hT}){const{recordingData:l,onError:s}=n;if(l.length)try{return await xO(n),!0}catch(c){if(c instanceof pv||c instanceof Uf)throw c;if(R_("Replays",{_retryCount:i.count}),s&&s(c),i.count>=mT){const f=new Error(`${Ef} - max retries exceeded`);try{f.cause=c}catch{}throw f}return i.interval*=++i.count,new Promise((f,h)=>{$r(async()=>{try{await gv(n,i),f(!0)}catch(g){h(g)}},i.interval)})}}const yv="__THROTTLED",NO="__SKIPPED";function kO(n,i,l){const s=new Map,c=g=>{const m=g-l;s.forEach((y,E)=>{E<m&&s.delete(E)})},f=()=>[...s.values()].reduce((g,m)=>g+m,0);let h=!1;return(...g)=>{const m=Math.floor(Date.now()/1e3);if(c(m),f()>=i){const E=h;return h=!0,E?NO:yv}h=!1;const y=s.get(m)||0;return s.set(m,y+1),n(...g)}}class zO{constructor({options:i,recordingOptions:l}){this.eventBuffer=null,this.performanceEntries=[],this.replayPerformanceEntries=[],this.recordingMode="session",this.timeouts={sessionIdlePause:uT,sessionIdleExpire:oT},this._lastActivity=Date.now(),this._isEnabled=!1,this._isPaused=!1,this._requiresManualStart=!1,this._hasInitializedCoreListeners=!1,this._context={errorIds:new Set,traceIds:new Set,urls:[],initialTimestamp:Date.now(),initialUrl:""},this._recordingOptions=l,this._options=i,this._debouncedFlush=bO(()=>this._flush(),this._options.flushMinDelay,{maxWait:this._options.flushMaxDelay}),this._throttledAddEvent=kO((h,g)=>AR(this,h,g),300,5);const{slowClickTimeout:s,slowClickIgnoreSelectors:c}=this.getOptions(),f=s?{threshold:Math.min(pT,s),timeout:s,scrollTimeout:gT,ignoreSelector:c?c.join(","):""}:void 0;if(f&&(this.clickDetector=new IM(this,f)),W){const h=i._experiments;$.setConfig({captureExceptions:!!h.captureExceptions,traceInternals:!!h.traceInternals})}this._handleVisibilityChange=()=>{Nt.document.visibilityState==="visible"?this._doChangeToForegroundTasks():this._doChangeToBackgroundTasks()},this._handleWindowBlur=()=>{const h=en({category:"ui.blur"});this._doChangeToBackgroundTasks(h)},this._handleWindowFocus=()=>{const h=en({category:"ui.focus"});this._doChangeToForegroundTasks(h)},this._handleKeyboardEvent=h=>{$M(this,h)}}getContext(){return this._context}isEnabled(){return this._isEnabled}isPaused(){return this._isPaused}isRecordingCanvas(){return!!this._canvas}getOptions(){return this._options}handleException(i){W&&$.exception(i),this._options.onError&&this._options.onError(i)}initializeSampling(i){const{errorSampleRate:l,sessionSampleRate:s}=this._options,c=l<=0&&s<=0;if(this._requiresManualStart=c,!c){if(this._initializeSessionForSampling(i),!this.session){W&&$.exception(new Error("Unable to initialize and create session"));return}this.session.sampled!==!1&&(this.recordingMode=this.session.sampled==="buffer"&&this.session.segmentId===0?"buffer":"session",W&&$.infoTick(`Starting replay in ${this.recordingMode} mode`),this._initializeRecording())}}start(){if(this._isEnabled&&this.recordingMode==="session"){W&&$.info("Recording is already in progress");return}if(this._isEnabled&&this.recordingMode==="buffer"){W&&$.info("Buffering is in progress, call `flush()` to save the replay");return}W&&$.infoTick("Starting replay in session mode"),this._updateUserActivity();const i=Cc({maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire},{stickySession:this._options.stickySession,sessionSampleRate:1,allowBuffering:!1});this.session=i,this._initializeRecording()}startBuffering(){if(this._isEnabled){W&&$.info("Buffering is in progress, call `flush()` to save the replay");return}W&&$.infoTick("Starting replay in buffer mode");const i=Cc({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration},{stickySession:this._options.stickySession,sessionSampleRate:0,allowBuffering:!0});this.session=i,this.recordingMode="buffer",this._initializeRecording()}startRecording(){try{const i=this._canvas;this._stopRecording=bn({...this._recordingOptions,...this.recordingMode==="buffer"?{checkoutEveryNms:dT}:this._options._experiments.continuousCheckout&&{checkoutEveryNms:Math.max(36e4,this._options._experiments.continuousCheckout)},emit:MO(this),...TO(),onMutation:this._onMutationHandler.bind(this),...i?{recordCanvas:i.recordCanvas,getCanvasManager:i.getCanvasManager,sampling:i.sampling,dataURLOptions:i.dataURLOptions}:{}})}catch(i){this.handleException(i)}}stopRecording(){try{return this._stopRecording&&(this._stopRecording(),this._stopRecording=void 0),!0}catch(i){return this.handleException(i),!1}}async stop({forceFlush:i=!1,reason:l}={}){if(this._isEnabled){this._isEnabled=!1;try{W&&$.info(`Stopping Replay${l?` triggered by ${l}`:""}`),cv(),this._removeListeners(),this.stopRecording(),this._debouncedFlush.cancel(),i&&await this._flush({force:!0}),this.eventBuffer?.destroy(),this.eventBuffer=null,bR(this)}catch(s){this.handleException(s)}}}pause(){this._isPaused||(this._isPaused=!0,this.stopRecording(),W&&$.info("Pausing replay"))}resume(){!this._isPaused||!this._checkSession()||(this._isPaused=!1,this.startRecording(),W&&$.info("Resuming replay"))}async sendBufferedReplayOrFlush({continueRecording:i=!0}={}){if(this.recordingMode==="session")return this.flushImmediate();const l=Date.now();W&&$.info("Converting buffer to session"),await this.flushImmediate();const s=this.stopRecording();!i||!s||this.recordingMode!=="session"&&(this.recordingMode="session",this.session&&(this._updateUserActivity(l),this._updateSessionActivity(l),this._maybeSaveSession()),this.startRecording())}addUpdate(i){const l=i();this.recordingMode!=="buffer"&&l!==!0&&this._debouncedFlush()}triggerUserActivity(){if(this._updateUserActivity(),!this._stopRecording){if(!this._checkSession())return;this.resume();return}this.checkAndHandleExpiredSession(),this._updateSessionActivity()}updateUserActivity(){this._updateUserActivity(),this._updateSessionActivity()}conditionalFlush(){return this.recordingMode==="buffer"?Promise.resolve():this.flushImmediate()}flush(){return this._debouncedFlush()}flushImmediate(){return this._debouncedFlush(),this._debouncedFlush.flush()}cancelFlush(){this._debouncedFlush.cancel()}getSessionId(){return this.session?.id}checkAndHandleExpiredSession(){if(this._lastActivity&&tf(this._lastActivity,this.timeouts.sessionIdlePause)&&this.session&&this.session.sampled==="session"){this.pause();return}return!!this._checkSession()}setInitialState(){const i=`${Nt.location.pathname}${Nt.location.hash}${Nt.location.search}`,l=`${Nt.location.origin}${i}`;this.performanceEntries=[],this.replayPerformanceEntries=[],this._clearContext(),this._context.initialUrl=l,this._context.initialTimestamp=Date.now(),this._context.urls.push(l)}throttledAddEvent(i,l){const s=this._throttledAddEvent(i,l);if(s===yv){const c=en({category:"replay.throttled"});this.addUpdate(()=>!kf(this,{type:NM,timestamp:c.timestamp||0,data:{tag:"breadcrumb",payload:c,metric:!0}}))}return s}getCurrentRoute(){const i=this.lastActiveSpan||ff(),l=i&&zc(i),c=(l&&ba(l).data||{})[b_];if(!(!l||!c||!["route","custom"].includes(c)))return ba(l).description}_initializeRecording(){this.setInitialState(),this._updateSessionActivity(),this.eventBuffer=SR({useCompression:this._options.useCompression,workerUrl:this._options.workerUrl}),this._removeListeners(),this._addListeners(),this._isEnabled=!0,this._isPaused=!1,this.startRecording()}_initializeSessionForSampling(i){const l=this._options.errorSampleRate>0,s=Cc({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration,previousSessionId:i},{stickySession:this._options.stickySession,sessionSampleRate:this._options.sessionSampleRate,allowBuffering:l});this.session=s}_checkSession(){if(!this.session)return!1;const i=this.session;return lv(i,{sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration})?(this._refreshSession(i),!1):!0}async _refreshSession(i){this._isEnabled&&(await this.stop({reason:"refresh session"}),this.initializeSampling(i.id))}_addListeners(){try{Nt.document.addEventListener("visibilitychange",this._handleVisibilityChange),Nt.addEventListener("blur",this._handleWindowBlur),Nt.addEventListener("focus",this._handleWindowFocus),Nt.addEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.addListeners(),this._hasInitializedCoreListeners||(SO(this,{autoFlushOnFeedback:this._options._experiments.autoFlushOnFeedback}),this._hasInitializedCoreListeners=!0)}catch(i){this.handleException(i)}this._performanceCleanupCallback=dR(this)}_removeListeners(){try{Nt.document.removeEventListener("visibilitychange",this._handleVisibilityChange),Nt.removeEventListener("blur",this._handleWindowBlur),Nt.removeEventListener("focus",this._handleWindowFocus),Nt.removeEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.removeListeners(),this._performanceCleanupCallback&&this._performanceCleanupCallback()}catch(i){this.handleException(i)}}_doChangeToBackgroundTasks(i){!this.session||rv(this.session,{maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire})||(i&&this._createCustomBreadcrumb(i),this.conditionalFlush())}_doChangeToForegroundTasks(i){if(!this.session)return;if(!this.checkAndHandleExpiredSession()){W&&$.info("Document has become active, but session has expired");return}i&&this._createCustomBreadcrumb(i)}_updateUserActivity(i=Date.now()){this._lastActivity=i}_updateSessionActivity(i=Date.now()){this.session&&(this.session.lastActivity=i,this._maybeSaveSession())}_createCustomBreadcrumb(i){this.addUpdate(()=>{this.throttledAddEvent({type:it.Custom,timestamp:i.timestamp||0,data:{tag:"breadcrumb",payload:i}})})}_addPerformanceEntries(){let i=nR(this.performanceEntries).concat(this.replayPerformanceEntries);if(this.performanceEntries=[],this.replayPerformanceEntries=[],this._requiresManualStart){const l=this._context.initialTimestamp/1e3;i=i.filter(s=>s.start>=l)}return Promise.all(eu(this,i))}_clearContext(){this._context.errorIds.clear(),this._context.traceIds.clear(),this._context.urls=[]}_updateInitialTimestampFromEventBuffer(){const{session:i,eventBuffer:l}=this;if(!i||!l||this._requiresManualStart||i.segmentId)return;const s=l.getEarliestTimestamp();s&&s<this._context.initialTimestamp&&(this._context.initialTimestamp=s)}_popEventContext(){const i={initialTimestamp:this._context.initialTimestamp,initialUrl:this._context.initialUrl,errorIds:Array.from(this._context.errorIds),traceIds:Array.from(this._context.traceIds),urls:this._context.urls};return this._clearContext(),i}async _runFlush(){const i=this.getSessionId();if(!this.session||!this.eventBuffer||!i){W&&$.error("No session or eventBuffer found to flush.");return}if(await this._addPerformanceEntries(),!!this.eventBuffer?.hasEvents&&(await _O(this),!!this.eventBuffer&&i===this.getSessionId()))try{this._updateInitialTimestampFromEventBuffer();const l=Date.now();if(l-this._context.initialTimestamp>this._options.maxReplayDuration+3e4)throw new Error("Session is too long, not sending replay");const s=this._popEventContext(),c=this.session.segmentId++;this._maybeSaveSession();const f=await this.eventBuffer.finish();await gv({replayId:i,recordingData:f,segmentId:c,eventContext:s,session:this.session,timestamp:l,onError:h=>this.handleException(h)})}catch(l){this.handleException(l),this.stop({reason:"sendReplay"});const s=Kt();if(s){const c=l instanceof Uf?"ratelimit_backoff":"send_error";s.recordDroppedEvent(c,"replay")}}}async _flush({force:i=!1}={}){if(!this._isEnabled&&!i)return;if(!this.checkAndHandleExpiredSession()){W&&$.error("Attempting to finish replay event after session expired.");return}if(!this.session)return;const l=this.session.started,c=Date.now()-l;this._debouncedFlush.cancel();const f=c<this._options.minReplayDuration,h=c>this._options.maxReplayDuration+5e3;if(f||h){W&&$.info(`Session duration (${Math.floor(c/1e3)}s) is too ${f?"short":"long"}, not sending replay.`),f&&this._debouncedFlush();return}const g=this.eventBuffer;g&&this.session.segmentId===0&&!g.hasCheckout&&W&&$.info("Flushing initial segment without checkout.");const m=!!this._flushLock;this._flushLock||(this._flushLock=this._runFlush());try{await this._flushLock}catch(y){this.handleException(y)}finally{this._flushLock=void 0,m&&this._debouncedFlush()}}_maybeSaveSession(){this.session&&this._options.stickySession&&Nf(this.session)}_onMutationHandler(i){const{ignoreMutations:l}=this._options._experiments;if(l?.length&&i.some(g=>{const m=AO(g.target),y=l.join(",");return m?.matches(y)}))return!1;const s=i.length,c=this._options.mutationLimit,f=this._options.mutationBreadcrumbLimit,h=c&&s>c;if(s>f||h){const g=en({category:"replay.mutations",data:{count:s,limit:h}});this._createCustomBreadcrumb(g)}return h?(this.stop({reason:"mutationLimit",forceFlush:this.recordingMode==="session"}),!1):!0}}function zr(n,i){return[...n,...i].join(",")}function UO({mask:n,unmask:i,block:l,unblock:s,ignore:c}){const f=["base","iframe[srcdoc]:not([src])"],h=zr(n,[".sentry-mask","[data-sentry-mask]"]),g=zr(i,[]);return{maskTextSelector:h,unmaskTextSelector:g,blockSelector:zr(l,[".sentry-block","[data-sentry-block]",...f]),unblockSelector:zr(s,[]),ignoreSelector:zr(c,[".sentry-ignore","[data-sentry-ignore]",'input[type="file"]'])}}function LO({el:n,key:i,maskAttributes:l,maskAllText:s,privacyOptions:c,value:f}){return!s||c.unmaskTextSelector&&n.matches(c.unmaskTextSelector)?f:l.includes(i)||i==="value"&&n.tagName==="INPUT"&&["submit","button"].includes(n.getAttribute("type")||"")?f.replace(/[\S]/g,"*"):f}const wg='img,image,svg,video,object,picture,embed,map,audio,link[rel="icon"],link[rel="apple-touch-icon"]',BO=["content-length","content-type","accept"];let Cg=!1;const HO=n=>new IO(n);class IO{constructor({flushMinDelay:i=cT,flushMaxDelay:l=fT,minReplayDuration:s=yT,maxReplayDuration:c=ug,stickySession:f=!0,useCompression:h=!0,workerUrl:g,_experiments:m={},maskAllText:y=!0,maskAllInputs:E=!0,blockAllMedia:_=!0,mutationBreadcrumbLimit:R=750,mutationLimit:w=1e4,slowClickTimeout:k=7e3,slowClickIgnoreSelectors:U=[],networkDetailAllowUrls:I=[],networkDetailDenyUrls:q=[],networkCaptureBodies:Z=!0,networkRequestHeaders:nt=[],networkResponseHeaders:et=[],mask:K=[],maskAttributes:G=["title","placeholder","aria-label"],unmask:P=[],block:F=[],unblock:B=[],ignore:Q=[],maskFn:dt,beforeAddRecordingEvent:ot,beforeErrorSampling:Lt,onError:It}={}){this.name="Replay";const Yt=UO({mask:K,unmask:P,block:F,unblock:B,ignore:Q});if(this._recordingOptions={maskAllInputs:E,maskAllText:y,maskInputOptions:{password:!0},maskTextFn:dt,maskInputFn:dt,maskAttributeFn:(A,z,L)=>LO({maskAttributes:G,maskAllText:y,privacyOptions:Yt,key:A,value:z,el:L}),...Yt,slimDOMOptions:"all",inlineStylesheet:!0,inlineImages:!1,collectFonts:!0,errorHandler:A=>{try{A.__rrweb__=!0}catch{}},recordCrossOriginIframes:!!m.recordCrossOriginIframes},this._initialOptions={flushMinDelay:i,flushMaxDelay:l,minReplayDuration:Math.min(s,vT),maxReplayDuration:Math.min(c,ug),stickySession:f,useCompression:h,workerUrl:g,blockAllMedia:_,maskAllInputs:E,maskAllText:y,mutationBreadcrumbLimit:R,mutationLimit:w,slowClickTimeout:k,slowClickIgnoreSelectors:U,networkDetailAllowUrls:I,networkDetailDenyUrls:q,networkCaptureBodies:Z,networkRequestHeaders:xg(nt),networkResponseHeaders:xg(et),beforeAddRecordingEvent:ot,beforeErrorSampling:Lt,onError:It,_experiments:m},this._initialOptions.blockAllMedia&&(this._recordingOptions.blockSelector=this._recordingOptions.blockSelector?`${this._recordingOptions.blockSelector},${wg}`:wg),this._isInitialized&&eg())throw new Error("Multiple Sentry Session Replay instances are not supported");this._isInitialized=!0}get _isInitialized(){return Cg}set _isInitialized(i){Cg=i}afterAllSetup(i){!eg()||this._replay||(this._setup(i),this._initialize(i))}start(){this._replay&&this._replay.start()}startBuffering(){this._replay&&this._replay.startBuffering()}stop(){return this._replay?this._replay.stop({forceFlush:this._replay.recordingMode==="session"}):Promise.resolve()}flush(i){return this._replay?this._replay.isEnabled()?this._replay.sendBufferedReplayOrFlush(i):(this._replay.start(),Promise.resolve()):Promise.resolve()}getReplayId(){if(this._replay?.isEnabled())return this._replay.getSessionId()}getRecordingMode(){if(this._replay?.isEnabled())return this._replay.recordingMode}_initialize(i){this._replay&&(this._maybeLoadFromReplayCanvasIntegration(i),this._replay.initializeSampling())}_setup(i){const l=qO(this._initialOptions,i);this._replay=new zO({options:l,recordingOptions:this._recordingOptions})}_maybeLoadFromReplayCanvasIntegration(i){try{const l=i.getIntegrationByName("ReplayCanvas");if(!l)return;this._replay._canvas=l.getOptions()}catch{}}}function qO(n,i){const l=i.getOptions(),s={sessionSampleRate:0,errorSampleRate:0,...n},c=Uc(l.replaysSessionSampleRate),f=Uc(l.replaysOnErrorSampleRate);return c==null&&f==null&&Zr(()=>{console.warn("Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.")}),c!=null&&(s.sessionSampleRate=c),f!=null&&(s.errorSampleRate=f),s}function xg(n){return[...BO,...n.map(i=>i.toLowerCase())]}const Ng=1e6,As=String(0),YO="main",Xs=kt.navigator;let vv="",Sv="",_v="",af=Xs?.userAgent||"",Ev="";const GO=Xs?.language||Xs?.languages?.[0]||"";function jO(n){return typeof n=="object"&&n!==null&&"getHighEntropyValues"in n}const kg=Xs?.userAgentData;jO(kg)&&kg.getHighEntropyValues(["architecture","model","platform","platformVersion","fullVersionList"]).then(n=>{if(vv=n.platform||"",_v=n.architecture||"",Ev=n.model||"",Sv=n.platformVersion||"",n.fullVersionList?.length){const i=n.fullVersionList[n.fullVersionList.length-1];af=`${i.brand} ${i.version}`}}).catch(n=>{});function XO(n){return!("thread_metadata"in n)}function VO(n){return XO(n)?KO(n):n}function QO(n){const i=n.contexts?.trace?.trace_id;return typeof i=="string"&&i.length!==32&&Ut&&bt.log(`[Profiling] Invalid traceId: ${i} on profiled event`),typeof i!="string"?"":i}function ZO(n,i,l,s){if(s.type!=="transaction")throw new TypeError("Profiling events may only be attached to transactions, this should never occur.");if(l==null)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${l} instead.`);const c=QO(s),f=VO(l),h=i||(typeof s.start_timestamp=="number"?s.start_timestamp*1e3:En()*1e3),g=typeof s.timestamp=="number"?s.timestamp*1e3:En()*1e3;return{event_id:n,timestamp:new Date(h).toISOString(),platform:"javascript",version:"1",release:s.release||"",environment:s.environment||qg,runtime:{name:"javascript",version:kt.navigator.userAgent},os:{name:vv,version:Sv,build_number:af},device:{locale:GO,model:Ev,manufacturer:af,architecture:_v,is_emulator:!1},debug_meta:{images:WO(l.resources)},profile:f,transactions:[{name:s.transaction||"",id:s.event_id||Ra(),trace_id:c,active_thread_id:As,relative_start_ns:"0",relative_end_ns:((g-h)*1e6).toFixed(0)}]}}function bv(n){return ba(n).op==="pageload"}function KO(n){let i,l=0;const s={samples:[],stacks:[],frames:[],thread_metadata:{[As]:{name:YO}}},c=n.samples[0];if(!c)return s;const f=c.timestamp,h=Kg(),g=typeof performance.timeOrigin=="number"?performance.timeOrigin:h||0,m=g-(h||g);return n.samples.forEach((y,E)=>{if(y.stackId===void 0){i===void 0&&(i=l,s.stacks[i]=[],l++),s.samples[E]={elapsed_since_start_ns:((y.timestamp+m-f)*Ng).toFixed(0),stack_id:i,thread_id:As};return}let _=n.stacks[y.stackId];const R=[];for(;_;){R.push(_.frameId);const k=n.frames[_.frameId];k&&s.frames[_.frameId]===void 0&&(s.frames[_.frameId]={function:k.name,abs_path:typeof k.resourceId=="number"?n.resources[k.resourceId]:void 0,lineno:k.line,colno:k.column}),_=_.parentId===void 0?void 0:n.stacks[_.parentId]}const w={elapsed_since_start_ns:((y.timestamp+m-f)*Ng).toFixed(0),stack_id:l,thread_id:As};s.stacks[l]=R,s.samples[E]=w,l++}),s}function FO(n,i){if(!i.length)return n;for(const l of i)n[1].push([{type:"profile"},l]);return n}function JO(n){const i=[];return Lc(n,(l,s)=>{if(s==="transaction")for(let c=1;c<l.length;c++){const f=l[c];f?.contexts&&f.contexts.profile&&f.contexts.profile.profile_id&&i.push(l[c])}}),i}function WO(n){const s=Kt()?.getOptions()?.stackParser;return s?O_(s,n):[]}function $O(n){return typeof n!="number"&&typeof n!="boolean"||typeof n=="number"&&isNaN(n)?(Ut&&bt.warn(`[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(n)} of type ${JSON.stringify(typeof n)}.`),!1):n===!0||n===!1?!0:n<0||n>1?(Ut&&bt.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${n}.`),!1):!0}function PO(n){return n.samples.length<2?(Ut&&bt.log("[Profiling] Discarding profile because it contains less than 2 samples"),!1):n.frames.length?!0:(Ut&&bt.log("[Profiling] Discarding profile because it contains no frames"),!1)}let Tv=!1;const Mv=3e4;function tA(n){return typeof n=="function"}function eA(){const n=kt.Profiler;if(!tA(n)){Ut&&bt.log("[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object.");return}const i=10,l=Math.floor(Mv/i);try{return new n({sampleInterval:i,maxBufferSize:l})}catch{Ut&&(bt.log("[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header."),bt.log("[Profiling] Disabling profiling for current user session.")),Tv=!0}}function zg(n){if(Tv)return Ut&&bt.log("[Profiling] Profiling has been disabled for the duration of the current user session."),!1;if(!n.isRecording())return Ut&&bt.log("[Profiling] Discarding profile because transaction was not sampled."),!1;const l=Kt()?.getOptions();if(!l)return Ut&&bt.log("[Profiling] Profiling disabled, no options found."),!1;const s=l.profilesSampleRate;return $O(s)?s?(s===!0?!0:Math.random()<s)?!0:(Ut&&bt.log(`[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(s)})`),!1):(Ut&&bt.log("[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0"),!1):(Ut&&bt.warn("[Profiling] Discarding profile because of invalid sample rate."),!1)}function nA(n,i,l,s){return PO(l)?ZO(n,i,l,s):null}const Ma=new Map;function aA(){return Ma.size}function iA(n){const i=Ma.get(n);return i&&Ma.delete(n),i}function rA(n,i){if(Ma.set(n,i),Ma.size>30){const l=Ma.keys().next().value;Ma.delete(l)}}function Ug(n){let i;bv(n)&&(i=En()*1e3);const l=eA();if(!l)return;Ut&&bt.log(`[Profiling] started profiling span: ${ba(n).description}`);const s=Ra();wi().setContext("profile",{profile_id:s,start_timestamp:i});async function c(){if(n&&l)return l.stop().then(m=>{if(f&&(kt.clearTimeout(f),f=void 0),Ut&&bt.log(`[Profiling] stopped profiling of span: ${ba(n).description}`),!m){Ut&&bt.log(`[Profiling] profiler returned null profile for: ${ba(n).description}`,"this may indicate an overlapping span or a call to stopProfiling with a profile title that was never started");return}rA(s,m)}).catch(m=>{Ut&&bt.log("[Profiling] error while stopping profiler:",m)})}let f=kt.setTimeout(()=>{Ut&&bt.log("[Profiling] max profile duration elapsed, stopping profiling for:",ba(n).description),c()},Mv);const h=n.end.bind(n);function g(){return n?(c().then(()=>{h()},()=>{h()}),n):h()}n.end=g}const lA="BrowserProfiling",sA=()=>({name:lA,setup(n){const i=ff(),l=i&&zc(i);l&&bv(l)&&zg(l)&&Ug(l),n.on("spanStart",s=>{s===zc(s)&&zg(s)&&Ug(s)}),n.on("beforeEnvelope",s=>{if(!aA())return;const c=JO(s);if(!c.length)return;const f=[];for(const h of c){const g=h?.contexts,m=g?.profile?.profile_id,y=g?.profile?.start_timestamp;if(typeof m!="string"){Ut&&bt.log("[Profiling] cannot find profile for a span without a profile context");continue}if(!m){Ut&&bt.log("[Profiling] cannot find profile for a span without a profile context");continue}g?.profile&&delete g.profile;const E=iA(m);if(!E){Ut&&bt.log(`[Profiling] Could not retrieve profile for span: ${m}`);continue}const _=nA(m,y,E,h);_&&f.push(_)}FO(s,f)})}}),uA=sA,oA="BrowserTracing";function cA(n){n.integrations&&Array.isArray(n.integrations)&&n.integrations.some(s=>s.name===oA)&&Zr(()=>{console.warn("browserTracingIntegration is not fully compatible with @sentry/react-router. Please use reactRouterTracingIntegration instead.")}),iy(n,"react-router",["react-router","browser"]);const i=lT(n);return A_("runtime","browser"),i}function fA(){ENV.EPICSHOP_IS_PUBLISHED&&cA({dsn:ENV.SENTRY_DSN,environment:ENV.MODE,tunnel:"/resources/lookout",beforeSend(n){if(n.request?.url){const i=new URL(n.request.url);if(i.protocol==="chrome-extension:"||i.protocol==="moz-extension:")return null}return n},integrations:[HO(),uA()],tracesSampleRate:1,replaysSessionSampleRate:.1,replaysOnErrorSampleRate:1})}fA();N_.hydrateRoot(document,Y0.jsx(L_,{}));
55
- //# sourceMappingURL=entry.client-C-f7Acxq.js.map
55
+ //# sourceMappingURL=entry.client-Bep3EH-f.js.map