@progress/telerik-jquery-report-viewer 27.25.1001 → 28.25.1111

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
@@ -18,7 +18,7 @@ Major features:
18
18
 
19
19
  * Use the viewer's API for customizing and extending its behavior.
20
20
 
21
- This version of Telerik jQuery Report Viewer requires either Telerik Report Server or Telerik Reporting REST Service 19.2.25.1001.
21
+ This version of Telerik jQuery Report Viewer requires either Telerik Report Server or Telerik Reporting REST Service 19.3.25.1111.
22
22
 
23
23
  Learn more about Telerik Reporting Viewers here: [Telerik Report Viewers Overview](https://docs.telerik.com/reporting/embedding-reports/display-reports-in-applications/overview)
24
24
 
@@ -148,14 +148,12 @@ function ReportViewer(dom, options) {
148
148
  var history$1 = {};
149
149
  var commands = {};
150
150
  var viewer = {};
151
- var serviceClientOptions = {};
152
- var reportServerUrl = "";
153
151
  options.viewerSelector = "reportViewer-" + utils.generateGuidString();
154
152
  $placeholder.attr("data-selector", options.viewerSelector);
155
153
  if (!validateOptions(options)) {
156
154
  return;
157
155
  }
158
- var version = "19.2.25.1001";
156
+ var version = "19.3.25.1111";
159
157
  options = $.extend({}, getDefaultOptions(svcApiUrl, version), options);
160
158
  settings = new reportViewerSettings.ReportViewerSettings(
161
159
  persistanceKey,
@@ -175,20 +173,7 @@ function ReportViewer(dom, options) {
175
173
  }
176
174
  );
177
175
  notificationService$1 = new notificationService.NotificationService();
178
- if (options.reportServer) {
179
- reportServerUrl = utils.rTrim(options.reportServer.url, "\\/");
180
- var serviceUrl = reportServerUrl + "/api/reports";
181
- var tokenUrl = reportServerUrl + "/Token";
182
- var loginInfo = new RCV__namespace.ServiceClientLoginInfo(
183
- tokenUrl,
184
- options.reportServer.username,
185
- options.reportServer.password
186
- );
187
- serviceClientOptions = new RCV__namespace.ServiceClientOptions(serviceUrl, loginInfo);
188
- } else {
189
- serviceClientOptions = new RCV__namespace.ServiceClientOptions(options.serviceUrl);
190
- }
191
- client = new RCV__namespace.ServiceClient(serviceClientOptions);
176
+ client = new RCV__namespace.ServiceClient(options);
192
177
  controller = new RCV__namespace.ReportController(
193
178
  client,
194
179
  new RCV__namespace.ReportControllerOptions(
@@ -221,7 +206,25 @@ function ReportViewer(dom, options) {
221
206
  commands
222
207
  });
223
208
  viewer = {
209
+ /**
210
+ * String resources used by the viewer for localization and UI text.
211
+ * Contains key-value pairs for all UI strings, supporting localization and customization.
212
+ * @type {Object.<string, string>}
213
+ */
224
214
  stringResources: stringResources.stringResources,
215
+ /**
216
+ * Refreshes the currently loaded report.
217
+ * Forces the viewer to reload the report from the server. Optionally ignores the cache.
218
+ * @function
219
+ * @param {boolean} [ignoreCache=true] - If true, the report is reloaded from the server, bypassing any cached data.
220
+ * @returns {ReportViewerInstance} Returns the viewer instance for chaining.
221
+ * @example // Refresh the report, ignoring cache (default)
222
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
223
+ * viewer.refreshReport();
224
+ * @example // Refresh the report, using cache if available
225
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
226
+ * viewer.refreshReport(false);
227
+ */
225
228
  refreshReport: (ignoreCache) => {
226
229
  if (arguments.length === 0) {
227
230
  ignoreCache = true;
@@ -229,6 +232,26 @@ function ReportViewer(dom, options) {
229
232
  controller.refreshReport(ignoreCache, "", true);
230
233
  return viewer;
231
234
  },
235
+ /**
236
+ * Gets or sets the report source for the viewer.
237
+ * When called with an argument, sets the report source
238
+ * When called without arguments, gets the current report source - report and parameters. The viewer's report source is updated dynamically as the users navigate between reports and change parameter values.
239
+ * @function
240
+ * @param {ReportSource|null} [rs] - The report source object to set, or null to clear. If omitted, acts as a getter.
241
+ * @returns {ReportSource} Returns the viewer instance for chaining when setting, or the current report source when getting.
242
+ * @example // Get the current report source
243
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
244
+ * var currentSource = viewer.reportSource();
245
+ * @example // Set a new report source
246
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
247
+ * viewer.reportSource({
248
+ * report: "MyReport",
249
+ * parameters: { StartDate: "2024-01-01", EndDate: "2024-12-31" }
250
+ * });
251
+ * @example // Clear the report source
252
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
253
+ * viewer.reportSource(null);
254
+ */
232
255
  reportSource: (rs) => {
233
256
  if (rs || rs === null) {
234
257
  controller.setReportSource(rs);
@@ -237,10 +260,31 @@ function ReportViewer(dom, options) {
237
260
  }
238
261
  return controller.getReportSource();
239
262
  },
263
+ /**
264
+ * Clears the current reportSource from the viewer's internal state and its persisted session in the browser.
265
+ * Called in order to force the viewer to respect the newly set reportSource on a server postback.
266
+ * @function
267
+ * @returns {ReportViewerInstance} Returns the viewer instance for chaining.
268
+ * @example // Clear the report source and force the viewer to respect a new reportSource on postback
269
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
270
+ * viewer.clearReportSource();
271
+ */
240
272
  clearReportSource: () => {
241
273
  controller.setReportSource(new RCV__namespace.ReportSourceOptions());
242
274
  return viewer;
243
275
  },
276
+ /**
277
+ * Gets or sets the view mode of the viewer (e.g., Interactive or Print Preview).
278
+ * @function
279
+ * @param {ViewModes} [vm] - The view mode to set. If omitted, returns the current view mode.
280
+ * @returns {string} Returns the viewer instance for chaining when setting, or the current view mode string when getting.
281
+ * @example // Get the current view mode
282
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
283
+ * var mode = viewer.viewMode();
284
+ * @example // Set the view mode to Print Preview
285
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
286
+ * viewer.viewMode(telerikReportViewer.ViewModes.PRINT_PREVIEW);
287
+ */
244
288
  viewMode: (vm) => {
245
289
  if (vm) {
246
290
  controller.setViewMode(viewModeMap[vm]);
@@ -248,6 +292,18 @@ function ReportViewer(dom, options) {
248
292
  }
249
293
  return viewModeReverseMap[controller.getViewMode()];
250
294
  },
295
+ /**
296
+ * Gets or sets the page mode (e.g., Single Page or Continuous Scroll).
297
+ * @function
298
+ * @param {PageModes} [psm] - The page mode to set. If omitted, returns the current page mode.
299
+ * @returns {string} Returns the viewer instance for chaining when setting, or the current page mode string when getting.
300
+ * @example // Get the current page mode
301
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
302
+ * var pageMode = viewer.pageMode();
303
+ * @example // Set the page mode to Single Page
304
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
305
+ * viewer.pageMode(telerikReportViewer.PageModes.SINGLE_PAGE);
306
+ */
251
307
  pageMode: (psm) => {
252
308
  if (psm) {
253
309
  controller.setPageMode(pageModeMap[psm]);
@@ -255,6 +311,18 @@ function ReportViewer(dom, options) {
255
311
  }
256
312
  return pageModeReverseMap[controller.getPageMode()];
257
313
  },
314
+ /**
315
+ * Gets or sets the print mode for the viewer.
316
+ * @function
317
+ * @param {PrintModes} [pm] - The print mode to set. If omitted, returns the current print mode.
318
+ * @returns {string} Returns the viewer instance for chaining when setting, or the current print mode string when getting.
319
+ * @example // Get the current print mode
320
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
321
+ * var printMode = viewer.printMode();
322
+ * @example // Set the print mode to Force PDF File
323
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
324
+ * viewer.printMode(telerikReportViewer.PrintModes.FORCE_PDF_FILE);
325
+ */
258
326
  printMode: (pm) => {
259
327
  if (pm) {
260
328
  controller.setPrintMode(printModeMap[pm]);
@@ -262,6 +330,20 @@ function ReportViewer(dom, options) {
262
330
  }
263
331
  return printModeReverseMap[controller.getPrintMode()];
264
332
  },
333
+ /**
334
+ * Gets or sets the scale and scale mode for the viewer.
335
+ * @function
336
+ * @param {Object} [args] - The scale settings to apply. Should contain 'scale' (number) and 'scaleMode' (string).
337
+ * @param {number} [args.scale] - The zoom scale (e.g., 1.0 for 100%).
338
+ * @param {ScaleModes} [args.scaleMode] - The scale mode (e.g., 'FIT_PAGE', 'FIT_PAGE_WIDTH', 'SPECIFIC').
339
+ * @returns {Object} Returns the viewer instance for chaining when setting, or an object with current scale and scaleMode when getting.
340
+ * @example // Get the current scale and scale mode
341
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
342
+ * var scaleInfo = viewer.scale();
343
+ * @example // Set scale to 1.2 and scale mode to FIT_PAGE_WIDTH
344
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
345
+ * viewer.scale({ scale: 1.2, scaleMode: telerikReportViewer.ScaleModes.FIT_PAGE_WIDTH });
346
+ */
265
347
  scale: (args) => {
266
348
  if (args) {
267
349
  controller.setScale(args.scale);
@@ -273,33 +355,135 @@ function ReportViewer(dom, options) {
273
355
  scaleMode: scaleModeReverseMap[controller.getScaleMode()]
274
356
  };
275
357
  },
358
+ /**
359
+ * Gets the viewer’s current page that is displayed.
360
+ * @function
361
+ * @returns {number} The current page number (1-based).
362
+ * @example // Get the current page number
363
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
364
+ * var page = viewer.currentPage();
365
+ */
276
366
  currentPage: () => {
277
367
  return controller.getCurrentPageNumber();
278
368
  },
369
+ /**
370
+ * Gets the total page count of the viewer’s currently displayed report.
371
+ * @function
372
+ * @returns {number} The total page count.
373
+ * @example // Get the total number of pages in the current report
374
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
375
+ * var totalPages = viewer.pageCount();
376
+ */
279
377
  pageCount: () => {
280
378
  return controller.getPageCount();
281
379
  },
380
+ /**
381
+ * Shows or hides the parameters area in the viewer UI.
382
+ * @function
383
+ * @param {boolean} visible - True to show, false to hide the parameters area.
384
+ * @returns {void}
385
+ * @example // Show the parameters area
386
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
387
+ * viewer.parametersAreaVisible(true);
388
+ * @example // Hide the parameters area
389
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
390
+ * viewer.parametersAreaVisible(false);
391
+ */
282
392
  parametersAreaVisible: (visible) => {
283
393
  notificationService$1.setParametersAreaVisible({ visible });
284
394
  },
395
+ /**
396
+ * Returns an object with properties, the names of which are the report parameters’ IDs, and values - the report parameters’ values. The values of multivalue parameters include their display and value members.
397
+ * @function
398
+ * @returns {Array<Object>} An array of report parameter objects.
399
+ * @example // Get all report parameters and log them
400
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
401
+ * var parameters = viewer.getReportParameters();
402
+ * console.log(parameters);
403
+ */
285
404
  getReportParameters: () => {
286
405
  return controller.getReportParameters();
287
406
  },
407
+ /**
408
+ * Returns whether auto-run is enabled for the report (i.e., whether the report runs automatically when parameters change).
409
+ * @function
410
+ * @returns {boolean} True if auto-run is enabled, false otherwise.
411
+ * @example // Check if auto-run is enabled for the report
412
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
413
+ * var isReportAutoRun = viewer.isReportAutoRun();
414
+ */
288
415
  isReportAutoRun: () => {
289
416
  return controller.autoRunEnabled;
290
417
  },
418
+ /**
419
+ * Sets the authentication token. Used for service requests.
420
+ * @function
421
+ * @param {string} [token] - The authentication token to set.
422
+ * @returns {ReportViewerInstance} Returns the viewer instance for chaining.
423
+ * @example // Set the authentication token for the viewer
424
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
425
+ * viewer.authenticationToken("YOUR_AUTH_TOKEN");
426
+ */
291
427
  authenticationToken: (token) => {
292
428
  if (token) {
293
429
  controller.setAuthenticationToken(token);
294
430
  }
295
431
  return viewer;
296
432
  },
433
+ /**
434
+ * Binds event handlers to the specified event.
435
+ * @function
436
+ * @param {string} eventName - The name of the event to bind to (see Events constants).
437
+ * @param {function} eventHandler - The handler function to invoke when the event occurs.
438
+ * @returns {void}
439
+ * @example // Bind to the 'pageReady' event
440
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
441
+ * viewer.bind(telerikReportViewer.Events.PAGE_READY, function(e, args) {
442
+ * console.log("Page is ready!", args);
443
+ * });
444
+ * @example // Bind to the 'error' event
445
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
446
+ * viewer.bind(telerikReportViewer.Events.ERROR, function(e, args) {
447
+ * alert("An error occurred: " + args);
448
+ * });
449
+ */
297
450
  bind: (eventName, eventHandler) => {
298
451
  eventBinder(eventName, eventHandler, true);
299
452
  },
453
+ /**
454
+ * Unbinds an event handler from a viewer event.
455
+ * @function
456
+ * @param {string} eventName - The name of the event to unbind from.
457
+ * @param {function} [eventHandler] - The handler function to remove. If omitted, all handlers for the event are removed.
458
+ * @returns {void}
459
+ * @example // Unbind all handlers from the 'error' event
460
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
461
+ * viewer.unbind(telerikReportViewer.Events.ERROR);
462
+ */
300
463
  unbind: (eventName, eventHandler) => {
301
464
  eventBinder(eventName, eventHandler, false);
302
465
  },
466
+ /**
467
+ * Gets or sets the accessibility key map for keyboard navigation.
468
+ * Allows customization of keyboard shortcuts for accessibility features.
469
+ * @function
470
+ * @param {Object} [keyMap] - The key map object to set. If omitted, acts as a getter.
471
+ * @returns {Object} Returns the viewer instance for chaining when setting, the current key map when getting, or undefined if accessibility is not enabled.
472
+ * @example // Get the current accessibility key map
473
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
474
+ * var keyMap = viewer.accessibilityKeyMap();
475
+ *
476
+ * @example // Set a custom accessibility key map
477
+ * var reportViewer = $("#reportViewer1").data("telerik_ReportViewer");
478
+ * reportViewer.accessibilityKeyMap(
479
+ * {
480
+ * CONFIRM_KEY: 32,
481
+ * CONTENT_AREA_KEY: 82, //R
482
+ * DOCUMENT_MAP_AREA_KEY: 77, //M
483
+ * MENU_AREA_KEY: 85, //U
484
+ * PARAMETERS_AREA_KEY: 80 //P
485
+ * });
486
+ */
303
487
  accessibilityKeyMap: (keyMap) => {
304
488
  if (accessibility$1) {
305
489
  if (keyMap) {
@@ -310,12 +494,27 @@ function ReportViewer(dom, options) {
310
494
  }
311
495
  return void 0;
312
496
  },
497
+ /**
498
+ * The command set for the viewer, providing programmatic access to built-in commands (e.g., navigation, export).
499
+ * @type {ReportViewerCommands}
500
+ */
313
501
  commands,
502
+ /**
503
+ * Disposes the viewer instance, cleaning up resources and event handlers.
504
+ * After calling this method, the viewer instance should not be used.
505
+ * Stops sending keep alive requests to the server, if keep client alive was enabled.
506
+ * @function
507
+ * @returns {void}
508
+ * @example
509
+ * // Dispose the viewer instance when it is no longer needed
510
+ * var viewer = $("#reportViewer1").data("telerik_ReportViewer");
511
+ * viewer.dispose();
512
+ */
314
513
  dispose: () => {
315
514
  clearTooltipTimeout();
316
515
  controller.disposeSentinel();
317
516
  controller.destroy();
318
- if (perspectiveManager) {
517
+ if (perspectiveManager && typeof perspectiveManager.dispose === "function") {
319
518
  perspectiveManager.dispose();
320
519
  }
321
520
  }
@@ -451,6 +650,9 @@ function ReportViewer(dom, options) {
451
650
  function enableTouch(dom2) {
452
651
  var allowSwipeLeft;
453
652
  var allowSwipeRight;
653
+ function isMobileDevice() {
654
+ return /Mobile|Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini|Windows Phone/i.test(navigator.userAgent) || /Macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 0;
655
+ }
454
656
  touch.TouchBehavior(
455
657
  dom2,
456
658
  {
@@ -473,7 +675,9 @@ function ReportViewer(dom, options) {
473
675
  controller.setScale(scale * f);
474
676
  },
475
677
  doubletap: function() {
476
- commands.toggleZoomMode.exec();
678
+ if (isMobileDevice()) {
679
+ commands.toggleZoomMode.exec();
680
+ }
477
681
  },
478
682
  touchstart: function() {
479
683
  var el = dom2.find(".trv-page-wrapper")[0];
@@ -602,8 +806,8 @@ function ReportViewer(dom, options) {
602
806
  settings.setScale(scale);
603
807
  }).on("clientIdChanged", (clientId) => {
604
808
  settings.setClientId(clientId);
605
- }).on("currentPageChanged", (page) => {
606
- settings.setPageNumber(page);
809
+ }).on("currentPageChanged", (args) => {
810
+ settings.setPageNumber(args.page);
607
811
  }).on("reportSourceChanged", (rs) => {
608
812
  settings.setReportSource(rs);
609
813
  });
@@ -676,10 +880,7 @@ function ReportViewer(dom, options) {
676
880
  notificationService$1.setDocumentMapVisible({ visible: false });
677
881
  }
678
882
  }).on("navigateToReport", (args) => {
679
- controller.setReportSource({
680
- report: args.Report,
681
- parameters: args.Parameters
682
- });
883
+ controller.setReportSource(args);
683
884
  controller.refreshReport(false);
684
885
  }).on("toolTipOpening", (args) => {
685
886
  showTooltip(args);
package/dist/cjs/sr.js CHANGED
@@ -31,6 +31,7 @@ var sr = {
31
31
  errorCreatingReportInstance: "Error creating report instance (Report = '{0}').",
32
32
  errorCreatingReportDocument: "Error creating report document (Report = '{0}'; Format = '{1}').",
33
33
  unableToGetReportParameters: "Unable to get report parameters.",
34
+ errorUnauthorizedOrForbidden: "You don't have permission to access this report document.",
34
35
  errorObtainingAuthenticationToken: "Error obtaining authentication token.",
35
36
  clientExpired: "Click 'Refresh' to restore client session.",
36
37
  promisesChainStopError: "Error shown. Throwing promises chain stop error.",
@@ -1,5 +1,5 @@
1
1
  /*
2
- * TelerikReporting v19.2.25.1001 (https://www.telerik.com/products/reporting.aspx)
2
+ * TelerikReporting v19.3.25.1111 (https://www.telerik.com/products/reporting.aspx)
3
3
  * Copyright 2025 Progress Software EAD. All rights reserved.
4
4
  *
5
5
  * Telerik Reporting commercial licenses may be obtained at
@@ -10,14 +10,14 @@
10
10
  font-family: "ReportingIcons";
11
11
  font-style: normal;
12
12
  font-weight: normal;
13
- src: url("../ReportingIcons-19.2.25.1001.ttf/") format("truetype");
13
+ src: url("../ReportingIcons-19.3.25.1111.ttf/") format("truetype");
14
14
  /*unicode-range: U+E0ED, U+E0EE, U+E0E6, U+E132, U+E12F, U+E008, U+E00B, U+E09C, U+E096, U+E07E, U+E086, U+E06C, U+E07F, U+E080, U+E081, U+E149, U+E087;*/
15
15
  }
16
16
  @font-face {
17
17
  font-family: "WebComponentsIcons";
18
18
  font-style: normal;
19
19
  font-weight: normal;
20
- src: url("../ReportingIcons-19.2.25.1001.ttf/") format("truetype");
20
+ src: url("../ReportingIcons-19.3.25.1111.ttf/") format("truetype");
21
21
  }
22
22
  .k-icon {
23
23
  /* use !important to prevent issues with browser extensions that change fonts */
@@ -4256,4 +4256,4 @@
4256
4256
  .trv-report-viewer .t-i-scroll:before {
4257
4257
  content: "\e022";
4258
4258
  }
4259
- /* DO NOT MODIFY OR DELETE THIS LINE! UPGRADE WIZARD CHECKSUM 071e77464fbd3caaca0925ace388ba2c */
4259
+ /* DO NOT MODIFY OR DELETE THIS LINE! UPGRADE WIZARD CHECKSUM f7abb5da4db19fb4ee5ca88c31b92797 */