@limekex/bugreport-widget-sdk 0.2.0 โ 0.2.2
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/README.md +14 -3
- package/dist/utils/consoleCapture.d.ts +10 -3
- package/dist/utils/consoleCapture.d.ts.map +1 -1
- package/dist/utils/consoleCapture.js +56 -5
- package/dist/utils/consoleCapture.js.map +1 -1
- package/dist/utils/regionSelector.d.ts +23 -0
- package/dist/utils/regionSelector.d.ts.map +1 -0
- package/dist/utils/regionSelector.js +147 -0
- package/dist/utils/regionSelector.js.map +1 -0
- package/dist/widget/modal.d.ts.map +1 -1
- package/dist/widget/modal.js +140 -18
- package/dist/widget/modal.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
# @bugreport
|
|
1
|
+
# @limekex/bugreport-widget-sdk
|
|
2
2
|
|
|
3
3
|
Reusable browser SDK for embedding the Stage Bug Reporter widget into staging/UAT applications.
|
|
4
4
|
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @limekex/bugreport-widget-sdk
|
|
9
|
+
# or
|
|
10
|
+
pnpm add @limekex/bugreport-widget-sdk
|
|
11
|
+
# or
|
|
12
|
+
yarn add @limekex/bugreport-widget-sdk
|
|
13
|
+
```
|
|
14
|
+
|
|
5
15
|
## Usage
|
|
6
16
|
|
|
7
17
|
```ts
|
|
8
|
-
import { initBugReporter } from '@bugreport
|
|
18
|
+
import { initBugReporter } from '@limekex/bugreport-widget-sdk';
|
|
9
19
|
|
|
10
20
|
initBugReporter({
|
|
11
21
|
apiBaseUrl: 'https://bugreport.betait.no',
|
|
@@ -14,10 +24,11 @@ initBugReporter({
|
|
|
14
24
|
appVersion: '1.2.3',
|
|
15
25
|
commitSha: process.env.VITE_COMMIT_SHA,
|
|
16
26
|
currentUser: { id: 'tester-001', email: 'tester@example.com', role: 'qa' },
|
|
27
|
+
requireAuth: true, // Optional: require testers to log in
|
|
17
28
|
});
|
|
18
29
|
```
|
|
19
30
|
|
|
20
|
-
This injects a floating **๐ Report bug** button into the page. Clicking it opens the bug report modal
|
|
31
|
+
This injects a floating **๐ Report bug** button into the page. Clicking it opens the bug report modal.
|
|
21
32
|
|
|
22
33
|
## Config
|
|
23
34
|
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Lightweight console error capture utility.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Captures errors from multiple sources:
|
|
5
|
+
* - Explicit `console.error()` calls
|
|
6
|
+
* - Uncaught exceptions (via window.onerror)
|
|
7
|
+
* - Unhandled promise rejections
|
|
8
|
+
*
|
|
9
|
+
* This data is attached to bug reports as `optionalClientErrors`.
|
|
6
10
|
*
|
|
7
11
|
* Privacy rules (from docs/TECHNICAL_SPEC.md):
|
|
8
12
|
* - Only errors from the *current page lifetime* are captured.
|
|
@@ -17,7 +21,10 @@ export interface CapturedError {
|
|
|
17
21
|
timestamp: string;
|
|
18
22
|
}
|
|
19
23
|
/**
|
|
20
|
-
* Installs
|
|
24
|
+
* Installs error capture hooks for:
|
|
25
|
+
* - console.error() calls
|
|
26
|
+
* - Uncaught exceptions
|
|
27
|
+
* - Unhandled promise rejections
|
|
21
28
|
*
|
|
22
29
|
* Call once during SDK initialisation (`initBugReporter`).
|
|
23
30
|
* Safe to call multiple times โ subsequent calls are no-ops.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleCapture.d.ts","sourceRoot":"","sources":["../../src/utils/consoleCapture.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"consoleCapture.d.ts","sourceRoot":"","sources":["../../src/utils/consoleCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAwC9C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAGvD;AAED,wDAAwD;AACxD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Lightweight console error capture utility.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Captures errors from multiple sources:
|
|
5
|
+
* - Explicit `console.error()` calls
|
|
6
|
+
* - Uncaught exceptions (via window.onerror)
|
|
7
|
+
* - Unhandled promise rejections
|
|
8
|
+
*
|
|
9
|
+
* This data is attached to bug reports as `optionalClientErrors`.
|
|
6
10
|
*
|
|
7
11
|
* Privacy rules (from docs/TECHNICAL_SPEC.md):
|
|
8
12
|
* - Only errors from the *current page lifetime* are captured.
|
|
@@ -17,20 +21,52 @@ const MAX_STACK_LENGTH = 1000;
|
|
|
17
21
|
const errorBuffer = [];
|
|
18
22
|
let hooked = false;
|
|
19
23
|
/**
|
|
20
|
-
* Installs
|
|
24
|
+
* Installs error capture hooks for:
|
|
25
|
+
* - console.error() calls
|
|
26
|
+
* - Uncaught exceptions
|
|
27
|
+
* - Unhandled promise rejections
|
|
21
28
|
*
|
|
22
29
|
* Call once during SDK initialisation (`initBugReporter`).
|
|
23
30
|
* Safe to call multiple times โ subsequent calls are no-ops.
|
|
24
31
|
*/
|
|
25
32
|
export function installConsoleErrorHook() {
|
|
26
|
-
if (hooked || typeof console === 'undefined')
|
|
33
|
+
if (hooked || typeof console === 'undefined' || typeof window === 'undefined')
|
|
27
34
|
return;
|
|
28
35
|
hooked = true;
|
|
36
|
+
// Hook console.error
|
|
29
37
|
const originalError = console.error.bind(console);
|
|
30
38
|
console.error = (...args) => {
|
|
31
39
|
originalError(...args);
|
|
32
40
|
captureError(args);
|
|
33
41
|
};
|
|
42
|
+
// Capture uncaught exceptions
|
|
43
|
+
window.addEventListener('error', (event) => {
|
|
44
|
+
const message = event.message || 'Uncaught exception';
|
|
45
|
+
const error = event.error instanceof Error ? event.error : new Error(message);
|
|
46
|
+
captureErrorObject(error, event.filename, event.lineno, event.colno);
|
|
47
|
+
});
|
|
48
|
+
// Capture unhandled promise rejections
|
|
49
|
+
window.addEventListener('unhandledrejection', (event) => {
|
|
50
|
+
const reason = event.reason;
|
|
51
|
+
let message = 'Unhandled promise rejection';
|
|
52
|
+
let stack;
|
|
53
|
+
if (reason instanceof Error) {
|
|
54
|
+
message = reason.message;
|
|
55
|
+
stack = reason.stack;
|
|
56
|
+
}
|
|
57
|
+
else if (typeof reason === 'string') {
|
|
58
|
+
message = reason;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
try {
|
|
62
|
+
message = JSON.stringify(reason);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
message = String(reason);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
addToBuffer(message, stack);
|
|
69
|
+
});
|
|
34
70
|
}
|
|
35
71
|
/**
|
|
36
72
|
* Returns a JSON-serialised snapshot of the current error buffer.
|
|
@@ -65,8 +101,23 @@ function captureError(args) {
|
|
|
65
101
|
const stack = args.find((a) => a instanceof Error && a.stack)
|
|
66
102
|
? (args.find((a) => a instanceof Error).stack ?? undefined)
|
|
67
103
|
: undefined;
|
|
104
|
+
addToBuffer(raw, stack);
|
|
105
|
+
}
|
|
106
|
+
function captureErrorObject(error, filename, lineno, colno) {
|
|
107
|
+
let message = error.message || 'Error';
|
|
108
|
+
// Add location info if available
|
|
109
|
+
if (filename) {
|
|
110
|
+
message += ` at ${filename}`;
|
|
111
|
+
if (lineno)
|
|
112
|
+
message += `:${lineno}`;
|
|
113
|
+
if (colno)
|
|
114
|
+
message += `:${colno}`;
|
|
115
|
+
}
|
|
116
|
+
addToBuffer(message, error.stack);
|
|
117
|
+
}
|
|
118
|
+
function addToBuffer(message, stack) {
|
|
68
119
|
const entry = {
|
|
69
|
-
message:
|
|
120
|
+
message: message.slice(0, MAX_MESSAGE_LENGTH),
|
|
70
121
|
stack: stack?.slice(0, MAX_STACK_LENGTH),
|
|
71
122
|
timestamp: new Date().toISOString(),
|
|
72
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleCapture.js","sourceRoot":"","sources":["../../src/utils/consoleCapture.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"consoleCapture.js","sourceRoot":"","sources":["../../src/utils/consoleCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Screenshot Region Selector
|
|
3
|
+
*
|
|
4
|
+
* Allows users to select a specific region of the screen to capture,
|
|
5
|
+
* or capture the full screen.
|
|
6
|
+
*/
|
|
7
|
+
export type ScreenshotMode = 'fullscreen' | 'region';
|
|
8
|
+
export interface RegionSelection {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Shows a region selector overlay and returns the selected region.
|
|
16
|
+
* Returns null if user cancels.
|
|
17
|
+
*/
|
|
18
|
+
export declare function selectScreenRegion(): Promise<RegionSelection | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Captures a specific region of the screen.
|
|
21
|
+
*/
|
|
22
|
+
export declare function captureRegion(region: RegionSelection): Promise<string | null>;
|
|
23
|
+
//# sourceMappingURL=regionSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regionSelector.d.ts","sourceRoot":"","sources":["../../src/utils/regionSelector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAqH1E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4CnF"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Screenshot Region Selector
|
|
3
|
+
*
|
|
4
|
+
* Allows users to select a specific region of the screen to capture,
|
|
5
|
+
* or capture the full screen.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Shows a region selector overlay and returns the selected region.
|
|
9
|
+
* Returns null if user cancels.
|
|
10
|
+
*/
|
|
11
|
+
export async function selectScreenRegion() {
|
|
12
|
+
return new Promise((resolve) => {
|
|
13
|
+
const overlay = document.createElement('div');
|
|
14
|
+
overlay.id = '__bugreport-region-selector__';
|
|
15
|
+
overlay.style.cssText = `
|
|
16
|
+
position: fixed;
|
|
17
|
+
inset: 0;
|
|
18
|
+
background: rgba(0, 0, 0, 0.5);
|
|
19
|
+
z-index: 2147483647;
|
|
20
|
+
cursor: crosshair;
|
|
21
|
+
user-select: none;
|
|
22
|
+
`;
|
|
23
|
+
const instructions = document.createElement('div');
|
|
24
|
+
instructions.style.cssText = `
|
|
25
|
+
position: fixed;
|
|
26
|
+
top: 20px;
|
|
27
|
+
left: 50%;
|
|
28
|
+
transform: translateX(-50%);
|
|
29
|
+
background: white;
|
|
30
|
+
padding: 12px 20px;
|
|
31
|
+
border-radius: 8px;
|
|
32
|
+
font-family: system-ui, -apple-system, sans-serif;
|
|
33
|
+
font-size: 14px;
|
|
34
|
+
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
|
|
35
|
+
z-index: 2147483648;
|
|
36
|
+
pointer-events: none;
|
|
37
|
+
`;
|
|
38
|
+
instructions.textContent = 'Click and drag to select a region, or press ESC to cancel';
|
|
39
|
+
const selectionBox = document.createElement('div');
|
|
40
|
+
selectionBox.style.cssText = `
|
|
41
|
+
position: fixed;
|
|
42
|
+
border: 2px solid #3b82f6;
|
|
43
|
+
background: rgba(59, 130, 246, 0.1);
|
|
44
|
+
display: none;
|
|
45
|
+
pointer-events: none;
|
|
46
|
+
z-index: 2147483648;
|
|
47
|
+
`;
|
|
48
|
+
document.body.appendChild(overlay);
|
|
49
|
+
document.body.appendChild(instructions);
|
|
50
|
+
document.body.appendChild(selectionBox);
|
|
51
|
+
let startX = 0;
|
|
52
|
+
let startY = 0;
|
|
53
|
+
let isSelecting = false;
|
|
54
|
+
const cleanup = () => {
|
|
55
|
+
overlay.remove();
|
|
56
|
+
instructions.remove();
|
|
57
|
+
selectionBox.remove();
|
|
58
|
+
};
|
|
59
|
+
const handleMouseDown = (e) => {
|
|
60
|
+
startX = e.clientX;
|
|
61
|
+
startY = e.clientY;
|
|
62
|
+
isSelecting = true;
|
|
63
|
+
selectionBox.style.display = 'block';
|
|
64
|
+
selectionBox.style.left = startX + 'px';
|
|
65
|
+
selectionBox.style.top = startY + 'px';
|
|
66
|
+
selectionBox.style.width = '0px';
|
|
67
|
+
selectionBox.style.height = '0px';
|
|
68
|
+
};
|
|
69
|
+
const handleMouseMove = (e) => {
|
|
70
|
+
if (!isSelecting)
|
|
71
|
+
return;
|
|
72
|
+
const currentX = e.clientX;
|
|
73
|
+
const currentY = e.clientY;
|
|
74
|
+
const left = Math.min(startX, currentX);
|
|
75
|
+
const top = Math.min(startY, currentY);
|
|
76
|
+
const width = Math.abs(currentX - startX);
|
|
77
|
+
const height = Math.abs(currentY - startY);
|
|
78
|
+
selectionBox.style.left = left + 'px';
|
|
79
|
+
selectionBox.style.top = top + 'px';
|
|
80
|
+
selectionBox.style.width = width + 'px';
|
|
81
|
+
selectionBox.style.height = height + 'px';
|
|
82
|
+
};
|
|
83
|
+
const handleMouseUp = (e) => {
|
|
84
|
+
if (!isSelecting)
|
|
85
|
+
return;
|
|
86
|
+
isSelecting = false;
|
|
87
|
+
const currentX = e.clientX;
|
|
88
|
+
const currentY = e.clientY;
|
|
89
|
+
const left = Math.min(startX, currentX);
|
|
90
|
+
const top = Math.min(startY, currentY);
|
|
91
|
+
const width = Math.abs(currentX - startX);
|
|
92
|
+
const height = Math.abs(currentY - startY);
|
|
93
|
+
cleanup();
|
|
94
|
+
// Require minimum 20x20 pixel selection
|
|
95
|
+
if (width < 20 || height < 20) {
|
|
96
|
+
resolve(null);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
resolve({ x: left, y: top, width, height });
|
|
100
|
+
};
|
|
101
|
+
const handleKeyDown = (e) => {
|
|
102
|
+
if (e.key === 'Escape') {
|
|
103
|
+
cleanup();
|
|
104
|
+
resolve(null);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
overlay.addEventListener('mousedown', handleMouseDown);
|
|
108
|
+
overlay.addEventListener('mousemove', handleMouseMove);
|
|
109
|
+
overlay.addEventListener('mouseup', handleMouseUp);
|
|
110
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Captures a specific region of the screen.
|
|
115
|
+
*/
|
|
116
|
+
export async function captureRegion(region) {
|
|
117
|
+
try {
|
|
118
|
+
// Import the full page screenshot utility which handles html2canvas loading
|
|
119
|
+
const { capturePageScreenshot } = await import('./screenshotCapture');
|
|
120
|
+
// Capture the full page first
|
|
121
|
+
const fullPageDataUrl = await capturePageScreenshot();
|
|
122
|
+
if (!fullPageDataUrl)
|
|
123
|
+
return null;
|
|
124
|
+
// Create an image from the data URL
|
|
125
|
+
const img = new Image();
|
|
126
|
+
await new Promise((resolve, reject) => {
|
|
127
|
+
img.onload = resolve;
|
|
128
|
+
img.onerror = reject;
|
|
129
|
+
img.src = fullPageDataUrl;
|
|
130
|
+
});
|
|
131
|
+
// Create a new canvas with just the selected region
|
|
132
|
+
const regionCanvas = document.createElement('canvas');
|
|
133
|
+
const scale = img.width / window.innerWidth;
|
|
134
|
+
regionCanvas.width = region.width * scale;
|
|
135
|
+
regionCanvas.height = region.height * scale;
|
|
136
|
+
const ctx = regionCanvas.getContext('2d');
|
|
137
|
+
if (!ctx)
|
|
138
|
+
return null;
|
|
139
|
+
ctx.drawImage(img, region.x * scale, region.y * scale, region.width * scale, region.height * scale, 0, 0, region.width * scale, region.height * scale);
|
|
140
|
+
return regionCanvas.toDataURL('image/png');
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
console.error('Failed to capture region:', err);
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=regionSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regionSelector.js","sourceRoot":"","sources":["../../src/utils/regionSelector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAc/D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAgTD,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,CAqEpF;AAED,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,CAU3D"}
|
package/dist/widget/modal.js
CHANGED
|
@@ -3,6 +3,8 @@ import { submitReport, getAuthToken, getTesterInfo } from '../utils/apiClient';
|
|
|
3
3
|
import { capturePageScreenshot } from '../utils/screenshotCapture';
|
|
4
4
|
import { openAnnotationEditor } from './annotationEditor';
|
|
5
5
|
import { initAuthModal, openAuthModal } from './authModal';
|
|
6
|
+
import { getCollectedErrors } from '../utils/consoleCapture';
|
|
7
|
+
import { selectScreenRegion, captureRegion } from '../utils/regionSelector';
|
|
6
8
|
const SUCCESS_AUTO_CLOSE_DELAY_MS = 4000;
|
|
7
9
|
const MODAL_ID = '__bugreport_modal__';
|
|
8
10
|
const OVERLAY_ID = '__bugreport_overlay__';
|
|
@@ -148,6 +150,14 @@ function injectStyles() {
|
|
|
148
150
|
}
|
|
149
151
|
.__br_capture_btn:hover { background: #e5e7eb; border-color: #9ca3af; }
|
|
150
152
|
.__br_capture_btn:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
153
|
+
.__br_capture_btn_secondary {
|
|
154
|
+
background: #fff;
|
|
155
|
+
border-color: #d1d5db;
|
|
156
|
+
}
|
|
157
|
+
.__br_capture_btn_secondary:hover {
|
|
158
|
+
background: #f9fafb;
|
|
159
|
+
border-color: #9ca3af;
|
|
160
|
+
}
|
|
151
161
|
.__br_capture_preview {
|
|
152
162
|
margin-top: 8px;
|
|
153
163
|
max-width: 100%;
|
|
@@ -159,6 +169,43 @@ function injectStyles() {
|
|
|
159
169
|
font-size: 12px;
|
|
160
170
|
color: #9ca3af;
|
|
161
171
|
}
|
|
172
|
+
|
|
173
|
+
/* โโ Console errors section โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */
|
|
174
|
+
.__br_console_errors {
|
|
175
|
+
margin-top: 8px;
|
|
176
|
+
padding: 10px;
|
|
177
|
+
background: #fef2f2;
|
|
178
|
+
border: 1px solid #fecaca;
|
|
179
|
+
border-radius: 6px;
|
|
180
|
+
max-height: 150px;
|
|
181
|
+
overflow-y: auto;
|
|
182
|
+
}
|
|
183
|
+
.__br_console_errors_title {
|
|
184
|
+
font-size: 11px;
|
|
185
|
+
font-weight: 600;
|
|
186
|
+
color: #991b1b;
|
|
187
|
+
margin-bottom: 6px;
|
|
188
|
+
text-transform: uppercase;
|
|
189
|
+
letter-spacing: 0.5px;
|
|
190
|
+
}
|
|
191
|
+
.__br_console_error_item {
|
|
192
|
+
font-size: 12px;
|
|
193
|
+
font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
|
|
194
|
+
color: #7f1d1d;
|
|
195
|
+
margin-bottom: 4px;
|
|
196
|
+
padding: 4px 6px;
|
|
197
|
+
background: #fff;
|
|
198
|
+
border-radius: 4px;
|
|
199
|
+
word-break: break-word;
|
|
200
|
+
}
|
|
201
|
+
.__br_console_error_item:last-child {
|
|
202
|
+
margin-bottom: 0;
|
|
203
|
+
}
|
|
204
|
+
.__br_no_errors {
|
|
205
|
+
font-size: 11px;
|
|
206
|
+
color: #6b7280;
|
|
207
|
+
font-style: italic;
|
|
208
|
+
}
|
|
162
209
|
|
|
163
210
|
/* โโ Status messages โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */
|
|
164
211
|
.__br_status_success {
|
|
@@ -298,10 +345,14 @@ export function openModal(config, callbacks) {
|
|
|
298
345
|
document.addEventListener('keydown', handleEscKey);
|
|
299
346
|
// โโ Focus trap โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
300
347
|
trapFocus(modal);
|
|
301
|
-
// โโ Screenshot capture
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
|
|
348
|
+
// โโ Screenshot capture buttons โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
349
|
+
const captureFullscreenBtn = document.getElementById('__br_capture_fullscreen__');
|
|
350
|
+
const captureRegionBtn = document.getElementById('__br_capture_region__');
|
|
351
|
+
captureFullscreenBtn?.addEventListener('click', async () => {
|
|
352
|
+
await handleCaptureScreenshot(captureFullscreenBtn, 'fullscreen');
|
|
353
|
+
});
|
|
354
|
+
captureRegionBtn?.addEventListener('click', async () => {
|
|
355
|
+
await handleCaptureScreenshot(captureRegionBtn, 'region');
|
|
305
356
|
});
|
|
306
357
|
// โโ Form submission โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
307
358
|
const form = document.getElementById('__bugreport_form__');
|
|
@@ -349,20 +400,41 @@ function handleEscKey(e) {
|
|
|
349
400
|
if (e.key === 'Escape')
|
|
350
401
|
closeModal();
|
|
351
402
|
}
|
|
352
|
-
async function handleCaptureScreenshot(captureBtn) {
|
|
403
|
+
async function handleCaptureScreenshot(captureBtn, mode = 'fullscreen') {
|
|
353
404
|
const preview = document.getElementById('__br_capture_preview__');
|
|
354
405
|
const fileInput = document.getElementById('__br_screenshot__');
|
|
355
406
|
const captureContainer = document.getElementById('__br_capture_data__');
|
|
407
|
+
const originalText = captureBtn.textContent;
|
|
356
408
|
captureBtn.setAttribute('disabled', 'true');
|
|
357
|
-
captureBtn.textContent = '๐ธ Capturing
|
|
409
|
+
captureBtn.textContent = mode === 'region' ? 'โ๏ธ Select region...' : '๐ธ Capturing...';
|
|
358
410
|
try {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
411
|
+
let dataUrl = null;
|
|
412
|
+
if (mode === 'region') {
|
|
413
|
+
// Show region selector
|
|
414
|
+
const region = await selectScreenRegion();
|
|
415
|
+
if (!region) {
|
|
416
|
+
// User cancelled
|
|
417
|
+
captureBtn.removeAttribute('disabled');
|
|
418
|
+
captureBtn.textContent = originalText;
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
// Hide modal before capturing
|
|
422
|
+
const overlay = document.getElementById(OVERLAY_ID);
|
|
423
|
+
if (overlay)
|
|
424
|
+
overlay.style.display = 'none';
|
|
425
|
+
dataUrl = await captureRegion(region);
|
|
426
|
+
if (overlay)
|
|
427
|
+
overlay.style.display = '';
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
// Fullscreen capture
|
|
431
|
+
const overlay = document.getElementById(OVERLAY_ID);
|
|
432
|
+
if (overlay)
|
|
433
|
+
overlay.style.display = 'none';
|
|
434
|
+
dataUrl = await capturePageScreenshot();
|
|
435
|
+
if (overlay)
|
|
436
|
+
overlay.style.display = '';
|
|
437
|
+
}
|
|
366
438
|
if (dataUrl && preview && captureContainer) {
|
|
367
439
|
// Open annotation editor
|
|
368
440
|
openAnnotationEditor({
|
|
@@ -383,11 +455,12 @@ async function handleCaptureScreenshot(captureBtn) {
|
|
|
383
455
|
});
|
|
384
456
|
}
|
|
385
457
|
}
|
|
386
|
-
catch {
|
|
458
|
+
catch (err) {
|
|
459
|
+
console.error('Screenshot capture failed:', err);
|
|
387
460
|
// Silently fail โ the user can still upload manually
|
|
388
461
|
}
|
|
389
462
|
captureBtn.removeAttribute('disabled');
|
|
390
|
-
captureBtn.textContent =
|
|
463
|
+
captureBtn.textContent = originalText;
|
|
391
464
|
}
|
|
392
465
|
async function handleSubmit(form, config, callbacks) {
|
|
393
466
|
setFormState(form, 'loading');
|
|
@@ -484,6 +557,52 @@ function setFormState(form, state, message) {
|
|
|
484
557
|
statusEl.textContent = `โ ${message ?? 'Something went wrong. Please try again.'}`;
|
|
485
558
|
}
|
|
486
559
|
}
|
|
560
|
+
function buildConsoleErrorsSection() {
|
|
561
|
+
const errorsJson = getCollectedErrors();
|
|
562
|
+
if (!errorsJson) {
|
|
563
|
+
return `
|
|
564
|
+
<div class="__br_field">
|
|
565
|
+
<label class="__br_label">Recent errors & exceptions</label>
|
|
566
|
+
<div class="__br_console_errors">
|
|
567
|
+
<p class="__br_no_errors">No recent errors detected</p>
|
|
568
|
+
</div>
|
|
569
|
+
<p class="__br_hint">We automatically capture console.error(), uncaught exceptions, and promise rejections</p>
|
|
570
|
+
</div>
|
|
571
|
+
`;
|
|
572
|
+
}
|
|
573
|
+
let errors = [];
|
|
574
|
+
try {
|
|
575
|
+
errors = JSON.parse(errorsJson);
|
|
576
|
+
}
|
|
577
|
+
catch {
|
|
578
|
+
return '';
|
|
579
|
+
}
|
|
580
|
+
const errorItems = errors
|
|
581
|
+
.slice(0, 5) // Show max 5 errors in UI
|
|
582
|
+
.map(err => {
|
|
583
|
+
const time = new Date(err.timestamp).toLocaleTimeString();
|
|
584
|
+
const shortMessage = err.message.length > 100
|
|
585
|
+
? err.message.substring(0, 100) + '...'
|
|
586
|
+
: err.message;
|
|
587
|
+
return `<div class="__br_console_error_item">${time}: ${escapeHtml(shortMessage)}</div>`;
|
|
588
|
+
})
|
|
589
|
+
.join('');
|
|
590
|
+
return `
|
|
591
|
+
<div class="__br_field">
|
|
592
|
+
<label class="__br_label">Recent errors & exceptions (${errors.length} captured)</label>
|
|
593
|
+
<div class="__br_console_errors">
|
|
594
|
+
<div class="__br_console_errors_title">Will be included in bug report:</div>
|
|
595
|
+
${errorItems}
|
|
596
|
+
</div>
|
|
597
|
+
<p class="__br_hint">Errors, exceptions, and rejections are automatically captured to help with debugging</p>
|
|
598
|
+
</div>
|
|
599
|
+
`;
|
|
600
|
+
}
|
|
601
|
+
function escapeHtml(text) {
|
|
602
|
+
const div = document.createElement('div');
|
|
603
|
+
div.textContent = text;
|
|
604
|
+
return div.innerHTML;
|
|
605
|
+
}
|
|
487
606
|
function buildFormHtml() {
|
|
488
607
|
// Generate random math challenge
|
|
489
608
|
const num1 = Math.floor(Math.random() * 10) + 1; // 1-10
|
|
@@ -544,18 +663,21 @@ function buildFormHtml() {
|
|
|
544
663
|
<div class="__br_field">
|
|
545
664
|
<label class="__br_label">Screenshot (optional)</label>
|
|
546
665
|
<div class="__br_screenshot_row">
|
|
547
|
-
<button id="
|
|
666
|
+
<button id="__br_capture_fullscreen__" type="button" class="__br_capture_btn">๐ธ Full screen</button>
|
|
667
|
+
<button id="__br_capture_region__" type="button" class="__br_capture_btn __br_capture_btn_secondary">โ๏ธ Select region</button>
|
|
548
668
|
<span class="__br_or_divider">or</span>
|
|
549
669
|
<input id="__br_screenshot__" name="screenshot" type="file"
|
|
550
670
|
accept="image/png,image/jpeg,image/webp,image/gif"
|
|
551
|
-
style="font-size:13px;color:#374151;max-width:
|
|
671
|
+
style="font-size:13px;color:#374151;max-width:160px;" />
|
|
552
672
|
</div>
|
|
553
673
|
<input id="__br_capture_data__" type="hidden" value="" />
|
|
554
674
|
<img id="__br_capture_preview__" alt="Captured screenshot preview"
|
|
555
675
|
class="__br_capture_preview" style="display:none;" />
|
|
556
|
-
<p class="__br_hint">PNG, JPG, WebP or GIF ยท max 5 MB</p>
|
|
676
|
+
<p class="__br_hint">Full screen or select a region ยท PNG, JPG, WebP or GIF ยท max 5 MB</p>
|
|
557
677
|
</div>
|
|
558
678
|
|
|
679
|
+
${buildConsoleErrorsSection()}
|
|
680
|
+
|
|
559
681
|
<div class="__br_field">
|
|
560
682
|
<label for="__br_notes__" class="__br_label">Additional notes (optional)</label>
|
|
561
683
|
<textarea id="__br_notes__" name="notes" rows="2"
|
package/dist/widget/modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE5E,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AACvC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAC3C,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAMxC,gFAAgF;AAChF,+EAA+E;AAC/E,mDAAmD;AAEnD,SAAS,YAAY;IACnB,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG;;OAEf,UAAU;;;;;;;;;;;;;;;OAeV,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAqPN,QAAQ;;;;;SAKR,UAAU;;;;;GAKhB,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;;;GAYG;AACH,qDAAqD;AACrD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,MAAM,UAAU,SAAS,CAAC,MAAyB,EAAE,SAAyB;IAC5E,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAE9C,4CAA4C;IAC5C,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEjC,sCAAsC;IACtC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC;IACjD,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;IAE9D,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,+DAA+D;QAC/D,aAAa,CAAC,GAAG,EAAE;YACjB,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,YAAY,EAAE,CAAC;IACf,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC;IAExB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;IAE7D,KAAK,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEnC,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAChE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEnD,8EAA8E;IAC9E,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjB,8EAA8E;IAC9E,MAAM,oBAAoB,GAAG,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;IAClF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;IAE1E,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,uBAAuB,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,uBAAuB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAA2B,CAAC;IACrF,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAuB,CAAC;IACxF,UAAU,EAAE,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAA0B;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,uBAAuB,CAAC;QACnD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACtD,SAAS,EAAE,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,iFAAiF;AAEjF,SAAS,SAAS,CAAC,SAAsB;IACvC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO;QAE5B,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAC1C,kEAAkE,CACnE,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACnD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC1D,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF,SAAS,YAAY,CAAC,CAAgB;IACpC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;QAAE,UAAU,EAAE,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,UAAuB,EAAE,OAAgC,YAAY;IAC1G,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAA4B,CAAC;IAC7F,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAA4B,CAAC;IAC1F,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAA4B,CAAC;IAEnG,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC;IAC5C,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5C,UAAU,CAAC,WAAW,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEvF,IAAI,CAAC;QACH,IAAI,OAAO,GAAkB,IAAI,CAAC;QAElC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,iBAAiB;gBACjB,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBACvC,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,8BAA8B;YAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAE5C,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAE5C,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAExC,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAC;YAC3C,yBAAyB;YACzB,oBAAoB,CAAC;gBACnB,YAAY,EAAE,OAAO;gBACrB,MAAM,EAAE,CAAC,gBAAwB,EAAE,EAAE;oBACnC,4BAA4B;oBAC5B,OAAO,CAAC,GAAG,GAAG,gBAAgB,CAAC;oBAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;oBAChC,gBAAgB,CAAC,KAAK,GAAG,gBAAgB,CAAC;oBAC1C,uDAAuD;oBACvD,IAAI,SAAS;wBAAE,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtC,CAAC;gBACD,QAAQ,EAAE,GAAG,EAAE;oBACb,mDAAmD;oBACnD,wBAAwB;gBAC1B,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QACjD,qDAAqD;IACvD,CAAC;IAED,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACvC,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAqB,EACrB,MAAyB,EACzB,SAAyB;IAEzB,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEvC,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG;YACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS;SACV,CAAC;QAEF,MAAM,QAAQ,GAAG,kBAAkB,CACjC;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAiD;YAClE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;YAChC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SACnC,EACD,MAAM,CACP,CAAC;QAEF,2EAA2E;QAC3E,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACtD,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7B,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;QAEH,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAqB;IAa9C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,UAAU,GAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAsB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACtG,MAAM,kBAAkB,GAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;IACzG,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;QAClD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACpD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACxD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACpD,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC5D,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,UAAU;QACV,kBAAkB;QAClB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC;AAID,SAAS,YAAY,CAAC,IAAqB,EAAE,KAAgB,EAAE,OAAgB;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAA6B,CAAC;IAC1F,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAEjE,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEpC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;IAE3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,SAAS,CAAC,WAAW,GAAG,aAAa,CAAC;IACxC,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,SAAS,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAC5C,QAAQ,CAAC,SAAS,GAAG,qBAAqB,CAAC;QAC3C,QAAQ,CAAC,WAAW,GAAG,sCAAsC,CAAC;QAC9D,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,2BAA2B,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7B,SAAS,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAC5C,QAAQ,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACzC,QAAQ,CAAC,WAAW,GAAG,KAAK,OAAO,IAAI,yCAAyC,EAAE,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB;IAChC,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IAExC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;;;;;;;;KAQN,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,GAAkD,EAAE,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,MAAM;SACtB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B;SACtC,GAAG,CAAC,GAAG,CAAC,EAAE;QACT,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG;YAC3C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;YACvC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QAChB,OAAO,wCAAwC,IAAI,KAAK,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;IAC3F,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO;;8DAEqD,MAAM,CAAC,MAAM;;;UAGjE,UAAU;;;;GAIjB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,CAAC,SAAS,CAAC;AACvB,CAAC;AAED,SAAS,aAAa;IACpB,iCAAiC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;IACxD,MAAM,YAAY,GAAG,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IAE/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmED,yBAAyB,EAAE;;;;;;;;;;iFAU8C,YAAY;;;yBAGpE,UAAU;;;;;;;;;;;;;;;;;;;;;GAqBhC,CAAC;AACJ,CAAC"}
|