@haibun/web-playwright 1.44.6 → 1.44.7
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/build/monitor/controls.d.ts +1 -0
- package/build/monitor/controls.d.ts.map +1 -1
- package/build/monitor/controls.js +56 -113
- package/build/monitor/controls.js.map +1 -1
- package/package.json +1 -1
- package/web/monitor.html +166 -170
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/monitor/controls.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,
|
|
1
|
+
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/monitor/controls.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,SAkC5B;AAoDD,wBAAgB,gBAAgB,SAsB/B;AAED,wBAAgB,kBAAkB,SA2KjC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
let userScrolledManually = false;
|
|
1
|
+
let userScrolledManually = false;
|
|
2
2
|
export function setupControls() {
|
|
3
3
|
const levelSelect = document.getElementById('haibun-debug-level-select');
|
|
4
4
|
const levels = ['debug', 'log', 'info', 'error'];
|
|
@@ -26,19 +26,17 @@ export function setupControls() {
|
|
|
26
26
|
const target = event.target;
|
|
27
27
|
updateStyles(target.value);
|
|
28
28
|
});
|
|
29
|
-
// Initial style update
|
|
30
29
|
updateStyles(levelSelect.value);
|
|
31
30
|
}
|
|
32
|
-
// Setup video playback functionality
|
|
33
31
|
setupVideoPlayback();
|
|
34
|
-
// Setup resize handle functionality
|
|
35
32
|
setupResizeHandle();
|
|
33
|
+
setupMediaToggle();
|
|
36
34
|
}
|
|
37
35
|
function setupResizeHandle() {
|
|
38
36
|
const resizeHandle = document.getElementById('resize-handle');
|
|
39
37
|
const topDisplay = document.getElementById('haibun-media-display');
|
|
40
38
|
const logDisplayArea = document.getElementById('haibun-log-display-area');
|
|
41
|
-
const header = document.querySelector('.haibun-header');
|
|
39
|
+
const header = document.querySelector('.haibun-header');
|
|
42
40
|
if (!resizeHandle || !topDisplay || !logDisplayArea || !header) {
|
|
43
41
|
console.error('Resize elements not found');
|
|
44
42
|
return;
|
|
@@ -50,72 +48,65 @@ function setupResizeHandle() {
|
|
|
50
48
|
isResizing = true;
|
|
51
49
|
startY = e.clientY;
|
|
52
50
|
startHeightTop = topDisplay.clientHeight;
|
|
53
|
-
document.body.style.cursor = 'ns-resize';
|
|
54
|
-
document.body.style.userSelect = 'none';
|
|
55
|
-
// Add listeners to document to capture mouse move everywhere
|
|
51
|
+
document.body.style.cursor = 'ns-resize';
|
|
52
|
+
document.body.style.userSelect = 'none';
|
|
56
53
|
document.addEventListener('mousemove', handleMouseMove);
|
|
57
54
|
document.addEventListener('mouseup', handleMouseUp);
|
|
58
55
|
});
|
|
59
56
|
const handleMouseMove = (e) => {
|
|
60
57
|
if (!isResizing)
|
|
61
58
|
return;
|
|
62
|
-
const deltaY = e.clientY - startY;
|
|
59
|
+
const deltaY = e.clientY - startY;
|
|
63
60
|
const newHeightTop = startHeightTop + deltaY;
|
|
64
|
-
const minHeight = 50;
|
|
65
|
-
const maxHeight = window.innerHeight - header.clientHeight - 50;
|
|
66
|
-
// Clamp the new height
|
|
61
|
+
const minHeight = 50;
|
|
62
|
+
const maxHeight = window.innerHeight - header.clientHeight - 50;
|
|
67
63
|
const clampedHeightTop = Math.max(minHeight, Math.min(newHeightTop, maxHeight));
|
|
68
|
-
// Apply new height to top panel
|
|
69
64
|
topDisplay.style.height = `${clampedHeightTop}px`;
|
|
70
65
|
};
|
|
71
66
|
const handleMouseUp = () => {
|
|
72
67
|
if (isResizing) {
|
|
73
68
|
isResizing = false;
|
|
74
|
-
document.body.style.cursor = '';
|
|
75
|
-
document.body.style.userSelect = '';
|
|
69
|
+
document.body.style.cursor = '';
|
|
70
|
+
document.body.style.userSelect = '';
|
|
76
71
|
document.removeEventListener('mousemove', handleMouseMove);
|
|
77
72
|
document.removeEventListener('mouseup', handleMouseUp);
|
|
78
73
|
}
|
|
79
74
|
};
|
|
80
75
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (
|
|
76
|
+
export function setupMediaToggle() {
|
|
77
|
+
const toggleButton = document.getElementById('haibun-media-toggle');
|
|
78
|
+
const mediaPanel = document.getElementById('haibun-media-display');
|
|
79
|
+
const resizeHandle = document.getElementById('resize-handle');
|
|
80
|
+
let lastMediaHeight = 250;
|
|
81
|
+
toggleButton.addEventListener('click', () => {
|
|
82
|
+
const isHidden = mediaPanel.clientHeight <= 20;
|
|
83
|
+
if (isHidden) {
|
|
84
|
+
mediaPanel.style.height = `${lastMediaHeight}px`;
|
|
89
85
|
resizeHandle.style.display = 'block';
|
|
90
86
|
}
|
|
91
|
-
|
|
87
|
+
else {
|
|
88
|
+
lastMediaHeight = mediaPanel.clientHeight;
|
|
89
|
+
mediaPanel.style.height = '0';
|
|
90
|
+
resizeHandle.style.display = 'none';
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
mediaPanel.style.height = '0';
|
|
94
|
+
resizeHandle.style.display = 'none';
|
|
92
95
|
}
|
|
93
96
|
export function setupVideoPlayback() {
|
|
94
|
-
|
|
95
|
-
const mediaPanel = document.getElementById('haibun-media-display');
|
|
96
|
-
const resizeHandle = document.getElementById('resize-handle');
|
|
97
|
-
const sequenceDiagram = document.getElementById('sequence-diagram'); // Check inner div for content
|
|
97
|
+
const sequenceDiagram = document.getElementById('sequence-diagram');
|
|
98
98
|
const videoContainer = document.getElementById('haibun-video');
|
|
99
|
-
const logDisplayArea = document.getElementById('haibun-log-display-area');
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
// userScrolledManually is now module-level
|
|
105
|
-
// Check if media exists initially (video OR sequence diagram content)
|
|
106
|
-
const existingVideoCheck = videoContainer.querySelector('video');
|
|
107
|
-
if (existingVideoCheck || (sequenceDiagram && sequenceDiagram.hasChildNodes())) {
|
|
108
|
-
showMediaPanelIfNeeded(mediaPanel, resizeHandle);
|
|
109
|
-
}
|
|
110
|
-
// Setup click handlers for log entries to seek video
|
|
99
|
+
const logDisplayArea = document.getElementById('haibun-log-display-area');
|
|
100
|
+
// if (existingVideoCheck || (sequenceDiagram && sequenceDiagram.hasChildNodes())) {
|
|
101
|
+
// showMediaPanelIfNeeded(mediaPanel, resizeHandle);
|
|
102
|
+
// }
|
|
111
103
|
logDisplayArea.addEventListener('click', (event) => {
|
|
112
104
|
const target = event.target;
|
|
113
105
|
const logEntry = findLogEntry(target);
|
|
114
106
|
if (logEntry && logEntry.dataset.time) {
|
|
115
107
|
const videoElement = videoContainer.querySelector('video');
|
|
116
108
|
if (videoElement) {
|
|
117
|
-
userScrolledManually = false;
|
|
118
|
-
// Get Monitor start time and Video start offset
|
|
109
|
+
userScrolledManually = false;
|
|
119
110
|
const monitorStartTimeStr = document.body.dataset.startTime;
|
|
120
111
|
const videoStartOffsetStr = document.getElementById('haibun-video-start')?.dataset.start;
|
|
121
112
|
if (!monitorStartTimeStr || !videoStartOffsetStr) {
|
|
@@ -138,67 +129,48 @@ export function setupVideoPlayback() {
|
|
|
138
129
|
// Calculate time relative to video start
|
|
139
130
|
const logRelativeToVideoMs = entryAbsoluteTime - videoAbsoluteStartTime;
|
|
140
131
|
const seekTime = logRelativeToVideoMs / 1000;
|
|
141
|
-
// Corrected variable names in the log message if uncommented later
|
|
142
|
-
// console.log(`Calculated seekTime: ${seekTime}s (Entry: ${entryAbsoluteTime}, Start: ${videoAbsoluteStartTime})`);
|
|
143
|
-
// Seek the video (allow seeking slightly before 0 for precision)
|
|
144
132
|
if (!isNaN(seekTime)) {
|
|
145
|
-
videoElement.currentTime = Math.max(0, seekTime);
|
|
146
|
-
// No need to manually update classes here,
|
|
147
|
-
// the 'seeked' event handler will take care of it.
|
|
133
|
+
videoElement.currentTime = Math.max(0, seekTime);
|
|
148
134
|
}
|
|
149
135
|
}
|
|
150
136
|
}
|
|
151
137
|
});
|
|
152
|
-
// Detect manual scroll
|
|
153
138
|
let scrollTimeout;
|
|
154
139
|
logDisplayArea.addEventListener('scroll', () => {
|
|
155
|
-
const videoElement = videoContainer.querySelector('video'); // Need video element ref here too
|
|
156
|
-
// Use a timeout to avoid setting the flag during programmatic scrolls which might trigger rapid scroll events
|
|
157
140
|
clearTimeout(scrollTimeout);
|
|
158
141
|
scrollTimeout = window.setTimeout(() => {
|
|
159
|
-
// Simpler approach: Any scroll event sets the flag. Play/seek events clear it.
|
|
160
142
|
userScrolledManually = true;
|
|
161
|
-
|
|
162
|
-
}, 150); // Wait 150ms after the last scroll event to set the flag
|
|
143
|
+
}, 150);
|
|
163
144
|
});
|
|
164
|
-
// Setup timeupdate handler for video to highlight current step
|
|
165
145
|
const setupVideoTimeUpdateHandler = (videoElement) => {
|
|
166
|
-
let playInterval;
|
|
167
|
-
let latestCurrentEntry = null;
|
|
146
|
+
let playInterval;
|
|
147
|
+
let latestCurrentEntry = null;
|
|
168
148
|
const updateVideoSteps = () => {
|
|
169
|
-
// Get Monitor start time and Video start offset
|
|
170
149
|
const monitorStartTimeStr = document.body.dataset.startTime;
|
|
171
150
|
const videoStartOffsetStr = document.getElementById('haibun-video-start')?.dataset.start;
|
|
172
151
|
if (!monitorStartTimeStr || !videoStartOffsetStr) {
|
|
173
|
-
|
|
174
|
-
return; // Cannot calculate relative times
|
|
152
|
+
return;
|
|
175
153
|
}
|
|
176
154
|
const monitorStartTime = parseInt(monitorStartTimeStr, 10);
|
|
177
155
|
const videoStartOffset = parseInt(videoStartOffsetStr, 10);
|
|
178
156
|
if (isNaN(monitorStartTime) || isNaN(videoStartOffset)) {
|
|
179
|
-
|
|
180
|
-
return; // Cannot calculate relative times
|
|
157
|
+
return;
|
|
181
158
|
}
|
|
182
159
|
const videoAbsoluteStartTime = monitorStartTime + videoStartOffset;
|
|
183
160
|
const currentVideoTimeMs = videoElement.currentTime * 1000;
|
|
184
|
-
let currentLatestEntry = null;
|
|
161
|
+
let currentLatestEntry = null;
|
|
185
162
|
document.querySelectorAll('.haibun-log-entry').forEach(entry => {
|
|
186
|
-
// Clear previous state for all entries first
|
|
187
163
|
entry.classList.remove('haibun-stepper-played', 'haibun-stepper-notplayed', 'haibun-stepper-current');
|
|
188
164
|
const entryTimeStr = entry.dataset.time;
|
|
189
165
|
if (!entryTimeStr)
|
|
190
|
-
return;
|
|
166
|
+
return;
|
|
191
167
|
const entryAbsoluteTime = parseInt(entryTimeStr, 10);
|
|
192
168
|
if (isNaN(entryAbsoluteTime))
|
|
193
|
-
return;
|
|
194
|
-
// Calculate entry time relative to video start
|
|
169
|
+
return;
|
|
195
170
|
const logRelativeToVideoMs = entryAbsoluteTime - videoAbsoluteStartTime;
|
|
196
|
-
// Determine played/notplayed status
|
|
197
171
|
if (logRelativeToVideoMs <= currentVideoTimeMs) {
|
|
198
172
|
entry.classList.add('haibun-stepper-played');
|
|
199
173
|
entry.classList.remove('haibun-stepper-notplayed');
|
|
200
|
-
// This entry is a candidate for the current step
|
|
201
|
-
// Update if this entry is later than the current candidate
|
|
202
174
|
if (!currentLatestEntry || entryAbsoluteTime > parseInt(currentLatestEntry.dataset.time || '0', 10)) {
|
|
203
175
|
currentLatestEntry = entry;
|
|
204
176
|
}
|
|
@@ -208,59 +180,41 @@ export function setupVideoPlayback() {
|
|
|
208
180
|
entry.classList.remove('haibun-stepper-played');
|
|
209
181
|
}
|
|
210
182
|
});
|
|
211
|
-
// Mark the actual latest entry as current and scroll if needed
|
|
212
183
|
if (currentLatestEntry) {
|
|
213
184
|
currentLatestEntry.classList.add('haibun-stepper-current');
|
|
214
|
-
// Scroll the current entry into view ONLY if the user hasn't scrolled manually
|
|
215
|
-
// Scroll the current entry into view ONLY if the user hasn't scrolled manually AND it's not already visible
|
|
216
185
|
if (!userScrolledManually && !isElementInViewport(currentLatestEntry)) {
|
|
217
|
-
|
|
218
|
-
currentLatestEntry.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); // Use 'nearest'
|
|
186
|
+
currentLatestEntry.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
219
187
|
}
|
|
220
|
-
|
|
221
|
-
// console.log('Manual scroll active, not auto-scrolling.');
|
|
222
|
-
} // else: Element is already in viewport, no need to scroll
|
|
223
|
-
latestCurrentEntry = currentLatestEntry; // Update the tracked entry
|
|
188
|
+
latestCurrentEntry = currentLatestEntry;
|
|
224
189
|
}
|
|
225
190
|
else {
|
|
226
|
-
// If no entry is before or at the current time, clear the tracker
|
|
227
191
|
latestCurrentEntry = null;
|
|
228
192
|
}
|
|
229
193
|
};
|
|
230
|
-
// Update state definitively after a seek
|
|
231
194
|
videoElement.addEventListener('seeked', () => {
|
|
232
|
-
|
|
233
|
-
userScrolledManually = false; // Resume auto-scroll on seek
|
|
234
|
-
// console.log('Seek detected, clearing manual scroll flag.');
|
|
195
|
+
userScrolledManually = false;
|
|
235
196
|
updateVideoSteps();
|
|
236
197
|
});
|
|
237
|
-
// Use interval for smooth updates during playback
|
|
238
198
|
videoElement.addEventListener('play', () => {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
updateVideoSteps(); // Update immediately on play
|
|
244
|
-
playInterval = window.setInterval(updateVideoSteps, 50); // Update frequently (e.g., 50ms)
|
|
199
|
+
userScrolledManually = false;
|
|
200
|
+
if (playInterval === undefined) {
|
|
201
|
+
updateVideoSteps();
|
|
202
|
+
playInterval = window.setInterval(updateVideoSteps, 50);
|
|
245
203
|
}
|
|
246
204
|
});
|
|
247
|
-
// Clear interval on pause or end
|
|
248
205
|
const clearPlayInterval = () => {
|
|
249
|
-
// console.log('pause/ended');
|
|
250
206
|
if (playInterval !== undefined) {
|
|
251
207
|
clearInterval(playInterval);
|
|
252
208
|
playInterval = undefined;
|
|
253
|
-
updateVideoSteps();
|
|
209
|
+
updateVideoSteps();
|
|
254
210
|
}
|
|
255
211
|
};
|
|
256
212
|
videoElement.addEventListener('pause', clearPlayInterval);
|
|
257
213
|
videoElement.addEventListener('ended', clearPlayInterval);
|
|
258
|
-
// Initial update in case video is loaded paused or has an initial time
|
|
259
214
|
updateVideoSteps();
|
|
260
215
|
};
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
if (existingVideo) { // Setup handler if video exists initially
|
|
216
|
+
let existingVideo = videoContainer.querySelector('video');
|
|
217
|
+
if (existingVideo) {
|
|
264
218
|
setupVideoTimeUpdateHandler(existingVideo);
|
|
265
219
|
}
|
|
266
220
|
const observer = new MutationObserver((mutations) => {
|
|
@@ -268,33 +222,26 @@ export function setupVideoPlayback() {
|
|
|
268
222
|
if (mutation.type === 'childList') {
|
|
269
223
|
const newVideo = videoContainer.querySelector('video');
|
|
270
224
|
if (newVideo && newVideo !== existingVideo) {
|
|
271
|
-
console.log('New video detected, setting up handlers
|
|
272
|
-
// Show panel/handle when new video is added
|
|
273
|
-
showMediaPanelIfNeeded(mediaPanel, resizeHandle);
|
|
225
|
+
console.log('New video detected, setting up handlers.');
|
|
274
226
|
setupVideoTimeUpdateHandler(newVideo);
|
|
275
|
-
existingVideo = newVideo;
|
|
227
|
+
existingVideo = newVideo;
|
|
276
228
|
}
|
|
277
229
|
}
|
|
278
230
|
});
|
|
279
231
|
});
|
|
280
232
|
observer.observe(videoContainer, { childList: true });
|
|
281
|
-
// --- Separate Observer for Sequence Diagram Content ---
|
|
282
233
|
const diagramObserver = new MutationObserver((mutations) => {
|
|
283
234
|
mutations.forEach((mutation) => {
|
|
284
|
-
// Check if nodes were added AND the target is the sequence diagram div
|
|
285
235
|
if (mutation.type === 'childList' && mutation.addedNodes.length > 0 && mutation.target === sequenceDiagram) {
|
|
286
|
-
console.log('Sequence diagram content detected
|
|
287
|
-
|
|
288
|
-
diagramObserver.disconnect(); // Stop observing once content is added
|
|
236
|
+
console.log('Sequence diagram content detected.');
|
|
237
|
+
diagramObserver.disconnect();
|
|
289
238
|
}
|
|
290
239
|
});
|
|
291
240
|
});
|
|
292
|
-
// Start observing the sequence diagram div for added children (like the SVG)
|
|
293
241
|
if (sequenceDiagram) {
|
|
294
242
|
diagramObserver.observe(sequenceDiagram, { childList: true });
|
|
295
243
|
}
|
|
296
244
|
}
|
|
297
|
-
// Helper function to find the parent log entry element
|
|
298
245
|
function findLogEntry(element) {
|
|
299
246
|
let current = element;
|
|
300
247
|
while (current && !current.classList.contains('haibun-log-entry')) {
|
|
@@ -302,14 +249,10 @@ function findLogEntry(element) {
|
|
|
302
249
|
}
|
|
303
250
|
return current;
|
|
304
251
|
}
|
|
305
|
-
// Helper function to check if an element is in the viewport
|
|
306
252
|
function isElementInViewport(element) {
|
|
307
253
|
const rect = element.getBoundingClientRect();
|
|
308
254
|
const logDisplayArea = document.getElementById('haibun-log-display-area');
|
|
309
|
-
if (!logDisplayArea)
|
|
310
|
-
return false; // Should not happen, but check
|
|
311
255
|
const logRect = logDisplayArea.getBoundingClientRect();
|
|
312
|
-
// Check if the element is within the visible bounds of the logDisplayArea
|
|
313
256
|
return (rect.top >= logRect.top &&
|
|
314
257
|
rect.left >= logRect.left &&
|
|
315
258
|
rect.bottom <= logRect.bottom &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.js","sourceRoot":"","sources":["../../src/monitor/controls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controls.js","sourceRoot":"","sources":["../../src/monitor/controls.ts"],"names":[],"mappings":"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"}
|