@lvce-editor/chat-debug-view 10.2.0 → 10.4.0
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.
- package/dist/chatDebugViewWorkerMain.js +255 -19
- package/package.json +1 -1
|
@@ -2245,6 +2245,7 @@ const createDefaultState = () => {
|
|
|
2245
2245
|
timelineEndSeconds: '',
|
|
2246
2246
|
timelineEvents: [],
|
|
2247
2247
|
timelineFilterDescription: '',
|
|
2248
|
+
timelineHeight: 81,
|
|
2248
2249
|
timelineHoverPercent: null,
|
|
2249
2250
|
timelineHoverSeconds: '',
|
|
2250
2251
|
timelineInfo: emptyTimelineInfo,
|
|
@@ -2292,7 +2293,7 @@ const RenderFocusContext = 4;
|
|
|
2292
2293
|
const RenderFocus = 5;
|
|
2293
2294
|
|
|
2294
2295
|
const diff = (oldState, newState) => {
|
|
2295
|
-
if (oldState.categoryFilters !== newState.categoryFilters || oldState.detailTabs !== newState.detailTabs || oldState.errorMessage !== newState.errorMessage || oldState.events !== newState.events || oldState.filterValue !== newState.filterValue || oldState.previewTextCursorColumnIndex !== newState.previewTextCursorColumnIndex || oldState.previewTextCursorRowIndex !== newState.previewTextCursorRowIndex || oldState.sessionId !== newState.sessionId || oldState.showEventStreamFinishedEvents !== newState.showEventStreamFinishedEvents || oldState.showInputEvents !== newState.showInputEvents || oldState.showResponsePartEvents !== newState.showResponsePartEvents || oldState.sortColumn !== newState.sortColumn || oldState.sortDescending !== newState.sortDescending || oldState.tableColumnWidths !== newState.tableColumnWidths || oldState.tableDeltaY !== newState.tableDeltaY || oldState.tableMaxLineY !== newState.tableMaxLineY || oldState.tableMinLineY !== newState.tableMinLineY || oldState.tableWidth !== newState.tableWidth || oldState.timelineEndSeconds !== newState.timelineEndSeconds || oldState.timelineHoverPercent !== newState.timelineHoverPercent || oldState.timelineHoverSeconds !== newState.timelineHoverSeconds || oldState.timelineSelectionActive !== newState.timelineSelectionActive || oldState.timelineSelectionAnchorSeconds !== newState.timelineSelectionAnchorSeconds || oldState.timelineSelectionFocusSeconds !== newState.timelineSelectionFocusSeconds || oldState.timelineStartSeconds !== newState.timelineStartSeconds || oldState.useDevtoolsLayout !== newState.useDevtoolsLayout || oldState.tableColumns !== newState.tableColumns || oldState.selectedEvent !== newState.selectedEvent || oldState.selectedEventIndex !== newState.selectedEventIndex || oldState.focus !== newState.focus || oldState.width !== newState.width || oldState.uid !== newState.uid) {
|
|
2296
|
+
if (oldState.categoryFilters !== newState.categoryFilters || oldState.detailTabs !== newState.detailTabs || oldState.errorMessage !== newState.errorMessage || oldState.events !== newState.events || oldState.filterValue !== newState.filterValue || oldState.previewTextCursorColumnIndex !== newState.previewTextCursorColumnIndex || oldState.previewTextCursorRowIndex !== newState.previewTextCursorRowIndex || oldState.sessionId !== newState.sessionId || oldState.showEventStreamFinishedEvents !== newState.showEventStreamFinishedEvents || oldState.showInputEvents !== newState.showInputEvents || oldState.showResponsePartEvents !== newState.showResponsePartEvents || oldState.sortColumn !== newState.sortColumn || oldState.sortDescending !== newState.sortDescending || oldState.tableColumnWidths !== newState.tableColumnWidths || oldState.tableDeltaY !== newState.tableDeltaY || oldState.tableMaxLineY !== newState.tableMaxLineY || oldState.tableMinLineY !== newState.tableMinLineY || oldState.tableWidth !== newState.tableWidth || oldState.timelineEndSeconds !== newState.timelineEndSeconds || oldState.timelineHeight !== newState.timelineHeight || oldState.timelineHoverPercent !== newState.timelineHoverPercent || oldState.timelineHoverSeconds !== newState.timelineHoverSeconds || oldState.timelineSelectionActive !== newState.timelineSelectionActive || oldState.timelineSelectionAnchorSeconds !== newState.timelineSelectionAnchorSeconds || oldState.timelineSelectionFocusSeconds !== newState.timelineSelectionFocusSeconds || oldState.timelineStartSeconds !== newState.timelineStartSeconds || oldState.useDevtoolsLayout !== newState.useDevtoolsLayout || oldState.tableColumns !== newState.tableColumns || oldState.selectedEvent !== newState.selectedEvent || oldState.selectedEventIndex !== newState.selectedEventIndex || oldState.focus !== newState.focus || oldState.width !== newState.width || oldState.uid !== newState.uid) {
|
|
2296
2297
|
return [RenderIncremental, RenderCss];
|
|
2297
2298
|
}
|
|
2298
2299
|
return [];
|
|
@@ -2383,6 +2384,76 @@ const mergeToolExecutionEvents = (startedEvent, finishedEvent, type = mergedEven
|
|
|
2383
2384
|
return mergedEvent;
|
|
2384
2385
|
};
|
|
2385
2386
|
|
|
2387
|
+
const requestEventTypes = new Set(['request', 'ai-request']);
|
|
2388
|
+
const responseEventTypes = new Set(['response', 'ai-response-success']);
|
|
2389
|
+
const getPairId = event => {
|
|
2390
|
+
const {
|
|
2391
|
+
request_id: requestIdSnake,
|
|
2392
|
+
requestId,
|
|
2393
|
+
requestID,
|
|
2394
|
+
turn_id: turnIdSnake,
|
|
2395
|
+
turnId
|
|
2396
|
+
} = event;
|
|
2397
|
+
if (typeof requestId === 'string' || typeof requestId === 'number') {
|
|
2398
|
+
return requestId;
|
|
2399
|
+
}
|
|
2400
|
+
if (typeof requestIdSnake === 'string' || typeof requestIdSnake === 'number') {
|
|
2401
|
+
return requestIdSnake;
|
|
2402
|
+
}
|
|
2403
|
+
if (typeof requestID === 'string' || typeof requestID === 'number') {
|
|
2404
|
+
return requestID;
|
|
2405
|
+
}
|
|
2406
|
+
if (typeof turnId === 'string' || typeof turnId === 'number') {
|
|
2407
|
+
return turnId;
|
|
2408
|
+
}
|
|
2409
|
+
if (typeof turnIdSnake === 'string' || typeof turnIdSnake === 'number') {
|
|
2410
|
+
return turnIdSnake;
|
|
2411
|
+
}
|
|
2412
|
+
const {
|
|
2413
|
+
body,
|
|
2414
|
+
request,
|
|
2415
|
+
response,
|
|
2416
|
+
value
|
|
2417
|
+
} = event;
|
|
2418
|
+
const bodyPairId = body?.requestId ?? body?.request_id ?? body?.requestID ?? body?.turnId ?? body?.turn_id;
|
|
2419
|
+
if (typeof bodyPairId === 'string' || typeof bodyPairId === 'number') {
|
|
2420
|
+
return bodyPairId;
|
|
2421
|
+
}
|
|
2422
|
+
const requestPairId = request?.requestId ?? request?.request_id ?? request?.requestID ?? request?.turnId ?? request?.turn_id;
|
|
2423
|
+
if (typeof requestPairId === 'string' || typeof requestPairId === 'number') {
|
|
2424
|
+
return requestPairId;
|
|
2425
|
+
}
|
|
2426
|
+
const valuePairId = value?.requestId ?? value?.request_id ?? value?.requestID ?? value?.turnId ?? value?.turn_id;
|
|
2427
|
+
if (typeof valuePairId === 'string' || typeof valuePairId === 'number') {
|
|
2428
|
+
return valuePairId;
|
|
2429
|
+
}
|
|
2430
|
+
const responsePairId = response?.requestId ?? response?.request_id ?? response?.requestID ?? response?.turnId ?? response?.turn_id;
|
|
2431
|
+
if (typeof responsePairId === 'string' || typeof responsePairId === 'number') {
|
|
2432
|
+
return responsePairId;
|
|
2433
|
+
}
|
|
2434
|
+
return undefined;
|
|
2435
|
+
};
|
|
2436
|
+
const mergeRequestResponseEvents = (startedEvent, finishedEvent) => {
|
|
2437
|
+
return {
|
|
2438
|
+
...mergeToolExecutionEvents(startedEvent, finishedEvent, startedEvent.type),
|
|
2439
|
+
requestEvent: startedEvent,
|
|
2440
|
+
responseEvent: finishedEvent
|
|
2441
|
+
};
|
|
2442
|
+
};
|
|
2443
|
+
const isMatchingRequestResponsePair = (startedEvent, finishedEvent) => {
|
|
2444
|
+
if (!requestEventTypes.has(startedEvent.type) || !responseEventTypes.has(finishedEvent.type)) {
|
|
2445
|
+
return false;
|
|
2446
|
+
}
|
|
2447
|
+
if (startedEvent.sessionId !== finishedEvent.sessionId) {
|
|
2448
|
+
return false;
|
|
2449
|
+
}
|
|
2450
|
+
const startedPairId = getPairId(startedEvent);
|
|
2451
|
+
const finishedPairId = getPairId(finishedEvent);
|
|
2452
|
+
if (startedPairId !== undefined && finishedPairId !== undefined) {
|
|
2453
|
+
return startedPairId === finishedPairId;
|
|
2454
|
+
}
|
|
2455
|
+
return startedEvent.type === 'ai-request' && finishedEvent.type === 'ai-response-success';
|
|
2456
|
+
};
|
|
2386
2457
|
const isMatchingHandleSubmitPair = (startedEvent, finishedEvent) => {
|
|
2387
2458
|
return startedEvent.type === handleSubmitEventType && finishedEvent.type === sseResponseCompletedEventType && startedEvent.sessionId === finishedEvent.sessionId;
|
|
2388
2459
|
};
|
|
@@ -2396,6 +2467,11 @@ const collapseToolExecutionEvents = events => {
|
|
|
2396
2467
|
i++;
|
|
2397
2468
|
continue;
|
|
2398
2469
|
}
|
|
2470
|
+
if (nextEvent && isMatchingRequestResponsePair(event, nextEvent)) {
|
|
2471
|
+
collapsedEvents.push(mergeRequestResponseEvents(event, nextEvent));
|
|
2472
|
+
i++;
|
|
2473
|
+
continue;
|
|
2474
|
+
}
|
|
2399
2475
|
if (nextEvent && isMatchingHandleSubmitPair(event, nextEvent)) {
|
|
2400
2476
|
collapsedEvents.push(mergeToolExecutionEvents(event, nextEvent, handleSubmitEventType));
|
|
2401
2477
|
i++;
|
|
@@ -2644,6 +2720,30 @@ const loadSelectedEvent = async (_databaseName, _dataBaseVersion, _eventStoreNam
|
|
|
2644
2720
|
return loadSelectedEvent$1(sessionId, eventId, type);
|
|
2645
2721
|
};
|
|
2646
2722
|
|
|
2723
|
+
const mergeSelectedEventDetails = (selectedEvent, selectedEventDetails) => {
|
|
2724
|
+
if (!selectedEventDetails) {
|
|
2725
|
+
return selectedEvent;
|
|
2726
|
+
}
|
|
2727
|
+
const {
|
|
2728
|
+
requestEvent,
|
|
2729
|
+
responseEvent
|
|
2730
|
+
} = selectedEvent;
|
|
2731
|
+
if (!requestEvent || !responseEvent || typeof requestEvent !== 'object' || typeof responseEvent !== 'object') {
|
|
2732
|
+
return selectedEventDetails;
|
|
2733
|
+
}
|
|
2734
|
+
const selectedEventDetailsType = selectedEventDetails.type;
|
|
2735
|
+
const resolvedResponseEvent = selectedEventDetailsType === 'response' || selectedEventDetailsType === 'ai-response-success' ? selectedEventDetails : responseEvent;
|
|
2736
|
+
return {
|
|
2737
|
+
...selectedEventDetails,
|
|
2738
|
+
...selectedEvent,
|
|
2739
|
+
requestEvent: {
|
|
2740
|
+
...requestEvent,
|
|
2741
|
+
...selectedEventDetails
|
|
2742
|
+
},
|
|
2743
|
+
responseEvent: resolvedResponseEvent
|
|
2744
|
+
};
|
|
2745
|
+
};
|
|
2746
|
+
|
|
2647
2747
|
const devtoolsTableHeaderHeight = 24;
|
|
2648
2748
|
const devtoolsTableRowHeight = 24;
|
|
2649
2749
|
const devtoolsTableScrollBarWidth = 12;
|
|
@@ -2654,7 +2754,10 @@ const devtoolsRootGap = 4;
|
|
|
2654
2754
|
const devtoolsTopHeight = 28;
|
|
2655
2755
|
const devtoolsTimelineHeight = 88;
|
|
2656
2756
|
const getTableBodyY = (state, hasTimeline) => {
|
|
2657
|
-
|
|
2757
|
+
const {
|
|
2758
|
+
y
|
|
2759
|
+
} = state;
|
|
2760
|
+
return y + viewPadding + devtoolsTopHeight + devtoolsRootGap + (hasTimeline ? devtoolsTimelineHeight : 0) + devtoolsTableHeaderHeight;
|
|
2658
2761
|
};
|
|
2659
2762
|
|
|
2660
2763
|
const getTableBodyHeight = (state, eventCount) => {
|
|
@@ -2883,7 +2986,7 @@ const selectEventAtIndex = async (state, selectedEventIndex, dependencies = sele
|
|
|
2883
2986
|
};
|
|
2884
2987
|
}
|
|
2885
2988
|
const selectedEventDetails = await dependencies.loadSelectedEvent(state.databaseName, state.dataBaseVersion, state.eventStoreName, state.sessionId, state.sessionIdIndexName, selectedEvent.eventId, selectedEvent.type);
|
|
2886
|
-
const resolvedSelectedEvent = await withPreparedSelectedEventPreview(selectedEventDetails
|
|
2989
|
+
const resolvedSelectedEvent = await withPreparedSelectedEventPreview(mergeSelectedEventDetails(selectedEvent, selectedEventDetails));
|
|
2887
2990
|
return withSelectedEventVisible({
|
|
2888
2991
|
...state,
|
|
2889
2992
|
detailTabs: createDetailTabs(selectedDetailTab, resolvedSelectedEvent),
|
|
@@ -2991,24 +3094,32 @@ const show2 = async (uid, menuId, x, y, args) => {
|
|
|
2991
3094
|
};
|
|
2992
3095
|
|
|
2993
3096
|
const getTableBodyEventIndex = (state, eventX, eventY) => {
|
|
2994
|
-
|
|
3097
|
+
const {
|
|
3098
|
+
tableMaxLineY,
|
|
3099
|
+
tableMinLineY,
|
|
3100
|
+
tableWidth,
|
|
3101
|
+
useDevtoolsLayout,
|
|
3102
|
+
width,
|
|
3103
|
+
x
|
|
3104
|
+
} = state;
|
|
3105
|
+
if (!useDevtoolsLayout) {
|
|
2995
3106
|
return -1;
|
|
2996
3107
|
}
|
|
2997
3108
|
const currentEvents = getCurrentEvents$1(state);
|
|
2998
3109
|
if (currentEvents.length === 0) {
|
|
2999
3110
|
return -1;
|
|
3000
3111
|
}
|
|
3001
|
-
const tableX =
|
|
3002
|
-
const
|
|
3112
|
+
const tableX = x + leftPadding;
|
|
3113
|
+
const tableWidthNew = clampTableWidth(width, tableWidth);
|
|
3003
3114
|
const hasTimeline = currentEvents.length > 0;
|
|
3004
3115
|
const tableBodyY = getTableBodyY(state, hasTimeline);
|
|
3005
3116
|
const relativeX = eventX - tableX;
|
|
3006
3117
|
const relativeY = eventY - tableBodyY;
|
|
3007
|
-
if (relativeX < 0 || relativeX >=
|
|
3118
|
+
if (relativeX < 0 || relativeX >= tableWidthNew || relativeY < 0) {
|
|
3008
3119
|
return -1;
|
|
3009
3120
|
}
|
|
3010
|
-
const eventIndex =
|
|
3011
|
-
if (eventIndex <
|
|
3121
|
+
const eventIndex = tableMinLineY + Math.floor(relativeY / devtoolsTableRowHeight);
|
|
3122
|
+
if (eventIndex < tableMinLineY || eventIndex >= tableMaxLineY || eventIndex >= currentEvents.length) {
|
|
3012
3123
|
return -1;
|
|
3013
3124
|
}
|
|
3014
3125
|
return eventIndex;
|
|
@@ -3251,7 +3362,7 @@ const restoreSelectedEvent = async state => {
|
|
|
3251
3362
|
};
|
|
3252
3363
|
}
|
|
3253
3364
|
const selectedEventDetails = await loadEventsDependencies.loadSelectedEvent(state.databaseName, state.dataBaseVersion, state.eventStoreName, state.sessionId, state.sessionIdIndexName, selectedEvent.eventId, selectedEvent.type);
|
|
3254
|
-
const resolvedSelectedEvent =
|
|
3365
|
+
const resolvedSelectedEvent = await withPreparedSelectedEventPreview(mergeSelectedEventDetails(selectedEvent, selectedEventDetails));
|
|
3255
3366
|
return {
|
|
3256
3367
|
...state,
|
|
3257
3368
|
previewTextCursorColumnIndex: null,
|
|
@@ -3699,6 +3810,22 @@ const shouldIncludeArguments = (event, name) => {
|
|
|
3699
3810
|
};
|
|
3700
3811
|
|
|
3701
3812
|
const getPayloadEvent = event => {
|
|
3813
|
+
const {
|
|
3814
|
+
requestEvent
|
|
3815
|
+
} = event;
|
|
3816
|
+
if (requestEvent && typeof requestEvent === 'object' && typeof requestEvent.type === 'string') {
|
|
3817
|
+
const mergedRequestEvent = requestEvent;
|
|
3818
|
+
if (mergedRequestEvent.body !== undefined) {
|
|
3819
|
+
return mergedRequestEvent.body;
|
|
3820
|
+
}
|
|
3821
|
+
if (mergedRequestEvent.value !== undefined) {
|
|
3822
|
+
return mergedRequestEvent.value;
|
|
3823
|
+
}
|
|
3824
|
+
if (hasOwn(mergedRequestEvent, 'arguments')) {
|
|
3825
|
+
return mergedRequestEvent.arguments;
|
|
3826
|
+
}
|
|
3827
|
+
return requestEvent;
|
|
3828
|
+
}
|
|
3702
3829
|
const name = getPreviewName(event);
|
|
3703
3830
|
if (name === 'list_files' && hasOwn(event, 'arguments')) {
|
|
3704
3831
|
return event.arguments;
|
|
@@ -3951,14 +4078,18 @@ const handleTableFocus = state => {
|
|
|
3951
4078
|
};
|
|
3952
4079
|
|
|
3953
4080
|
const handleTableHeaderClick = (state, value) => {
|
|
4081
|
+
const {
|
|
4082
|
+
sortColumn,
|
|
4083
|
+
sortDescending
|
|
4084
|
+
} = state;
|
|
3954
4085
|
if (!isTableColumn(value)) {
|
|
3955
4086
|
return state;
|
|
3956
4087
|
}
|
|
3957
|
-
const
|
|
4088
|
+
const newSortDescending = sortColumn === value ? !sortDescending : false;
|
|
3958
4089
|
const nextState = {
|
|
3959
4090
|
...state,
|
|
3960
4091
|
sortColumn: value,
|
|
3961
|
-
sortDescending
|
|
4092
|
+
sortDescending: newSortDescending
|
|
3962
4093
|
};
|
|
3963
4094
|
return withPreservedSelection$1(state, nextState);
|
|
3964
4095
|
};
|
|
@@ -4345,6 +4476,87 @@ const loadContent = async (state, savedState) => {
|
|
|
4345
4476
|
});
|
|
4346
4477
|
};
|
|
4347
4478
|
|
|
4479
|
+
const isAttachmentImagePreview = value => {
|
|
4480
|
+
return typeof value === 'object' && value !== null && value.previewType === 'image';
|
|
4481
|
+
};
|
|
4482
|
+
|
|
4483
|
+
const getResponseEvent = event => {
|
|
4484
|
+
const {
|
|
4485
|
+
responseEvent
|
|
4486
|
+
} = event;
|
|
4487
|
+
if (responseEvent && typeof responseEvent === 'object' && typeof responseEvent.type === 'string') {
|
|
4488
|
+
const mergedResponseEvent = responseEvent;
|
|
4489
|
+
if (mergedResponseEvent.value !== undefined) {
|
|
4490
|
+
return mergedResponseEvent.value;
|
|
4491
|
+
}
|
|
4492
|
+
return responseEvent;
|
|
4493
|
+
}
|
|
4494
|
+
return event;
|
|
4495
|
+
};
|
|
4496
|
+
|
|
4497
|
+
const getStringLineCount = value => {
|
|
4498
|
+
return value.split('\n').length;
|
|
4499
|
+
};
|
|
4500
|
+
const isChatViewEvent$1 = value => {
|
|
4501
|
+
return typeof value === 'object' && value !== null && typeof value.type === 'string';
|
|
4502
|
+
};
|
|
4503
|
+
const getJsonLineCount = value => {
|
|
4504
|
+
const renderedValue = isChatViewEvent$1(value) ? {
|
|
4505
|
+
...value,
|
|
4506
|
+
type: getEventTypeLabel(value)
|
|
4507
|
+
} : value;
|
|
4508
|
+
const json = JSON.stringify(renderedValue, null, 2);
|
|
4509
|
+
if (!json) {
|
|
4510
|
+
return 1;
|
|
4511
|
+
}
|
|
4512
|
+
let lineCount = 1;
|
|
4513
|
+
for (let i = 0; i < json.length; i++) {
|
|
4514
|
+
if (json[i] === '\n') {
|
|
4515
|
+
lineCount++;
|
|
4516
|
+
}
|
|
4517
|
+
}
|
|
4518
|
+
return lineCount;
|
|
4519
|
+
};
|
|
4520
|
+
const getPreviewLineCount = selectedEvent => {
|
|
4521
|
+
const previewEvent = getPreviewEvent(selectedEvent);
|
|
4522
|
+
if (previewEvent === undefined || isAttachmentImagePreview(previewEvent)) {
|
|
4523
|
+
return 0;
|
|
4524
|
+
}
|
|
4525
|
+
if (typeof previewEvent === 'string') {
|
|
4526
|
+
if (previewEvent === ImageCouldNotBeLoaded || isChatMessageUpdatedEvent(selectedEvent)) {
|
|
4527
|
+
return 0;
|
|
4528
|
+
}
|
|
4529
|
+
return getStringLineCount(previewEvent);
|
|
4530
|
+
}
|
|
4531
|
+
return getJsonLineCount(previewEvent);
|
|
4532
|
+
};
|
|
4533
|
+
const getLineCount = state => {
|
|
4534
|
+
const {
|
|
4535
|
+
selectedEvent
|
|
4536
|
+
} = state;
|
|
4537
|
+
if (!selectedEvent) {
|
|
4538
|
+
return 0;
|
|
4539
|
+
}
|
|
4540
|
+
const selectedDetailTab = getSelectedDetailTab(state.detailTabs);
|
|
4541
|
+
if (selectedDetailTab === Timing) {
|
|
4542
|
+
return 0;
|
|
4543
|
+
}
|
|
4544
|
+
if (selectedDetailTab === Preview) {
|
|
4545
|
+
return getPreviewLineCount(selectedEvent);
|
|
4546
|
+
}
|
|
4547
|
+
if (selectedDetailTab === Payload) {
|
|
4548
|
+
return getJsonLineCount(getPayloadEvent(selectedEvent));
|
|
4549
|
+
}
|
|
4550
|
+
return getJsonLineCount(getResponseEvent(selectedEvent));
|
|
4551
|
+
};
|
|
4552
|
+
const getDetailsLineNumberWidth = state => {
|
|
4553
|
+
const lineCount = getLineCount(state);
|
|
4554
|
+
if (lineCount === 0) {
|
|
4555
|
+
return 0;
|
|
4556
|
+
}
|
|
4557
|
+
return String(lineCount).length * defaultPreviewTextColumnWidth;
|
|
4558
|
+
};
|
|
4559
|
+
|
|
4348
4560
|
// cspell:ignore liga calt
|
|
4349
4561
|
|
|
4350
4562
|
const getCss = state => {
|
|
@@ -4358,6 +4570,7 @@ const getCss = state => {
|
|
|
4358
4570
|
const scrollBarOffset = getScrollBarOffset(state.tableDeltaY, maxDeltaY, tableBodyHeight, scrollBarHeight);
|
|
4359
4571
|
const tableContentWidth = Math.max(0, tableWidth - (showScrollBar ? devtoolsTableScrollBarWidth : 0));
|
|
4360
4572
|
const detailsWidth = hasSelectedEvent ? getDetailsWidth(state.width, state.tableWidth) : 0;
|
|
4573
|
+
const detailsLineNumberWidth = getDetailsLineNumberWidth(state);
|
|
4361
4574
|
const topSize = state.width >= state.largeBreakpoint ? 30 : state.width >= state.mediumBreakpoint ? 60 : 60;
|
|
4362
4575
|
const tableColumnLayout = getTableColumnLayout(tableContentWidth, getVisibleTableColumns(state.tableColumns), state.tableColumnWidths);
|
|
4363
4576
|
const [tableColZeroWidth = 0, tableColOneWidth = 0, tableColTwoWidth = 0] = tableColumnLayout.visibleColumnWidths;
|
|
@@ -4374,6 +4587,7 @@ const getCss = state => {
|
|
|
4374
4587
|
--ChatDebugViewTableColZeroWidth: ${tableColZeroWidth}px;
|
|
4375
4588
|
--ChatDebugViewTableColOneWidth: ${tableColOneWidth}px;
|
|
4376
4589
|
--ChatDebugViewTableColTwoWidth: ${tableColTwoWidth}px;
|
|
4590
|
+
--ChatDebugViewDetailsLineNumberWidth: ${detailsLineNumberWidth}px;
|
|
4377
4591
|
--ChatDebugViewDetailsWidth: ${detailsWidth}px;
|
|
4378
4592
|
--ChatDebugViewDurationColumnWidth: ${state.tableColumnWidths.duration}px;
|
|
4379
4593
|
--ChatDebugViewTableRowHeight: ${devtoolsTableRowHeight}px;
|
|
@@ -4384,12 +4598,14 @@ const getCss = state => {
|
|
|
4384
4598
|
--ResizerTwoLeft: ${resizerTwoLeft}px;
|
|
4385
4599
|
--ChatDebugViewSashWidth: ${sashWidth}px;
|
|
4386
4600
|
--ChatDebugViewTableWidth: ${tableWidth}px;
|
|
4601
|
+
--ChatDebugViewTimelineHeight: ${state.timelineHeight}px;
|
|
4387
4602
|
--ChatDebugViewTimelineCursorGuideLeft: ${state.timelineHoverPercent ?? 0}%;
|
|
4388
4603
|
--ChatDebugViewTimelineSelectionEndLeft: ${selectionEndPercent ?? 0}%;
|
|
4389
4604
|
--ChatDebugViewTimelineSelectionStartLeft: ${selectionStartPercent ?? 0}%;
|
|
4390
4605
|
--ChatDebugViewTopSize: ${topSize}px;
|
|
4391
4606
|
--ChatDebugViewTypeColumnWidth: ${state.tableColumnWidths.type}px;
|
|
4392
4607
|
padding: ${viewPadding}px;
|
|
4608
|
+
padding-right: 0;
|
|
4393
4609
|
}
|
|
4394
4610
|
|
|
4395
4611
|
.TableWrapper {
|
|
@@ -4402,6 +4618,31 @@ const getCss = state => {
|
|
|
4402
4618
|
width: calc(100% - var(--ChatDebugViewTableScrollBarWidth));
|
|
4403
4619
|
}
|
|
4404
4620
|
|
|
4621
|
+
.ChatDebugViewTimeline {
|
|
4622
|
+
contain: strict;
|
|
4623
|
+
display: flex;
|
|
4624
|
+
flex-direction: column;
|
|
4625
|
+
gap: 8px;
|
|
4626
|
+
height: var(--ChatDebugViewTimelineHeight);
|
|
4627
|
+
}
|
|
4628
|
+
|
|
4629
|
+
.ChatDebugViewTimelineInteractive {
|
|
4630
|
+
flex: 1;
|
|
4631
|
+
min-height: 0;
|
|
4632
|
+
position: relative;
|
|
4633
|
+
}
|
|
4634
|
+
|
|
4635
|
+
.ChatDebugViewDetailsBottom .Gutter {
|
|
4636
|
+
flex: 0 0 var(--ChatDebugViewDetailsLineNumberWidth);
|
|
4637
|
+
width: var(--ChatDebugViewDetailsLineNumberWidth);
|
|
4638
|
+
}
|
|
4639
|
+
|
|
4640
|
+
.ChatDebugViewDetailsBottom .ChatDebugViewEventLineNumber {
|
|
4641
|
+
display: inline-block;
|
|
4642
|
+
min-width: var(--ChatDebugViewDetailsLineNumberWidth);
|
|
4643
|
+
width: var(--ChatDebugViewDetailsLineNumberWidth);
|
|
4644
|
+
}
|
|
4645
|
+
|
|
4405
4646
|
.TableScrollBar {
|
|
4406
4647
|
background: rgba(255, 255, 255, 0.06);
|
|
4407
4648
|
border-radius: 999px;
|
|
@@ -5222,10 +5463,6 @@ const getPanelId = detailTab => {
|
|
|
5222
5463
|
return `ChatDebugViewDetailsPanel-${detailTab}`;
|
|
5223
5464
|
};
|
|
5224
5465
|
|
|
5225
|
-
const isAttachmentImagePreview = value => {
|
|
5226
|
-
return typeof value === 'object' && value !== null && value.previewType === 'image';
|
|
5227
|
-
};
|
|
5228
|
-
|
|
5229
5466
|
const getImagePreviewLabelDom = preview => {
|
|
5230
5467
|
if (preview.stats === undefined) {
|
|
5231
5468
|
return [{
|
|
@@ -5806,7 +6043,6 @@ const getTableScrollBarDom = visible => {
|
|
|
5806
6043
|
|
|
5807
6044
|
const getTableWrapperDom = (rowNodes, eventCount, visibleTableColumns = defaultVisibleTableColumns, tableColumns = createTableColumns(), summary = '', focus = 0, className = '', role = '', showScrollBar = false) => {
|
|
5808
6045
|
const tableWrapperClassName = mergeClassNames(TableWrapper, focus === FocusChatDebugTable ? FocusOutline : '', className);
|
|
5809
|
-
const scrollBarNodes = getTableScrollBarDom(showScrollBar);
|
|
5810
6046
|
const tableWrapperNode = {
|
|
5811
6047
|
childCount: showScrollBar ? 3 : 2,
|
|
5812
6048
|
className: tableWrapperClassName,
|
|
@@ -5816,7 +6052,7 @@ const getTableWrapperDom = (rowNodes, eventCount, visibleTableColumns = defaultV
|
|
|
5816
6052
|
role
|
|
5817
6053
|
} : {})
|
|
5818
6054
|
};
|
|
5819
|
-
return [tableWrapperNode, ...getTableDom(rowNodes, eventCount, visibleTableColumns, tableColumns, summary, focus), ...getTableResizersDom(visibleTableColumns), ...
|
|
6055
|
+
return [tableWrapperNode, ...getTableDom(rowNodes, eventCount, visibleTableColumns, tableColumns, summary, focus), ...getTableResizersDom(visibleTableColumns), ...getTableScrollBarDom(showScrollBar)];
|
|
5820
6056
|
};
|
|
5821
6057
|
|
|
5822
6058
|
const getTableWrapperWrapperDom = (rowNodes, eventCount, visibleTableColumns = defaultVisibleTableColumns, tableColumns = createTableColumns(), summary = '', focus = 0, className = '', role = '', showScrollBar = false) => {
|
|
@@ -6008,7 +6244,7 @@ const getDevtoolsDom = (events, selectedEvent, selectedEventIndex, timelineEvent
|
|
|
6008
6244
|
rowIndex: previewTextCursorRowIndex
|
|
6009
6245
|
});
|
|
6010
6246
|
const payloadEventNodes = selectedEvent ? getEventNode(getPayloadEvent(selectedEvent)) : [];
|
|
6011
|
-
const responseEventNodes = selectedEvent ? getEventNode(selectedEvent) : [];
|
|
6247
|
+
const responseEventNodes = selectedEvent ? getEventNode(getResponseEvent(selectedEvent)) : [];
|
|
6012
6248
|
const hasSelectedEvent = responseEventNodes.length > 0;
|
|
6013
6249
|
const eventsClassName = getEventsClassName(hasSelectedEvent);
|
|
6014
6250
|
const summary = getTableSummary(events);
|