@workflow/web-shared 5.0.0-beta.27 → 5.0.0-beta.29

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 (54) hide show
  1. package/dist/components/event-list-view.d.ts.map +1 -1
  2. package/dist/components/event-list-view.js +13 -1
  3. package/dist/components/new-trace-viewer/components/detail-panel.d.ts.map +1 -1
  4. package/dist/components/new-trace-viewer/components/detail-panel.js +2 -2
  5. package/dist/components/new-trace-viewer/components/event-list.d.ts +1 -1
  6. package/dist/components/new-trace-viewer/components/event-list.d.ts.map +1 -1
  7. package/dist/components/new-trace-viewer/components/event-list.js +4 -6
  8. package/dist/components/new-trace-viewer/components/minimap.d.ts +14 -0
  9. package/dist/components/new-trace-viewer/components/minimap.d.ts.map +1 -0
  10. package/dist/components/new-trace-viewer/components/minimap.js +337 -0
  11. package/dist/components/new-trace-viewer/components/split-pane.d.ts +0 -2
  12. package/dist/components/new-trace-viewer/components/split-pane.d.ts.map +1 -1
  13. package/dist/components/new-trace-viewer/components/split-pane.js +9 -75
  14. package/dist/components/new-trace-viewer/components/timeline.d.ts.map +1 -1
  15. package/dist/components/new-trace-viewer/components/timeline.js +5 -7
  16. package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.d.ts.map +1 -1
  17. package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.js +6 -2
  18. package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +1 -1
  19. package/dist/components/new-trace-viewer/trace-viewer.js +48 -96
  20. package/dist/components/new-trace-viewer/utils.d.ts +21 -0
  21. package/dist/components/new-trace-viewer/utils.d.ts.map +1 -1
  22. package/dist/components/new-trace-viewer/utils.js +44 -3
  23. package/dist/components/sidebar/attribute-panel.d.ts +4 -1
  24. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
  25. package/dist/components/sidebar/attribute-panel.js +32 -24
  26. package/dist/components/sidebar/attributes-block.d.ts +1 -0
  27. package/dist/components/sidebar/attributes-block.d.ts.map +1 -1
  28. package/dist/components/sidebar/attributes-block.js +6 -5
  29. package/dist/components/sidebar/entity-detail-panel.d.ts +5 -1
  30. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
  31. package/dist/components/sidebar/entity-detail-panel.js +18 -3
  32. package/dist/components/sidebar/sidebar-data-context.d.ts +4 -0
  33. package/dist/components/sidebar/sidebar-data-context.d.ts.map +1 -1
  34. package/dist/components/sidebar/sidebar-data-context.js +1 -1
  35. package/dist/lib/utils.d.ts +8 -5
  36. package/dist/lib/utils.d.ts.map +1 -1
  37. package/dist/lib/utils.js +13 -16
  38. package/package.json +5 -5
  39. package/src/components/event-list-view.tsx +21 -0
  40. package/src/components/new-trace-viewer/components/detail-panel.tsx +1 -0
  41. package/src/components/new-trace-viewer/components/event-list.tsx +4 -6
  42. package/src/components/new-trace-viewer/components/minimap.tsx +559 -0
  43. package/src/components/new-trace-viewer/components/split-pane.tsx +39 -95
  44. package/src/components/new-trace-viewer/components/timeline.tsx +3 -5
  45. package/src/components/new-trace-viewer/components/trace-viewer-skeleton.tsx +17 -0
  46. package/src/components/new-trace-viewer/trace-viewer.tsx +79 -117
  47. package/src/components/new-trace-viewer/utils.test.ts +65 -0
  48. package/src/components/new-trace-viewer/utils.ts +76 -2
  49. package/src/components/sidebar/attribute-panel.tsx +77 -22
  50. package/src/components/sidebar/attributes-block.tsx +43 -10
  51. package/src/components/sidebar/entity-detail-panel.tsx +22 -0
  52. package/src/components/sidebar/sidebar-data-context.tsx +4 -0
  53. package/src/lib/utils.test.ts +33 -0
  54. package/src/lib/utils.ts +12 -16
@@ -1 +1 @@
1
- {"version":3,"file":"detail-panel.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/detail-panel.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAiDf;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,gBAAgB,EAChB,OAAO,GACR,EAAE;IACD,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAG,SAAS,CAmMZ"}
1
+ {"version":3,"file":"detail-panel.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/detail-panel.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAiDf;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,gBAAgB,EAChB,OAAO,GACR,EAAE;IACD,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAG,SAAS,CAoMZ"}
@@ -117,6 +117,6 @@ export function TraceDetailPanel({ containerRef, onNavigateToSpan, onClose, }) {
117
117
  }, [selectedSpan?.data, selectedSpan?.resource]);
118
118
  if (!activeSpan)
119
119
  return null;
