@workflow/web-shared 5.0.0-beta.37 → 5.0.0-beta.39

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 (313) hide show
  1. package/README.md +3 -3
  2. package/dist/components/event-list-view.d.ts.map +1 -1
  3. package/dist/components/event-list-view.js +10 -10
  4. package/dist/components/index.d.ts +4 -5
  5. package/dist/components/index.d.ts.map +1 -1
  6. package/dist/components/index.js +4 -5
  7. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
  8. package/dist/components/sidebar/attribute-panel.js +32 -8
  9. package/dist/components/sidebar/attributes-block.js +3 -3
  10. package/dist/components/sidebar/copyable-data-block.js +2 -2
  11. package/dist/components/sidebar/entity-detail-panel.js +3 -3
  12. package/dist/components/sidebar/events-list.js +2 -2
  13. package/dist/components/stream-viewer-skeleton.d.ts +2 -0
  14. package/dist/components/stream-viewer-skeleton.d.ts.map +1 -0
  15. package/dist/components/stream-viewer-skeleton.js +12 -0
  16. package/dist/components/stream-viewer.d.ts +1 -1
  17. package/dist/components/stream-viewer.d.ts.map +1 -1
  18. package/dist/components/stream-viewer.js +9 -26
  19. package/dist/components/trace-viewer/components/copy-button.d.ts.map +1 -0
  20. package/dist/components/trace-viewer/components/copy-button.js +27 -0
  21. package/dist/components/trace-viewer/components/detail-panel-width.d.ts.map +1 -0
  22. package/dist/components/trace-viewer/components/detail-panel-width.js +67 -0
  23. package/dist/components/trace-viewer/components/detail-panel.d.ts.map +1 -0
  24. package/dist/components/trace-viewer/components/detail-panel.js +122 -0
  25. package/dist/components/trace-viewer/components/draggable-border.d.ts.map +1 -0
  26. package/dist/components/trace-viewer/components/draggable-border.js +140 -0
  27. package/dist/components/trace-viewer/components/event-list.d.ts.map +1 -0
  28. package/dist/components/trace-viewer/components/event-list.js +47 -0
  29. package/dist/components/trace-viewer/components/middle-truncate/copy-selection.d.ts.map +1 -0
  30. package/dist/components/trace-viewer/components/middle-truncate/copy-selection.js +54 -0
  31. package/dist/components/trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +1 -0
  32. package/dist/components/trace-viewer/components/middle-truncate/middle-truncate.js +81 -0
  33. package/dist/components/trace-viewer/components/middle-truncate/truncate.d.ts.map +1 -0
  34. package/dist/components/trace-viewer/components/middle-truncate/truncate.js +101 -0
  35. package/dist/components/trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +1 -0
  36. package/dist/components/trace-viewer/components/middle-truncate/use-middle-truncate.js +114 -0
  37. package/dist/components/trace-viewer/components/minimap.d.ts.map +1 -0
  38. package/dist/components/trace-viewer/components/minimap.js +337 -0
  39. package/dist/components/trace-viewer/components/pane-constants.d.ts.map +1 -0
  40. package/dist/components/trace-viewer/components/pane-constants.js +16 -0
  41. package/dist/components/trace-viewer/components/span-markers.d.ts.map +1 -0
  42. package/dist/components/trace-viewer/components/span-markers.js +85 -0
  43. package/dist/components/trace-viewer/components/split-pane.d.ts.map +1 -0
  44. package/dist/components/trace-viewer/components/split-pane.js +41 -0
  45. package/dist/components/trace-viewer/components/timeline.d.ts.map +1 -0
  46. package/dist/components/trace-viewer/components/timeline.js +321 -0
  47. package/dist/components/trace-viewer/components/trace-shortcut-helper.d.ts.map +1 -0
  48. package/dist/components/trace-viewer/components/trace-shortcut-helper.js +55 -0
  49. package/dist/components/trace-viewer/components/trace-viewer-skeleton.d.ts.map +1 -0
  50. package/dist/components/trace-viewer/components/trace-viewer-skeleton.js +26 -0
  51. package/dist/components/trace-viewer/components/use-element-width.d.ts.map +1 -0
  52. package/dist/components/trace-viewer/components/use-element-width.js +25 -0
  53. package/dist/components/trace-viewer/components/use-row-window.d.ts.map +1 -0
  54. package/dist/components/trace-viewer/components/use-row-window.js +107 -0
  55. package/dist/components/trace-viewer/context.d.ts +14 -182
  56. package/dist/components/trace-viewer/context.d.ts.map +1 -1
  57. package/dist/components/trace-viewer/context.js +44 -351
  58. package/dist/components/trace-viewer/icons.d.ts.map +1 -0
  59. package/dist/components/trace-viewer/icons.js +15 -0
  60. package/dist/components/trace-viewer/search.d.ts.map +1 -0
  61. package/dist/components/trace-viewer/search.js +134 -0
  62. package/dist/components/trace-viewer/trace-viewer.d.ts +7 -28
  63. package/dist/components/trace-viewer/trace-viewer.d.ts.map +1 -1
  64. package/dist/components/trace-viewer/trace-viewer.js +306 -356
  65. package/dist/components/trace-viewer/types.d.ts +2 -211
  66. package/dist/components/trace-viewer/types.d.ts.map +1 -1
  67. package/dist/components/trace-viewer/types.js +1 -1
  68. package/dist/components/trace-viewer/utils.d.ts.map +1 -0
  69. package/dist/components/trace-viewer/utils.js +430 -0
  70. package/dist/components/{trace-viewer-new.d.ts → trace-viewer.d.ts} +3 -3
  71. package/dist/components/trace-viewer.d.ts.map +1 -0
  72. package/dist/components/trace-viewer.js +21 -0
  73. package/dist/components/ui/alert.js +2 -2
  74. package/dist/components/ui/button.d.ts +1 -1
  75. package/dist/components/ui/button.d.ts.map +1 -1
  76. package/dist/components/ui/button.js +3 -3
  77. package/dist/components/ui/card.d.ts.map +1 -1
  78. package/dist/components/ui/card.js +3 -3
  79. package/dist/components/ui/error-card.js +2 -2
  80. package/dist/components/ui/error-stack-block.js +4 -4
  81. package/dist/components/ui/kbd.js +3 -3
  82. package/dist/components/ui/timestamp-tooltip.js +3 -3
  83. package/dist/components/workflow-traces/trace-span-construction.d.ts +1 -1
  84. package/dist/components/workflow-traces/trace-span-construction.js +1 -1
  85. package/dist/lib/trace-builder.d.ts +1 -1
  86. package/dist/lib/trace-builder.d.ts.map +1 -1
  87. package/dist/lib/trace-builder.js +1 -1
  88. package/dist/lib/trace-types.d.ts +54 -0
  89. package/dist/lib/trace-types.d.ts.map +1 -0
  90. package/dist/lib/trace-types.js +2 -0
  91. package/package.json +6 -6
  92. package/src/components/event-list-view.tsx +12 -9
  93. package/src/components/index.ts +4 -5
  94. package/src/components/sidebar/attribute-panel.tsx +46 -8
  95. package/src/components/sidebar/attributes-block.tsx +2 -2
  96. package/src/components/sidebar/copyable-data-block.tsx +1 -1
  97. package/src/components/sidebar/entity-detail-panel.tsx +3 -3
  98. package/src/components/sidebar/events-list.tsx +1 -1
  99. package/src/components/stream-viewer-skeleton.tsx +34 -0
  100. package/src/components/stream-viewer.tsx +34 -106
  101. package/src/components/{new-trace-viewer → trace-viewer}/components/event-list.tsx +1 -1
  102. package/src/components/{new-trace-viewer → trace-viewer}/components/minimap.tsx +1 -4
  103. package/src/components/{new-trace-viewer → trace-viewer}/components/timeline.tsx +2 -5
  104. package/src/components/{new-trace-viewer → trace-viewer}/components/trace-shortcut-helper.tsx +1 -1
  105. package/src/components/trace-viewer/context.tsx +63 -656
  106. package/src/components/trace-viewer/trace-viewer.tsx +563 -531
  107. package/src/components/trace-viewer/types.ts +2 -234
  108. package/src/components/{new-trace-viewer → trace-viewer}/utils.ts +2 -2
  109. package/src/components/{trace-viewer-new.tsx → trace-viewer.tsx} +5 -5
  110. package/src/components/ui/alert.tsx +1 -1
  111. package/src/components/ui/button.tsx +3 -3
  112. package/src/components/ui/card.tsx +2 -9
  113. package/src/components/ui/error-card.tsx +3 -3
  114. package/src/components/ui/error-stack-block.tsx +3 -3
  115. package/src/components/ui/kbd.tsx +2 -2
  116. package/src/components/ui/timestamp-tooltip.tsx +4 -4
  117. package/src/components/workflow-traces/trace-span-construction.ts +1 -1
  118. package/src/lib/trace-builder.ts +1 -1
  119. package/src/lib/trace-types.ts +56 -0
  120. package/dist/components/new-trace-viewer/components/copy-button.d.ts.map +0 -1
  121. package/dist/components/new-trace-viewer/components/copy-button.js +0 -27
  122. package/dist/components/new-trace-viewer/components/detail-panel-width.d.ts.map +0 -1
  123. package/dist/components/new-trace-viewer/components/detail-panel-width.js +0 -67
  124. package/dist/components/new-trace-viewer/components/detail-panel.d.ts.map +0 -1
  125. package/dist/components/new-trace-viewer/components/detail-panel.js +0 -122
  126. package/dist/components/new-trace-viewer/components/draggable-border.d.ts.map +0 -1
  127. package/dist/components/new-trace-viewer/components/draggable-border.js +0 -140
  128. package/dist/components/new-trace-viewer/components/event-list.d.ts.map +0 -1
  129. package/dist/components/new-trace-viewer/components/event-list.js +0 -47
  130. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.d.ts.map +0 -1
  131. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.js +0 -54
  132. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +0 -1
  133. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.js +0 -81
  134. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts.map +0 -1
  135. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js +0 -101
  136. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +0 -1
  137. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.js +0 -114
  138. package/dist/components/new-trace-viewer/components/minimap.d.ts.map +0 -1
  139. package/dist/components/new-trace-viewer/components/minimap.js +0 -337
  140. package/dist/components/new-trace-viewer/components/pane-constants.d.ts.map +0 -1
  141. package/dist/components/new-trace-viewer/components/pane-constants.js +0 -16
  142. package/dist/components/new-trace-viewer/components/span-markers.d.ts.map +0 -1
  143. package/dist/components/new-trace-viewer/components/span-markers.js +0 -85
  144. package/dist/components/new-trace-viewer/components/split-pane.d.ts.map +0 -1
  145. package/dist/components/new-trace-viewer/components/split-pane.js +0 -41
  146. package/dist/components/new-trace-viewer/components/timeline.d.ts.map +0 -1
  147. package/dist/components/new-trace-viewer/components/timeline.js +0 -321
  148. package/dist/components/new-trace-viewer/components/trace-shortcut-helper.d.ts.map +0 -1
  149. package/dist/components/new-trace-viewer/components/trace-shortcut-helper.js +0 -55
  150. package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.d.ts.map +0 -1
  151. package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.js +0 -26
  152. package/dist/components/new-trace-viewer/components/use-element-width.d.ts.map +0 -1
  153. package/dist/components/new-trace-viewer/components/use-element-width.js +0 -25
  154. package/dist/components/new-trace-viewer/components/use-row-window.d.ts.map +0 -1
  155. package/dist/components/new-trace-viewer/components/use-row-window.js +0 -107
  156. package/dist/components/new-trace-viewer/context.d.ts +0 -17
  157. package/dist/components/new-trace-viewer/context.d.ts.map +0 -1
  158. package/dist/components/new-trace-viewer/context.js +0 -48
  159. package/dist/components/new-trace-viewer/icons.d.ts.map +0 -1
  160. package/dist/components/new-trace-viewer/icons.js +0 -15
  161. package/dist/components/new-trace-viewer/search.d.ts.map +0 -1
  162. package/dist/components/new-trace-viewer/search.js +0 -134
  163. package/dist/components/new-trace-viewer/trace-viewer.d.ts +0 -11
  164. package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +0 -1
  165. package/dist/components/new-trace-viewer/trace-viewer.js +0 -336
  166. package/dist/components/new-trace-viewer/types.d.ts +0 -3
  167. package/dist/components/new-trace-viewer/types.d.ts.map +0 -1
  168. package/dist/components/new-trace-viewer/types.js +0 -2
  169. package/dist/components/new-trace-viewer/utils.d.ts.map +0 -1
  170. package/dist/components/new-trace-viewer/utils.js +0 -430
  171. package/dist/components/run-trace-view.d.ts +0 -23
  172. package/dist/components/run-trace-view.d.ts.map +0 -1
  173. package/dist/components/run-trace-view.js +0 -11
  174. package/dist/components/trace-viewer/components/map.d.ts +0 -8
  175. package/dist/components/trace-viewer/components/map.d.ts.map +0 -1
  176. package/dist/components/trace-viewer/components/map.js +0 -162
  177. package/dist/components/trace-viewer/components/markers.d.ts +0 -23
  178. package/dist/components/trace-viewer/components/markers.d.ts.map +0 -1
  179. package/dist/components/trace-viewer/components/markers.js +0 -416
  180. package/dist/components/trace-viewer/components/node.d.ts +0 -35
  181. package/dist/components/trace-viewer/components/node.d.ts.map +0 -1
  182. package/dist/components/trace-viewer/components/node.js +0 -286
  183. package/dist/components/trace-viewer/components/search-input.d.ts +0 -9
  184. package/dist/components/trace-viewer/components/search-input.d.ts.map +0 -1
  185. package/dist/components/trace-viewer/components/search-input.js +0 -9
  186. package/dist/components/trace-viewer/components/search.d.ts +0 -3
  187. package/dist/components/trace-viewer/components/search.d.ts.map +0 -1
  188. package/dist/components/trace-viewer/components/search.js +0 -25
  189. package/dist/components/trace-viewer/components/span-content.d.ts +0 -19
  190. package/dist/components/trace-viewer/components/span-content.d.ts.map +0 -1
  191. package/dist/components/trace-viewer/components/span-content.js +0 -137
  192. package/dist/components/trace-viewer/components/span-detail-panel.d.ts +0 -10
  193. package/dist/components/trace-viewer/components/span-detail-panel.d.ts.map +0 -1
  194. package/dist/components/trace-viewer/components/span-detail-panel.js +0 -285
  195. package/dist/components/trace-viewer/components/span-segments.d.ts +0 -50
  196. package/dist/components/trace-viewer/components/span-segments.d.ts.map +0 -1
  197. package/dist/components/trace-viewer/components/span-segments.js +0 -445
  198. package/dist/components/trace-viewer/components/span-strategies.d.ts +0 -46
  199. package/dist/components/trace-viewer/components/span-strategies.d.ts.map +0 -1
  200. package/dist/components/trace-viewer/components/span-strategies.js +0 -108
  201. package/dist/components/trace-viewer/components/ui.d.ts +0 -28
  202. package/dist/components/trace-viewer/components/ui.d.ts.map +0 -1
  203. package/dist/components/trace-viewer/components/ui.js +0 -39
  204. package/dist/components/trace-viewer/components/zoom-button.d.ts +0 -3
  205. package/dist/components/trace-viewer/components/zoom-button.d.ts.map +0 -1
  206. package/dist/components/trace-viewer/components/zoom-button.js +0 -29
  207. package/dist/components/trace-viewer/components/zoom-icons.d.ts +0 -11
  208. package/dist/components/trace-viewer/components/zoom-icons.d.ts.map +0 -1
  209. package/dist/components/trace-viewer/components/zoom-icons.js +0 -11
  210. package/dist/components/trace-viewer/index.d.ts +0 -5
  211. package/dist/components/trace-viewer/index.d.ts.map +0 -1
  212. package/dist/components/trace-viewer/index.js +0 -4
  213. package/dist/components/trace-viewer/trace-viewer.module.css +0 -1465
  214. package/dist/components/trace-viewer/util/constants.d.ts +0 -9
  215. package/dist/components/trace-viewer/util/constants.d.ts.map +0 -1
  216. package/dist/components/trace-viewer/util/constants.js +0 -9
  217. package/dist/components/trace-viewer/util/scrollbar-width.d.ts +0 -2
  218. package/dist/components/trace-viewer/util/scrollbar-width.d.ts.map +0 -1
  219. package/dist/components/trace-viewer/util/scrollbar-width.js +0 -14
  220. package/dist/components/trace-viewer/util/tree.d.ts +0 -13
  221. package/dist/components/trace-viewer/util/tree.d.ts.map +0 -1
  222. package/dist/components/trace-viewer/util/tree.js +0 -227
  223. package/dist/components/trace-viewer/util/use-immediate-style.d.ts +0 -15
  224. package/dist/components/trace-viewer/util/use-immediate-style.d.ts.map +0 -1
  225. package/dist/components/trace-viewer/util/use-immediate-style.js +0 -23
  226. package/dist/components/trace-viewer/util/use-streaming-spans.d.ts +0 -8
  227. package/dist/components/trace-viewer/util/use-streaming-spans.d.ts.map +0 -1
  228. package/dist/components/trace-viewer/util/use-streaming-spans.js +0 -345
  229. package/dist/components/trace-viewer/util/use-trackpad-zoom.d.ts +0 -6
  230. package/dist/components/trace-viewer/util/use-trackpad-zoom.d.ts.map +0 -1
  231. package/dist/components/trace-viewer/util/use-trackpad-zoom.js +0 -39
  232. package/dist/components/trace-viewer/worker.d.ts +0 -2
  233. package/dist/components/trace-viewer/worker.d.ts.map +0 -1
  234. package/dist/components/trace-viewer/worker.js +0 -109
  235. package/dist/components/trace-viewer-new.d.ts.map +0 -1
  236. package/dist/components/trace-viewer-new.js +0 -21
  237. package/dist/components/workflow-trace-view.d.ts +0 -39
  238. package/dist/components/workflow-trace-view.d.ts.map +0 -1
  239. package/dist/components/workflow-trace-view.js +0 -690
  240. package/dist/components/workflow-traces/trace-colors.d.ts +0 -15
  241. package/dist/components/workflow-traces/trace-colors.d.ts.map +0 -1
  242. package/dist/components/workflow-traces/trace-colors.js +0 -86
  243. package/src/components/new-trace-viewer/context.tsx +0 -93
  244. package/src/components/new-trace-viewer/trace-viewer.tsx +0 -632
  245. package/src/components/new-trace-viewer/types.ts +0 -2
  246. package/src/components/run-trace-view.tsx +0 -80
  247. package/src/components/trace-viewer/components/map.tsx +0 -226
  248. package/src/components/trace-viewer/components/markers.tsx +0 -612
  249. package/src/components/trace-viewer/components/node.tsx +0 -506
  250. package/src/components/trace-viewer/components/search-input.tsx +0 -52
  251. package/src/components/trace-viewer/components/search.tsx +0 -47
  252. package/src/components/trace-viewer/components/span-content.tsx +0 -247
  253. package/src/components/trace-viewer/components/span-detail-panel.tsx +0 -655
  254. package/src/components/trace-viewer/components/span-segments.ts +0 -585
  255. package/src/components/trace-viewer/components/span-strategies.ts +0 -205
  256. package/src/components/trace-viewer/components/ui.tsx +0 -156
  257. package/src/components/trace-viewer/components/zoom-button.tsx +0 -61
  258. package/src/components/trace-viewer/components/zoom-icons.tsx +0 -65
  259. package/src/components/trace-viewer/index.tsx +0 -4
  260. package/src/components/trace-viewer/trace-viewer.module.css +0 -1465
  261. package/src/components/trace-viewer/util/constants.ts +0 -8
  262. package/src/components/trace-viewer/util/scrollbar-width.ts +0 -13
  263. package/src/components/trace-viewer/util/tree.ts +0 -277
  264. package/src/components/trace-viewer/util/use-immediate-style.ts +0 -38
  265. package/src/components/trace-viewer/util/use-streaming-spans.ts +0 -426
  266. package/src/components/trace-viewer/util/use-trackpad-zoom.tsx +0 -51
  267. package/src/components/trace-viewer/worker.ts +0 -131
  268. package/src/components/workflow-trace-view.tsx +0 -1166
  269. package/src/components/workflow-traces/trace-colors.ts +0 -112
  270. package/dist/components/{new-trace-viewer → trace-viewer}/components/copy-button.d.ts +0 -0
  271. package/dist/components/{new-trace-viewer → trace-viewer}/components/detail-panel-width.d.ts +0 -0
  272. package/dist/components/{new-trace-viewer → trace-viewer}/components/detail-panel.d.ts +0 -0
  273. package/dist/components/{new-trace-viewer → trace-viewer}/components/draggable-border.d.ts +0 -0
  274. package/dist/components/{new-trace-viewer → trace-viewer}/components/event-list.d.ts +0 -0
  275. package/dist/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/copy-selection.d.ts +0 -0
  276. package/dist/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/middle-truncate.d.ts +0 -0
  277. package/dist/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/truncate.d.ts +0 -0
  278. package/dist/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/use-middle-truncate.d.ts +0 -0
  279. package/dist/components/{new-trace-viewer → trace-viewer}/components/minimap.d.ts +0 -0
  280. package/dist/components/{new-trace-viewer → trace-viewer}/components/pane-constants.d.ts +0 -0
  281. package/dist/components/{new-trace-viewer → trace-viewer}/components/span-markers.d.ts +0 -0
  282. package/dist/components/{new-trace-viewer → trace-viewer}/components/split-pane.d.ts +0 -0
  283. package/dist/components/{new-trace-viewer → trace-viewer}/components/timeline.d.ts +0 -0
  284. package/dist/components/{new-trace-viewer → trace-viewer}/components/timeline.module.css +0 -0
  285. package/dist/components/{new-trace-viewer → trace-viewer}/components/trace-shortcut-helper.d.ts +0 -0
  286. package/dist/components/{new-trace-viewer → trace-viewer}/components/trace-shortcut-helper.module.css +0 -0
  287. package/dist/components/{new-trace-viewer → trace-viewer}/components/trace-viewer-skeleton.d.ts +0 -0
  288. package/dist/components/{new-trace-viewer → trace-viewer}/components/use-element-width.d.ts +0 -0
  289. package/dist/components/{new-trace-viewer → trace-viewer}/components/use-row-window.d.ts +0 -0
  290. package/dist/components/{new-trace-viewer → trace-viewer}/icons.d.ts +0 -0
  291. package/dist/components/{new-trace-viewer → trace-viewer}/search.d.ts +0 -0
  292. package/dist/components/{new-trace-viewer → trace-viewer}/utils.d.ts +0 -0
  293. package/src/components/{new-trace-viewer → trace-viewer}/components/copy-button.tsx +0 -0
  294. package/src/components/{new-trace-viewer → trace-viewer}/components/detail-panel-width.test.ts +0 -0
  295. package/src/components/{new-trace-viewer → trace-viewer}/components/detail-panel-width.ts +0 -0
  296. package/src/components/{new-trace-viewer → trace-viewer}/components/detail-panel.tsx +0 -0
  297. package/src/components/{new-trace-viewer → trace-viewer}/components/draggable-border.tsx +0 -0
  298. package/src/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/copy-selection.ts +0 -0
  299. package/src/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/middle-truncate.tsx +1 -1
  300. /package/src/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/truncate.ts +0 -0
  301. /package/src/components/{new-trace-viewer → trace-viewer}/components/middle-truncate/use-middle-truncate.ts +0 -0
  302. /package/src/components/{new-trace-viewer → trace-viewer}/components/pane-constants.ts +0 -0
  303. /package/src/components/{new-trace-viewer → trace-viewer}/components/span-markers.tsx +0 -0
  304. /package/src/components/{new-trace-viewer → trace-viewer}/components/split-pane.tsx +0 -0
  305. /package/src/components/{new-trace-viewer → trace-viewer}/components/timeline.module.css +0 -0
  306. /package/src/components/{new-trace-viewer → trace-viewer}/components/trace-shortcut-helper.module.css +0 -0
  307. /package/src/components/{new-trace-viewer → trace-viewer}/components/trace-viewer-skeleton.tsx +0 -0
  308. /package/src/components/{new-trace-viewer → trace-viewer}/components/use-element-width.ts +0 -0
  309. /package/src/components/{new-trace-viewer → trace-viewer}/components/use-row-window.ts +0 -0
  310. /package/src/components/{new-trace-viewer → trace-viewer}/icons.tsx +0 -0
  311. /package/src/components/{new-trace-viewer → trace-viewer}/search.ts +0 -0
  312. /package/src/components/{new-trace-viewer → trace-viewer}/utils.test.ts +0 -0
  313. /package/src/{components/trace-viewer/modules.d.ts → modules.d.ts} +0 -0
