@progress/telerik-jquery-report-viewer 21.24.130 → 22.24.514

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.
Files changed (92) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/accessibility.js +218 -0
  3. package/dist/cjs/binder.js +172 -0
  4. package/dist/cjs/command.js +32 -0
  5. package/dist/cjs/commandSet.js +167 -0
  6. package/dist/cjs/controller.js +1207 -0
  7. package/dist/cjs/documentMapArea.js +168 -0
  8. package/dist/cjs/domUtils.js +50 -0
  9. package/dist/cjs/enums.js +52 -0
  10. package/dist/cjs/event-emitter.js +17 -0
  11. package/dist/cjs/events.js +23 -0
  12. package/dist/cjs/globalSettings.js +9 -0
  13. package/dist/cjs/history.js +131 -0
  14. package/dist/cjs/index.js +58 -0
  15. package/dist/cjs/jqueryThrottleDebounce.js +48 -0
  16. package/dist/cjs/kendo-jquery.js +4 -0
  17. package/dist/cjs/mainMenu.js +332 -0
  18. package/dist/cjs/mem-storage.js +44 -0
  19. package/dist/cjs/pagesArea.js +641 -0
  20. package/dist/cjs/parameterValidators.js +167 -0
  21. package/dist/cjs/parameters.js +921 -0
  22. package/dist/cjs/parametersArea.js +502 -0
  23. package/dist/cjs/perspectives.js +138 -0
  24. package/dist/cjs/print.js +166 -0
  25. package/dist/cjs/report-viewer/report-viewer-settings.js +138 -0
  26. package/dist/cjs/reportViewer.js +654 -0
  27. package/dist/cjs/scroll.js +537 -0
  28. package/dist/cjs/search.js +634 -0
  29. package/dist/cjs/sendEmail.js +435 -0
  30. package/dist/cjs/service-client-sentinel.js +52 -0
  31. package/dist/cjs/serviceClient.js +405 -0
  32. package/dist/cjs/sideMenu.js +225 -0
  33. package/dist/cjs/sr.js +164 -0
  34. package/dist/cjs/stringResources.js +11 -0
  35. package/dist/cjs/telerikReportViewer.kendo.js +60196 -0
  36. package/dist/cjs/telerikReportViewer.kendo.min.js +19776 -0
  37. package/dist/cjs/template-cache.js +39 -0
  38. package/dist/cjs/touch.js +86 -0
  39. package/dist/cjs/uiController.js +142 -0
  40. package/dist/cjs/uiFreezeCoordinator.js +281 -0
  41. package/dist/cjs/utils.js +492 -0
  42. package/dist/es/accessibility.js +214 -0
  43. package/dist/es/binder.js +168 -0
  44. package/dist/es/command.js +28 -0
  45. package/dist/es/commandSet.js +163 -0
  46. package/dist/es/controller.js +1203 -0
  47. package/dist/es/documentMapArea.js +164 -0
  48. package/dist/es/domUtils.js +43 -0
  49. package/dist/es/enums.js +41 -0
  50. package/dist/es/event-emitter.js +13 -0
  51. package/dist/es/events.js +19 -0
  52. package/dist/es/globalSettings.js +5 -0
  53. package/dist/es/history.js +127 -0
  54. package/dist/es/index.js +24 -0
  55. package/dist/es/jqueryThrottleDebounce.js +46 -0
  56. package/dist/es/kendo-jquery.js +1 -0
  57. package/dist/es/mainMenu.js +328 -0
  58. package/dist/es/mem-storage.js +40 -0
  59. package/dist/es/pagesArea.js +637 -0
  60. package/dist/es/parameterValidators.js +163 -0
  61. package/dist/es/parameters.js +916 -0
  62. package/dist/es/parametersArea.js +498 -0
  63. package/dist/es/perspectives.js +134 -0
  64. package/dist/es/print.js +162 -0
  65. package/dist/es/report-viewer/report-viewer-settings.js +134 -0
  66. package/dist/es/reportViewer.js +650 -0
  67. package/dist/es/scroll.js +533 -0
  68. package/dist/es/search.js +630 -0
  69. package/dist/es/sendEmail.js +431 -0
  70. package/dist/es/service-client-sentinel.js +48 -0
  71. package/dist/es/serviceClient.js +401 -0
  72. package/dist/es/sideMenu.js +221 -0
  73. package/dist/es/sr.js +162 -0
  74. package/dist/es/stringResources.js +7 -0
  75. package/dist/es/telerikReportViewer.kendo.js +60194 -0
  76. package/dist/es/telerikReportViewer.kendo.min.js +19774 -0
  77. package/dist/es/template-cache.js +35 -0
  78. package/dist/es/touch.js +82 -0
  79. package/dist/es/uiController.js +138 -0
  80. package/dist/es/uiFreezeCoordinator.js +277 -0
  81. package/dist/es/utils.js +447 -0
  82. package/dist/font/font-icons.css +4 -4
  83. package/dist/font/font-icons.min.css +3 -3
  84. package/dist/js/telerikReportViewer.js +8574 -8249
  85. package/dist/js/telerikReportViewer.min.js +1 -17
  86. package/dist/js/telerikReportViewer.stringResources.js +166 -173
  87. package/dist/styles/telerikReportViewer.css +1 -1
  88. package/dist/styles/telerikReportViewer.min.css +1 -1
  89. package/dist/templates/telerikReportViewerTemplate-FA.html +3 -3
  90. package/dist/templates/telerikReportViewerTemplate.html +3 -3
  91. package/package.json +13 -7
  92. /package/dist/font/{ReportingIcons-18.0.24.130.ttf → ReportingIcons-18.1.24.514.ttf} +0 -0
