@progress/telerik-jquery-report-viewer 25.25.211 → 26.25.521

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