@progress/telerik-jquery-report-viewer 26.25.521 → 27.25.813
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 +33 -4
- package/dist/cjs/aiPrompt.js +31 -23
- package/dist/cjs/documentMapArea.js +2 -2
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/parametersArea.js +11 -6
- package/dist/cjs/reportViewer.js +28 -6
- package/dist/cjs/search.js +1 -1
- package/dist/cjs/sendEmail.js +6 -6
- package/dist/cjs/sr.js +8 -3
- package/dist/cjs/toolbar.js +25 -8
- package/dist/cjs/utils.js +0 -25
- package/dist/font/font-icons.css +4 -4
- package/dist/font/font-icons.min.css +3 -3
- package/dist/js/telerikReportViewer.js +1802 -400
- package/dist/js/telerikReportViewer.min.js +1 -1
- package/dist/js/telerikReportViewer.stringResources.js +8 -3
- package/dist/styles/telerikReportViewer.css +3 -3
- package/dist/styles/telerikReportViewer.min.css +3 -3
- package/dist/templates/telerikReportViewerTemplate.html +11 -14
- package/package.json +1 -1
- /package/dist/font/{ReportingIcons-19.1.25.521.ttf → ReportingIcons-19.2.25.813.ttf} +0 -0
package/README.md
CHANGED
@@ -1,9 +1,38 @@
|
|
1
|
-
# Progress Telerik jQuery Report Viewer
|
1
|
+
# Progress® Telerik HTML5 jQuery Report Viewer
|
2
2
|
|
3
3
|
This package is part of [Telerik Reporting](https://www.telerik.com/reporting).
|
4
4
|
|
5
|
-
|
5
|
+
The Telerik Reporting HTML5 Report Viewer is an HTML5/jQuery-based component that enables the display of Telerik Reports within a web page. Its rich preview capabilities, easy customization, and extensive API allow for seamless integration into a wide range of web applications.
|
6
6
|
|
7
|
-
|
7
|
+
Major features:
|
8
8
|
|
9
|
-
|
9
|
+
* Preview Telerik Reports in desktop or mobile browsers.
|
10
|
+
|
11
|
+
* Browse the report pages on screen.
|
12
|
+
|
13
|
+
* Navigate through the history of visited reports.
|
14
|
+
|
15
|
+
* Use built-in interactivity features such as navigating to external URLs, other reports or bookmarks, performing drill-down actions, sorting by table columns, etc.
|
16
|
+
|
17
|
+
* Print or export the report to supported formats including PDF, Word, Excel, and PowerPoint.
|
18
|
+
|
19
|
+
* Use the viewer's API for customizing and extending its behavior.
|
20
|
+
|
21
|
+
This version of Telerik jQuery Report Viewer requires either Telerik Report Server or Telerik Reporting REST Service 19.2.25.813.
|
22
|
+
|
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
|
+
|
25
|
+
## License
|
26
|
+
|
27
|
+
**IMPORTANT** This is commercial software. To use it, you must agree to the
|
28
|
+
[Telerik End User License Agreement for Telerik Reporting](https://www.telerik.com/purchase/license-agreement/reporting-dlw-s).
|
29
|
+
|
30
|
+
If you do not have a commercial license, the usage of this product is governed by the trial license terms.
|
31
|
+
|
32
|
+
Telerik Reporting requires activation using a license key — this applies to both the trial and commercial versions of the product.
|
33
|
+
|
34
|
+
Telerik Reporting licenses can be obtained through the [Telerik Reporting page](https://www.telerik.com/purchase/individual/reporting). For more information on licensing, configuration, and troubleshooting, refer to the product documentation's [License section](https://docs.telerik.com/reporting/licensing/setting-up-your-telerik-reporting-license-key).
|
35
|
+
|
36
|
+
_Copyright © 2025 Progress Software Corporation and/or one of its subsidiaries or affiliates. All rights reserved._
|
37
|
+
|
38
|
+
_Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries._
|
package/dist/cjs/aiPrompt.js
CHANGED
@@ -58,12 +58,13 @@ class AiPrompt {
|
|
58
58
|
this.kendoAiPromptDialog;
|
59
59
|
this.kendoAiPrompt;
|
60
60
|
this.kendoAiPromtDialogLocation;
|
61
|
-
this.
|
61
|
+
this.reportViewerWrapper = $(`[data-selector='${this.viewerOptions.viewerSelector}']`);
|
62
|
+
this.pagesAreaContainer = this.reportViewerWrapper.find('[data-id="trv-pages-area"]');
|
62
63
|
this.aiPromptDialogInitialized = false;
|
63
64
|
this.aiPromptInitialized = false;
|
64
|
-
|
65
|
-
this.
|
66
|
-
this.
|
65
|
+
this.requireConsent = false;
|
66
|
+
this.allowCustomPrompts = true;
|
67
|
+
this.predefinedPrompts = [];
|
67
68
|
this.init();
|
68
69
|
}
|
69
70
|
init() {
|
@@ -71,10 +72,8 @@ class AiPrompt {
|
|
71
72
|
return;
|
72
73
|
}
|
73
74
|
replaceStringResources(this.$element);
|
74
|
-
|
75
|
-
|
76
|
-
this._attachAiConsentDialogCommands();
|
77
|
-
}
|
75
|
+
this._initAiConsentDialog();
|
76
|
+
this._attachAiConsentDialogCommands();
|
78
77
|
this._initAiPromptDialog();
|
79
78
|
this._attachEvents();
|
80
79
|
this.aiPromptDialogInitialized = true;
|
@@ -107,7 +106,10 @@ class AiPrompt {
|
|
107
106
|
this.kendoAiConsentDialog.close();
|
108
107
|
this.controller.saveToSessionStorage("trvAiConsent", "true");
|
109
108
|
this.controller.setAiPromptInitiated(true);
|
110
|
-
this.
|
109
|
+
if (this.kendoAiPromptDialog) {
|
110
|
+
this._initAiPrompt(this.predefinedPrompts);
|
111
|
+
this.kendoAiPromptDialog.open();
|
112
|
+
}
|
111
113
|
})
|
112
114
|
};
|
113
115
|
binder.Binder.attachCommands(this.kendoAiConsentDialog.element.find(".trv-ai-consent-actions"), optionsCommandSet, this.viewerOptions);
|
@@ -119,7 +121,7 @@ class AiPrompt {
|
|
119
121
|
return;
|
120
122
|
}
|
121
123
|
this.kendoAiConsentDialog = new kendo.ui.Window(aiConsentDialogElement, {
|
122
|
-
title: "
|
124
|
+
title: stringResources.stringResources["aiPromptDialogConsentTitle"] || "",
|
123
125
|
width: 500,
|
124
126
|
minWidth: 400,
|
125
127
|
minHeight: 106,
|
@@ -221,14 +223,14 @@ class AiPrompt {
|
|
221
223
|
if (this.allowCustomPrompts) {
|
222
224
|
return;
|
223
225
|
}
|
224
|
-
let aiPromptTextAreaPlaceholder = "
|
226
|
+
let aiPromptTextAreaPlaceholder = stringResources.stringResources["aiPromptDialogTextAreaPlaceholder"];
|
225
227
|
const aiPromptTextArea = this.kendoAiPrompt.element.find(".k-prompt-content .k-prompt-view textarea");
|
226
228
|
if (!hasPromptSuggestions) {
|
227
|
-
const aiPromptGenerateButton = this.kendoAiPrompt.element.find(".k-prompt-footer");
|
229
|
+
const aiPromptGenerateButton = this.kendoAiPrompt.element.find(".k-prompt-footer .k-actions");
|
228
230
|
aiPromptGenerateButton && aiPromptGenerateButton.addClass("k-disabled");
|
229
|
-
aiPromptTextAreaPlaceholder = "
|
231
|
+
aiPromptTextAreaPlaceholder = stringResources.stringResources["aiPromptDialogNoPredefinedAndCustomPromptsPlaceholder"] || "";
|
230
232
|
} else {
|
231
|
-
aiPromptTextAreaPlaceholder = "
|
233
|
+
aiPromptTextAreaPlaceholder = stringResources.stringResources["aiPromptDialogNoCustomPromptsPlaceholder"] || "";
|
232
234
|
}
|
233
235
|
aiPromptTextArea && aiPromptTextArea.attr("placeholder", aiPromptTextAreaPlaceholder) && aiPromptTextArea.addClass("k-disabled");
|
234
236
|
}
|
@@ -280,20 +282,26 @@ class AiPrompt {
|
|
280
282
|
}
|
281
283
|
}
|
282
284
|
open() {
|
283
|
-
|
284
|
-
this.
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
285
|
+
this.controller.createAIThread().then((data) => {
|
286
|
+
this.predefinedPrompts = data?.predefinedPrompts;
|
287
|
+
this.allowCustomPrompts = data?.allowCustomPrompts;
|
288
|
+
if (this.kendoAiConsentDialog && data.requireConsent && this.controller.loadFromSessionStorage("trvAiConsent") !== "true") {
|
289
|
+
$(".trv-ai-consent-content").html(data?.consentMessage);
|
290
|
+
this.kendoAiConsentDialog.open();
|
291
|
+
return;
|
292
|
+
}
|
293
|
+
if (this.kendoAiPromptDialog) {
|
289
294
|
this.controller.setAiPromptInitiated(true);
|
290
|
-
this._initAiPrompt(
|
295
|
+
this._initAiPrompt(this.predefinedPrompts);
|
291
296
|
this.kendoAiPromptDialog.open();
|
292
|
-
}
|
293
|
-
}
|
297
|
+
}
|
298
|
+
});
|
294
299
|
}
|
295
300
|
close() {
|
296
301
|
this.controller.setAiPromptInitiated(false);
|
302
|
+
if (this.kendoAiConsentDialog) {
|
303
|
+
this.kendoAiConsentDialog.close();
|
304
|
+
}
|
297
305
|
if (this.kendoAiPromptDialog && this.kendoAiPromptDialog.options.visible) {
|
298
306
|
this.kendoAiPromptDialog.close();
|
299
307
|
}
|
@@ -134,9 +134,9 @@ class DocumentMapArea {
|
|
134
134
|
}
|
135
135
|
showDocumentMap(show) {
|
136
136
|
var splitter = $("#" + this.options.viewerSelector + "-document-map-splitter").getKendoSplitter();
|
137
|
-
var sibling = this.$element.next();
|
137
|
+
var sibling = this.$element.next(".k-splitbar");
|
138
138
|
if (this.options.documentMapAreaPosition === enums.DocumentMapAreaPositions.RIGHT) {
|
139
|
-
sibling = this.$element.prev();
|
139
|
+
sibling = this.$element.prev(".k-splitbar");
|
140
140
|
}
|
141
141
|
if (splitter) {
|
142
142
|
(this.documentMapNecessary ? $.fn.removeClass : $.fn.addClass).call(sibling, "k-hidden");
|
package/dist/cjs/index.js
CHANGED
@@ -45,6 +45,9 @@ exports.parameterEditorsMatch = parameters.parameterEditorsMatch;
|
|
45
45
|
exports.ParameterValidators = parameterValidators.ParameterValidators;
|
46
46
|
exports.PerspectiveManager = perspectives.PerspectiveManager;
|
47
47
|
exports.ReportViewer = reportViewer.ReportViewer;
|
48
|
+
exports.ReportViewerController = reportViewer.ReportViewerController;
|
49
|
+
exports.ReportViewerNotificationService = reportViewer.ReportViewerNotificationService;
|
50
|
+
exports.ReportViewerServiceClient = reportViewer.ReportViewerServiceClient;
|
48
51
|
exports.TouchBehavior = touch.TouchBehavior;
|
49
52
|
exports.UIController = uiController.UIController;
|
50
53
|
exports.ParametersArea = parametersArea.ParametersArea;
|
@@ -55,8 +55,8 @@ class ParametersArea {
|
|
55
55
|
throw "No notificationService (telerikReporting.NotificationService) has been specified.";
|
56
56
|
}
|
57
57
|
this.parameterEditors = parameters.ParameterEditors;
|
58
|
-
if (options.parameterEditors && options.parameterEditors.length > 0) {
|
59
|
-
this.parameterEditors = [].concat(options.parameterEditors, parameters.ParameterEditors);
|
58
|
+
if (this.options.parameterEditors && this.options.parameterEditors.length > 0) {
|
59
|
+
this.parameterEditors = [].concat(this.options.parameterEditors, parameters.ParameterEditors);
|
60
60
|
}
|
61
61
|
this.recentParameterValues;
|
62
62
|
this.parameters;
|
@@ -215,6 +215,9 @@ class ParametersArea {
|
|
215
215
|
(this.allParametersAutoRefresh(parameters) && this.controller.autoRunEnabled ? $.fn.removeClass : $.fn.addClass).call(this.$element, "preview");
|
216
216
|
}
|
217
217
|
allParametersAutoRefresh(parameters) {
|
218
|
+
if (!parameters) {
|
219
|
+
return true;
|
220
|
+
}
|
218
221
|
var allAuto = Array.from(parameters).every((parameter) => {
|
219
222
|
return !parameter.isVisible || parameter.autoRefresh;
|
220
223
|
});
|
@@ -443,9 +446,9 @@ class ParametersArea {
|
|
443
446
|
if (!splitter) {
|
444
447
|
return;
|
445
448
|
}
|
446
|
-
var sibling = this.$element.prev();
|
449
|
+
var sibling = this.$element.prev(".k-splitbar");
|
447
450
|
if (this.options.parametersAreaPosition === enums.ParametersAreaPositions.TOP || this.options.parametersAreaPosition === enums.ParametersAreaPositions.LEFT) {
|
448
|
-
sibling = this.$element.next();
|
451
|
+
sibling = this.$element.next(".k-splitbar");
|
449
452
|
}
|
450
453
|
(this.parametersAreaNecessary ? $.fn.removeClass : $.fn.addClass).call(sibling, "k-hidden");
|
451
454
|
splitter.toggle(".trv-parameters-area", show);
|
@@ -462,8 +465,10 @@ class ParametersArea {
|
|
462
465
|
_attachEvents() {
|
463
466
|
this.controller.on("reloadParameters", (controllerLoadParametersPromise) => {
|
464
467
|
this.showError();
|
465
|
-
|
466
|
-
|
468
|
+
if (this._parametersWrapper) {
|
469
|
+
kendo.destroy(this._parametersWrapper);
|
470
|
+
this._parametersWrapper.innerHTML = "";
|
471
|
+
}
|
467
472
|
this.acceptParameters(controllerLoadParametersPromise, this.onLoadParametersSuccess.bind(this));
|
468
473
|
}).onAsync("beforeLoadReport", async () => {
|
469
474
|
this.loadingCount = 0;
|
package/dist/cjs/reportViewer.js
CHANGED
@@ -125,7 +125,8 @@ function getDefaultOptions(serviceUrl, version) {
|
|
125
125
|
searchMetadataOnDemand: false,
|
126
126
|
initialPageAreaImageUrl: null,
|
127
127
|
keepClientAlive: true,
|
128
|
-
webDesignerPreview: false
|
128
|
+
webDesignerPreview: false,
|
129
|
+
serverPreview: false
|
129
130
|
};
|
130
131
|
}
|
131
132
|
function ReportViewer(dom, options) {
|
@@ -154,7 +155,7 @@ function ReportViewer(dom, options) {
|
|
154
155
|
if (!validateOptions(options)) {
|
155
156
|
return;
|
156
157
|
}
|
157
|
-
var version = "19.
|
158
|
+
var version = "19.2.25.813";
|
158
159
|
options = $.extend({}, getDefaultOptions(svcApiUrl, version), options);
|
159
160
|
settings = new reportViewerSettings.ReportViewerSettings(
|
160
161
|
persistanceKey,
|
@@ -169,7 +170,8 @@ function ReportViewer(dom, options) {
|
|
169
170
|
parametersAreaPosition: options.parametersAreaPosition,
|
170
171
|
documentMapAreaPosition: options.documentMapAreaPosition,
|
171
172
|
keepClientAlive: options.keepClientAlive,
|
172
|
-
webDesignerPreview: options.webDesignerPreview
|
173
|
+
webDesignerPreview: options.webDesignerPreview,
|
174
|
+
serverPreview: options.serverPreview
|
173
175
|
}
|
174
176
|
);
|
175
177
|
notificationService$1 = new notificationService.NotificationService();
|
@@ -647,7 +649,7 @@ function ReportViewer(dom, options) {
|
|
647
649
|
function start() {
|
648
650
|
var pendingRefresh = false;
|
649
651
|
init();
|
650
|
-
if (!options.webDesignerPreview) {
|
652
|
+
if (!(options.webDesignerPreview || options.serverPreview)) {
|
651
653
|
if (controller.shouldShowLicenseBanner()) {
|
652
654
|
$(".trv-content-wrapper")?.prepend('<span class="trv-license-banner"></span>');
|
653
655
|
const licenseBanner = $(".trv-license-banner").kendoNotification({
|
@@ -817,13 +819,21 @@ function ReportViewer(dom, options) {
|
|
817
819
|
return Promise.resolve();
|
818
820
|
}
|
819
821
|
var kendoUrl = utils.rTrim(svcApiUrl, "\\/") + "/resources/js/telerikReportViewer.kendo-" + version2 + ".min.js/";
|
820
|
-
return
|
822
|
+
return fetch(kendoUrl).then((response) => {
|
823
|
+
if (!response.ok) {
|
824
|
+
return Promise.reject({ error: "Failed to fetch data - status code " + response.status });
|
825
|
+
}
|
826
|
+
return response.text();
|
827
|
+
}).then((kendoScript) => {
|
828
|
+
const scriptElement = document.createElement("script");
|
829
|
+
scriptElement.textContent = kendoScript;
|
830
|
+
document.head.appendChild(scriptElement);
|
831
|
+
}).catch((errorData) => {
|
821
832
|
utils.logError("Kendo could not be loaded automatically. Make sure 'options.serviceUrl' / 'options.reportServer.url' is correct and accessible. The error is: " + errorData.error);
|
822
833
|
});
|
823
834
|
}
|
824
835
|
function main(version2) {
|
825
836
|
ensureKendo(version2).then(() => {
|
826
|
-
}).then(() => {
|
827
837
|
viewer.authenticationToken(options.authenticationToken);
|
828
838
|
controller.getServiceConfiguration().catch((ex) => {
|
829
839
|
var errorOutput = utils.isApplicationExceptionInstance(ex) ? ex.exceptionMessage : utils.stringFormat(stringResources.stringResources.errorServiceUrl, [utils.escapeHtml(svcApiUrl)]);
|
@@ -859,6 +869,15 @@ function ReportViewer(dom, options) {
|
|
859
869
|
}
|
860
870
|
return viewer;
|
861
871
|
}
|
872
|
+
function ReportViewerServiceClient(serviceClientOptions) {
|
873
|
+
return new RCV__namespace.ServiceClient(serviceClientOptions);
|
874
|
+
}
|
875
|
+
function ReportViewerController(controllerOptions) {
|
876
|
+
return new RCV__namespace.ReportController(controllerOptions?.serviceClient, controllerOptions?.settings);
|
877
|
+
}
|
878
|
+
function ReportViewerNotificationService() {
|
879
|
+
return new notificationService.NotificationService();
|
880
|
+
}
|
862
881
|
var pluginName = "telerik_ReportViewer";
|
863
882
|
$.fn[pluginName] = function(options) {
|
864
883
|
if (this.selector && !options.selector) {
|
@@ -919,3 +938,6 @@ plugins.forEach((plugin) => {
|
|
919
938
|
});
|
920
939
|
|
921
940
|
exports.ReportViewer = ReportViewer;
|
941
|
+
exports.ReportViewerController = ReportViewerController;
|
942
|
+
exports.ReportViewerNotificationService = ReportViewerNotificationService;
|
943
|
+
exports.ReportViewerServiceClient = ReportViewerServiceClient;
|
package/dist/cjs/search.js
CHANGED
@@ -92,7 +92,7 @@ class Search {
|
|
92
92
|
if (!this.notificationService) {
|
93
93
|
throw "No notificationService (telerikReporting.NotificationService) has been specified.";
|
94
94
|
}
|
95
|
-
this.pagesAreaContainer =
|
95
|
+
this.pagesAreaContainer = this.reportViewerWrapper.find('[data-id="trv-pages-area"]');
|
96
96
|
this.searchManager = new RCV__namespace.SearchManager(this.pagesAreaContainer[0], this.controller);
|
97
97
|
this.searchManager.on("searchComplete", this.updateResultsUI.bind(this));
|
98
98
|
this.init();
|
package/dist/cjs/sendEmail.js
CHANGED
@@ -102,6 +102,10 @@ class SendEmail {
|
|
102
102
|
this.controller.getDocumentFormats().then((formats) => {
|
103
103
|
this.docFormatList = formats;
|
104
104
|
this.docFormat?.setDataSource(this.docFormatList);
|
105
|
+
if (this.viewerOptions?.sendEmail && this.viewerOptions?.sendEmail.format) {
|
106
|
+
this.docFormat?.value(this.viewerOptions.sendEmail.format);
|
107
|
+
this.docFormat?.trigger("change");
|
108
|
+
}
|
105
109
|
});
|
106
110
|
this._initDialog();
|
107
111
|
this._initInputFields();
|
@@ -217,6 +221,7 @@ class SendEmail {
|
|
217
221
|
"superscript"
|
218
222
|
]
|
219
223
|
});
|
224
|
+
this.setDefaultValues(this.viewerOptions.sendEmail);
|
220
225
|
this.kendoValidator = new kendo.ui.Validator(this.element.querySelector(".trv-send-email-fields"), {});
|
221
226
|
}
|
222
227
|
setAttrs() {
|
@@ -327,17 +332,12 @@ class SendEmail {
|
|
327
332
|
}
|
328
333
|
return fromIsValid && toIsValid && ccIsValid && hasFormat;
|
329
334
|
}
|
335
|
+
/* Sets all default email values except the format as it depends on a request */
|
330
336
|
setDefaultValues(sendEmail) {
|
331
337
|
this.inputFrom.value(sendEmail && sendEmail.from || "");
|
332
338
|
this.inputTo.value(sendEmail && sendEmail.to || "");
|
333
339
|
this.inputCC.value(sendEmail && sendEmail.cc || "");
|
334
340
|
this.inputSubject.value(sendEmail && sendEmail.subject || "");
|
335
|
-
if (sendEmail && sendEmail.format) {
|
336
|
-
this.docFormat.value(sendEmail.format);
|
337
|
-
} else {
|
338
|
-
this.docFormat.select(0);
|
339
|
-
}
|
340
|
-
this.docFormat.trigger("change");
|
341
341
|
this.bodyEditor.value(sendEmail && sendEmail.body || "");
|
342
342
|
}
|
343
343
|
isEmpty(input) {
|
package/dist/cjs/sr.js
CHANGED
@@ -55,6 +55,8 @@ var sr = {
|
|
55
55
|
menuPreviousPageTitle: "Previous Page",
|
56
56
|
menuNextPageTitle: "Next Page",
|
57
57
|
menuPageNumberTitle: "Page Number Selector",
|
58
|
+
menuPageText: "Page",
|
59
|
+
menuPageOfText: "of",
|
58
60
|
menuDocumentMapTitle: "Toggle Document Map",
|
59
61
|
menuParametersAreaTitle: "Toggle Parameters Area",
|
60
62
|
menuZoomInTitle: "Zoom In",
|
@@ -162,9 +164,12 @@ var sr = {
|
|
162
164
|
sendEmailValidationSingleEmail: "The field accepts a single email address only",
|
163
165
|
sendEmailValidationFormatRequired: "Format field is required",
|
164
166
|
errorSendingDocument: "Error sending report document (Report = '{0}').",
|
165
|
-
|
166
|
-
|
167
|
-
|
167
|
+
aiPromptDialogConsentTitle: "Before you start with AI",
|
168
|
+
aiPromptDialogConsentAccept: "Consent",
|
169
|
+
aiPromptDialogConsentReject: "Cancel",
|
170
|
+
aiPromptDialogTextAreaPlaceholder: "Enter your prompt",
|
171
|
+
aiPromptDialogNoPredefinedAndCustomPromptsPlaceholder: "Custom prompts are disabled and there are no predefined prompts configured. Please allow custom prompts or add predefined prompts to use the AI feature.",
|
172
|
+
aiPromptDialogNoCustomPromptsPlaceholder: "Custom prompts are disabled, please select one of the predefined suggestions below"
|
168
173
|
};
|
169
174
|
window.telerikReportViewer ||= {};
|
170
175
|
window.telerikReportViewer.sr ||= sr;
|
package/dist/cjs/toolbar.js
CHANGED
@@ -7,11 +7,27 @@ var pageCountLabel = require('./toolbar/page-count-label.js');
|
|
7
7
|
var pageNumberInput = require('./toolbar/page-number-input.js');
|
8
8
|
var constants = require('./constants.js');
|
9
9
|
|
10
|
+
function replaceStringResources($toolbar) {
|
11
|
+
if (!$toolbar) {
|
12
|
+
return;
|
13
|
+
}
|
14
|
+
const labels = $toolbar.find(".trv-replace-string");
|
15
|
+
if (labels && labels.length > 0) {
|
16
|
+
Array.from(labels).forEach((element) => {
|
17
|
+
const $element = $(element);
|
18
|
+
const stringResource = stringResources.stringResources[$element.text()];
|
19
|
+
if ($element && stringResource) {
|
20
|
+
$element.text(stringResource);
|
21
|
+
}
|
22
|
+
});
|
23
|
+
}
|
24
|
+
}
|
10
25
|
class Toolbar {
|
11
26
|
// #region fields
|
12
27
|
_options;
|
13
28
|
/** @type {HTMLElement} */
|
14
29
|
_element;
|
30
|
+
$element;
|
15
31
|
_kendoToolbar;
|
16
32
|
_neverOverflowToolBarButtons = ["goToPrevPage", "goToNextPage"];
|
17
33
|
// #endregion
|
@@ -19,11 +35,12 @@ class Toolbar {
|
|
19
35
|
constructor(element, options, viewerOptions) {
|
20
36
|
this._element = element;
|
21
37
|
this._options = options;
|
38
|
+
this.$element = $(this._element);
|
22
39
|
if (this._kendoToolbar === void 0) {
|
23
40
|
this.initKendoToolbar();
|
24
41
|
}
|
25
42
|
this._options.controller.on("beginLoadReport", () => {
|
26
|
-
const kendoExportDropDown =
|
43
|
+
const kendoExportDropDown = this.$element.find(`#${constants.ToolBarConstants.ExportDropdownId}`).data("kendoDropDownButton");
|
27
44
|
kendoExportDropDown?.enable(false);
|
28
45
|
}).onAsync("reportLoadComplete", async () => {
|
29
46
|
if (viewerOptions.renderingExtensions === void 0) {
|
@@ -40,12 +57,12 @@ class Toolbar {
|
|
40
57
|
// #endregion
|
41
58
|
// #region methods
|
42
59
|
initKendoToolbar() {
|
60
|
+
replaceStringResources(this.$element);
|
43
61
|
const children = Array.from(this._element.children);
|
44
62
|
const toolBarItems = [];
|
45
63
|
children.forEach((child) => toolBarItems.push(this.createToolbarItem(child)));
|
46
|
-
|
47
|
-
|
48
|
-
this._kendoToolbar = $element.kendoToolBar({
|
64
|
+
this.$element.empty();
|
65
|
+
this._kendoToolbar = this.$element.kendoToolBar({
|
49
66
|
items: toolBarItems,
|
50
67
|
click: (e) => {
|
51
68
|
this.executeCommand(e);
|
@@ -54,18 +71,18 @@ class Toolbar {
|
|
54
71
|
this.executeCommand(e);
|
55
72
|
}
|
56
73
|
}).data("kendoToolBar");
|
57
|
-
const pageNumberInputEl =
|
74
|
+
const pageNumberInputEl = this.$element.find(constants.ToolBarConstants.PageNumberInputDataRoleSelector).get(0);
|
58
75
|
if (pageNumberInputEl) {
|
59
76
|
new pageNumberInput.PageNumberInput(pageNumberInputEl, this._options);
|
60
77
|
}
|
61
|
-
const pageCountLabelEl =
|
78
|
+
const pageCountLabelEl = this.$element.find(constants.ToolBarConstants.PageCountLabelDataRoleSelector).get(0);
|
62
79
|
if (pageCountLabelEl) {
|
63
80
|
new pageCountLabel.PageCountLabel(pageCountLabelEl, this._options);
|
64
81
|
}
|
65
82
|
}
|
66
83
|
createToolbarItem(elementData) {
|
67
84
|
const cmdName = (elementData.dataset?.command || "").replace("telerik_ReportViewer_", "");
|
68
|
-
if (cmdName === "toggleAiPromptDialog" && !this._options.controller.
|
85
|
+
if (cmdName === "toggleAiPromptDialog" && !this._options.controller.isAiInsightsEnabled()) {
|
69
86
|
return;
|
70
87
|
}
|
71
88
|
const id = elementData.id;
|
@@ -159,7 +176,7 @@ class Toolbar {
|
|
159
176
|
cmdFn.exec(cmdParam);
|
160
177
|
}
|
161
178
|
updateExportDropdownItems(extensions) {
|
162
|
-
const kendoExportDropDown =
|
179
|
+
const kendoExportDropDown = this.$element.find(`#${constants.ToolBarConstants.ExportDropdownId}`).data("kendoDropDownButton");
|
163
180
|
if (!kendoExportDropDown) {
|
164
181
|
return;
|
165
182
|
}
|
package/dist/cjs/utils.js
CHANGED
@@ -34,13 +34,6 @@ function isSpecialKey() {
|
|
34
34
|
return false;
|
35
35
|
};
|
36
36
|
}
|
37
|
-
function toXhrErrorData(xhr, status, error) {
|
38
|
-
return {
|
39
|
-
xhr,
|
40
|
-
status,
|
41
|
-
error
|
42
|
-
};
|
43
|
-
}
|
44
37
|
function rectangle(left, top, width, height) {
|
45
38
|
return {
|
46
39
|
left,
|
@@ -193,13 +186,6 @@ function getExceptionInstance(xhr) {
|
|
193
186
|
}
|
194
187
|
return parseJSON(xhr.responseText);
|
195
188
|
}
|
196
|
-
function loadScript(url) {
|
197
|
-
var ajaxOptions = {
|
198
|
-
dataType: "script",
|
199
|
-
cache: true
|
200
|
-
};
|
201
|
-
return $ajax(url, ajaxOptions);
|
202
|
-
}
|
203
189
|
function filterUniqueLastOccurrence(array) {
|
204
190
|
function onlyLastUnique(value, index, self) {
|
205
191
|
return self.lastIndexOf(value) === index;
|
@@ -249,15 +235,6 @@ function getColorAlphaValue(color) {
|
|
249
235
|
var alpha = colorComponents.length === 4 ? parseFloat((parseFloat(colorComponents[3].replace(/[()]/g, "")) / 255).toFixed(2)) : 1;
|
250
236
|
return alpha;
|
251
237
|
}
|
252
|
-
function $ajax(url, ajaxSettings) {
|
253
|
-
return new Promise(function(resolve, reject) {
|
254
|
-
$.ajax(url, ajaxSettings).done(function(data) {
|
255
|
-
return resolve(data);
|
256
|
-
}).fail(function(xhr, status, error) {
|
257
|
-
reject(toXhrErrorData(xhr, status, error));
|
258
|
-
});
|
259
|
-
});
|
260
|
-
}
|
261
238
|
|
262
239
|
Object.defineProperty(exports, 'parseToLocalDate', {
|
263
240
|
enumerable: true,
|
@@ -275,7 +252,6 @@ Object.defineProperty(exports, 'tryParseInt', {
|
|
275
252
|
enumerable: true,
|
276
253
|
get: function () { return RCV.tryParseInt; }
|
277
254
|
});
|
278
|
-
exports.$ajax = $ajax;
|
279
255
|
exports.adjustTimezone = adjustTimezone;
|
280
256
|
exports.areEqual = areEqual;
|
281
257
|
exports.areEqualArrays = areEqualArrays;
|
@@ -290,7 +266,6 @@ exports.isApplicationExceptionInstance = isApplicationExceptionInstance;
|
|
290
266
|
exports.isRgbColor = isRgbColor;
|
291
267
|
exports.isSpecialKey = isSpecialKey;
|
292
268
|
exports.lTrim = lTrim;
|
293
|
-
exports.loadScript = loadScript;
|
294
269
|
exports.logError = logError;
|
295
270
|
exports.parseJSON = parseJSON;
|
296
271
|
exports.rTrim = rTrim;
|
package/dist/font/font-icons.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
* TelerikReporting v19.
|
2
|
+
* TelerikReporting v19.2.25.813 (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.
|
13
|
+
src: url("../ReportingIcons-19.2.25.813.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.
|
20
|
+
src: url("../ReportingIcons-19.2.25.813.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
|
4259
|
+
/* DO NOT MODIFY OR DELETE THIS LINE! UPGRADE WIZARD CHECKSUM 13afab675da2be218389d6d0045b16be */
|