@@ -0,0 +1,641 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('./utils.js');
6
+ var domUtils = require('./domUtils.js');
7
+ var stringResources = require('./stringResources.js');
8
+ var touch = require('./touch.js');
9
+ var scroll = require('./scroll.js');
10
+ var uiFreezeCoordinator = require('./uiFreezeCoordinator.js');
11
+ var enums = require('./enums.js');
12
+
13
+ var defaultOptions = {};
14
+ function PagesArea(placeholder, options, otherOptions) {
15
+ options = $.extend({}, defaultOptions, options, otherOptions);
16
+ var controller = options.controller;
17
+ if (!controller)
18
+ throw "No controller (telerikReportViewer.reportViewerController) has been specified.";
19
+ var $placeholder = $(placeholder);
20
+ var $pageContainer = $placeholder.find(".trv-page-container");
21
+ var pageContainer = $pageContainer[0];
22
+ var $pageWrapper = $placeholder.find(".trv-page-wrapper");
23
+ var pageWrapper = $pageWrapper[0];
24
+ var $errorMessage = $placeholder.find(".trv-error-message");
25
+ var actions;
26
+ var pendingElement;
27
+ var pageScaleMode = controller.getScaleMode();
28
+ var pageScale = controller.getScale();
29
+ var minPageScale = 0.1;
30
+ var maxPageScale = 8;
31
+ var documentReady = true;
32
+ var navigateToPageOnDocReady;
33
+ var navigateToElementOnDocReady;
34
+ var isNewReportSource;
35
+ var showErrorTimeoutId;
36
+ var showPageAreaImage = false;
37
+ var reportPageIsLoaded = false;
38
+ var pageAreaImageStyle = '.trv-page-container {background: #ffffff url("{0}") no-repeat center 50px}';
39
+ var pageAreaImageID = "trv-initial-image-styles";
40
+ var scroll$1 = utils.extend({}, scroll.Scroll, {});
41
+ var uiFreezeCoordinator$1 = null;
42
+ init();
43
+ if (scroll$1) {
44
+ scroll$1.init(placeholder, options);
45
+ }
46
+ function init() {
47
+ replaceStringResources($placeholder);
48
+ }
49
+ function replaceStringResources($pagesArea) {
50
+ $pagesArea.attr("aria-label", stringResources.stringResources[$pagesArea.attr("aria-label")]);
51
+ }
52
+ $(window).on("resize", function(event, args) {
53
+ if (shouldAutosizePage()) {
54
+ updatePageDimensions();
55
+ }
56
+ });
57
+ enableTouch($placeholder);
58
+ function clearPendingTimeoutIds() {
59
+ if (showErrorTimeoutId) {
60
+ window.clearTimeout(showErrorTimeoutId);
61
+ }
62
+ }
63
+ function invalidateCurrentlyLoadedPage() {
64
+ var page = findPage(navigateToPageOnDocReady);
65
+ if (page) {
66
+ pageNo(page, -1);
67
+ }
68
+ }
69
+ function navigateWhenPageAvailable(pageNumber, pageCount) {
70
+ if (pageNumber && pageNumber <= pageCount) {
71
+ navigateToPage(pageNumber, navigateToElementOnDocReady);
72
+ }
73
+ }
74
+ function navigateOnLoadComplete(pageNumber, pageCount) {
75
+ if (pageNumber) {
76
+ pageNumber = Math.min(pageNumber, pageCount);
77
+ navigateToPage(pageNumber, navigateToElementOnDocReady);
78
+ }
79
+ }
80
+ function clearPage() {
81
+ clear(isNewReportSource);
82
+ isNewReportSource = false;
83
+ }
84
+ controller.pageModeChanged(function() {
85
+ if (controller.getPageMode() === enums.PageModes.CONTINUOUS_SCROLL) {
86
+ scroll$1.enable();
87
+ } else {
88
+ scroll$1.disable();
89
+ }
90
+ controller.refreshReport(true);
91
+ }).reportSourceChanged(function() {
92
+ isNewReportSource = true;
93
+ navigateToPageOnDocReady = null;
94
+ navigateToElementOnDocReady = null;
95
+ documentReady = false;
96
+ }).beforeLoadParameters(function(event, initial) {
97
+ if (initial) {
98
+ showError(stringResources.stringResources.loadingReport);
99
+ }
100
+ }).beforeLoadReport(function() {
101
+ documentReady = false;
102
+ if (!navigateToPageOnDocReady) {
103
+ navigateToPageOnDocReady = 1;
104
+ }
105
+ clearPendingTimeoutIds();
106
+ clear();
107
+ disablePagesArea(true);
108
+ showError(stringResources.stringResources.loadingReport);
109
+ }).beginLoadReport(function(event, args) {
110
+ documentReady = true;
111
+ invalidateCurrentlyLoadedPage();
112
+ }).reportLoadProgress(function(event, args) {
113
+ navigateWhenPageAvailable(navigateToPageOnDocReady, args.pageCount);
114
+ showError(utils.stringFormat(stringResources.stringResources.loadingReportPagesInProgress, [args.pageCount]));
115
+ }).reportLoadComplete(function(event, args) {
116
+ if (0 === args.pageCount) {
117
+ clearPage();
118
+ showError(stringResources.stringResources.noPageToDisplay);
119
+ } else {
120
+ navigateOnLoadComplete(navigateToPageOnDocReady, args.pageCount);
121
+ showError(utils.stringFormat(stringResources.stringResources.loadedReportPagesComplete, [args.pageCount]));
122
+ showErrorTimeoutId = window.setTimeout(showError, 2e3);
123
+ enableInteractivity();
124
+ }
125
+ if (args.containsFrozenContent && !uiFreezeCoordinator$1) {
126
+ uiFreezeCoordinator$1 = utils.extend({}, uiFreezeCoordinator.UIFreezeCoordinator, {});
127
+ if (controller.getViewMode() === enums.ViewModes.INTERACTIVE) {
128
+ uiFreezeCoordinator$1.init($placeholder);
129
+ }
130
+ }
131
+ }).navigateToPage(function(event, pageNumber, targetElement) {
132
+ navigateToPage(pageNumber, targetElement);
133
+ }).pageReady(function(event, page) {
134
+ if (controller.getPageMode() === enums.PageModes.SINGLE_PAGE) {
135
+ if (scroll$1.isEnabled()) {
136
+ scroll$1.disable();
137
+ }
138
+ setPageContent(page);
139
+ } else {
140
+ scroll$1.renderPage(page);
141
+ }
142
+ if (!reportPageIsLoaded) {
143
+ reportPageIsLoaded = true;
144
+ }
145
+ if (showPageAreaImage) {
146
+ clearPageAreaImage();
147
+ }
148
+ if (controller.getViewMode() === enums.ViewModes.INTERACTIVE && uiFreezeCoordinator$1) {
149
+ uiFreezeCoordinator$1.init($placeholder);
150
+ }
151
+ disablePagesArea(false);
152
+ }).error(function(event, error) {
153
+ disablePagesArea(false);
154
+ clearPage();
155
+ showError(error);
156
+ }).showNotification(function(event, args) {
157
+ showError(stringResources.stringResources[args.stringResources]);
158
+ }).hideNotification(function(event, args) {
159
+ showError();
160
+ }).scaleChanged(function(event, scale) {
161
+ setPageScale({
162
+ scale,
163
+ scaleMode: controller.getScaleMode()
164
+ });
165
+ }).scaleModeChanged(function(event, scaleMode) {
166
+ setPageScale({
167
+ scale: controller.getScale(),
168
+ scaleMode
169
+ });
170
+ }).serverActionStarted(function() {
171
+ disablePagesArea(true);
172
+ showError(stringResources.stringResources.loadingReport);
173
+ }).scrollPageReady(function(event, args) {
174
+ setScrollablePage(args);
175
+ }).missingOrInvalidParameters(function(event, args) {
176
+ if (options.initialPageAreaImageUrl && !reportPageIsLoaded) {
177
+ clearPage();
178
+ setPageAreaImage();
179
+ }
180
+ }).renderingStopped(function() {
181
+ clear(true);
182
+ showError(stringResources.stringResources.renderingCanceled);
183
+ });
184
+ controller.setDocumentMapVisible(function() {
185
+ if (shouldAutosizePage()) {
186
+ setTimeout(function() {
187
+ updatePageDimensions();
188
+ });
189
+ }
190
+ }).setParametersAreaVisible(function() {
191
+ if (shouldAutosizePage()) {
192
+ setTimeout(function() {
193
+ updatePageDimensions();
194
+ });
195
+ }
196
+ });
197
+ function enableTouch(dom) {
198
+ var allowSwipeLeft;
199
+ var allowSwipeRight;
200
+ touch.TouchBehavior(
201
+ dom,
202
+ {
203
+ swipe: function(e) {
204
+ var pageNumber = controller.getCurrentPageNumber();
205
+ if (allowSwipeLeft && e.direction === "left") {
206
+ if (pageNumber < controller.getPageCount()) {
207
+ controller.navigateToPage(pageNumber + 1);
208
+ }
209
+ } else if (allowSwipeRight && e.direction === "right") {
210
+ if (pageNumber > 1) {
211
+ controller.navigateToPage(pageNumber - 1);
212
+ }
213
+ }
214
+ },
215
+ pinch: function(e) {
216
+ var page = getCurrentPage();
217
+ var scale = $(page).data("pageScale") || pageScale;
218
+ var f = e.distance / e.lastDistance;
219
+ setPageScale({
220
+ scale: scale * f,
221
+ scaleMode: enums.ScaleModes.SPECIFIC
222
+ });
223
+ },
224
+ doubletap: function(e) {
225
+ options.commands.toggleZoomMode.exec();
226
+ },
227
+ touchstart: function(e) {
228
+ var el = pageWrapper;
229
+ allowSwipeRight = 0 === el.scrollLeft;
230
+ allowSwipeLeft = el.scrollWidth - el.offsetWidth === el.scrollLeft;
231
+ }
232
+ }
233
+ );
234
+ }
235
+ function shouldAutosizePage() {
236
+ return -1 !== [enums.ScaleModes.FIT_PAGE, enums.ScaleModes.FIT_PAGE_WIDTH].indexOf(pageScaleMode);
237
+ }
238
+ function updatePageDimensions() {
239
+ for (var i = 0, children = $pageContainer.find(".trv-report-page"), len = children.length; i < len; i++) {
240
+ var pageNumber = parseInt($(children[i]).attr("data-page"));
241
+ setPageDimensions(children[i], pageScaleMode, pageScale, pageNumber);
242
+ }
243
+ controller.updatePageDimensionsReady();
244
+ }
245
+ function setPageScale({ scale, scaleMode }) {
246
+ pageScale = scale || pageScale;
247
+ pageScaleMode = scaleMode || pageScaleMode;
248
+ pageScale = Math.max(minPageScale, Math.min(maxPageScale, pageScale));
249
+ updatePageDimensions();
250
+ }
251
+ function clear(clearPageWrapper) {
252
+ disableInteractivity();
253
+ pendingElement = void 0;
254
+ if (clearPageWrapper) {
255
+ $pageWrapper.empty();
256
+ }
257
+ showError();
258
+ }
259
+ function getCurrentPage() {
260
+ return findPage(controller.getCurrentPageNumber());
261
+ }
262
+ function findPage(pageNumber) {
263
+ var result;
264
+ var allPages = $pageContainer.find(".trv-report-page");
265
+ if (controller.getPageMode() === enums.PageModes.SINGLE_PAGE) {
266
+ utils.each(allPages, function(index, page) {
267
+ if (pageNo(page) === pageNumber) {
268
+ result = page;
269
+ }
270
+ return !result;
271
+ });
272
+ } else {
273
+ $.each(allPages, function(index, page) {
274
+ var dataPageNumber = parseInt($(page).attr("data-page"));
275
+ if (dataPageNumber === pageNumber) {
276
+ result = page;
277
+ return false;
278
+ }
279
+ });
280
+ }
281
+ return result;
282
+ }
283
+ function navigateToPage(pageNumber, targetElement) {
284
+ if (documentReady) {
285
+ navigateToPageCore(pageNumber, targetElement);
286
+ } else {
287
+ navigateToPageOnDocumentReady(pageNumber, targetElement);
288
+ }
289
+ }
290
+ function navigateToPageOnDocumentReady(pageNumber, targetElement) {
291
+ navigateToPageOnDocReady = pageNumber;
292
+ navigateToElementOnDocReady = targetElement;
293
+ }
294
+ function navigateToPageCore(pageNumber, targetElement) {
295
+ var page = findPage(pageNumber);
296
+ if (page) {
297
+ if (targetElement) {
298
+ navigateToElement(targetElement, pageNumber);
299
+ }
300
+ if (scroll$1.isEnabled() && !targetElement) {
301
+ scroll$1.navigateToElement(page.offsetTop, pageNumber);
302
+ }
303
+ } else {
304
+ pendingElement = targetElement;
305
+ beginLoadPage(pageNumber);
306
+ }
307
+ }
308
+ function navigateToElement(targetElement, pageNumber) {
309
+ if (targetElement) {
310
+ var el = $pageContainer.find("[data-" + targetElement.type + "-id=" + targetElement.id + "]")[0];
311
+ if (el) {
312
+ if (options.enableAccessibility) {
313
+ var $nextFocusable = findNextFocusableElement($(el));
314
+ if ($nextFocusable) {
315
+ $nextFocusable.focus();
316
+ }
317
+ }
318
+ var container = $pageContainer[0];
319
+ var offsetTop = 0;
320
+ var offsetLeft = 0;
321
+ while (el && el !== container) {
322
+ if ($(el).is(".trv-page-wrapper")) {
323
+ var scale = $(el).data("pageScale");
324
+ if (typeof scale === "number") {
325
+ offsetTop *= scale;
326
+ offsetLeft *= scale;
327
+ }
328
+ }
329
+ offsetTop += el.offsetTop;
330
+ offsetLeft += el.offsetLeft;
331
+ el = el.offsetParent;
332
+ }
333
+ if (scroll$1.isEnabled() && pageNumber) {
334
+ scroll$1.navigateToElement(offsetTop, pageNumber);
335
+ } else {
336
+ container.scrollTop = offsetTop;
337
+ container.scrollLeft = offsetLeft;
338
+ }
339
+ } else {
340
+ if (scroll$1.isEnabled() && pageNumber) {
341
+ scroll$1.navigateToElement($placeholder.find('[data-page="' + pageNumber + '"]')[0].offsetTop, pageNumber);
342
+ }
343
+ }
344
+ }
345
+ }
346
+ function findNextFocusableElement(element) {
347
+ if (!element || element.length === 0) {
348
+ return null;
349
+ }
350
+ var num = utils.tryParseInt(element.attr("tabindex"));
351
+ if (!isNaN(num) && num > -1) {
352
+ return element;
353
+ }
354
+ return findNextFocusableElement(element.next());
355
+ }
356
+ function disablePagesArea(disable) {
357
+ (disable ? $.fn.addClass : $.fn.removeClass).call($placeholder, "trv-loading");
358
+ }
359
+ function showError(error) {
360
+ $errorMessage.text(error);
361
+ (error ? $.fn.addClass : $.fn.removeClass).call($placeholder, "trv-error");
362
+ }
363
+ function pageNo(page, no) {
364
+ var $page = page.$ ? page : $(page);
365
+ var dataKey = "pageNumber";
366
+ if (no === void 0) {
367
+ return $page.data(dataKey);
368
+ }
369
+ $page.data(dataKey, no);
370
+ return page;
371
+ }
372
+ function beginLoadPage(pageNumber) {
373
+ disablePagesArea(true);
374
+ window.setTimeout(controller.getReportPage.bind(controller, pageNumber), 1);
375
+ navigateToPageOnDocReady = null;
376
+ }
377
+ function setPageDimensions(page, scaleMode, scale, pageNumber) {
378
+ var $target = $(page);
379
+ var $page = pageNumber ? $target : $target.find("div.trv-report-page");
380
+ var $pageContent = $page.find("div.sheet");
381
+ var $pageSkeletonContent = $page.find("div.trv-skeleton-wrapper");
382
+ var pageContent = $pageContent[0] || $pageSkeletonContent[0];
383
+ var pageSkeletonContent = $pageSkeletonContent[0];
384
+ if (!pageContent) {
385
+ return;
386
+ }
387
+ var pageWidth;
388
+ var pageHeight;
389
+ var box = $target.data("box");
390
+ if (!box) {
391
+ var margins = domUtils.getMargins($target);
392
+ var borders = domUtils.getBorderWidth($page);
393
+ var padding = domUtils.getPadding($page);
394
+ box = {
395
+ padLeft: margins.left + borders.left + padding.left,
396
+ padRight: margins.right + borders.right + padding.right,
397
+ padTop: margins.top + borders.top + padding.top,
398
+ padBottom: margins.bottom + borders.bottom + padding.bottom
399
+ };
400
+ $target.data("box", box);
401
+ }
402
+ if ($target.data("pageWidth") === void 0) {
403
+ pageWidth = pageContent.offsetWidth;
404
+ pageHeight = pageContent.offsetHeight;
405
+ $target.data("pageWidth", pageWidth);
406
+ $target.data("pageHeight", pageHeight);
407
+ } else {
408
+ pageWidth = $target.data("pageWidth");
409
+ pageHeight = $target.data("pageHeight");
410
+ }
411
+ var scrollBarV = pageHeight > pageWidth && scaleMode === enums.ScaleModes.FIT_PAGE_WIDTH ? 20 : 0;
412
+ var scaleW = (pageContainer.clientWidth - scrollBarV - box.padLeft - box.padRight) / pageWidth;
413
+ var scaleH = (pageContainer.clientHeight - 1 - box.padTop - box.padBottom) / pageHeight;
414
+ if (scaleMode === enums.ScaleModes.FIT_PAGE_WIDTH) {
415
+ scale = scaleW;
416
+ } else if (!scale || scaleMode === enums.ScaleModes.FIT_PAGE) {
417
+ scale = Math.min(scaleW, scaleH);
418
+ }
419
+ if (uiFreezeCoordinator$1) {
420
+ uiFreezeCoordinator$1.setScaleFactor(scale);
421
+ }
422
+ $target.data("pageScale", scale);
423
+ $page.data("pageScale", scale);
424
+ if (!pageSkeletonContent) {
425
+ domUtils.scale($pageContent, scale, scale);
426
+ }
427
+ $page.css({
428
+ "height": scale * pageHeight,
429
+ "width": scale * pageWidth
430
+ });
431
+ }
432
+ function enableInteractivity() {
433
+ $pageContainer.on("click", "[data-reporting-action]", onInteractiveItemClick);
434
+ $pageContainer.on("mouseenter", "[data-reporting-action]", onInteractiveItemEnter);
435
+ $pageContainer.on("mouseleave", "[data-reporting-action]", onInteractiveItemLeave);
436
+ $pageContainer.on("mouseenter", "[data-tooltip-title],[data-tooltip-text]", onToolTipItemEnter);
437
+ $pageContainer.on("mouseleave", "[data-tooltip-title],[data-tooltip-text]", onToolTipItemLeave);
438
+ }
439
+ function disableInteractivity() {
440
+ $pageContainer.off("click", "[data-reporting-action]", onInteractiveItemClick);
441
+ $pageContainer.off("mouseenter", "[data-reporting-action]", onInteractiveItemEnter);
442
+ $pageContainer.off("mouseleave", "[data-reporting-action]", onInteractiveItemLeave);
443
+ $pageContainer.off("mouseenter", "[data-tooltip-title],[data-tooltip-text]", onToolTipItemEnter);
444
+ $pageContainer.off("mouseleave", "[data-tooltip-title],[data-tooltip-text]", onToolTipItemLeave);
445
+ }
446
+ function onInteractiveItemClick(event) {
447
+ var $eventTarget = $(this);
448
+ var actionId = $eventTarget.attr("data-reporting-action");
449
+ var action = getAction(actionId);
450
+ if (action) {
451
+ navigateToPageOnDocReady = getNavigateToPageOnDocReady(event, action.Type);
452
+ controller.executeReportAction({
453
+ element: event.currentTarget,
454
+ action,
455
+ cancel: false
456
+ });
457
+ }
458
+ event.stopPropagation();
459
+ }
460
+ function getNavigateToPageOnDocReady(event, actionType) {
461
+ if (scroll$1.isEnabled() && (actionType === "sorting" || actionType === "toggleVisibility")) {
462
+ return $(event.target).closest(".trv-report-page").attr("data-page") || controller.getCurrentPageNumber();
463
+ }
464
+ return controller.getCurrentPageNumber();
465
+ }
466
+ function onInteractiveItemEnter(args) {
467
+ var $t = $(this);
468
+ var actionId = $t.attr("data-reporting-action");
469
+ var a = getAction(actionId);
470
+ if (a !== null && args.currentTarget === this) {
471
+ controller.reportActionEnter({
472
+ element: args.currentTarget,
473
+ action: a
474
+ });
475
+ }
476
+ }
477
+ function onInteractiveItemLeave(args) {
478
+ var $t = $(this);
479
+ var actionId = $t.attr("data-reporting-action");
480
+ var a = getAction(actionId);
481
+ if (a !== null && args.currentTarget === this) {
482
+ controller.reportActionLeave({
483
+ element: args.currentTarget,
484
+ action: a
485
+ });
486
+ }
487
+ }
488
+ function getAction(actionId) {
489
+ if (actions) {
490
+ var action;
491
+ utils.each(actions, function() {
492
+ if (this.Id === actionId) {
493
+ action = this;
494
+ }
495
+ return action === void 0;
496
+ });
497
+ return action;
498
+ }
499
+ return null;
500
+ }
501
+ function onToolTipItemEnter(args) {
502
+ var $t = $(this);
503
+ var title = $t.attr("data-tooltip-title");
504
+ var text = $t.attr("data-tooltip-text");
505
+ if (!title && !text) {
506
+ return;
507
+ }
508
+ var toolTipArgs = {
509
+ element: args.currentTarget,
510
+ toolTip: {
511
+ title: title || "",
512
+ text: text || ""
513
+ },
514
+ cancel: false
515
+ };
516
+ controller.reportToolTipOpening(toolTipArgs);
517
+ if (toolTipArgs.cancel) {
518
+ return;
519
+ }
520
+ var content = applyToolTipTemplate(toolTipArgs);
521
+ var viewportElement = args.currentTarget.viewportElement;
522
+ var ktt = getToolTip($t, content);
523
+ ktt.show($t);
524
+ if (viewportElement && viewportElement.nodeName === "svg") {
525
+ positionToolTip(ktt, args);
526
+ }
527
+ }
528
+ function applyToolTipTemplate(toolTipArgs) {
529
+ var toolTipTemplate = options.templates["trv-pages-area-kendo-tooltip"];
530
+ var $container = $(toolTipTemplate);
531
+ var $titleSpan = $container.find(".trv-pages-area-kendo-tooltip-title");
532
+ var $textSpan = $container.find(".trv-pages-area-kendo-tooltip-text");
533
+ $titleSpan.html(replaceNewLineSymbols(toolTipArgs.toolTip.title));
534
+ $textSpan.html(replaceNewLineSymbols(toolTipArgs.toolTip.text));
535
+ return $container.clone().wrap("<p>").parent().html();
536
+ }
537
+ function replaceNewLineSymbols(tooltipText) {
538
+ tooltipText = utils.escapeHtml(tooltipText);
539
+ tooltipText = tooltipText.replaceAll("\r\n", "<br>");
540
+ tooltipText = tooltipText.replaceAll("\n", "<br>");
541
+ return tooltipText;
542
+ }
543
+ function positionToolTip(toolTip, e) {
544
+ var x = e.pageX;
545
+ var y = e.pageY;
546
+ var container = toolTip.popup.element.closest("[role=region]");
547
+ container.css({
548
+ left: x + 10,
549
+ top: y + 5
550
+ });
551
+ }
552
+ function getToolTip(target, toolTipContent) {
553
+ var ktt = target.data("kendoTooltip");
554
+ if (!ktt) {
555
+ try {
556
+ ktt = target.kendoTooltip({
557
+ content: toolTipContent,
558
+ autohide: true,
559
+ callout: false
560
+ }).data("kendoTooltip");
561
+ } catch (e) {
562
+ console.error("Instantiation of Kendo Tooltip threw an exception", e);
563
+ throw e;
564
+ }
565
+ }
566
+ return ktt;
567
+ }
568
+ function onToolTipItemLeave(args) {
569
+ var $t = $(this);
570
+ var toolTip = $t.data("kendoTooltip");
571
+ if (toolTip) {
572
+ toolTip.hide();
573
+ }
574
+ }
575
+ function updatePageStyle(page) {
576
+ var styleId = "trv-" + controller.clientId() + "-styles";
577
+ $("#" + styleId).remove();
578
+ var pageStyles = $("<style id=" + styleId + "></style>");
579
+ pageStyles.append(page.pageStyles);
580
+ pageStyles.appendTo("head");
581
+ }
582
+ function setPageContent(page) {
583
+ actions = JSON.parse(page.pageActions);
584
+ updatePageStyle(page);
585
+ var pageNumber = page.pageNumber;
586
+ var wrapper = $($.parseHTML(page.pageContent));
587
+ var $pageContent = wrapper.find("div.sheet");
588
+ var $page = $('<div class="trv-report-page" data-page="' + pageNumber + '"></div>');
589
+ $pageContent.css("margin", 0);
590
+ $page.append($pageContent).append($('<div class="trv-page-overlay"></div>'));
591
+ var $target = $pageWrapper.empty().removeData().data("pageNumber", pageNumber).append($page);
592
+ controller.setCurrentPageNumber(pageNumber);
593
+ if (controller.getViewMode() === enums.ViewModes.INTERACTIVE) {
594
+ $placeholder.removeClass("printpreview");
595
+ $placeholder.addClass("interactive");
596
+ } else {
597
+ $placeholder.removeClass("interactive");
598
+ $placeholder.addClass("printpreview");
599
+ }
600
+ setPageDimensions($target, pageScaleMode, pageScale);
601
+ $pageContainer.scrollTop(0);
602
+ $pageContainer.scrollLeft(0);
603
+ navigateToElement(pendingElement);
604
+ }
605
+ function setScrollablePage(args) {
606
+ var pageActions = JSON.parse(args.page.pageActions);
607
+ if (!actions) {
608
+ actions = pageActions;
609
+ } else {
610
+ actions = actions.concat(pageActions);
611
+ }
612
+ if (controller.getViewMode() === enums.ViewModes.INTERACTIVE) {
613
+ $placeholder.removeClass("printpreview");
614
+ $placeholder.addClass("interactive");
615
+ } else {
616
+ $placeholder.removeClass("interactive");
617
+ $placeholder.addClass("printpreview");
618
+ }
619
+ setPageDimensions(args.target, pageScaleMode, pageScale, args.page.pageNumber);
620
+ }
621
+ function setPageAreaImage() {
622
+ var pageStyles = $("<style id=" + pageAreaImageID + "></style>");
623
+ clearPageAreaImage();
624
+ pageStyles.append(utils.stringFormat(pageAreaImageStyle, [options.initialPageAreaImageUrl]));
625
+ pageStyles.appendTo("head");
626
+ showPageAreaImage = true;
627
+ }
628
+ function clearPageAreaImage() {
629
+ $("#" + pageAreaImageID).remove();
630
+ }
631
+ }
632
+ var pluginName = "telerik_ReportViewer_PagesArea";
633
+ $.fn[pluginName] = function(options, otherOptions) {
634
+ return utils.each(this, function() {
635
+ if (!$.data(this, pluginName)) {
636
+ $.data(this, pluginName, new PagesArea(this, options, otherOptions));
637
+ }
638
+ });
639
+ };
640
+
641
+ exports.PagesArea = PagesArea;