120
- return (_jsxs("aside", { ref: asideRef, id: DETAIL_PANEL_ID, className: "relative flex flex-col h-full max-h-full shrink-0 bg-background-100 border-l border-gray-alpha-400", style: { width: panelWidth }, children: [_jsx(DraggableBorder, { element: asideRef, position: "left", onWidthChange: handleResize, onReset: () => handleResize(PANEL_DEFAULT_WIDTH), "aria-label": "Resize span details panel", "aria-controls": DETAIL_PANEL_ID, "aria-valuemin": PANEL_MIN_WIDTH, "aria-valuemax": panelMaxWidth, "aria-valuenow": Math.min(Math.max(Math.round(panelWidth), PANEL_MIN_WIDTH), panelMaxWidth) }), _jsxs("div", { className: "flex items-center justify-between gap-2 shrink-0 px-4 py-[7.5px]", children: [_jsx("span", { className: "text-label-14 font-medium text-gray-1000 truncate block", children: selectedSpanName }), _jsxs("div", { className: "flex items-center gap-0.5 shrink-0", children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(IconButton, { "aria-label": "Navigate up", "aria-keyshortcuts": "K", onClick: handleSelectPrev, disabled: !prevSpanId, children: _jsx(ChevronUp, { className: "w-4 h-4" }) }) }), prevSpanId ? (_jsxs(TooltipContent, { children: ["Navigate up", _jsx(Kbd, { children: "K" })] })) : null] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(IconButton, { "aria-label": "Navigate down", "aria-keyshortcuts": "J", onClick: handleSelectNext, disabled: !nextSpanId, children: _jsx(ChevronDown, { className: "w-4 h-4" }) }) }), nextSpanId ? (_jsxs(TooltipContent, { children: ["Navigate down", _jsx(Kbd, { children: "J" })] })) : null] }), _jsx("div", { "aria-hidden": true, className: "w-px h-4 bg-gray-alpha-400 mx-1" }), _jsx(IconButton, { "aria-label": "Close span details", "aria-keyshortcuts": "Escape", onClick: onClose, children: _jsx(X, { className: "w-4 h-4" }) })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx(ErrorBoundary, { children: _jsx(EntityDetailPanel, { run: sidebar.run, onStreamClick: sidebar.onStreamClick, onRunClick: sidebar.onRunClick, fetchSpanDetail: sidebar.fetchSpanDetail, onWakeUpSleep: sidebar.onWakeUpSleep, onLoadEventData: sidebar.onLoadEventData, onResolveHook: sidebar.onResolveHook, encryptionKey: sidebar.encryptionKey, onDecrypt: sidebar.onDecrypt, isDecrypting: sidebar.isDecrypting, selectedSpan: selectedSpan, showSeparateEventOccurrenceTimestamps: sidebar.showSeparateEventOccurrenceTimestamps }) }) })] }));
120
+ return (_jsxs("aside", { ref: asideRef, id: DETAIL_PANEL_ID, className: "relative flex flex-col h-full max-h-full shrink-0 bg-background-100 border-l border-gray-alpha-400", style: { width: panelWidth }, children: [_jsx(DraggableBorder, { element: asideRef, position: "left", onWidthChange: handleResize, onReset: () => handleResize(PANEL_DEFAULT_WIDTH), "aria-label": "Resize span details panel", "aria-controls": DETAIL_PANEL_ID, "aria-valuemin": PANEL_MIN_WIDTH, "aria-valuemax": panelMaxWidth, "aria-valuenow": Math.min(Math.max(Math.round(panelWidth), PANEL_MIN_WIDTH), panelMaxWidth) }), _jsxs("div", { className: "flex items-center justify-between gap-2 shrink-0 px-4 py-[7.5px]", children: [_jsx("span", { className: "text-label-14 font-medium text-gray-1000 truncate block", children: selectedSpanName }), _jsxs("div", { className: "flex items-center gap-0.5 shrink-0", children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(IconButton, { "aria-label": "Navigate up", "aria-keyshortcuts": "K", onClick: handleSelectPrev, disabled: !prevSpanId, children: _jsx(ChevronUp, { className: "w-4 h-4" }) }) }), prevSpanId ? (_jsxs(TooltipContent, { children: ["Navigate up", _jsx(Kbd, { children: "K" })] })) : null] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(IconButton, { "aria-label": "Navigate down", "aria-keyshortcuts": "J", onClick: handleSelectNext, disabled: !nextSpanId, children: _jsx(ChevronDown, { className: "w-4 h-4" }) }) }), nextSpanId ? (_jsxs(TooltipContent, { children: ["Navigate down", _jsx(Kbd, { children: "J" })] })) : null] }), _jsx("div", { "aria-hidden": true, className: "w-px h-4 bg-gray-alpha-400 mx-1" }), _jsx(IconButton, { "aria-label": "Close span details", "aria-keyshortcuts": "Escape", onClick: onClose, children: _jsx(X, { className: "w-4 h-4" }) })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx(ErrorBoundary, { children: _jsx(EntityDetailPanel, { run: sidebar.run, onStreamClick: sidebar.onStreamClick, onRunClick: sidebar.onRunClick, fetchSpanDetail: sidebar.fetchSpanDetail, onWakeUpSleep: sidebar.onWakeUpSleep, onLoadEventData: sidebar.onLoadEventData, onResolveHook: sidebar.onResolveHook, encryptionKey: sidebar.encryptionKey, onDecrypt: sidebar.onDecrypt, isDecrypting: sidebar.isDecrypting, selectedSpan: selectedSpan, showSeparateEventOccurrenceTimestamps: sidebar.showSeparateEventOccurrenceTimestamps, getModuleSourceUrl: sidebar.getModuleSourceUrl }) }) })] }));
121
121
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbmV3LXRyYWNlLXZpZXdlci9jb21wb25lbnRzL2RldGFpbC1wYW5lbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEdBQ1QsTUFBTSxPQUFPLENBQUM7QUFDZixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVB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WSxHQUNaLElBQ0EsQ0FDVCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgcGFyc2VTdGVwTmFtZSwgcGFyc2VXb3JrZmxvd05hbWUgfSBmcm9tICdAd29ya2Zsb3cvdXRpbHMvcGFyc2UtbmFtZSc7XG5pbXBvcnQgeyBDaGV2cm9uRG93biwgQ2hldnJvblVwLCBYIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7XG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZmlsdGVyU3BhblJhd0V2ZW50cyB9IGZyb20gJy4uLy4uLy4uL2xpYi90cmFjZS1idWlsZGVyJztcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tICcuLi8uLi9lcnJvci1ib3VuZGFyeSc7XG5pbXBvcnQge1xuICBFbnRpdHlEZXRhaWxQYW5lbCxcbiAgdHlwZSBTZWxlY3RlZFNwYW5JbmZvLFxufSBmcm9tICcuLi8uLi9zaWRlYmFyL2VudGl0eS1kZXRhaWwtcGFuZWwnO1xuaW1wb3J0IHsgdXNlU2lkZWJhckRhdGEgfSBmcm9tICcuLi8uLi9zaWRlYmFyL3NpZGViYXItZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICcuLi8uLi91aS9pY29uLWJ1dHRvbic7XG5pbXBvcnQgeyBLYmQgfSBmcm9tICcuLi8uLi91aS9rYmQnO1xuaW1wb3J0IHsgVG9vbHRpcCwgVG9vbHRpcENvbnRlbnQsIFRvb2x0aXBUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vdWkvdG9vbHRpcCc7XG5pbXBvcnQgeyB1c2VBY3RpdmVTcGFuIH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQge1xuICBjbGFtcFBhbmVsV2lkdGgsXG4gIGNvbXB1dGVNYXhQYW5lbFdpZHRoLFxuICBQQU5FTF9ERUZBVUxUX1dJRFRILFxuICBQQU5FTF9NSU5fV0lEVEgsXG4gIHJlYWRTdG9yZWRQYW5lbFdpZHRoLFxuICB3cml0ZVN0b3JlZFBhbmVsV2lkdGgsXG59IGZyb20gJy4vZGV0YWlsLXBhbmVsLXdpZHRoJztcbmltcG9ydCB7IERyYWdnYWJsZUJvcmRlciB9IGZyb20gJy4vZHJhZ2dhYmxlLWJvcmRlcic7XG5pbXBvcnQgeyB1c2VFbGVtZW50V2lkdGggfSBmcm9tICcuL3VzZS1lbGVtZW50LXdpZHRoJztcblxuY29uc3QgREVUQUlMX1BBTkVMX0lEID0gJ3RyYWNlLWRldGFpbC1wYW5lbCc7XG5cbi8qKiBCcmlkZ2UgQWN0aXZlU3BhbkNvbnRleHQgKyBTaWRlYmFyRGF0YUNvbnRleHQg4oaSIFNlbGVjdGVkU3BhbkluZm8uICovXG5mdW5jdGlvbiB1c2VTZWxlY3RlZFNwYW5JbmZvKCk6IFNlbGVjdGVkU3BhbkluZm8gfCBudWxsIHtcbiAgY29uc3QgeyBhY3RpdmVTcGFuIH0gPSB1c2VBY3RpdmVTcGFuKCk7XG4gIGNvbnN0IHNpZGViYXIgPSB1c2VTaWRlYmFyRGF0YSgpO1xuXG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWFjdGl2ZVNwYW4pIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBhY3RpdmVTcGFuLmF0dHJpYnV0ZXM/LnJlc291cmNlIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCByYXdFdmVudHMgPSBmaWx0ZXJTcGFuUmF3RXZlbnRzKFxuICAgICAgc2lkZWJhci5ldmVudHMsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIGFjdGl2ZVNwYW4uc3BhbklkXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBhY3RpdmVTcGFuLmF0dHJpYnV0ZXM/LmRhdGEsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIHNwYW5JZDogYWN0aXZlU3Bhbi5zcGFuSWQsXG4gICAgICByYXdFdmVudHMsXG4gICAgfTtcbiAgfSwgW2FjdGl2ZVNwYW4sIHNpZGViYXJdKTtcbn1cblxuLyoqXG4gKiBUaGUgc3BhbiBkZXRhaWwgYXNpZGU6IGNvbnRlbnQsIHByZXYvbmV4dC9jbG9zZSBoZWFkZXIsIEovSyBuYXZpZ2F0aW9uLCBhbmRcbiAqIHRoZSByZXNpemFibGUgbGVmdCBib3JkZXIgd2l0aCBpdHMgd2lkdGggbW9kZWwgKHNlZSBkZXRhaWwtcGFuZWwtd2lkdGgudHMpLlxuICpcbiAqIEFsd2F5cyBtb3VudGVkIOKAlCBpdCByZW5kZXJzIG51bGwgd2l0aG91dCBhIHNlbGVjdGlvbiDigJQgc28gdGhlIHBhbmVsIHdpZHRoXG4gKiBzdXJ2aXZlcyBjbG9zaW5nIGFuZCByZW9wZW5pbmcgd2l0aGluIGEgc2Vzc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRyYWNlRGV0YWlsUGFuZWwoe1xuICBjb250YWluZXJSZWYsXG4gIG9uTmF2aWdhdGVUb1NwYW4sXG4gIG9uQ2xvc2UsXG59OiB7XG4gIGNvbnRhaW5lclJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gIG9uTmF2aWdhdGVUb1NwYW46IChzcGFuSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgb25DbG9zZTogKCkgPT4gdm9pZDtcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCB7IGFjdGl2ZVNwYW4sIGFjdGl2ZVNwYW5JZCwgc3BhbnMgfSA9IHVzZUFjdGl2ZVNwYW4oKTtcbiAgY29uc3Qgc2lkZWJhciA9IHVzZVNpZGViYXJEYXRhKCk7XG4gIGNvbnN0IHNlbGVjdGVkU3BhbiA9IHVzZVNlbGVjdGVkU3BhbkluZm8oKTtcbiAgY29uc3QgaXNPcGVuID0gQm9vbGVhbihhY3RpdmVTcGFuKTtcblxuICBjb25zdCBbc3RvcmVkV2lkdGgsIHNldFN0b3JlZFdpZHRoXSA9IHVzZVN0YXRlPG51bWJlcj4oKCkgPT5cbiAgICByZWFkU3RvcmVkUGFuZWxXaWR0aCgpXG4gICk7XG4gIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdXNlRWxlbWVudFdpZHRoKGNvbnRhaW5lclJlZiwgaXNPcGVuKTtcbiAgY29uc3QgYXNpZGVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBoYW5kbGVSZXNpemUgPSB1c2VDYWxsYmFjayhcbiAgICAobmV4dDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBjbGFtcGVkID0gY2xhbXBQYW5lbFdpZHRoKG5leHQsIGNvbnRhaW5lcldpZHRoKTtcbiAgICAgIHNldFN0b3JlZFdpZHRoKGNsYW1wZWQpO1xuICAgICAgd3JpdGVTdG9yZWRQYW5lbFdpZHRoKGNsYW1wZWQpO1xuICAgIH0sXG4gICAgW2NvbnRhaW5lcldpZHRoXVxuICApO1xuXG4gIGNvbnN0IHBhbmVsV2lkdGggPSBjbGFtcFBhbmVsV2lkdGgoc3RvcmVkV2lkdGgsIGNvbnRhaW5lcldpZHRoKTtcbiAgY29uc3QgcGFuZWxNYXhXaWR0aCA9IE1hdGgubWF4KFxuICAgIFBBTkVMX01JTl9XSURUSCxcbiAgICBjb21wdXRlTWF4UGFuZWxXaWR0aChjb250YWluZXJXaWR0aClcbiAgKTtcblxuICBjb25zdCB7IHByZXZTcGFuSWQsIG5leHRTcGFuSWQgfSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghYWN0aXZlU3BhbklkKSByZXR1cm4geyBwcmV2U3BhbklkOiBudWxsLCBuZXh0U3BhbklkOiBudWxsIH07XG4gICAgY29uc3QgaSA9IHNwYW5zLmZpbmRJbmRleCgocykgPT4gcy5zcGFuSWQgPT09IGFjdGl2ZVNwYW5JZCk7XG4gICAgaWYgKGkgPT09IC0xKSByZXR1cm4geyBwcmV2U3BhbklkOiBudWxsLCBuZXh0U3BhbklkOiBudWxsIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHByZXZTcGFuSWQ6IHNwYW5zW2kgLSAxXT8uc3BhbklkID8/IG51bGwsXG4gICAgICBuZXh0U3BhbklkOiBzcGFuc1tpICsgMV0/LnNwYW5JZCA/PyBudWxsLFxuICAgIH07XG4gIH0sIFthY3RpdmVTcGFuSWQsIHNwYW5zXSk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0UHJldiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocHJldlNwYW5JZCkgb25OYXZpZ2F0ZVRvU3BhbihwcmV2U3BhbklkKTtcbiAgfSwgW3ByZXZTcGFuSWQsIG9uTmF2aWdhdGVUb1NwYW5dKTtcblxuICBjb25zdCBoYW5kbGVTZWxlY3ROZXh0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChuZXh0U3BhbklkKSBvbk5hdmlnYXRlVG9TcGFuKG5leHRTcGFuSWQpO1xuICB9LCBbbmV4dFNwYW5JZCwgb25OYXZpZ2F0ZVRvU3Bhbl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHJldHVybjtcblxuICAgIGNvbnN0IG9uS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGUua2V5ICE9PSAnaicgJiZcbiAgICAgICAgZS5rZXkgIT09ICdrJyAmJlxuICAgICAgICBlLmtleSAhPT0gJ0Fycm93RG93bicgJiZcbiAgICAgICAgZS5rZXkgIT09ICdBcnJvd1VwJ1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgIGlmIChcbiAgICAgICAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fFxuICAgICAgICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50IHx8XG4gICAgICAgIHRhcmdldD8uaXNDb250ZW50RWRpdGFibGVcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCB0YXJnZXRJZCA9XG4gICAgICAgIGUua2V5ID09PSAnaycgfHwgZS5rZXkgPT09ICdBcnJvd1VwJyA/IHByZXZTcGFuSWQgOiBuZXh0U3BhbklkO1xuICAgICAgaWYgKHRhcmdldElkKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25OYXZpZ2F0ZVRvU3Bhbih0YXJnZXRJZCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKTtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBvbktleURvd24pO1xuICB9LCBbaXNPcGVuLCBwcmV2U3BhbklkLCBuZXh0U3BhbklkLCBvbk5hdmlnYXRlVG9TcGFuXSk7XG5cbiAgLy8gRGVyaXZlIHRoZSBzZWxlY3RlZCBzcGFuIG5hbWUgZm9yIHRoZSBwYW5lbCBoZWFkZXJcbiAgY29uc3Qgc2VsZWN0ZWRTcGFuTmFtZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2VsZWN0ZWRTcGFuPy5kYXRhKSByZXR1cm4gJ0RldGFpbHMnO1xuICAgIGNvbnN0IGRhdGEgPSBzZWxlY3RlZFNwYW4uZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBpZiAoc2VsZWN0ZWRTcGFuLnJlc291cmNlID09PSAnaG9vaycpIHtcbiAgICAgIHJldHVybiAoZGF0YS50b2tlbiBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/IChkYXRhLmhvb2tJZCBhcyBzdHJpbmcpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZXBOYW1lID0gZGF0YS5zdGVwTmFtZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgd29ya2Zsb3dOYW1lID0gZGF0YS53b3JrZmxvd05hbWUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoXG4gICAgICAoc3RlcE5hbWUgPyBwYXJzZVN0ZXBOYW1lKHN0ZXBOYW1lKT8uc2hvcnROYW1lIDogdW5kZWZpbmVkKSA/P1xuICAgICAgKHdvcmtmbG93TmFtZSA/IHBhcnNlV29ya2Zsb3dOYW1lKHdvcmtmbG93TmFtZSk/LnNob3J0TmFtZSA6IHVuZGVmaW5lZCkgPz9cbiAgICAgIHN0ZXBOYW1lID8/XG4gICAgICB3b3JrZmxvd05hbWUgPz9cbiAgICAgIChkYXRhLmhvb2tJZCBhcyBzdHJpbmcpID8/XG4gICAgICAnRGV0YWlscydcbiAgICApO1xuICB9LCBbc2VsZWN0ZWRTcGFuPy5kYXRhLCBzZWxlY3RlZFNwYW4/LnJlc291cmNlXSk7XG5cbiAgaWYgKCFhY3RpdmVTcGFuKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxhc2lkZVxuICAgICAgcmVmPXthc2lkZVJlZn1cbiAgICAgIGlkPXtERVRBSUxfUEFORUxfSUR9XG4gICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBmbGV4IGZsZXgtY29sIGgtZnVsbCBtYXgtaC1mdWxsIHNocmluay0wIGJnLWJhY2tncm91bmQtMTAwIGJvcmRlci1sIGJvcmRlci1ncmF5LWFscGhhLTQwMFwiXG4gICAgICBzdHlsZT17eyB3aWR0aDogcGFuZWxXaWR0aCB9fVxuICAgID5cbiAgICAgIDxEcmFnZ2FibGVCb3JkZXJcbiAgICAgICAgZWxlbWVudD17YXNpZGVSZWZ9XG4gICAgICAgIHBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgIG9uV2lkdGhDaGFuZ2U9e2hhbmRsZVJlc2l6ZX1cbiAgICAgICAgb25SZXNldD17KCkgPT4gaGFuZGxlUmVzaXplKFBBTkVMX0RFRkFVTFRfV0lEVEgpfVxuICAgICAgICBhcmlhLWxhYmVsPVwiUmVzaXplIHNwYW4gZGV0YWlscyBwYW5lbFwiXG4gICAgICAgIGFyaWEtY29udHJvbHM9e0RFVEFJTF9QQU5FTF9JRH1cbiAgICAgICAgYXJpYS12YWx1ZW1pbj17UEFORUxfTUlOX1dJRFRIfVxuICAgICAgICBhcmlhLXZhbHVlbWF4PXtwYW5lbE1heFdpZHRofVxuICAgICAgICBhcmlhLXZhbHVlbm93PXtNYXRoLm1pbihcbiAgICAgICAgICBNYXRoLm1heChNYXRoLnJvdW5kKHBhbmVsV2lkdGgpLCBQQU5FTF9NSU5fV0lEVEgpLFxuICAgICAgICAgIHBhbmVsTWF4V2lkdGhcbiAgICAgICAgKX1cbiAgICAgIC8+XG4gICAgICB7LyogUGFuZWwgaGVhZGVyICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTIgc2hyaW5rLTAgcHgtNCBweS1bNy41cHhdXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbGFiZWwtMTQgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTEwMDAgdHJ1bmNhdGUgYmxvY2tcIj5cbiAgICAgICAgICB7c2VsZWN0ZWRTcGFuTmFtZX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0wLjUgc2hyaW5rLTBcIj5cbiAgICAgICAgICA8VG9vbHRpcD5cbiAgICAgICAgICAgIDxUb29sdGlwVHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJOYXZpZ2F0ZSB1cFwiXG4gICAgICAgICAgICAgICAgYXJpYS1rZXlzaG9ydGN1dHM9XCJLXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZWxlY3RQcmV2fVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshcHJldlNwYW5JZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDaGV2cm9uVXAgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XG4gICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcFRyaWdnZXI+XG4gICAgICAgICAgICB7cHJldlNwYW5JZCA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBDb250ZW50PlxuICAgICAgICAgICAgICAgIE5hdmlnYXRlIHVwXG4gICAgICAgICAgICAgICAgPEtiZD5LPC9LYmQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgICA8VG9vbHRpcFRyaWdnZXIgYXNDaGlsZD5cbiAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmF2aWdhdGUgZG93blwiXG4gICAgICAgICAgICAgICAgYXJpYS1rZXlzaG9ydGN1dHM9XCJKXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZWxlY3ROZXh0fVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshbmV4dFNwYW5JZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93biBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwVHJpZ2dlcj5cbiAgICAgICAgICAgIHtuZXh0U3BhbklkID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgTmF2aWdhdGUgZG93blxuICAgICAgICAgICAgICAgIDxLYmQ+SjwvS2JkPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXBDb250ZW50PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW4gY2xhc3NOYW1lPVwidy1weCBoLTQgYmctZ3JheS1hbHBoYS00MDAgbXgtMVwiIC8+XG4gICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBzcGFuIGRldGFpbHNcIlxuICAgICAgICAgICAgYXJpYS1rZXlzaG9ydGN1dHM9XCJFc2NhcGVcIlxuICAgICAgICAgICAgb25DbGljaz17b25DbG9zZX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8WCBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7LyogUGFuZWwgYm9keSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0b1wiPlxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8RW50aXR5RGV0YWlsUGFuZWxcbiAgICAgICAgICAgIHJ1bj17c2lkZWJhci5ydW59XG4gICAgICAgICAgICBvblN0cmVhbUNsaWNrPXtzaWRlYmFyLm9uU3RyZWFtQ2xpY2t9XG4gICAgICAgICAgICBvblJ1bkNsaWNrPXtzaWRlYmFyLm9uUnVuQ2xpY2t9XG4gICAgICAgICAgICBmZXRjaFNwYW5EZXRhaWw9e3NpZGViYXIuZmV0Y2hTcGFuRGV0YWlsfVxuICAgICAgICAgICAgb25XYWtlVXBTbGVlcD17c2lkZWJhci5vbldha2VVcFNsZWVwfVxuICAgICAgICAgICAgb25Mb2FkRXZlbnREYXRhPXtzaWRlYmFyLm9uTG9hZEV2ZW50RGF0YX1cbiAgICAgICAgICAgIG9uUmVzb2x2ZUhvb2s9e3NpZGViYXIub25SZXNvbHZlSG9va31cbiAgICAgICAgICAgIGVuY3J5cHRpb25LZXk9e3NpZGViYXIuZW5jcnlwdGlvbktleX1cbiAgICAgICAgICAgIG9uRGVjcnlwdD17c2lkZWJhci5vbkRlY3J5cHR9XG4gICAgICAgICAgICBpc0RlY3J5cHRpbmc9e3NpZGViYXIuaXNEZWNyeXB0aW5nfVxuICAgICAgICAgICAgc2VsZWN0ZWRTcGFuPXtzZWxlY3RlZFNwYW59XG4gICAgICAgICAgICBzaG93U2VwYXJhdGVFdmVudE9jY3VycmVuY2VUaW1lc3RhbXBzPXtcbiAgICAgICAgICAgICAgc2lkZWJhci5zaG93U2VwYXJhdGVFdmVudE9jY3VycmVuY2VUaW1lc3RhbXBzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9hc2lkZT5cbiAgKTtcbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbmV3LXRyYWNlLXZpZXdlci9jb21wb25lbnRzL2RldGFpbC1wYW5lbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEdBQ1QsTUFBTSxPQUFPLENBQUM7QUFDZixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVB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QWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixHQUM5QyxHQUNZLEdBQ1osSUFDQSxDQUNULENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgeyBwYXJzZVN0ZXBOYW1lLCBwYXJzZVdvcmtmbG93TmFtZSB9IGZyb20gJ0B3b3JrZmxvdy91dGlscy9wYXJzZS1uYW1lJztcbmltcG9ydCB7IENoZXZyb25Eb3duLCBDaGV2cm9uVXAsIFggfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHtcbiAgdHlwZSBSZWFjdE5vZGUsXG4gIHR5cGUgUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBmaWx0ZXJTcGFuUmF3RXZlbnRzIH0gZnJvbSAnLi4vLi4vLi4vbGliL3RyYWNlLWJ1aWxkZXInO1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gJy4uLy4uL2Vycm9yLWJvdW5kYXJ5JztcbmltcG9ydCB7XG4gIEVudGl0eURldGFpbFBhbmVsLFxuICB0eXBlIFNlbGVjdGVkU3BhbkluZm8sXG59IGZyb20gJy4uLy4uL3NpZGViYXIvZW50aXR5LWRldGFpbC1wYW5lbCc7XG5pbXBvcnQgeyB1c2VTaWRlYmFyRGF0YSB9IGZyb20gJy4uLy4uL3NpZGViYXIvc2lkZWJhci1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uL3VpL2ljb24tYnV0dG9uJztcbmltcG9ydCB7IEtiZCB9IGZyb20gJy4uLy4uL3VpL2tiZCc7XG5pbXBvcnQgeyBUb29sdGlwLCBUb29sdGlwQ29udGVudCwgVG9vbHRpcFRyaWdnZXIgfSBmcm9tICcuLi8uLi91aS90b29sdGlwJztcbmltcG9ydCB7IHVzZUFjdGl2ZVNwYW4gfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7XG4gIGNsYW1wUGFuZWxXaWR0aCxcbiAgY29tcHV0ZU1heFBhbmVsV2lkdGgsXG4gIFBBTkVMX0RFRkFVTFRfV0lEVEgsXG4gIFBBTkVMX01JTl9XSURUSCxcbiAgcmVhZFN0b3JlZFBhbmVsV2lkdGgsXG4gIHdyaXRlU3RvcmVkUGFuZWxXaWR0aCxcbn0gZnJvbSAnLi9kZXRhaWwtcGFuZWwtd2lkdGgnO1xuaW1wb3J0IHsgRHJhZ2dhYmxlQm9yZGVyIH0gZnJvbSAnLi9kcmFnZ2FibGUtYm9yZGVyJztcbmltcG9ydCB7IHVzZUVsZW1lbnRXaWR0aCB9IGZyb20gJy4vdXNlLWVsZW1lbnQtd2lkdGgnO1xuXG5jb25zdCBERVRBSUxfUEFORUxfSUQgPSAndHJhY2UtZGV0YWlsLXBhbmVsJztcblxuLyoqIEJyaWRnZSBBY3RpdmVTcGFuQ29udGV4dCArIFNpZGViYXJEYXRhQ29udGV4dCDihpIgU2VsZWN0ZWRTcGFuSW5mby4gKi9cbmZ1bmN0aW9uIHVzZVNlbGVjdGVkU3BhbkluZm8oKTogU2VsZWN0ZWRTcGFuSW5mbyB8IG51bGwge1xuICBjb25zdCB7IGFjdGl2ZVNwYW4gfSA9IHVzZUFjdGl2ZVNwYW4oKTtcbiAgY29uc3Qgc2lkZWJhciA9IHVzZVNpZGViYXJEYXRhKCk7XG5cbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghYWN0aXZlU3BhbikgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IGFjdGl2ZVNwYW4uYXR0cmlidXRlcz8ucmVzb3VyY2UgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJhd0V2ZW50cyA9IGZpbHRlclNwYW5SYXdFdmVudHMoXG4gICAgICBzaWRlYmFyLmV2ZW50cyxcbiAgICAgIHJlc291cmNlLFxuICAgICAgYWN0aXZlU3Bhbi5zcGFuSWRcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IGFjdGl2ZVNwYW4uYXR0cmlidXRlcz8uZGF0YSxcbiAgICAgIHJlc291cmNlLFxuICAgICAgc3BhbklkOiBhY3RpdmVTcGFuLnNwYW5JZCxcbiAgICAgIHJhd0V2ZW50cyxcbiAgICB9O1xuICB9LCBbYWN0aXZlU3Bhbiwgc2lkZWJhcl0pO1xufVxuXG4vKipcbiAqIFRoZSBzcGFuIGRldGFpbCBhc2lkZTogY29udGVudCwgcHJldi9uZXh0L2Nsb3NlIGhlYWRlciwgSi9LIG5hdmlnYXRpb24sIGFuZFxuICogdGhlIHJlc2l6YWJsZSBsZWZ0IGJvcmRlciB3aXRoIGl0cyB3aWR0aCBtb2RlbCAoc2VlIGRldGFpbC1wYW5lbC13aWR0aC50cykuXG4gKlxuICogQWx3YXlzIG1vdW50ZWQg4oCUIGl0IHJlbmRlcnMgbnVsbCB3aXRob3V0IGEgc2VsZWN0aW9uIOKAlCBzbyB0aGUgcGFuZWwgd2lkdGhcbiAqIHN1cnZpdmVzIGNsb3NpbmcgYW5kIHJlb3BlbmluZyB3aXRoaW4gYSBzZXNzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVHJhY2VEZXRhaWxQYW5lbCh7XG4gIGNvbnRhaW5lclJlZixcbiAgb25OYXZpZ2F0ZVRvU3BhbixcbiAgb25DbG9zZSxcbn06IHtcbiAgY29udGFpbmVyUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgb25OYXZpZ2F0ZVRvU3BhbjogKHNwYW5JZDogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgYWN0aXZlU3BhbiwgYWN0aXZlU3BhbklkLCBzcGFucyB9ID0gdXNlQWN0aXZlU3BhbigpO1xuICBjb25zdCBzaWRlYmFyID0gdXNlU2lkZWJhckRhdGEoKTtcbiAgY29uc3Qgc2VsZWN0ZWRTcGFuID0gdXNlU2VsZWN0ZWRTcGFuSW5mbygpO1xuICBjb25zdCBpc09wZW4gPSBCb29sZWFuKGFjdGl2ZVNwYW4pO1xuXG4gIGNvbnN0IFtzdG9yZWRXaWR0aCwgc2V0U3RvcmVkV2lkdGhdID0gdXNlU3RhdGU8bnVtYmVyPigoKSA9PlxuICAgIHJlYWRTdG9yZWRQYW5lbFdpZHRoKClcbiAgKTtcbiAgY29uc3QgY29udGFpbmVyV2lkdGggPSB1c2VFbGVtZW50V2lkdGgoY29udGFpbmVyUmVmLCBpc09wZW4pO1xuICBjb25zdCBhc2lkZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IGhhbmRsZVJlc2l6ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChuZXh0OiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGNsYW1wZWQgPSBjbGFtcFBhbmVsV2lkdGgobmV4dCwgY29udGFpbmVyV2lkdGgpO1xuICAgICAgc2V0U3RvcmVkV2lkdGgoY2xhbXBlZCk7XG4gICAgICB3cml0ZVN0b3JlZFBhbmVsV2lkdGgoY2xhbXBlZCk7XG4gICAgfSxcbiAgICBbY29udGFpbmVyV2lkdGhdXG4gICk7XG5cbiAgY29uc3QgcGFuZWxXaWR0aCA9IGNsYW1wUGFuZWxXaWR0aChzdG9yZWRXaWR0aCwgY29udGFpbmVyV2lkdGgpO1xuICBjb25zdCBwYW5lbE1heFdpZHRoID0gTWF0aC5tYXgoXG4gICAgUEFORUxfTUlOX1dJRFRILFxuICAgIGNvbXB1dGVNYXhQYW5lbFdpZHRoKGNvbnRhaW5lcldpZHRoKVxuICApO1xuXG4gIGNvbnN0IHsgcHJldlNwYW5JZCwgbmV4dFNwYW5JZCB9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFhY3RpdmVTcGFuSWQpIHJldHVybiB7IHByZXZTcGFuSWQ6IG51bGwsIG5leHRTcGFuSWQ6IG51bGwgfTtcbiAgICBjb25zdCBpID0gc3BhbnMuZmluZEluZGV4KChzKSA9PiBzLnNwYW5JZCA9PT0gYWN0aXZlU3BhbklkKTtcbiAgICBpZiAoaSA9PT0gLTEpIHJldHVybiB7IHByZXZTcGFuSWQ6IG51bGwsIG5leHRTcGFuSWQ6IG51bGwgfTtcbiAgICByZXR1cm4ge1xuICAgICAgcHJldlNwYW5JZDogc3BhbnNbaSAtIDFdPy5zcGFuSWQgPz8gbnVsbCxcbiAgICAgIG5leHRTcGFuSWQ6IHNwYW5zW2kgKyAxXT8uc3BhbklkID8/IG51bGwsXG4gICAgfTtcbiAgfSwgW2FjdGl2ZVNwYW5JZCwgc3BhbnNdKTtcblxuICBjb25zdCBoYW5kbGVTZWxlY3RQcmV2ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChwcmV2U3BhbklkKSBvbk5hdmlnYXRlVG9TcGFuKHByZXZTcGFuSWQpO1xuICB9LCBbcHJldlNwYW5JZCwgb25OYXZpZ2F0ZVRvU3Bhbl0pO1xuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE5leHQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKG5leHRTcGFuSWQpIG9uTmF2aWdhdGVUb1NwYW4obmV4dFNwYW5JZCk7XG4gIH0sIFtuZXh0U3BhbklkLCBvbk5hdmlnYXRlVG9TcGFuXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3BlbikgcmV0dXJuO1xuXG4gICAgY29uc3Qgb25LZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgZS5rZXkgIT09ICdqJyAmJlxuICAgICAgICBlLmtleSAhPT0gJ2snICYmXG4gICAgICAgIGUua2V5ICE9PSAnQXJyb3dEb3duJyAmJlxuICAgICAgICBlLmtleSAhPT0gJ0Fycm93VXAnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgaWYgKFxuICAgICAgICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8XG4gICAgICAgIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQgfHxcbiAgICAgICAgdGFyZ2V0Py5pc0NvbnRlbnRFZGl0YWJsZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhcmdldElkID1cbiAgICAgICAgZS5rZXkgPT09ICdrJyB8fCBlLmtleSA9PT0gJ0Fycm93VXAnID8gcHJldlNwYW5JZCA6IG5leHRTcGFuSWQ7XG4gICAgICBpZiAodGFyZ2V0SWQpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBvbk5hdmlnYXRlVG9TcGFuKHRhcmdldElkKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBvbktleURvd24pO1xuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uS2V5RG93bik7XG4gIH0sIFtpc09wZW4sIHByZXZTcGFuSWQsIG5leHRTcGFuSWQsIG9uTmF2aWdhdGVUb1NwYW5dKTtcblxuICAvLyBEZXJpdmUgdGhlIHNlbGVjdGVkIHNwYW4gbmFtZSBmb3IgdGhlIHBhbmVsIGhlYWRlclxuICBjb25zdCBzZWxlY3RlZFNwYW5OYW1lID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZFNwYW4/LmRhdGEpIHJldHVybiAnRGV0YWlscyc7XG4gICAgY29uc3QgZGF0YSA9IHNlbGVjdGVkU3Bhbi5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmIChzZWxlY3RlZFNwYW4ucmVzb3VyY2UgPT09ICdob29rJykge1xuICAgICAgcmV0dXJuIChkYXRhLnRva2VuIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz8gKGRhdGEuaG9va0lkIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RlcE5hbWUgPSBkYXRhLnN0ZXBOYW1lIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB3b3JrZmxvd05hbWUgPSBkYXRhLndvcmtmbG93TmFtZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChcbiAgICAgIChzdGVwTmFtZSA/IHBhcnNlU3RlcE5hbWUoc3RlcE5hbWUpPy5zaG9ydE5hbWUgOiB1bmRlZmluZWQpID8/XG4gICAgICAod29ya2Zsb3dOYW1lID8gcGFyc2VXb3JrZmxvd05hbWUod29ya2Zsb3dOYW1lKT8uc2hvcnROYW1lIDogdW5kZWZpbmVkKSA/P1xuICAgICAgc3RlcE5hbWUgPz9cbiAgICAgIHdvcmtmbG93TmFtZSA/P1xuICAgICAgKGRhdGEuaG9va0lkIGFzIHN0cmluZykgPz9cbiAgICAgICdEZXRhaWxzJ1xuICAgICk7XG4gIH0sIFtzZWxlY3RlZFNwYW4/LmRhdGEsIHNlbGVjdGVkU3Bhbj8ucmVzb3VyY2VdKTtcblxuICBpZiAoIWFjdGl2ZVNwYW4pIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGFzaWRlXG4gICAgICByZWY9e2FzaWRlUmVmfVxuICAgICAgaWQ9e0RFVEFJTF9QQU5FTF9JRH1cbiAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGZsZXggZmxleC1jb2wgaC1mdWxsIG1heC1oLWZ1bGwgc2hyaW5rLTAgYmctYmFja2dyb3VuZC0xMDAgYm9yZGVyLWwgYm9yZGVyLWdyYXktYWxwaGEtNDAwXCJcbiAgICAgIHN0eWxlPXt7IHdpZHRoOiBwYW5lbFdpZHRoIH19XG4gICAgPlxuICAgICAgPERyYWdnYWJsZUJvcmRlclxuICAgICAgICBlbGVtZW50PXthc2lkZVJlZn1cbiAgICAgICAgcG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgb25XaWR0aENoYW5nZT17aGFuZGxlUmVzaXplfVxuICAgICAgICBvblJlc2V0PXsoKSA9PiBoYW5kbGVSZXNpemUoUEFORUxfREVGQVVMVF9XSURUSCl9XG4gICAgICAgIGFyaWEtbGFiZWw9XCJSZXNpemUgc3BhbiBkZXRhaWxzIHBhbmVsXCJcbiAgICAgICAgYXJpYS1jb250cm9scz17REVUQUlMX1BBTkVMX0lEfVxuICAgICAgICBhcmlhLXZhbHVlbWluPXtQQU5FTF9NSU5fV0lEVEh9XG4gICAgICAgIGFyaWEtdmFsdWVtYXg9e3BhbmVsTWF4V2lkdGh9XG4gICAgICAgIGFyaWEtdmFsdWVub3c9e01hdGgubWluKFxuICAgICAgICAgIE1hdGgubWF4KE1hdGgucm91bmQocGFuZWxXaWR0aCksIFBBTkVMX01JTl9XSURUSCksXG4gICAgICAgICAgcGFuZWxNYXhXaWR0aFxuICAgICAgICApfVxuICAgICAgLz5cbiAgICAgIHsvKiBQYW5lbCBoZWFkZXIgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtMiBzaHJpbmstMCBweC00IHB5LVs3LjVweF1cIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1sYWJlbC0xNCBmb250LW1lZGl1bSB0ZXh0LWdyYXktMTAwMCB0cnVuY2F0ZSBibG9ja1wiPlxuICAgICAgICAgIHtzZWxlY3RlZFNwYW5OYW1lfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTAuNSBzaHJpbmstMFwiPlxuICAgICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgICAgPFRvb2x0aXBUcmlnZ2VyIGFzQ2hpbGQ+XG4gICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5hdmlnYXRlIHVwXCJcbiAgICAgICAgICAgICAgICBhcmlhLWtleXNob3J0Y3V0cz1cIktcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbGVjdFByZXZ9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFwcmV2U3BhbklkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENoZXZyb25VcCBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwVHJpZ2dlcj5cbiAgICAgICAgICAgIHtwcmV2U3BhbklkID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgTmF2aWdhdGUgdXBcbiAgICAgICAgICAgICAgICA8S2JkPks8L0tiZD5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwQ29udGVudD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8VG9vbHRpcD5cbiAgICAgICAgICAgIDxUb29sdGlwVHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJOYXZpZ2F0ZSBkb3duXCJcbiAgICAgICAgICAgICAgICBhcmlhLWtleXNob3J0Y3V0cz1cIkpcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbGVjdE5leHR9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFuZXh0U3BhbklkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENoZXZyb25Eb3duIGNsYXNzTmFtZT1cInctNCBoLTRcIiAvPlxuICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXBUcmlnZ2VyPlxuICAgICAgICAgICAge25leHRTcGFuSWQgPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwQ29udGVudD5cbiAgICAgICAgICAgICAgICBOYXZpZ2F0ZSBkb3duXG4gICAgICAgICAgICAgICAgPEtiZD5KPC9LYmQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbiBjbGFzc05hbWU9XCJ3LXB4IGgtNCBiZy1ncmF5LWFscGhhLTQwMCBteC0xXCIgLz5cbiAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIHNwYW4gZGV0YWlsc1wiXG4gICAgICAgICAgICBhcmlhLWtleXNob3J0Y3V0cz1cIkVzY2FwZVwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNsb3NlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxYIGNsYXNzTmFtZT1cInctNCBoLTRcIiAvPlxuICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIHsvKiBQYW5lbCBib2R5ICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIDxFbnRpdHlEZXRhaWxQYW5lbFxuICAgICAgICAgICAgcnVuPXtzaWRlYmFyLnJ1bn1cbiAgICAgICAgICAgIG9uU3RyZWFtQ2xpY2s9e3NpZGViYXIub25TdHJlYW1DbGlja31cbiAgICAgICAgICAgIG9uUnVuQ2xpY2s9e3NpZGViYXIub25SdW5DbGlja31cbiAgICAgICAgICAgIGZldGNoU3BhbkRldGFpbD17c2lkZWJhci5mZXRjaFNwYW5EZXRhaWx9XG4gICAgICAgICAgICBvbldha2VVcFNsZWVwPXtzaWRlYmFyLm9uV2FrZVVwU2xlZXB9XG4gICAgICAgICAgICBvbkxvYWRFdmVudERhdGE9e3NpZGViYXIub25Mb2FkRXZlbnREYXRhfVxuICAgICAgICAgICAgb25SZXNvbHZlSG9vaz17c2lkZWJhci5vblJlc29sdmVIb29rfVxuICAgICAgICAgICAgZW5jcnlwdGlvbktleT17c2lkZWJhci5lbmNyeXB0aW9uS2V5fVxuICAgICAgICAgICAgb25EZWNyeXB0PXtzaWRlYmFyLm9uRGVjcnlwdH1cbiAgICAgICAgICAgIGlzRGVjcnlwdGluZz17c2lkZWJhci5pc0RlY3J5cHRpbmd9XG4gICAgICAgICAgICBzZWxlY3RlZFNwYW49e3NlbGVjdGVkU3Bhbn1cbiAgICAgICAgICAgIHNob3dTZXBhcmF0ZUV2ZW50T2NjdXJyZW5jZVRpbWVzdGFtcHM9e1xuICAgICAgICAgICAgICBzaWRlYmFyLnNob3dTZXBhcmF0ZUV2ZW50T2NjdXJyZW5jZVRpbWVzdGFtcHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdldE1vZHVsZVNvdXJjZVVybD17c2lkZWJhci5nZXRNb2R1bGVTb3VyY2VVcmx9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9hc2lkZT5cbiAgKTtcbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import type { Span } from '../types';
2
1
  import { type SpanSearchResult } from '../search';
