@uxbertlabs/reportly 1.0.42 → 1.0.44

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.
@@ -22,6 +22,10 @@ declare class Screenshot {
22
22
  * Wait for fonts to load
23
23
  */
24
24
  private waitForFonts;
25
+ /**
26
+ * Force a reflow to ensure styles are applied
27
+ */
28
+ private forceReflow;
25
29
  capture(mode?: "viewport" | "fullpage"): Promise<string>;
26
30
  private hideUXbertElements;
27
31
  private showUXbertElements;
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/features/screenshot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AAEvE,cAAM,UAAU;IACd,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAkC;gBAEpC,KAAK,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM;IAS9G;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;OAEG;YACW,gBAAgB;IAmB9B;;OAEG;YACW,aAAa;IA+C3B;;OAEG;YACW,YAAY;IAcpB,OAAO,CAAC,IAAI,GAAE,UAAU,GAAG,UAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmO1E,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,iBAAiB;IA6DzB,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAWtC;;OAEG;IACH,QAAQ,IAAI,eAAe;IAI3B;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B,KAAK,IAAI,IAAI;CAGd;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/features/screenshot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AAEvE,cAAM,UAAU;IACd,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAkC;gBAEpC,KAAK,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM;IAS9G;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;OAEG;YACW,gBAAgB;IAmB9B;;OAEG;YACW,aAAa;IA+C3B;;OAEG;YACW,YAAY;IAc1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAKb,OAAO,CAAC,IAAI,GAAE,UAAU,GAAG,UAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAsM1E,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,iBAAiB;IA6DzB,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAWtC;;OAEG;IACH,QAAQ,IAAI,eAAe;IAI3B;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B,KAAK,IAAI,IAAI;CAGd;AAED,eAAe,UAAU,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -9397,6 +9397,13 @@ class Screenshot {
9397
9397
  }
9398
9398
  }
9399
9399
  }
9400
+ /**
9401
+ * Force a reflow to ensure styles are applied
9402
+ */
9403
+ forceReflow() {
9404
+ // Reading offsetHeight forces a reflow
9405
+ document.body.offsetHeight;
9406
+ }
9400
9407
  async capture(mode = "fullpage") {
9401
9408
  const context = {
9402
9409
  mode,
@@ -9414,6 +9421,8 @@ class Screenshot {
9414
9421
  // Hide loading screen and UXbert UI elements BEFORE capturing
9415
9422
  this.hideLoadingScreen();
9416
9423
  this.hideUXbertElements();
9424
+ // Force a reflow to ensure all styles are computed
9425
+ this.forceReflow();
9417
9426
  // Hook: beforeCapture - allow developers to modify DOM before capture
9418
9427
  if (this.hooks.beforeCapture) {
9419
9428
  await Promise.resolve(this.hooks.beforeCapture(context));
@@ -9518,34 +9527,8 @@ class Screenshot {
9518
9527
  // Increased timeout for slow-loading images
9519
9528
  removeContainer: true,
9520
9529
  scale: window.devicePixelRatio || 1,
9521
- ignoreElements: element => {
9522
- // Ignore loading screen by ID
9523
- if (element.id === "uxbert-screenshot-loading") {
9524
- return true;
9525
- }
9526
- // Ignore Uxbert elements
9527
- if (element.getAttribute("data-uxbert-reportly") !== null || element.className?.toString().includes("uxbert-") || element.id?.includes("uxbert-")) {
9528
- return true;
9529
- }
9530
- // Skip cross-origin images that might cause issues
9531
- if (element.tagName === "IMG") {
9532
- const img = element;
9533
- try {
9534
- // Test if image is accessible
9535
- const testCanvas = document.createElement("canvas");
9536
- const ctx = testCanvas.getContext("2d");
9537
- testCanvas.width = 1;
9538
- testCanvas.height = 1;
9539
- ctx?.drawImage(img, 0, 0, 1, 1);
9540
- testCanvas.toDataURL();
9541
- return false; // Include the image
9542
- } catch (e) {
9543
- console.warn("Skipping cross-origin image:", img.src);
9544
- return true;
9545
- }
9546
- }
9547
- return false;
9548
- }
9530
+ scrollY: 0,
9531
+ scrollX: 0
9549
9532
  });
9550
9533
  }
9551
9534
  // Show UXbert UI elements again