@progress/telerik-react-report-viewer 27.25.813 → 27.25.924

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 CHANGED
@@ -23,7 +23,7 @@ While the component is not native (the theming mechanism uses Kendo UI for jQuer
23
23
  and has a dependency to jQuery itself), it brings reporting value to your React applications
24
24
  in no time.
25
25
 
26
- This version of the React Report Viewer requires Telerik Report Server or Telerik Reporting REST Service 19.2.25.813
26
+ This version of the React Report Viewer requires Telerik Report Server or Telerik Reporting REST Service 19.2.25.924
27
27
 
28
28
  ## License
29
29
 
@@ -1,6 +1,6 @@
1
1
  var $ = require("jquery");
2
2
  /*
3
- * TelerikReporting v19.2.25.813 (https://www.telerik.com/products/reporting.aspx)
3
+ * TelerikReporting v19.2.25.924 (https://www.telerik.com/products/reporting.aspx)
4
4
  * Copyright 2025 Progress Software EAD. All rights reserved.
5
5
  *
6
6
  * Telerik Reporting commercial licenses may be obtained at
@@ -1915,10 +1915,10 @@ var telerikReportViewer = (function (exports) {
1915
1915
  function j(e2) {
1916
1916
  return e2.offsetParent;
1917
1917
  }
1918
- function G(e2) {
1918
+ function J(e2) {
1919
1919
  return parseInt(e2, 10) || 0;
1920
1920
  }
1921
- function J(e2, t2, i2, n2 = 0, r2 = 0) {
1921
+ function G(e2, t2, i2, n2 = 0, r2 = 0) {
1922
1922
  let s2 = `${n2 = n2 || 0} ${r2 = r2 || 0}`;
1923
1923
  !function(e3, t3) {
1924
1924
  e3.style.setProperty("transform", t3), e3.style.setProperty("-moz-transform", t3), e3.style.setProperty("-ms-transform", t3), e3.style.setProperty("-webkit-transform", t3), e3.style.setProperty("-o-transform", t3);
@@ -2711,19 +2711,26 @@ var telerikReportViewer = (function (exports) {
2711
2711
  this.disablePagesArea(true), window.setTimeout(this.controller.getReportPage.bind(this.controller, e2), 1), this.navigateToPageOnDocReady = 0;
2712
2712
  }
2713
2713
  setPageDimensions(t2, i2 = 0) {
2714
- let n2 = this.controller.getScaleMode(), r2 = this.controller.getScale(), s2 = i2 ? t2 : t2.querySelector("div.trv-report-page");
2715
- if (!s2)
2714
+ let n2 = i2 ? t2 : t2.querySelector("div.trv-report-page");
2715
+ if (!n2)
2716
2716
  return;
2717
- let o2 = s2.querySelector("div.sheet"), a2 = s2.querySelector("div.trv-skeleton-wrapper");
2718
- if (o2 = o2 || a2, !o2)
2717
+ let r2, s2 = n2.querySelector("div.sheet"), o2 = n2.querySelector("div.trv-skeleton-wrapper");
2718
+ if (s2 = s2 || o2, !s2)
2719
2719
  return;
2720
- let l2 = 0, h2 = 0, c2 = getComputedStyle(s2), d2 = getComputedStyle(t2), u2 = G(d2.marginLeft) + G(c2.borderLeftWidth) + G(c2.paddingLeft), p2 = G(d2.marginRight) + G(c2.borderRightWidth) + G(c2.paddingRight), g2 = G(d2.marginTop) + G(c2.borderTopWidth) + G(c2.paddingTop), m2 = G(d2.marginBottom) + G(c2.borderBottomWidth) + G(c2.paddingBottom);
2721
- if (l2 = o2.offsetWidth, h2 = o2.offsetHeight, 0 === l2) {
2722
- const e2 = getComputedStyle(o2);
2723
- l2 = parseInt(e2.width), h2 = parseInt(e2.height);
2720
+ if (n2.dataset.box)
2721
+ r2 = JSON.parse(n2.dataset.box);
2722
+ else {
2723
+ let e2 = getComputedStyle(n2), i3 = getComputedStyle(t2);
2724
+ r2 = { padLeft: J(i3.marginLeft) + J(e2.borderLeftWidth) + J(e2.paddingLeft), padRight: J(i3.marginRight) + J(e2.borderRightWidth) + J(e2.paddingRight), padTop: J(i3.marginTop) + J(e2.borderTopWidth) + J(e2.paddingTop), padBottom: J(i3.marginBottom) + J(e2.borderBottomWidth) + J(e2.paddingBottom) }, n2.dataset.box = JSON.stringify(r2);
2725
+ }
2726
+ let a2 = s2.offsetWidth, l2 = s2.offsetHeight;
2727
+ if (0 === a2) {
2728
+ const e2 = getComputedStyle(s2);
2729
+ a2 = parseInt(e2.width), l2 = parseInt(e2.height);
2724
2730
  }
2725
- let f2 = h2 > l2 && n2 === e.ScaleMode.FitPageWidth ? 20 : 0, v2 = (this.pageContainer.clientWidth - f2 - u2 - p2) / l2, P2 = (this.pageContainer.clientHeight - 1 - g2 - m2) / h2;
2726
- n2 === e.ScaleMode.FitPageWidth ? r2 = v2 : r2 && n2 !== e.ScaleMode.FitPage || (r2 = Math.min(v2, P2)), null !== this.uiFreezeCoordinator && this.uiFreezeCoordinator.setScaleFactor(r2), t2.dataset.pageScale = r2.toString(), s2.dataset.pageScale = r2.toString(), a2 || J(o2, r2, r2), s2.style.height = r2 * h2 + "px", s2.style.width = r2 * l2 + "px";
2731
+ const h2 = this.controller.getScaleMode(), c2 = l2 > a2 && h2 === e.ScaleMode.FitPageWidth ? 20 : 0, d2 = (this.pageContainer.clientWidth - c2 - r2.padLeft - r2.padRight) / a2, u2 = (this.pageContainer.clientHeight - 1 - r2.padTop - r2.padBottom) / l2;
2732
+ let p2 = this.controller.getScale();
2733
+ h2 === e.ScaleMode.FitPageWidth ? p2 = d2 : p2 && h2 !== e.ScaleMode.FitPage || (p2 = Math.min(d2, u2)), null !== this.uiFreezeCoordinator && this.uiFreezeCoordinator.setScaleFactor(p2), t2.dataset.pageScale = p2.toString(), n2.dataset.pageScale = p2.toString(), o2 || G(s2, p2, p2), n2.style.height = p2 * l2 + "px", n2.style.width = p2 * a2 + "px", this.controller.setScale(p2, true);
2727
2734
  }
2728
2735
  enableInteractivity() {
2729
2736
  this.onClickHandler = this.onClick.bind(this), this.onMouseEnterHandler = this.onMouseEnter.bind(this), this.onMouseLeaveHandler = this.onMouseLeave.bind(this), this.pageContainer.addEventListener("click", this.onClickHandler), this.pageContainer.addEventListener("mouseenter", this.onMouseEnterHandler, true), this.pageContainer.addEventListener("mouseleave", this.onMouseLeaveHandler, true);
@@ -2941,8 +2948,8 @@ var telerikReportViewer = (function (exports) {
2941
2948
  getScale() {
2942
2949
  return this.options.scale;
2943
2950
  }
2944
- setScale(e2) {
2945
- e2 !== this.options.scale && (this.options.scale = e2, this.emit("scaleChanged", e2));
2951
+ setScale(e2, t2 = false) {
2952
+ e2 !== this.options.scale && (this.options.scale = e2, t2 || this.emit("scaleChanged", e2));
2946
2953
  }
2947
2954
  getScaleMode() {
2948
2955
  return this.options.scaleMode;
@@ -3517,7 +3524,7 @@ ${e3.text} (${e3.id})`;
3517
3524
  return i2.parameters && (n2 = JSON.stringify(i2.parameters)), e3 === n2;
3518
3525
  }
3519
3526
  return false;
3520
- }, e.scaleElement = J, e.stringFormat = ce, e.throttle = se, e.toPixel = G, e.toRgbColor = K, e.tryParseFloat = ge, e.tryParseInt = pe, Object.defineProperty(e, "__esModule", { value: true });
3527
+ }, e.scaleElement = G, e.stringFormat = ce, e.throttle = se, e.toPixel = J, e.toRgbColor = K, e.tryParseFloat = ge, e.tryParseInt = pe, Object.defineProperty(e, "__esModule", { value: true });
3521
3528
  });
3522
3529
  })(dist, dist.exports);
3523
3530
  var distExports = dist.exports;
@@ -4229,7 +4236,7 @@ ${e3.text} (${e3.id})`;
4229
4236
  "toggleZoomMode": new Command((e) => {
4230
4237
  var scaleMode = controller.getScaleMode();
4231
4238
  var newScaleMode = scaleTransitionMap[scaleMode];
4232
- controller.setScaleMode(scaleTransitionMap[newScaleMode]);
4239
+ controller.setScaleMode(newScaleMode);
4233
4240
  if (newScaleMode === distExports.ScaleMode.Specific) {
4234
4241
  controller.setScale(1);
4235
4242
  }
@@ -4246,8 +4253,8 @@ ${e3.text} (${e3.id})`;
4246
4253
  };
4247
4254
  function zoom(step) {
4248
4255
  var scale = getZoomScale(controller.getScale(), step);
4249
- controller.setScale(scale);
4250
4256
  controller.setScaleMode(distExports.ScaleMode.Specific);
4257
+ controller.setScale(scale);
4251
4258
  }
4252
4259
  function getZoomScale(scale, steps) {
4253
4260
  var pos = -1;
@@ -5952,7 +5959,7 @@ ${e3.text} (${e3.id})`;
5952
5959
  commands.toggleZoomMode.setEnabled(hasPage).setChecked(controller.getScaleMode() == distExports.ScaleMode.FitPage || controller.getScaleMode() == distExports.ScaleMode.FitPageWidth);
5953
5960
  commands.toggleSearchDialog.setEnabled(hasPages).setChecked(searchInitiated);
5954
5961
  commands.toggleSendEmailDialog.setEnabled(hasPages).setChecked(sendEmailDialogState.visible);
5955
- commands.toggleAiPromptDialog.setEnabled(hasPages).setChecked(aiPromptInitiated);
5962
+ commands.toggleAiPromptDialog.setEnabled(hasPages && !renderInProgress).setChecked(aiPromptInitiated);
5956
5963
  notificationService.updateUI(null);
5957
5964
  notificationService.pageNumberChange(currentPageNumber);
5958
5965
  notificationService.pageCountChange(pageCount);
@@ -7075,12 +7082,14 @@ ${e3.text} (${e3.id})`;
7075
7082
  var width = this.kendoSearchDialog.wrapper.outerWidth(true);
7076
7083
  var height = this.kendoSearchDialog.wrapper.outerHeight(true);
7077
7084
  var padding = 10;
7085
+ var scrollOverlapOffsetX = 10;
7078
7086
  if (!this.windowLocation) {
7079
7087
  var reportViewerCoords = this.pagesAreaContainer[0].getBoundingClientRect();
7080
7088
  this.kendoSearchDialog.setOptions({
7081
7089
  position: {
7082
- top: reportViewerCoords.top + padding,
7083
- left: reportViewerCoords.right - width - padding
7090
+ // scrollY ensures that the dialog appears at the correct place even when the viewer is rendered inside a scrollable page
7091
+ top: reportViewerCoords.top + padding + window.scrollY,
7092
+ left: reportViewerCoords.right - width - padding - scrollOverlapOffsetX
7084
7093
  }
7085
7094
  });
7086
7095
  } else {
@@ -8557,6 +8566,10 @@ ${e3.text} (${e3.id})`;
8557
8566
  }
8558
8567
  _initAiPrompt(promptSuggestions) {
8559
8568
  if (this.aiPromptInitialized) {
8569
+ this.kendoAiPrompt.setOptions({
8570
+ promptSuggestions
8571
+ });
8572
+ this.kendoAiPrompt.activeView(this.kendoAiPrompt.activeView());
8560
8573
  return;
8561
8574
  }
8562
8575
  const aiPromptElement = this.kendoAiPromptDialog?.element?.find("#trv-ai-prompt");
@@ -8569,13 +8582,14 @@ ${e3.text} (${e3.id})`;
8569
8582
  activeView: 0,
8570
8583
  promptRequest: function(event) {
8571
8584
  if (!event.prompt) {
8585
+ this.activeView(0);
8572
8586
  return;
8573
8587
  }
8574
8588
  that.controller.getAIResponse(event.prompt).then((response) => {
8575
8589
  this.addPromptOutput(that.createPromptOutputFromResponse(response, event));
8576
8590
  this.activeView(1);
8577
8591
  }).catch((error) => {
8578
- this.addPromptOutput(that.createPromptOutputFromResponse(error?._responseJSON, event));
8592
+ this.addPromptOutput(that.createPromptOutputFromResponse(error?._responseJSON?.exceptionMessage || error?._responseJSON?.ExceptionMessage, event));
8579
8593
  this.activeView(1);
8580
8594
  });
8581
8595
  },
@@ -8585,10 +8599,10 @@ ${e3.text} (${e3.id})`;
8585
8599
  this.close();
8586
8600
  } }
8587
8601
  ],
8602
+ promptSuggestions,
8588
8603
  views: [
8589
8604
  {
8590
8605
  type: "prompt",
8591
- promptSuggestions,
8592
8606
  messages: {
8593
8607
  promptPlaceholder: "Enter your prompt"
8594
8608
  }
@@ -8631,12 +8645,14 @@ ${e3.text} (${e3.id})`;
8631
8645
  var width = dialog.wrapper.outerWidth(true);
8632
8646
  var height = dialog.wrapper.outerHeight(true);
8633
8647
  var padding = 10;
8648
+ var scrollOverlapOffsetX = 10;
8634
8649
  if (!this.kendoAiPromtDialogLocation) {
8635
8650
  var reportViewerCoords = this.pagesAreaContainer[0].getBoundingClientRect();
8636
8651
  dialog.setOptions({
8637
8652
  position: {
8638
- top: reportViewerCoords.top + padding,
8639
- left: reportViewerCoords.right - width - padding
8653
+ // scrollY ensures that the dialog appears at the correct place even when the viewer is rendered inside a scrollable page
8654
+ top: reportViewerCoords.top + padding + window.scrollY,
8655
+ left: reportViewerCoords.right - width - padding - scrollOverlapOffsetX
8640
8656
  }
8641
8657
  });
8642
8658
  } else {
@@ -8811,7 +8827,7 @@ ${e3.text} (${e3.id})`;
8811
8827
  if (!validateOptions(options)) {
8812
8828
  return;
8813
8829
  }
8814
- var version = "19.2.25.813";
8830
+ var version = "19.2.25.924";
8815
8831
  options = $.extend({}, getDefaultOptions(svcApiUrl, version), options);
8816
8832
  settings = new ReportViewerSettings(
8817
8833
  persistanceKey,