2
+ import type { Span } from '../types';
3
3
  declare const EventList: ({ spans, activeSpanId, searchResult, onSelectSpan, }: {
4
4
  spans: Span[];
5
5
  activeSpanId: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"event-list.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/event-list.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAQrC,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAsFxE,QAAA,MAAM,SAAS,GAAI,sDAKhB;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,4CA0BA,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"event-list.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/event-list.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAoFrC,QAAA,MAAM,SAAS,GAAI,sDAKhB;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,4CA0BA,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -5,7 +5,7 @@ import { cn } from '../../../lib/cn';
5
5
  import { formatDurationPrecise } from '../../trace-viewer/util/timing';
6
6
  import { SleepIcon, StepForwardIcon, WebhookIcon, WorkflowIcon, } from '../icons';
7
7
  import { isSpanDimmedBySearch } from '../search';
8
- import { getSpanDurationMs } from '../utils';
8
+ import { getSpanDurationMs, isSpanErrored } from '../utils';
9
9
  import { MiddleTruncate } from './middle-truncate/middle-truncate';
10
10
  import { ROW_HEIGHT_PX, useRowWindow } from './use-row-window';
11
11
  const eventStyles = {
@@ -28,19 +28,17 @@ function getEventStyle(resource, isErrored) {
28
28
  }
29
29
  const EventRow = ({ span, isSelected, isDimmed, onSelectSpan, }) => {
30
30
  const durationMs = getSpanDurationMs(span);
31
- const workflowStatus = span.attributes.data
32
- ?.status;
33
- const isErrored = span.status.code === 2 || workflowStatus === 'failed';
31
+ const isErrored = isSpanErrored(span);
34
32
  const { icon: Icon, className: tagClassName } = getEventStyle(span.resource, isErrored);
35
33
  return (_jsx("li", { className: cn('relative overflow-clip group transition-opacity', ROW_HEIGHT_CLASS, isDimmed && 'opacity-35'), role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, onClick: () => onSelectSpan(span.spanId), children: _jsx("div", { className: "h-full hover:bg-gray-100 group-aria-selected:bg-gray-100 group-aria-selected:hover:bg-gray-200", children: _jsxs("div", { className: "flex h-full min-w-0 items-center pl-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [_jsx("span", { className: cn('shrink-0', tagClassName), children: _jsx(Icon, { className: "w-4 h-4" }) }), _jsx("span", { className: "min-w-0 text-label-14", children: _jsx(MiddleTruncate, { value: span.name }) })] }), _jsx("div", { className: "ml-2 shrink-0", children: _jsx("span", { className: "text-label-14 text-gray-900 tabular-nums", children: formatDurationPrecise(durationMs) }) })] }) }) }));
36
34
  };
37
35
  const EventList = ({ spans, activeSpanId, searchResult, onSelectSpan, }) => {
38
36
  const listRef = useRef(null);
39
37
  const { start, end } = useRowWindow(listRef, spans.length, ROW_HEIGHT_PX);
40
- return (_jsx("ul", { ref: listRef, id: "event-list", role: "tree", className: "block min-h-0 overflow-visible divide-y divide-gray-alpha-400 border-b border-gray-alpha-400", style: {
38
+ return (_jsx("ul", { ref: listRef, id: "event-list", role: "tree", className: "block min-h-0 overflow-visible divide-y divide-gray-400 border-b border-gray-400", style: {
41
39
  paddingTop: start * ROW_HEIGHT_PX,
42
40
  paddingBottom: (spans.length - end) * ROW_HEIGHT_PX,
43
41
  }, children: spans.slice(start, end).map((span) => (_jsx(EventRow, { span: span, isSelected: span.spanId === activeSpanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelectSpan: onSelectSpan }, span.spanId))) }));
44
42
  };
45
43
  export default EventList;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25ldy10cmFjZS12aWV3ZXIvY29tcG9uZW50cy9ldmVudC1saXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsU0FBUyxFQUNULGVBQWUsRUFDZixXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxvQkFBb0IsRUFBeUIsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBTy9ELE1BQU0sV0FBVyxHQUErQjtJQUM5QyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7SUFDdkQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7SUFDNUQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtDQUN2RCxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQWU7SUFDL0IsSUFBSSxFQUFFLE1B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RUFBRSxFQUFFLENBQUMsQ0FDckMsS0FBQyxRQUFRLElBRVAsSUFBSSxFQUFFLElBQUksRUFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sS0FBSyxZQUFZLEVBQ3hDLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUN6RCxZQUFZLEVBQUUsWUFBWSxJQUpyQixJQUFJLENBQUMsTUFBTSxDQUtoQixDQUNILENBQUMsR0FDQyxDQUNOLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixlQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENpcmNsZSB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL2xpYi9jbic7XG5pbXBvcnQgdHlwZSB7IFNwYW4gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBmb3JtYXREdXJhdGlvblByZWNpc2UgfSBmcm9tICcuLi8uLi90cmFjZS12aWV3ZXIvdXRpbC90aW1pbmcnO1xuaW1wb3J0IHtcbiAgU2xlZXBJY29uLFxuICBTdGVwRm9yd2FyZEljb24sXG4gIFdlYmhvb2tJY29uLFxuICBXb3JrZmxvd0ljb24sXG59IGZyb20gJy4uL2ljb25zJztcbmltcG9ydCB7IGlzU3BhbkRpbW1lZEJ5U2VhcmNoLCB0eXBlIFNwYW5TZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zZWFyY2gnO1xuaW1wb3J0IHsgZ2V0U3BhbkR1cmF0aW9uTXMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBNaWRkbGVUcnVuY2F0ZSB9IGZyb20gJy4vbWlkZGxlLXRydW5jYXRlL21pZGRsZS10cnVuY2F0ZSc7XG5pbXBvcnQgeyBST1dfSEVJR0hUX1BYLCB1c2VSb3dXaW5kb3cgfSBmcm9tICcuL3VzZS1yb3ctd2luZG93JztcblxuaW50ZXJmYWNlIEV2ZW50U3R5bGUge1xuICBpY29uOiBSZWFjdC5Db21wb25lbnRUeXBlPHsgY2xhc3NOYW1lPzogc3RyaW5nIH0+O1xuICBjbGFzc05hbWU6IHN0cmluZztcbn1cblxuY29uc3QgZXZlbnRTdHlsZXM6IFJlY29yZDxzdHJpbmcsIEV2ZW50U3R5bGU+ID0ge1xuICBydW46IHsgaWNvbjogV29ya2Zsb3dJY29uLCBjbGFzc05hbWU6ICd0ZXh0LWJsdWUtOTAwJyB9LFxuICBzdGVwOiB7IGljb246IFN0ZXBGb3J3YXJkSWNvbiwgY2xhc3NOYW1lOiAndGV4dC1ncmVlbi05MDAnIH0sXG4gIGhvb2s6IHsgaWNvbjogV2ViaG9va0ljb24sIGNsYXNzTmFtZTogJ3RleHQtZ3JheS05MDAnIH0sXG4gIHNsZWVwOiB7IGljb246IFNsZWVwSWNvbiwgY2xhc3NOYW1lOiAndGV4dC1ncmF5LTkwMCcgfSxcbn07XG5cbmNvbnN0IGRlZmF1bHRTdHlsZTogRXZlbnRTdHlsZSA9IHtcbiAgaWNvbjogQ2lyY2xlLFxuICBjbGFzc05hbWU6ICd0ZXh0LWdyYXktOTAwJyxcbn07XG5cbmNvbnN0IFJPV19IRUlHSFRfQ0xBU1MgPSAnaC0xMCc7XG5cbmZ1bmN0aW9uIGdldEV2ZW50U3R5bGUocmVzb3VyY2U6IHN0cmluZywgaXNFcnJvcmVkOiBib29sZWFuKTogRXZlbnRTdHlsZSB7XG4gIGNvbnN0IHN0eWxlID0gZXZlbnRTdHlsZXNbcmVzb3VyY2VdID8/IGRlZmF1bHRTdHlsZTtcbiAgcmV0dXJuIHtcbiAgICBpY29uOiBzdHlsZS5pY29uLFxuICAgIGNsYXNzTmFtZTogY24oaXNFcnJvcmVkID8gJ3RleHQtcmVkLTkwMCcgOiBzdHlsZS5jbGFzc05hbWUpLFxuICB9O1xufVxuXG5jb25zdCBFdmVudFJvdyA9ICh7XG4gIHNwYW4sXG4gIGlzU2VsZWN0ZWQsXG4gIGlzRGltbWVkLFxuICBvblNlbGVjdFNwYW4sXG59OiB7XG4gIHNwYW46IFNwYW47XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGlzRGltbWVkPzogYm9vbGVhbjtcbiAgb25TZWxlY3RTcGFuOiAoc3BhbklkOiBzdHJpbmcpID0+IHZvaWQ7XG59KSA9PiB7XG4gIGNvbnN0IGR1cmF0aW9uTXMgPSBnZXRTcGFuRHVyYXRpb25NcyhzcGFuKTtcbiAgY29uc3Qgd29ya2Zsb3dTdGF0dXMgPSAoc3Bhbi5hdHRyaWJ1dGVzLmRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAgPy5zdGF0dXMgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb25zdCBpc0Vycm9yZWQgPSBzcGFuLnN0YXR1cy5jb2RlID09PSAyIHx8IHdvcmtmbG93U3RhdHVzID09PSAnZmFpbGVkJztcbiAgY29uc3QgeyBpY29uOiBJY29uLCBjbGFzc05hbWU6IHRhZ0NsYXNzTmFtZSB9ID0gZ2V0RXZlbnRTdHlsZShcbiAgICBzcGFuLnJlc291cmNlLFxuICAgIGlzRXJyb3JlZFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAncmVsYXRpdmUgb3ZlcmZsb3ctY2xpcCBncm91cCB0cmFuc2l0aW9uLW9wYWNpdHknLFxuICAgICAgICBST1dfSEVJR0hUX0NMQVNTLFxuICAgICAgICBpc0RpbW1lZCAmJiAnb3BhY2l0eS0zNSdcbiAgICAgICl9XG4gICAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgYXJpYS1zZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgIGFyaWEtZXhwYW5kZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBhcmlhLWxldmVsPXsxfVxuICAgICAgb25DbGljaz17KCkgPT4gb25TZWxlY3RTcGFuKHNwYW4uc3BhbklkKX1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtZnVsbCBob3ZlcjpiZy1ncmF5LTEwMCBncm91cC1hcmlhLXNlbGVjdGVkOmJnLWdyYXktMTAwIGdyb3VwLWFyaWEtc2VsZWN0ZWQ6aG92ZXI6YmctZ3JheS0yMDBcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGgtZnVsbCBtaW4tdy0wIGl0ZW1zLWNlbnRlciBwbC00IHByLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggbWluLXctMCBmbGV4LTEgaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NuKCdzaHJpbmstMCcsIHRhZ0NsYXNzTmFtZSl9PlxuICAgICAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1pbi13LTAgdGV4dC1sYWJlbC0xNFwiPlxuICAgICAgICAgICAgICA8TWlkZGxlVHJ1bmNhdGUgdmFsdWU9e3NwYW4ubmFtZX0gLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1sLTIgc2hyaW5rLTBcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbGFiZWwtMTQgdGV4dC1ncmF5LTkwMCB0YWJ1bGFyLW51bXNcIj5cbiAgICAgICAgICAgICAge2Zvcm1hdER1cmF0aW9uUHJlY2lzZShkdXJhdGlvbk1zKX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICApO1xufTtcblxuY29uc3QgRXZlbnRMaXN0ID0gKHtcbiAgc3BhbnMsXG4gIGFjdGl2ZVNwYW5JZCxcbiAgc2VhcmNoUmVzdWx0LFxuICBvblNlbGVjdFNwYW4sXG59OiB7XG4gIHNwYW5zOiBTcGFuW107XG4gIGFjdGl2ZVNwYW5JZDogc3RyaW5nIHwgbnVsbDtcbiAgc2VhcmNoUmVzdWx0OiBTcGFuU2VhcmNoUmVzdWx0O1xuICBvblNlbGVjdFNwYW46IChzcGFuSWQ6IHN0cmluZykgPT4gdm9pZDtcbn0pID0+IHtcbiAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcbiAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSB1c2VSb3dXaW5kb3cobGlzdFJlZiwgc3BhbnMubGVuZ3RoLCBST1dfSEVJR0hUX1BYKTtcblxuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgcmVmPXtsaXN0UmVmfVxuICAgICAgaWQ9XCJldmVudC1saXN0XCJcbiAgICAgIHJvbGU9XCJ0cmVlXCJcbiAgICAgIGNsYXNzTmFtZT1cImJsb2NrIG1pbi1oLTAgb3ZlcmZsb3ctdmlzaWJsZSBkaXZpZGUteSBkaXZpZGUtZ3JheS1hbHBoYS00MDAgYm9yZGVyLWIgYm9yZGVyLWdyYXktYWxwaGEtNDAwXCJcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBhZGRpbmdUb3A6IHN0YXJ0ICogUk9XX0hFSUdIVF9QWCxcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogKHNwYW5zLmxlbmd0aCAtIGVuZCkgKiBST1dfSEVJR0hUX1BYLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7c3BhbnMuc2xpY2Uoc3RhcnQsIGVuZCkubWFwKChzcGFuKSA9PiAoXG4gICAgICAgIDxFdmVudFJvd1xuICAgICAgICAgIGtleT17c3Bhbi5zcGFuSWR9XG4gICAgICAgICAgc3Bhbj17c3Bhbn1cbiAgICAgICAgICBpc1NlbGVjdGVkPXtzcGFuLnNwYW5JZCA9PT0gYWN0aXZlU3BhbklkfVxuICAgICAgICAgIGlzRGltbWVkPXtpc1NwYW5EaW1tZWRCeVNlYXJjaChzcGFuLnNwYW5JZCwgc2VhcmNoUmVzdWx0KX1cbiAgICAgICAgICBvblNlbGVjdFNwYW49e29uU2VsZWN0U3Bhbn1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvdWw+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFdmVudExpc3Q7XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25ldy10cmFjZS12aWV3ZXIvY29tcG9uZW50cy9ldmVudC1saXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsU0FBUyxFQUNULGVBQWUsRUFDZixXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxvQkFBb0IsRUFBeUIsTUFBTSxXQUFXLENBQUM7QUFFeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU8vRCxNQUFNLFdBQVcsR0FBK0I7SUFDOUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO0lBQ3ZELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO0lBQzVELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Q0FDdkQsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFlO0lBQy9CLElB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eEMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQ3pELFlBQVksRUFBRSxZQUFZLElBSnJCLElBQUksQ0FBQyxNQUFNLENBS2hCLENBQ0gsQ0FBQyxHQUNDLENBQ04sQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGVBQWUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2lyY2xlIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NuJztcbmltcG9ydCB7IGZvcm1hdER1cmF0aW9uUHJlY2lzZSB9IGZyb20gJy4uLy4uL3RyYWNlLXZpZXdlci91dGlsL3RpbWluZyc7XG5pbXBvcnQge1xuICBTbGVlcEljb24sXG4gIFN0ZXBGb3J3YXJkSWNvbixcbiAgV2ViaG9va0ljb24sXG4gIFdvcmtmbG93SWNvbixcbn0gZnJvbSAnLi4vaWNvbnMnO1xuaW1wb3J0IHsgaXNTcGFuRGltbWVkQnlTZWFyY2gsIHR5cGUgU3BhblNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaCc7XG5pbXBvcnQgdHlwZSB7IFNwYW4gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTcGFuRHVyYXRpb25NcywgaXNTcGFuRXJyb3JlZCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE1pZGRsZVRydW5jYXRlIH0gZnJvbSAnLi9taWRkbGUtdHJ1bmNhdGUvbWlkZGxlLXRydW5jYXRlJztcbmltcG9ydCB7IFJPV19IRUlHSFRfUFgsIHVzZVJvd1dpbmRvdyB9IGZyb20gJy4vdXNlLXJvdy13aW5kb3cnO1xuXG5pbnRlcmZhY2UgRXZlbnRTdHlsZSB7XG4gIGljb246IFJlYWN0LkNvbXBvbmVudFR5cGU8eyBjbGFzc05hbWU/OiBzdHJpbmcgfT47XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xufVxuXG5jb25zdCBldmVudFN0eWxlczogUmVjb3JkPHN0cmluZywgRXZlbnRTdHlsZT4gPSB7XG4gIHJ1bjogeyBpY29uOiBXb3JrZmxvd0ljb24sIGNsYXNzTmFtZTogJ3RleHQtYmx1ZS05MDAnIH0sXG4gIHN0ZXA6IHsgaWNvbjogU3RlcEZvcndhcmRJY29uLCBjbGFzc05hbWU6ICd0ZXh0LWdyZWVuLTkwMCcgfSxcbiAgaG9vazogeyBpY29uOiBXZWJob29rSWNvbiwgY2xhc3NOYW1lOiAndGV4dC1ncmF5LTkwMCcgfSxcbiAgc2xlZXA6IHsgaWNvbjogU2xlZXBJY29uLCBjbGFzc05hbWU6ICd0ZXh0LWdyYXktOTAwJyB9LFxufTtcblxuY29uc3QgZGVmYXVsdFN0eWxlOiBFdmVudFN0eWxlID0ge1xuICBpY29uOiBDaXJjbGUsXG4gIGNsYXNzTmFtZTogJ3RleHQtZ3JheS05MDAnLFxufTtcblxuY29uc3QgUk9XX0hFSUdIVF9DTEFTUyA9ICdoLTEwJztcblxuZnVuY3Rpb24gZ2V0RXZlbnRTdHlsZShyZXNvdXJjZTogc3RyaW5nLCBpc0Vycm9yZWQ6IGJvb2xlYW4pOiBFdmVudFN0eWxlIHtcbiAgY29uc3Qgc3R5bGUgPSBldmVudFN0eWxlc1tyZXNvdXJjZV0gPz8gZGVmYXVsdFN0eWxlO1xuICByZXR1cm4ge1xuICAgIGljb246IHN0eWxlLmljb24sXG4gICAgY2xhc3NOYW1lOiBjbihpc0Vycm9yZWQgPyAndGV4dC1yZWQtOTAwJyA6IHN0eWxlLmNsYXNzTmFtZSksXG4gIH07XG59XG5cbmNvbnN0IEV2ZW50Um93ID0gKHtcbiAgc3BhbixcbiAgaXNTZWxlY3RlZCxcbiAgaXNEaW1tZWQsXG4gIG9uU2VsZWN0U3Bhbixcbn06IHtcbiAgc3BhbjogU3BhbjtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgaXNEaW1tZWQ/OiBib29sZWFuO1xuICBvblNlbGVjdFNwYW46IChzcGFuSWQ6IHN0cmluZykgPT4gdm9pZDtcbn0pID0+IHtcbiAgY29uc3QgZHVyYXRpb25NcyA9IGdldFNwYW5EdXJhdGlvbk1zKHNwYW4pO1xuICBjb25zdCBpc0Vycm9yZWQgPSBpc1NwYW5FcnJvcmVkKHNwYW4pO1xuICBjb25zdCB7IGljb246IEljb24sIGNsYXNzTmFtZTogdGFnQ2xhc3NOYW1lIH0gPSBnZXRFdmVudFN0eWxlKFxuICAgIHNwYW4ucmVzb3VyY2UsXG4gICAgaXNFcnJvcmVkXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdyZWxhdGl2ZSBvdmVyZmxvdy1jbGlwIGdyb3VwIHRyYW5zaXRpb24tb3BhY2l0eScsXG4gICAgICAgIFJPV19IRUlHSFRfQ0xBU1MsXG4gICAgICAgIGlzRGltbWVkICYmICdvcGFjaXR5LTM1J1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICBhcmlhLXNlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgYXJpYS1leHBhbmRlZD17aXNTZWxlY3RlZH1cbiAgICAgIGFyaWEtbGV2ZWw9ezF9XG4gICAgICBvbkNsaWNrPXsoKSA9PiBvblNlbGVjdFNwYW4oc3Bhbi5zcGFuSWQpfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC1mdWxsIGhvdmVyOmJnLWdyYXktMTAwIGdyb3VwLWFyaWEtc2VsZWN0ZWQ6YmctZ3JheS0xMDAgZ3JvdXAtYXJpYS1zZWxlY3RlZDpob3ZlcjpiZy1ncmF5LTIwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC1mdWxsIG1pbi13LTAgaXRlbXMtY2VudGVyIHBsLTQgcHItMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBtaW4tdy0wIGZsZXgtMSBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y24oJ3Nocmluay0wJywgdGFnQ2xhc3NOYW1lKX0+XG4gICAgICAgICAgICAgIDxJY29uIGNsYXNzTmFtZT1cInctNCBoLTRcIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWluLXctMCB0ZXh0LWxhYmVsLTE0XCI+XG4gICAgICAgICAgICAgIDxNaWRkbGVUcnVuY2F0ZSB2YWx1ZT17c3Bhbi5uYW1lfSAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWwtMiBzaHJpbmstMFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1sYWJlbC0xNCB0ZXh0LWdyYXktOTAwIHRhYnVsYXItbnVtc1wiPlxuICAgICAgICAgICAgICB7Zm9ybWF0RHVyYXRpb25QcmVjaXNlKGR1cmF0aW9uTXMpfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gICk7XG59O1xuXG5jb25zdCBFdmVudExpc3QgPSAoe1xuICBzcGFucyxcbiAgYWN0aXZlU3BhbklkLFxuICBzZWFyY2hSZXN1bHQsXG4gIG9uU2VsZWN0U3Bhbixcbn06IHtcbiAgc3BhbnM6IFNwYW5bXTtcbiAgYWN0aXZlU3BhbklkOiBzdHJpbmcgfCBudWxsO1xuICBzZWFyY2hSZXN1bHQ6IFNwYW5TZWFyY2hSZXN1bHQ7XG4gIG9uU2VsZWN0U3BhbjogKHNwYW5JZDogc3RyaW5nKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCBsaXN0UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IHVzZVJvd1dpbmRvdyhsaXN0UmVmLCBzcGFucy5sZW5ndGgsIFJPV19IRUlHSFRfUFgpO1xuXG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICBpZD1cImV2ZW50LWxpc3RcIlxuICAgICAgcm9sZT1cInRyZWVcIlxuICAgICAgY2xhc3NOYW1lPVwiYmxvY2sgbWluLWgtMCBvdmVyZmxvdy12aXNpYmxlIGRpdmlkZS15IGRpdmlkZS1ncmF5LTQwMCBib3JkZXItYiBib3JkZXItZ3JheS00MDBcIlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgcGFkZGluZ1RvcDogc3RhcnQgKiBST1dfSEVJR0hUX1BYLFxuICAgICAgICBwYWRkaW5nQm90dG9tOiAoc3BhbnMubGVuZ3RoIC0gZW5kKSAqIFJPV19IRUlHSFRfUFgsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtzcGFucy5zbGljZShzdGFydCwgZW5kKS5tYXAoKHNwYW4pID0+IChcbiAgICAgICAgPEV2ZW50Um93XG4gICAgICAgICAga2V5PXtzcGFuLnNwYW5JZH1cbiAgICAgICAgICBzcGFuPXtzcGFufVxuICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NwYW4uc3BhbklkID09PSBhY3RpdmVTcGFuSWR9XG4gICAgICAgICAgaXNEaW1tZWQ9e2lzU3BhbkRpbW1lZEJ5U2VhcmNoKHNwYW4uc3BhbklkLCBzZWFyY2hSZXN1bHQpfVxuICAgICAgICAgIG9uU2VsZWN0U3Bhbj17b25TZWxlY3RTcGFufVxuICAgICAgICAvPlxuICAgICAgKSl9XG4gICAgPC91bD5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50TGlzdDtcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { Span } from '../types';
3
+ import { type RootBounds, type ViewportRange } from '../utils';
4
+ export declare const Minimap: import("react").MemoExoticComponent<({ spans, root, viewport, minViewportMs, onViewportChange, onAnimateTo, }: {
5
+ spans: Span[];
6
+ root: RootBounds;
7
+ viewport: ViewportRange;
8
+ minViewportMs: number;
9
+ /** Immediate viewport update (used while dragging). */
10
+ onViewportChange: (viewport: ViewportRange) => void;
11
+ /** Eased viewport transition (used for click-to-jump and selections). */
12
+ onAnimateTo: (viewport: ViewportRange) => void;
13
+ }) => ReactNode>;
14
+ //# sourceMappingURL=minimap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimap.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/minimap.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAcvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,aAAa,EAGnB,MAAM,UAAU,CAAC;AA4HlB,eAAO,MAAM,OAAO,iHAOjB;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACpD,yEAAyE;IACzE,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD,KAAG,SAAS,CA0YX,CAAC"}