@@ -1,9 +0,0 @@
1
- export declare const SEARCH_HEIGHT = 40;
2
- export declare const SEARCH_GAP = 8;
3
- export declare const MAP_HEIGHT = 56;
4
- export declare const TIMELINE_PADDING = 8;
5
- export declare const ROW_PADDING = 2;
6
- export declare const ROW_HEIGHT = 24;
7
- export declare const MARKER_HEIGHT = 24;
8
- export declare const MARKER_NOTCH_HEIGHT = 8;
9
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,mBAAmB,IAAI,CAAC"}
@@ -1,9 +0,0 @@
1
- export const SEARCH_HEIGHT = 40;
2
- export const SEARCH_GAP = 8;
3
- export const MAP_HEIGHT = 56;
4
- export const TIMELINE_PADDING = 8;
5
- export const ROW_PADDING = 2;
6
- export const ROW_HEIGHT = 24;
7
- export const MARKER_HEIGHT = 24;
8
- export const MARKER_NOTCH_HEIGHT = 8;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL3V0aWwvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDN0IsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0VBUkNIX0hFSUdIVCA9IDQwO1xuZXhwb3J0IGNvbnN0IFNFQVJDSF9HQVAgPSA4O1xuZXhwb3J0IGNvbnN0IE1BUF9IRUlHSFQgPSA1NjtcbmV4cG9ydCBjb25zdCBUSU1FTElORV9QQURESU5HID0gODtcbmV4cG9ydCBjb25zdCBST1dfUEFERElORyA9IDI7XG5leHBvcnQgY29uc3QgUk9XX0hFSUdIVCA9IDI0O1xuZXhwb3J0IGNvbnN0IE1BUktFUl9IRUlHSFQgPSAyNDtcbmV4cG9ydCBjb25zdCBNQVJLRVJfTk9UQ0hfSEVJR0hUID0gODtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export declare const detectScrollbarWidth: () => number;
2
- //# sourceMappingURL=scrollbar-width.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrollbar-width.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/scrollbar-width.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,QAAO,MAYvC,CAAC"}
@@ -1,14 +0,0 @@
1
- export const detectScrollbarWidth = () => {
2
- if (!('document' in globalThis))
3
- return 0;
4
- const size = 400;
5
- const container = document.createElement('div');
6
- container.style.width = `${size}px`;
7
- container.style.height = `${size}px`;
8
- container.style.overflow = 'scroll';
9
- document.body.appendChild(container);
10
- const scrollbarWidth = size - container.scrollWidth;
11
- container.remove();
12
- return scrollbarWidth;
13
- };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLXdpZHRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL3V0aWwvc2Nyb2xsYmFyLXdpZHRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQVcsRUFBRTtJQUMvQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQztJQUNwQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDO0lBQ3JDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQztJQUNwRCxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFbkIsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGRldGVjdFNjcm9sbGJhcldpZHRoID0gKCk6IG51bWJlciA9PiB7XG4gIGlmICghKCdkb2N1bWVudCcgaW4gZ2xvYmFsVGhpcykpIHJldHVybiAwO1xuICBjb25zdCBzaXplID0gNDAwO1xuICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgY29udGFpbmVyLnN0eWxlLndpZHRoID0gYCR7c2l6ZX1weGA7XG4gIGNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSBgJHtzaXplfXB4YDtcbiAgY29udGFpbmVyLnN0eWxlLm92ZXJmbG93ID0gJ3Njcm9sbCc7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcbiAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSBzaXplIC0gY29udGFpbmVyLnNjcm9sbFdpZHRoO1xuICBjb250YWluZXIucmVtb3ZlKCk7XG5cbiAgcmV0dXJuIHNjcm9sbGJhcldpZHRoO1xufTtcbiJdfQ==
@@ -1,13 +0,0 @@
1
- import type { RootNode, SpanNode, Trace, TraceNode, VisibleSpan } from '../types';
2
- export declare const parseTrace: (trace: Trace) => {
3
- root: RootNode;
4
- map: Record<string, SpanNode>;
5
- };
6
- /**
7
- * Adds a node to a row and attempts to find the ideal placement
8
- * within an existing row, creating a new one if necessary
9
- */
10
- export declare const addToRow: (placed: VisibleSpan[][], node: VisibleSpan, precision: number) => void;
11
- export declare const spanVisiblityHelper: (node: TraceNode, scale: number, visible: VisibleSpan[]) => void;
12
- export declare const adjustSpanVisibility: (span: VisibleSpan, _scale: number) => boolean;
13
- //# sourceMappingURL=tree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAER,QAAQ,EAER,KAAK,EACL,SAAS,EACT,WAAW,EACZ,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,KACX;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CA2LjD,CAAC;AAgBF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GACnB,QAAQ,WAAW,EAAE,EAAE,EACvB,MAAM,WAAW,EACjB,WAAW,MAAM,KAChB,IAoBF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,EACf,OAAO,MAAM,EACb,SAAS,WAAW,EAAE,KACrB,IAeF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,WAAW,EACjB,QAAQ,MAAM,KACb,OAMF,CAAC"}
@@ -1,227 +0,0 @@
1
- import { getHighResInMs, getMsInHighRes } from './timing';
2
- export const parseTrace = (trace) => {
3
- const { spans } = trace;
4
- const root = {
5
- startTime: 0,
6
- endTime: 0,
7
- duration: 0,
8
- depth: 0,
9
- children: [],
10
- };
11
- const map = {};
12
- const resourceIndices = new Map();
13
- const getResourceIndex = (resource) => {
14
- const existing = resourceIndices.get(resource);
15
- if (existing)
16
- return existing;
17
- const index = resourceIndices.size + 1;
18
- resourceIndices.set(resource, index);
19
- return index;
20
- };
21
- let hasUserSpans = false;
22
- for (const span of spans) {
23
- const startTime = getHighResInMs(span.startTime);
24
- const endTime = getHighResInMs(span.endTime);
25
- const duration = getHighResInMs(span.duration);
26
- if (endTime > root.endTime) {
27
- root.endTime = endTime;
28
- root.duration = endTime - root.startTime;
29
- }
30
- if (root.startTime === 0 || startTime < root.startTime) {
31
- root.startTime = startTime;
32
- root.duration = root.endTime - startTime;
33
- }
34
- const isVercelResource = span.resource.startsWith('vercel.');
35
- if (!isVercelResource) {
36
- hasUserSpans = true;
37
- }
38
- const isVercel = isVercelResource &&
39
- (span.resource !== 'vercel.serverless-runtime' ||
40
- !('http.method' in span.attributes));
41
- const resourceIndex = isVercel ? 0 : getResourceIndex(span.resource);
42
- let label;
43
- if (isVercel) {
44
- label = `▲ ${span.name}`;
45
- }
46
- map[span.spanId] = {
47
- parent: null,
48
- startTime,
49
- endTime,
50
- duration,
51
- span,
52
- depth: 0,
53
- label,
54
- events: parseEvents(span),
55
- isVercel,
56
- children: [],
57
- resourceIndex,
58
- // Pass through activeStartTime if present (for showing queued period)
59
- activeStartTime: span.activeStartTime
60
- ? getHighResInMs(span.activeStartTime)
61
- : undefined,
62
- };
63
- }
64
- const addTo = (node, parentId) => {
65
- let parent;
66
- if (parentId) {
67
- parent = map[parentId];
68
- if (!parent) {
69
- if (process.env.NODE_ENV === 'development') {
70
- console.warn('Could not find parent span with spanId: %s', parentId);
71
- }
72
- parent = root;
73
- }
74
- }
75
- else {
76
- parent = root;
77
- }
78
- node.parent = parent;
79
- parent.children.push(node);
80
- };
81
- const updateDepth = (node) => {
82
- if ('parent' in node) {
83
- node.depth = node.parent.depth + 1;
84
- }
85
- for (const child of node.children) {
86
- updateDepth(child);
87
- }
88
- };
89
- let hintIdCounter = 1;
90
- const addInstrumentationHint = (node, name) => {
91
- if ('parent' in node) {
92
- if (node.span.name === name) {
93
- let waitUntilStart = node.endTime;
94
- // Detect the parent that's most likely to be at the bottom of the UI
95
- const findParent = (span) => {
96
- if (!span.children.length) {
97
- if (span.span.name === 'waitUntil') {
98
- waitUntilStart = span.startTime;
99
- return span.parent;
100
- }
101
- return span;
102
- }
103
- return (span.children
104
- .map(findParent)
105
- .sort((a, b) => a.duration - b.duration)[0] || span);
106
- };
107
- const parent = findParent(node);
108
- const spanId = `instrumentation-hint-${hintIdCounter++}`;
109
- const offset = node.duration * 0.05;
110
- const startTime = node.startTime + offset;
111
- const endTime = Math.max(startTime + offset, Math.min(waitUntilStart - node.duration * 0.01, node.endTime - offset));
112
- const duration = endTime - startTime;
113
- const hint = {
114
- parent,
115
- startTime,
116
- endTime,
117
- duration,
118
- span: {
119
- spanId,
120
- name: 'Add your spans here',
121
- resource: '',
122
- kind: 0,
123
- library: {
124
- name: '',
125
- },
126
- status: {
127
- code: 200,
128
- },
129
- traceFlags: 0,
130
- attributes: {},
131
- links: [],
132
- events: [],
133
- startTime: getMsInHighRes(startTime),
134
- endTime: getMsInHighRes(endTime),
135
- duration: getMsInHighRes(duration),
136
- },
137
- depth: node.depth + 1,
138
- isVercel: false,
139
- isInstrumentationHint: true,
140
- children: [],
141
- resourceIndex: 1,
142
- };
143
- parent.children.push(hint);
144
- map[spanId] = hint;
145
- return true;
146
- }
147
- }
148
- for (const child of node.children) {
149
- if (addInstrumentationHint(child, name))
150
- return true;
151
- }
152
- return false;
153
- };
154
- // Create tree by matching nodes to their parents
155
- for (const node of Object.values(map)) {
156
- addTo(node, node.span.parentSpanId);
157
- }
158
- // Adjust depth of each node now that the tree is fully constructed
159
- updateDepth(root);
160
- // Add hints in the places where user spans would appear
161
- if (!hasUserSpans) {
162
- for (const name of [
163
- 'Invoke Function',
164
- 'Invoke Middleware',
165
- 'Vercel Runtime',
166
- ]) {
167
- if (addInstrumentationHint(root, name))
168
- break;
169
- }
170
- }
171
- return { root, map };
172
- };
173
- const parseEvents = (span) => {
174
- if (!span.events.length)
175
- return;
176
- const keyPrefix = `${span.spanId}:ev`;
177
- return span.events
178
- .map((event, index) => ({
179
- key: `${keyPrefix}${index}`,
180
- timestamp: getHighResInMs(event.timestamp),
181
- event,
182
- }))
183
- .sort((a, b) => a.timestamp - b.timestamp);
184
- };
185
- /**
186
- * Adds a node to a row and attempts to find the ideal placement
187
- * within an existing row, creating a new one if necessary
188
- */
189
- export const addToRow = (placed, node, precision) => {
190
- const parent = node.parent;
191
- for (let y = (parent?.row || -1) + 1;; ++y) {
192
- let row = placed[y];
193
- if (!row) {
194
- row = [];
195
- placed.push(row);
196
- }
197
- else if (!row.every(({ startTime, endTime }) => startTime + precision > node.endTime ||
198
- endTime - precision < node.startTime)) {
199
- continue;
200
- }
201
- node.row = y;
202
- row.push(node);
203
- break;
204
- }
205
- };
206
- export const spanVisiblityHelper = (node, scale, visible) => {
207
- if ('parent' in node) {
208
- const n = node;
209
- n.row = -1;
210
- // Always make spans visible regardless of width
211
- n.isVisible = true;
212
- n.isHovered = false;
213
- if (!n.isVisible)
214
- return;
215
- visible.push(n);
216
- }
217
- for (const child of node.children) {
218
- spanVisiblityHelper(child, scale, visible);
219
- }
220
- };
221
- export const adjustSpanVisibility = (span, _scale) => {
222
- // Always make spans visible regardless of width
223
- span.isVisible = true;
224
- span.isHovered = false;
225
- return span.isVisible;
226
- };
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RyYWNlLXZpZXdlci91dGlsL3RyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLEtBQVksRUFDdUMsRUFBRTtJQUNyRCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLE1BQU0sSUFBSSxHQUFhO1FBQ3JCLFNBQVMsRUFBRSxDQUFDO1FBQ1osT0FBTyxFQUFFLENBQUM7UUFDVixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxDQUFDO1FBQ1IsUUFBUSxFQUFFLEVBQUU7S0FDYixDQUFDO0lBQ0YsTUFBTSxHQUFHLEdBQTZCLEVBQUUsQ0FBQztJQUV6QyxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUNsRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBZ0IsRUFBVSxFQUFFO1FBQ3BELE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxRQUFRO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFFOUIsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDdkMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDekIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sT0FB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LEVBQ0QsQ0FBQztZQUNELFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2YsTUFBTTtJQUNSLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxJQUFlLEVBQ2YsS0FBYSxFQUNiLE9BQXNCLEVBQ2hCLEVBQUU7SUFDUixJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsR0FBRyxJQUFtQixDQUFDO1FBQzlCLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDWCxnREFBZ0Q7UUFDaEQsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUV6QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxJQUFpQixFQUNqQixNQUFjLEVBQ0wsRUFBRTtJQUNYLGdEQUFnRDtJQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUV2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSb290Tm9kZSxcbiAgU3BhbixcbiAgU3Bhbk5vZGUsXG4gIFNwYW5Ob2RlRXZlbnQsXG4gIFRyYWNlLFxuICBUcmFjZU5vZGUsXG4gIFZpc2libGVTcGFuLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRIaWdoUmVzSW5NcywgZ2V0TXNJbkhpZ2hSZXMgfSBmcm9tICcuL3RpbWluZyc7XG5cbmV4cG9ydCBjb25zdCBwYXJzZVRyYWNlID0gKFxuICB0cmFjZTogVHJhY2Vcbik6IHsgcm9vdDogUm9vdE5vZGU7IG1hcDogUmVjb3JkPHN0cmluZywgU3Bhbk5vZGU+IH0gPT4ge1xuICBjb25zdCB7IHNwYW5zIH0gPSB0cmFjZTtcbiAgY29uc3Qgcm9vdDogUm9vdE5vZGUgPSB7XG4gICAgc3RhcnRUaW1lOiAwLFxuICAgIGVuZFRpbWU6IDAsXG4gICAgZHVyYXRpb246IDAsXG4gICAgZGVwdGg6IDAsXG4gICAgY2hpbGRyZW46IFtdLFxuICB9O1xuICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIFNwYW5Ob2RlPiA9IHt9O1xuXG4gIGNvbnN0IHJlc291cmNlSW5kaWNlcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIGNvbnN0IGdldFJlc291cmNlSW5kZXggPSAocmVzb3VyY2U6IHN0cmluZyk6IG51bWJlciA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSByZXNvdXJjZUluZGljZXMuZ2V0KHJlc291cmNlKTtcbiAgICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZztcblxuICAgIGNvbnN0IGluZGV4ID0gcmVzb3VyY2VJbmRpY2VzLnNpemUgKyAxO1xuICAgIHJlc291cmNlSW5kaWNlcy5zZXQocmVzb3VyY2UsIGluZGV4KTtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH07XG5cbiAgbGV0IGhhc1VzZXJTcGFucyA9IGZhbHNlO1xuICBmb3IgKGNvbnN0IHNwYW4gb2Ygc3BhbnMpIHtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBnZXRIaWdoUmVzSW5NcyhzcGFuLnN0YXJ0VGltZSk7XG4gICAgY29uc3QgZW5kVGltZSA9IGdldEhpZ2hSZXNJbk1zKHNwYW4uZW5kVGltZSk7XG4gICAgY29uc3QgZHVyYXRpb24gPSBnZXRIaWdoUmVzSW5NcyhzcGFuLmR1cmF0aW9uKTtcbiAgICBpZiAoZW5kVGltZSA+IHJvb3QuZW5kVGltZSkge1xuICAgICAgcm9vdC5lbmRUaW1lID0gZW5kVGltZTtcbiAgICAgIHJvb3QuZHVyYXRpb24gPSBlbmRUaW1lIC0gcm9vdC5zdGFydFRpbWU7XG4gICAgfVxuICAgIGlmIChyb290LnN0YXJ0VGltZSA9PT0gMCB8fCBzdGFydFRpbWUgPCByb290LnN0YXJ0VGltZSkge1xuICAgICAgcm9vdC5zdGFydFRpbWUgPSBzdGFydFRpbWU7XG4gICAgICByb290LmR1cmF0aW9uID0gcm9vdC5lbmRUaW1lIC0gc3RhcnRUaW1lO1xuICAgIH1cbiAgICBjb25zdCBpc1ZlcmNlbFJlc291cmNlID0gc3Bhbi5yZXNvdXJjZS5zdGFydHNXaXRoKCd2ZXJjZWwuJyk7XG4gICAgaWYgKCFpc1ZlcmNlbFJlc291cmNlKSB7XG4gICAgICBoYXNVc2VyU3BhbnMgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzVmVyY2VsID1cbiAgICAgIGlzVmVyY2VsUmVzb3VyY2UgJiZcbiAgICAgIChzcGFuLnJlc291cmNlICE9PSAndmVyY2VsLnNlcnZlcmxlc3MtcnVudGltZScgfHxcbiAgICAgICAgISgnaHR0cC5tZXRob2QnIGluIHNwYW4uYXR0cmlidXRlcykpO1xuXG4gICAgY29uc3QgcmVzb3VyY2VJbmRleCA9IGlzVmVyY2VsID8gMCA6IGdldFJlc291cmNlSW5kZXgoc3Bhbi5yZXNvdXJjZSk7XG5cbiAgICBsZXQgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAoaXNWZXJjZWwpIHtcbiAgICAgIGxhYmVsID0gYOKWsiAke3NwYW4ubmFtZX1gO1xuICAgIH1cbiAgICBtYXBbc3Bhbi5zcGFuSWRdID0ge1xuICAgICAgcGFyZW50OiBudWxsIGFzIHVua25vd24gYXMgU3Bhbk5vZGUsXG4gICAgICBzdGFydFRpbWUsXG4gICAgICBlbmRUaW1lLFxuICAgICAgZHVyYXRpb24sXG4gICAgICBzcGFuLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBsYWJlbCxcbiAgICAgIGV2ZW50czogcGFyc2VFdmVudHMoc3BhbiksXG4gICAgICBpc1ZlcmNlbCxcbiAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgIHJlc291cmNlSW5kZXgsXG4gICAgICAvLyBQYXNzIHRocm91Z2ggYWN0aXZlU3RhcnRUaW1lIGlmIHByZXNlbnQgKGZvciBzaG93aW5nIHF1ZXVlZCBwZXJpb2QpXG4gICAgICBhY3RpdmVTdGFydFRpbWU6IHNwYW4uYWN0aXZlU3RhcnRUaW1lXG4gICAgICAgID8gZ2V0SGlnaFJlc0luTXMoc3Bhbi5hY3RpdmVTdGFydFRpbWUpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBhZGRUbyA9IChub2RlOiBTcGFuTm9kZSwgcGFyZW50SWQ/OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBsZXQgcGFyZW50OiBUcmFjZU5vZGUgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHBhcmVudElkKSB7XG4gICAgICBwYXJlbnQgPSBtYXBbcGFyZW50SWRdO1xuICAgICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdDb3VsZCBub3QgZmluZCBwYXJlbnQgc3BhbiB3aXRoIHNwYW5JZDogJXMnLCBwYXJlbnRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gcm9vdDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGFyZW50ID0gcm9vdDtcbiAgICB9XG4gICAgbm9kZS5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlRGVwdGggPSAobm9kZTogVHJhY2VOb2RlKTogdm9pZCA9PiB7XG4gICAgaWYgKCdwYXJlbnQnIGluIG5vZGUpIHtcbiAgICAgIG5vZGUuZGVwdGggPSBub2RlLnBhcmVudC5kZXB0aCArIDE7XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgdXBkYXRlRGVwdGgoY2hpbGQpO1xuICAgIH1cbiAgfTtcblxuICBsZXQgaGludElkQ291bnRlciA9IDE7XG4gIGNvbnN0IGFkZEluc3RydW1lbnRhdGlvbkhpbnQgPSAobm9kZTogVHJhY2VOb2RlLCBuYW1lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICBpZiAoJ3BhcmVudCcgaW4gbm9kZSkge1xuICAgICAgaWYgKG5vZGUuc3Bhbi5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgIGxldCB3YWl0VW50aWxTdGFydCA9IG5vZGUuZW5kVGltZTtcbiAgICAgICAgLy8gRGV0ZWN0IHRoZSBwYXJlbnQgdGhhdCdzIG1vc3QgbGlrZWx5IHRvIGJlIGF0IHRoZSBib3R0b20gb2YgdGhlIFVJXG4gICAgICAgIGNvbnN0IGZpbmRQYXJlbnQgPSAoc3BhbjogU3Bhbk5vZGUpOiBTcGFuTm9kZSA9PiB7XG4gICAgICAgICAgaWYgKCFzcGFuLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHNwYW4uc3Bhbi5uYW1lID09PSAnd2FpdFVudGlsJykge1xuICAgICAgICAgICAgICB3YWl0VW50aWxTdGFydCA9IHNwYW4uc3RhcnRUaW1lO1xuICAgICAgICAgICAgICByZXR1cm4gc3Bhbi5wYXJlbnQgYXMgU3Bhbk5vZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3BhbjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgc3Bhbi5jaGlsZHJlblxuICAgICAgICAgICAgICAubWFwKGZpbmRQYXJlbnQpXG4gICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmR1cmF0aW9uIC0gYi5kdXJhdGlvbilbMF0gfHwgc3BhblxuICAgICAgICAgICk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGZpbmRQYXJlbnQobm9kZSk7XG5cbiAgICAgICAgY29uc3Qgc3BhbklkID0gYGluc3RydW1lbnRhdGlvbi1oaW50LSR7aGludElkQ291bnRlcisrfWA7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IG5vZGUuZHVyYXRpb24gKiAwLjA1O1xuICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBub2RlLnN0YXJ0VGltZSArIG9mZnNldDtcbiAgICAgICAgY29uc3QgZW5kVGltZSA9IE1hdGgubWF4KFxuICAgICAgICAgIHN0YXJ0VGltZSArIG9mZnNldCxcbiAgICAgICAgICBNYXRoLm1pbih3YWl0VW50aWxTdGFydCAtIG5vZGUuZHVyYXRpb24gKiAwLjAxLCBub2RlLmVuZFRpbWUgLSBvZmZzZXQpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gZW5kVGltZSAtIHN0YXJ0VGltZTtcbiAgICAgICAgY29uc3QgaGludDogU3Bhbk5vZGUgPSB7XG4gICAgICAgICAgcGFyZW50LFxuICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgIGR1cmF0aW9uLFxuICAgICAgICAgIHNwYW46IHtcbiAgICAgICAgICAgIHNwYW5JZCxcbiAgICAgICAgICAgIG5hbWU6ICdBZGQgeW91ciBzcGFucyBoZXJlJyxcbiAgICAgICAgICAgIHJlc291cmNlOiAnJyxcbiAgICAgICAgICAgIGtpbmQ6IDAsXG4gICAgICAgICAgICBsaWJyYXJ5OiB7XG4gICAgICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgICBjb2RlOiAyMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhY2VGbGFnczogMCxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgICAgICAgICAgbGlua3M6IFtdLFxuICAgICAgICAgICAgZXZlbnRzOiBbXSxcbiAgICAgICAgICAgIHN0YXJ0VGltZTogZ2V0TXNJbkhpZ2hSZXMoc3RhcnRUaW1lKSxcbiAgICAgICAgICAgIGVuZFRpbWU6IGdldE1zSW5IaWdoUmVzKGVuZFRpbWUpLFxuICAgICAgICAgICAgZHVyYXRpb246IGdldE1zSW5IaWdoUmVzKGR1cmF0aW9uKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHRoOiBub2RlLmRlcHRoICsgMSxcbiAgICAgICAgICBpc1ZlcmNlbDogZmFsc2UsXG4gICAgICAgICAgaXNJbnN0cnVtZW50YXRpb25IaW50OiB0cnVlLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICByZXNvdXJjZUluZGV4OiAxLFxuICAgICAgICB9O1xuICAgICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChoaW50KTtcbiAgICAgICAgbWFwW3NwYW5JZF0gPSBoaW50O1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICBpZiAoYWRkSW5zdHJ1bWVudGF0aW9uSGludChjaGlsZCwgbmFtZSkpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLy8gQ3JlYXRlIHRyZWUgYnkgbWF0Y2hpbmcgbm9kZXMgdG8gdGhlaXIgcGFyZW50c1xuICBmb3IgKGNvbnN0IG5vZGUgb2YgT2JqZWN0LnZhbHVlcyhtYXApKSB7XG4gICAgYWRkVG8obm9kZSwgbm9kZS5zcGFuLnBhcmVudFNwYW5JZCk7XG4gIH1cblxuICAvLyBBZGp1c3QgZGVwdGggb2YgZWFjaCBub2RlIG5vdyB0aGF0IHRoZSB0cmVlIGlzIGZ1bGx5IGNvbnN0cnVjdGVkXG4gIHVwZGF0ZURlcHRoKHJvb3QpO1xuXG4gIC8vIEFkZCBoaW50cyBpbiB0aGUgcGxhY2VzIHdoZXJlIHVzZXIgc3BhbnMgd291bGQgYXBwZWFyXG4gIGlmICghaGFzVXNlclNwYW5zKSB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIFtcbiAgICAgICdJbnZva2UgRnVuY3Rpb24nLFxuICAgICAgJ0ludm9rZSBNaWRkbGV3YXJlJyxcbiAgICAgICdWZXJjZWwgUnVudGltZScsXG4gICAgXSkge1xuICAgICAgaWYgKGFkZEluc3RydW1lbnRhdGlvbkhpbnQocm9vdCwgbmFtZSkpIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHJvb3QsIG1hcCB9O1xufTtcblxuY29uc3QgcGFyc2VFdmVudHMgPSAoc3BhbjogU3Bhbik6IFNwYW5Ob2RlRXZlbnRbXSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghc3Bhbi5ldmVudHMubGVuZ3RoKSByZXR1cm47XG5cbiAgY29uc3Qga2V5UHJlZml4ID0gYCR7c3Bhbi5zcGFuSWR9OmV2YDtcblxuICByZXR1cm4gc3Bhbi5ldmVudHNcbiAgICAubWFwPFNwYW5Ob2RlRXZlbnQ+KChldmVudCwgaW5kZXgpID0+ICh7XG4gICAgICBrZXk6IGAke2tleVByZWZpeH0ke2luZGV4fWAsXG4gICAgICB0aW1lc3RhbXA6IGdldEhpZ2hSZXNJbk1zKGV2ZW50LnRpbWVzdGFtcCksXG4gICAgICBldmVudCxcbiAgICB9KSlcbiAgICAuc29ydCgoYSwgYikgPT4gYS50aW1lc3RhbXAgLSBiLnRpbWVzdGFtcCk7XG59O1xuXG4vKipcbiAqIEFkZHMgYSBub2RlIHRvIGEgcm93IGFuZCBhdHRlbXB0cyB0byBmaW5kIHRoZSBpZGVhbCBwbGFjZW1lbnRcbiAqIHdpdGhpbiBhbiBleGlzdGluZyByb3csIGNyZWF0aW5nIGEgbmV3IG9uZSBpZiBuZWNlc3NhcnlcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFRvUm93ID0gKFxuICBwbGFjZWQ6IFZpc2libGVTcGFuW11bXSxcbiAgbm9kZTogVmlzaWJsZVNwYW4sXG4gIHByZWNpc2lvbjogbnVtYmVyXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgcGFyZW50ID0gbm9kZS5wYXJlbnQgYXMgVmlzaWJsZVNwYW4gfCB1bmRlZmluZWQ7XG4gIGZvciAobGV0IHkgPSAocGFyZW50Py5yb3cgfHwgLTEpICsgMTsgOyArK3kpIHtcbiAgICBsZXQgcm93ID0gcGxhY2VkW3ldO1xuICAgIGlmICghcm93KSB7XG4gICAgICByb3cgPSBbXTtcbiAgICAgIHBsYWNlZC5wdXNoKHJvdyk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICFyb3cuZXZlcnkoXG4gICAgICAgICh7IHN0YXJ0VGltZSwgZW5kVGltZSB9KSA9PlxuICAgICAgICAgIHN0YXJ0VGltZSArIHByZWNpc2lvbiA+IG5vZGUuZW5kVGltZSB8fFxuICAgICAgICAgIGVuZFRpbWUgLSBwcmVjaXNpb24gPCBub2RlLnN0YXJ0VGltZVxuICAgICAgKVxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIG5vZGUucm93ID0geTtcbiAgICByb3cucHVzaChub2RlKTtcbiAgICBicmVhaztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNwYW5WaXNpYmxpdHlIZWxwZXIgPSAoXG4gIG5vZGU6IFRyYWNlTm9kZSxcbiAgc2NhbGU6IG51bWJlcixcbiAgdmlzaWJsZTogVmlzaWJsZVNwYW5bXVxuKTogdm9pZCA9PiB7XG4gIGlmICgncGFyZW50JyBpbiBub2RlKSB7XG4gICAgY29uc3QgbiA9IG5vZGUgYXMgVmlzaWJsZVNwYW47XG4gICAgbi5yb3cgPSAtMTtcbiAgICAvLyBBbHdheXMgbWFrZSBzcGFucyB2aXNpYmxlIHJlZ2FyZGxlc3Mgb2Ygd2lkdGhcbiAgICBuLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgbi5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICBpZiAoIW4uaXNWaXNpYmxlKSByZXR1cm47XG5cbiAgICB2aXNpYmxlLnB1c2gobik7XG4gIH1cblxuICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICBzcGFuVmlzaWJsaXR5SGVscGVyKGNoaWxkLCBzY2FsZSwgdmlzaWJsZSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGp1c3RTcGFuVmlzaWJpbGl0eSA9IChcbiAgc3BhbjogVmlzaWJsZVNwYW4sXG4gIF9zY2FsZTogbnVtYmVyXG4pOiBib29sZWFuID0+IHtcbiAgLy8gQWx3YXlzIG1ha2Ugc3BhbnMgdmlzaWJsZSByZWdhcmRsZXNzIG9mIHdpZHRoXG4gIHNwYW4uaXNWaXNpYmxlID0gdHJ1ZTtcbiAgc3Bhbi5pc0hvdmVyZWQgPSBmYWxzZTtcblxuICByZXR1cm4gc3Bhbi5pc1Zpc2libGU7XG59O1xuIl19
@@ -1,15 +0,0 @@
1
- import type { CSSProperties, MutableRefObject } from 'react';
2
- type SetStyle = (propertyName: string, value: string | undefined) => void;
3
- interface ImmediateStyle {
4
- setStyle: SetStyle;
5
- styleRef: MutableRefObject<CSSProperties>;
6
- style: CSSProperties;
7
- }
8
- /**
9
- * Update an element's style without forcing renders, but in a way that is still
10
- * safe if the element re-renders for another reason.
11
- * @returns The current style & a method to update the style
12
- */
13
- export declare function useImmediateStyle(ref: MutableRefObject<HTMLElement | null>): ImmediateStyle;
14
- export {};
15
- //# sourceMappingURL=use-immediate-style.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-immediate-style.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-immediate-style.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG7D,KAAK,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;AAE1E,UAAU,cAAc;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC1C,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,GACxC,cAAc,CAiBhB"}
@@ -1,23 +0,0 @@
1
- 'use client';
2
- import { useCallback, useRef } from 'react';
3
- /**
4
- * Update an element's style without forcing renders, but in a way that is still
5
- * safe if the element re-renders for another reason.
6
- * @returns The current style & a method to update the style
7
- */
8
- export function useImmediateStyle(ref) {
9
- const styleRef = useRef({});
10
- const setStyle = useCallback((propertyName, value) => {
11
- // @ts-expect-error typeof keyof CSSProperties is too big of a union
12
- styleRef.current[propertyName] = value;
13
- if (!ref.current)
14
- return;
15
- if (!value) {
16
- ref.current.style.removeProperty(propertyName);
17
- return;
18
- }
19
- ref.current.style.setProperty(propertyName, value);
20
- }, [ref]);
21
- return { setStyle, styleRef, style: { ...styleRef.current } };
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWltbWVkaWF0ZS1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RyYWNlLXZpZXdlci91dGlsL3VzZS1pbW1lZGlhdGUtc3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBR2IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFVNUM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsR0FBeUM7SUFFekMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQzFCLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3RCLG9FQUFvRTtRQUNwRSxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQyxPQUFPO1FBQ1QsQ0FBQztRQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQyxFQUNELENBQUMsR0FBRyxDQUFDLENBQ04sQ0FBQztJQUVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHR5cGUgeyBDU1NQcm9wZXJ0aWVzLCBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxudHlwZSBTZXRTdHlsZSA9IChwcm9wZXJ0eU5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcblxuaW50ZXJmYWNlIEltbWVkaWF0ZVN0eWxlIHtcbiAgc2V0U3R5bGU6IFNldFN0eWxlO1xuICBzdHlsZVJlZjogTXV0YWJsZVJlZk9iamVjdDxDU1NQcm9wZXJ0aWVzPjtcbiAgc3R5bGU6IENTU1Byb3BlcnRpZXM7XG59XG5cbi8qKlxuICogVXBkYXRlIGFuIGVsZW1lbnQncyBzdHlsZSB3aXRob3V0IGZvcmNpbmcgcmVuZGVycywgYnV0IGluIGEgd2F5IHRoYXQgaXMgc3RpbGxcbiAqIHNhZmUgaWYgdGhlIGVsZW1lbnQgcmUtcmVuZGVycyBmb3IgYW5vdGhlciByZWFzb24uXG4gKiBAcmV0dXJucyBUaGUgY3VycmVudCBzdHlsZSAmIGEgbWV0aG9kIHRvIHVwZGF0ZSB0aGUgc3R5bGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUltbWVkaWF0ZVN0eWxlKFxuICByZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuKTogSW1tZWRpYXRlU3R5bGUge1xuICBjb25zdCBzdHlsZVJlZiA9IHVzZVJlZjxDU1NQcm9wZXJ0aWVzPih7fSk7XG4gIGNvbnN0IHNldFN0eWxlID0gdXNlQ2FsbGJhY2s8U2V0U3R5bGU+KFxuICAgIChwcm9wZXJ0eU5hbWUsIHZhbHVlKSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHR5cGVvZiBrZXlvZiBDU1NQcm9wZXJ0aWVzIGlzIHRvbyBiaWcgb2YgYSB1bmlvblxuICAgICAgc3R5bGVSZWYuY3VycmVudFtwcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgICBpZiAoIXJlZi5jdXJyZW50KSByZXR1cm47XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJlZi5jdXJyZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3BlcnR5TmFtZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlZi5jdXJyZW50LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5TmFtZSwgdmFsdWUpO1xuICAgIH0sXG4gICAgW3JlZl1cbiAgKTtcblxuICByZXR1cm4geyBzZXRTdHlsZSwgc3R5bGVSZWYsIHN0eWxlOiB7IC4uLnN0eWxlUmVmLmN1cnJlbnQgfSB9O1xufVxuIl19
@@ -1,8 +0,0 @@
1
- import type { VisibleSpan, VisibleSpanEvent } from '../types';
2
- export declare const useStreamingSpans: (highlightedSpans?: string[], eagerRender?: boolean) => {
3
- rows: VisibleSpan[][];
4
- spans: VisibleSpan[];
5
- events: VisibleSpanEvent[];
6
- scale: number;
7
- };
8
- //# sourceMappingURL=use-streaming-spans.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-streaming-spans.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-streaming-spans.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AAsBlB,eAAO,MAAM,iBAAiB,GAC5B,mBAAmB,MAAM,EAAE,EAC3B,qBAAmB,KAClB;IACD,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACtB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CAqWf,CAAC"}