@progress/telerik-jquery-report-viewer 21.24.305 → 22.24.709

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 (100) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/accessibility.js +208 -0
  3. package/dist/cjs/base-component.js +26 -0
  4. package/dist/cjs/binder.js +79 -0
  5. package/dist/cjs/command.js +32 -0
  6. package/dist/cjs/commandSet.js +167 -0
  7. package/dist/cjs/controller.js +1204 -0
  8. package/dist/cjs/documentMapArea.js +159 -0
  9. package/dist/cjs/domUtils.js +50 -0
  10. package/dist/cjs/enums.js +52 -0
  11. package/dist/cjs/event-emitter.js +131 -0
  12. package/dist/cjs/events.js +23 -0
  13. package/dist/cjs/globalSettings.js +9 -0
  14. package/dist/cjs/history.js +131 -0
  15. package/dist/cjs/index.js +58 -0
  16. package/dist/cjs/jqueryThrottleDebounce.js +48 -0
  17. package/dist/cjs/kendo-jquery.js +4 -0
  18. package/dist/cjs/mainMenu.js +323 -0
  19. package/dist/cjs/mem-storage.js +44 -0
  20. package/dist/cjs/pagesArea.js +622 -0
  21. package/dist/cjs/parameterValidators.js +164 -0
  22. package/dist/cjs/parameters.js +921 -0
  23. package/dist/cjs/parametersArea.js +486 -0
  24. package/dist/cjs/perspectives.js +138 -0
  25. package/dist/cjs/print.js +165 -0
  26. package/dist/cjs/report-viewer/report-viewer-settings.js +138 -0
  27. package/dist/cjs/reportViewer.js +665 -0
  28. package/dist/cjs/scroll.js +535 -0
  29. package/dist/cjs/search.js +584 -0
  30. package/dist/cjs/sendEmail.js +392 -0
  31. package/dist/cjs/service-client-sentinel.js +52 -0
  32. package/dist/cjs/serviceClient.js +311 -0
  33. package/dist/cjs/sideMenu.js +216 -0
  34. package/dist/cjs/sr.js +164 -0
  35. package/dist/cjs/stringResources.js +11 -0
  36. package/dist/cjs/telerikReportViewer.kendo.js +60196 -0
  37. package/dist/cjs/telerikReportViewer.kendo.min.js +19776 -0
  38. package/dist/cjs/template-cache.js +39 -0
  39. package/dist/cjs/toolbar/link-button.js +42 -0
  40. package/dist/cjs/toolbar/page-count-label.js +18 -0
  41. package/dist/cjs/toolbar/page-number-input.js +64 -0
  42. package/dist/cjs/touch.js +86 -0
  43. package/dist/cjs/uiController.js +142 -0
  44. package/dist/cjs/uiFreezeCoordinator.js +282 -0
  45. package/dist/cjs/utils.js +489 -0
  46. package/dist/es/accessibility.js +204 -0
  47. package/dist/es/base-component.js +22 -0
  48. package/dist/es/binder.js +75 -0
  49. package/dist/es/command.js +28 -0
  50. package/dist/es/commandSet.js +163 -0
  51. package/dist/es/controller.js +1200 -0
  52. package/dist/es/documentMapArea.js +155 -0
  53. package/dist/es/domUtils.js +43 -0
  54. package/dist/es/enums.js +41 -0
  55. package/dist/es/event-emitter.js +127 -0
  56. package/dist/es/events.js +19 -0
  57. package/dist/es/globalSettings.js +5 -0
  58. package/dist/es/history.js +127 -0
  59. package/dist/es/index.js +24 -0
  60. package/dist/es/jqueryThrottleDebounce.js +46 -0
  61. package/dist/es/kendo-jquery.js +1 -0
  62. package/dist/es/mainMenu.js +319 -0
  63. package/dist/es/mem-storage.js +40 -0
  64. package/dist/es/pagesArea.js +618 -0
  65. package/dist/es/parameterValidators.js +160 -0
  66. package/dist/es/parameters.js +916 -0
  67. package/dist/es/parametersArea.js +482 -0
  68. package/dist/es/perspectives.js +134 -0
  69. package/dist/es/print.js +161 -0
  70. package/dist/es/report-viewer/report-viewer-settings.js +134 -0
  71. package/dist/es/reportViewer.js +661 -0
  72. package/dist/es/scroll.js +531 -0
  73. package/dist/es/search.js +580 -0
  74. package/dist/es/sendEmail.js +388 -0
  75. package/dist/es/service-client-sentinel.js +48 -0
  76. package/dist/es/serviceClient.js +307 -0
  77. package/dist/es/sideMenu.js +212 -0
  78. package/dist/es/sr.js +162 -0
  79. package/dist/es/stringResources.js +7 -0
  80. package/dist/es/telerikReportViewer.kendo.js +60194 -0
  81. package/dist/es/telerikReportViewer.kendo.min.js +19774 -0
  82. package/dist/es/template-cache.js +35 -0
  83. package/dist/es/toolbar/link-button.js +38 -0
  84. package/dist/es/toolbar/page-count-label.js +14 -0
  85. package/dist/es/toolbar/page-number-input.js +60 -0
  86. package/dist/es/touch.js +82 -0
  87. package/dist/es/uiController.js +138 -0
  88. package/dist/es/uiFreezeCoordinator.js +278 -0
  89. package/dist/es/utils.js +444 -0
  90. package/dist/font/font-icons.css +4 -4
  91. package/dist/font/font-icons.min.css +3 -3
  92. package/dist/js/telerikReportViewer.js +8346 -8507
  93. package/dist/js/telerikReportViewer.min.js +1 -17
  94. package/dist/js/telerikReportViewer.stringResources.js +166 -173
  95. package/dist/styles/telerikReportViewer.css +3 -3
  96. package/dist/styles/telerikReportViewer.min.css +3 -3
  97. package/dist/templates/telerikReportViewerTemplate-FA.html +4 -4
  98. package/dist/templates/telerikReportViewerTemplate.html +6 -6
  99. package/package.json +14 -7
  100. /package/dist/font/{ReportingIcons-18.0.24.305.ttf → ReportingIcons-18.1.24.709.ttf} +0 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This package is part of [Telerik Reporting](https://www.telerik.com/reporting).
4
4
 
5
- This version of Telerik jQuery Report Viewer requires Telerik Report Server or Telerik Reporting REST Service 18.0.24.305.
5
+ This version of Telerik jQuery Report Viewer requires Telerik Report Server or Telerik Reporting REST Service 18.1.24.709.
6
6
 
7
7
  __Intended for internal purposes only.__
8
8
 
@@ -0,0 +1,208 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('./utils.js');
6
+ var stringResources = require('./stringResources.js');
7
+
8
+ var defaultOptions = {};
9
+ function Accessibility(options) {
10
+ var controller;
11
+ var pageInitialized = false;
12
+ var areas;
13
+ var lastArea;
14
+ var keyMap = {
15
+ CONFIRM_KEY: 13,
16
+ // C
17
+ CONTENT_AREA_KEY: 67,
18
+ // D
19
+ DOCUMENT_MAP_AREA_KEY: 68,
20
+ // M
21
+ MENU_AREA_KEY: 77,
22
+ // P
23
+ PARAMETERS_AREA_KEY: 80
24
+ };
25
+ options = $.extend({}, defaultOptions, options);
26
+ controller = options.controller;
27
+ if (!controller) {
28
+ throw "No controller (telerikReporting.ReportViewerController) has been specified.";
29
+ }
30
+ controller.reportLoadComplete(function() {
31
+ setAccessibilityUI();
32
+ var content = findContentArea();
33
+ if (content.length > 0) {
34
+ content.focus();
35
+ }
36
+ }).pageReady(function(event, page) {
37
+ initPage(page);
38
+ pageInitialized = true;
39
+ }).error(function(e, message) {
40
+ focusOnErrorMessage();
41
+ window.setTimeout(setAccessibilityUI, 500);
42
+ });
43
+ controller.updateUI(function(e) {
44
+ if (pageInitialized) {
45
+ setPageSelector();
46
+ decorateMenuItems();
47
+ }
48
+ });
49
+ function setAccessibilityUI() {
50
+ if (!areas) {
51
+ initAreas();
52
+ $(document.body).off("keydown", processKeyDown);
53
+ $(document.body).on("keydown", processKeyDown);
54
+ }
55
+ }
56
+ function focusOnErrorMessage() {
57
+ var $errMsg = $("div.trv-pages-area div.trv-error-message");
58
+ if ($errMsg.length === 0) {
59
+ return;
60
+ }
61
+ $errMsg.attr("tabIndex", 0);
62
+ $errMsg.focus();
63
+ }
64
+ function initPage(page) {
65
+ if (!page) {
66
+ return;
67
+ }
68
+ setAccessibilityUI();
69
+ var area = areas[keyMap.CONTENT_AREA_KEY];
70
+ setContentAreaKeyDown(area);
71
+ }
72
+ function setPageSelector() {
73
+ var pagers = document.querySelectorAll(".trv-report-pager");
74
+ var pageNumber = this._controller.getCurrentPageNumber();
75
+ var pageCount = this._controller.getPageCount();
76
+ pagers.forEach((pager) => {
77
+ pager.setAttribute("aria-label", utils.stringFormat(stringResources.stringResources.ariaLabelPageNumberSelector, [pageNumber, pageCount]));
78
+ var pageInputs = pager.querySelectorAll("input[data-role=telerik_ReportViewer_PageNumberInput]");
79
+ pageInputs.forEach((input) => {
80
+ input.setAttribute("aria-label", stringResources.stringResources.ariaLabelPageNumberEditor);
81
+ });
82
+ });
83
+ }
84
+ function initAreas() {
85
+ areas = {};
86
+ areas[keyMap.DOCUMENT_MAP_AREA_KEY] = findDocumentMapArea();
87
+ areas[keyMap.MENU_AREA_KEY] = findMenuArea();
88
+ areas[keyMap.CONTENT_AREA_KEY] = findContentArea();
89
+ var parametersArea = findParametersArea();
90
+ if (parametersArea) {
91
+ areas[keyMap.PARAMETERS_AREA_KEY] = parametersArea;
92
+ setParameterEditorsKeyDown(parametersArea);
93
+ }
94
+ }
95
+ function findContentArea() {
96
+ return $("div[data-role=telerik_ReportViewer_PagesArea]");
97
+ }
98
+ function findDocumentMapArea() {
99
+ return $("div[data-role=telerik_ReportViewer_DocumentMapArea] div[data-role=treeview]");
100
+ }
101
+ function findMenuArea() {
102
+ return $("ul[data-role=telerik_ReportViewer_MainMenu]");
103
+ }
104
+ function findParametersArea() {
105
+ return $("div[data-role=telerik_ReportViewer_ParametersArea] div.trv-parameters-area-content");
106
+ }
107
+ function processKeyDown(event) {
108
+ if (!areas) {
109
+ return;
110
+ }
111
+ if (!(event.altKey && event.ctrlKey)) {
112
+ return;
113
+ }
114
+ var currentArea = areas[event.which];
115
+ if (!currentArea) {
116
+ return;
117
+ }
118
+ if (!IsAreaContainerVisible(currentArea.parent())) {
119
+ return;
120
+ }
121
+ var className = "k-focus";
122
+ if (lastArea) {
123
+ lastArea.removeClass(className);
124
+ }
125
+ currentArea.addClass(className);
126
+ currentArea.focus();
127
+ lastArea = currentArea;
128
+ event.preventDefault();
129
+ }
130
+ function setParameterEditorsKeyDown(parametersAreaContent) {
131
+ if (parametersAreaContent.length === 0) {
132
+ return;
133
+ }
134
+ var $paramsArea = parametersAreaContent.parent("div[data-role=telerik_ReportViewer_ParametersArea]");
135
+ if (!IsAreaContainerVisible($paramsArea)) {
136
+ return;
137
+ }
138
+ Array.from(parametersAreaContent.children()).forEach((child) => {
139
+ $(child).on("keydown", (event) => {
140
+ if (event.which == keyMap.CONFIRM_KEY) {
141
+ var paramsButton = $paramsArea.find("button.trv-parameters-area-preview-button");
142
+ paramsButton.focus();
143
+ event.preventDefault();
144
+ }
145
+ });
146
+ });
147
+ }
148
+ function IsAreaContainerVisible(container) {
149
+ return container && !(container.hasClass("k-collapsed") || container.hasClass("trv-hidden"));
150
+ }
151
+ function setContentAreaKeyDown(contentArea) {
152
+ if (!contentArea) {
153
+ return;
154
+ }
155
+ var actions = contentArea.find("div [data-reporting-action]");
156
+ if (!actions.length > 0) {
157
+ return;
158
+ }
159
+ Array.from(actions).forEach((action) => {
160
+ var $action = $(action);
161
+ $action.on("keydown", (event) => {
162
+ if (event.which == keyMap.CONFIRM_KEY) {
163
+ $action.trigger("click");
164
+ }
165
+ });
166
+ });
167
+ }
168
+ function decorateMenuItems() {
169
+ var menuAreas = areas[keyMap.MENU_AREA_KEY];
170
+ if (!menuAreas) {
171
+ return;
172
+ }
173
+ Array.from(menuAreas).forEach((menu) => {
174
+ var $menu = $(menu);
175
+ var menuItems = $menu.children("li.k-item");
176
+ Array.from(menuItems).forEach((menuItem) => {
177
+ var $menuItem = $(menuItem);
178
+ if (!$menuItem.hasClass("trv-report-pager")) {
179
+ var ariaLabel = $menuItem.attr("aria-label");
180
+ var expandableSr = utils.stringFormat(". {0}", [stringResources.stringResources.ariaLabelExpandable]);
181
+ var expandable = $menuItem.find("ul").length > 0 && ariaLabel.indexOf(expandableSr) < 0 ? expandableSr : "";
182
+ var selectedSr = utils.stringFormat(". {0}", [stringResources.stringResources.ariaLabelSelected]);
183
+ var selected = $menuItem.hasClass("k-selected") && ariaLabel.indexOf(selectedSr) < 0 ? selectedSr : "";
184
+ var label = ariaLabel + expandable + selected;
185
+ $menuItem.attr("aria-label", label);
186
+ if ($menuItem.hasClass("k-disabled")) {
187
+ $menuItem.attr("aria-disabled", "true");
188
+ } else {
189
+ $menuItem.removeAttr("aria-disabled");
190
+ }
191
+ }
192
+ });
193
+ });
194
+ }
195
+ function setKeyMap(keyMapValues) {
196
+ keyMap = keyMapValues;
197
+ areas = void 0;
198
+ }
199
+ function getKeyMap() {
200
+ return keyMap;
201
+ }
202
+ return {
203
+ getKeyMap,
204
+ setKeyMap
205
+ };
206
+ }
207
+
208
+ exports.Accessibility = Accessibility;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __publicField = (obj, key, value) => {
8
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
9
+ return value;
10
+ };
11
+ class BaseComponent {
12
+ // #endregion
13
+ // #region constructor
14
+ constructor(element, options) {
15
+ // #region fields
16
+ __publicField(this, "element");
17
+ __publicField(this, "$element");
18
+ __publicField(this, "options");
19
+ this.element = element;
20
+ this.$element = $(element);
21
+ this.options = options;
22
+ }
23
+ // #endregion
24
+ }
25
+
26
+ exports.BaseComponent = BaseComponent;
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var globalSettings = require('./globalSettings.js');
6
+
7
+ class Binder {
8
+ static bind($element, ...args) {
9
+ const commands = args[0].commands;
10
+ const viewerOptions = args[1];
11
+ Binder.attachCommands($element, commands, viewerOptions);
12
+ var plugins = $element.find('[data-role^="telerik_ReportViewer_"]');
13
+ Array.from(plugins).forEach((element) => {
14
+ var $element2 = $(element);
15
+ var fn = $.fn[$element2.attr("data-role")];
16
+ if (typeof fn === "function") {
17
+ fn.apply($element2, args);
18
+ }
19
+ });
20
+ }
21
+ static attachCommands($element, commands, viewerOptions) {
22
+ var elementSelector = '[data-command^="telerik_ReportViewer_"]';
23
+ var customElementSelector = "[data-target-report-viewer]" + elementSelector;
24
+ $element.on("click", elementSelector, commandHandler);
25
+ if (!globalSettings.GlobalSettings.CommandHandlerAttached) {
26
+ $(document.body).on("click", customElementSelector, customCommandHandler);
27
+ globalSettings.GlobalSettings.CommandHandlerAttached = true;
28
+ }
29
+ Object.entries(commands).forEach(([key, command]) => {
30
+ attachCommand(key, command, viewerOptions, $element);
31
+ });
32
+ function commandHandler(event) {
33
+ var prefixedDataCommand = $(this).attr("data-command");
34
+ if (prefixedDataCommand) {
35
+ var dataCommand = prefixedDataCommand.substring("telerik_ReportViewer_".length);
36
+ var cmd = commands[dataCommand];
37
+ if (cmd && cmd.enabled()) {
38
+ cmd.exec($(this).attr("data-command-parameter"));
39
+ }
40
+ event.preventDefault();
41
+ }
42
+ }
43
+ function customCommandHandler(event) {
44
+ var $this = $(this);
45
+ var prefixedDataCommand = $this.attr("data-command");
46
+ var reportViewerTarget = $this.attr("data-target-report-viewer");
47
+ if (prefixedDataCommand && reportViewerTarget) {
48
+ var dataCommand = prefixedDataCommand.substring("telerik_ReportViewer_".length);
49
+ var reportViewer = $(reportViewerTarget).data("telerik_ReportViewer");
50
+ var cmd = reportViewer.commands[dataCommand];
51
+ if (cmd.enabled()) {
52
+ cmd.exec($(this).attr("data-command-parameter"));
53
+ }
54
+ event.preventDefault();
55
+ }
56
+ }
57
+ }
58
+ }
59
+ function attachCommand(dataCommand, cmd, viewerOptions, $element) {
60
+ if (cmd) {
61
+ var elementSelector = '[data-command="telerik_ReportViewer_' + dataCommand + '"]';
62
+ var customElementSelector = '[data-target-report-viewer="' + viewerOptions.selector + '"]' + elementSelector;
63
+ var $defaultElement = $element.find(elementSelector);
64
+ var $customElement = $(customElementSelector);
65
+ $(cmd).on("enabledChanged", function(event) {
66
+ (cmd.enabled() ? $.fn.removeClass : $.fn.addClass).call($defaultElement.parent("li"), "k-disabled");
67
+ (cmd.enabled() ? $.fn.removeClass : $.fn.addClass).call($customElement, viewerOptions.disabledButtonClass);
68
+ }).on("checkedChanged", function(event) {
69
+ var defaultTarget = $defaultElement.parent("li");
70
+ (cmd.checked() ? $.fn.addClass : $.fn.removeClass).call(defaultTarget, getSelectedClassName(defaultTarget));
71
+ (cmd.checked() ? $.fn.addClass : $.fn.removeClass).call($customElement, viewerOptions.checkedButtonClass);
72
+ });
73
+ }
74
+ }
75
+ function getSelectedClassName($element) {
76
+ return $element.hasClass("trv-menu-toggleable") ? "k-selected !k-bg-primary" : "k-selected";
77
+ }
78
+
79
+ exports.Binder = Binder;
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function Command(execCallback) {
6
+ var enabledState = true;
7
+ var checkedState = false;
8
+ var cmd = {
9
+ enabled: function(state) {
10
+ if (arguments.length === 0) {
11
+ return enabledState;
12
+ }
13
+ var newState = Boolean(state);
14
+ enabledState = newState;
15
+ $(this).trigger("enabledChanged");
16
+ return cmd;
17
+ },
18
+ checked: function(state) {
19
+ if (arguments.length === 0) {
20
+ return checkedState;
21
+ }
22
+ var newState = Boolean(state);
23
+ checkedState = newState;
24
+ $(this).trigger("checkedChanged");
25
+ return cmd;
26
+ },
27
+ exec: execCallback
28
+ };
29
+ return cmd;
30
+ }
31
+
32
+ exports.Command = Command;
@@ -0,0 +1,167 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var enums = require('./enums.js');
6
+ var command = require('./command.js');
7
+
8
+ var scaleTransitionMap = {};
9
+ scaleTransitionMap[enums.ScaleModes.FIT_PAGE] = { scaleMode: enums.ScaleModes.FIT_PAGE_WIDTH };
10
+ scaleTransitionMap[enums.ScaleModes.FIT_PAGE_WIDTH] = { scaleMode: enums.ScaleModes.SPECIFIC, scale: 1 };
11
+ scaleTransitionMap[enums.ScaleModes.SPECIFIC] = { scaleMode: enums.ScaleModes.FIT_PAGE };
12
+ var scaleValues = [0.1, 0.25, 0.5, 0.75, 1, 1.5, 2, 4, 8];
13
+ function CommandSet(options) {
14
+ var controller = options.controller;
15
+ if (!controller) {
16
+ throw "No options.controller.";
17
+ }
18
+ var historyManager = options.history;
19
+ if (!historyManager) {
20
+ throw "No options.history.";
21
+ }
22
+ function getDocumentMapVisible() {
23
+ var args = {};
24
+ controller.getDocumentMapState(args);
25
+ return Boolean(args.visible);
26
+ }
27
+ function getParametersAreaVisible() {
28
+ var args = {};
29
+ controller.getParametersAreaState(args);
30
+ return Boolean(args.visible);
31
+ }
32
+ function getSideMenuVisible() {
33
+ var args = {};
34
+ controller.getSideMenuVisible(args);
35
+ return Boolean(args.visible);
36
+ }
37
+ function getSearchDialogVisible() {
38
+ var args = {};
39
+ controller.getSearchDialogState(args);
40
+ return Boolean(args.visible);
41
+ }
42
+ function getSendEmailDialogVisible() {
43
+ var args = {};
44
+ controller.getSendEmailDialogState(args);
45
+ return Boolean(args.visible);
46
+ }
47
+ return {
48
+ "historyBack": new command.Command(function() {
49
+ historyManager.back();
50
+ }),
51
+ "historyForward": new command.Command(function() {
52
+ historyManager.forward();
53
+ }),
54
+ "stopRendering": new command.Command(function() {
55
+ controller.stopRendering();
56
+ }),
57
+ "goToPrevPage": new command.Command(function() {
58
+ controller.navigateToPage(controller.getCurrentPageNumber() - 1);
59
+ }),
60
+ "goToNextPage": new command.Command(function() {
61
+ controller.navigateToPage(controller.getCurrentPageNumber() + 1);
62
+ }),
63
+ "goToFirstPage": new command.Command(function() {
64
+ controller.navigateToPage(1);
65
+ }),
66
+ "goToLastPage": new command.Command(function() {
67
+ controller.navigateToPage(controller.getPageCount());
68
+ }),
69
+ "goToPage": new command.Command(function(pageNumber) {
70
+ if (!isNaN(pageNumber)) {
71
+ var pageCount = controller.getPageCount();
72
+ if (pageNumber > pageCount) {
73
+ pageNumber = pageCount;
74
+ } else if (pageNumber < 1) {
75
+ pageNumber = 1;
76
+ }
77
+ controller.navigateToPage(pageNumber);
78
+ return pageNumber;
79
+ }
80
+ }),
81
+ "refresh": new command.Command(
82
+ function() {
83
+ controller.refreshReport(true);
84
+ }
85
+ ),
86
+ "export": new command.Command(function(format) {
87
+ if (format) {
88
+ controller.exportReport(format);
89
+ }
90
+ }),
91
+ "print": new command.Command(function() {
92
+ controller.printReport();
93
+ }),
94
+ "pageMode": new command.Command(function() {
95
+ controller.setPageMode(
96
+ controller.getPageMode() === enums.PageModes.SINGLE_PAGE ? enums.PageModes.CONTINUOUS_SCROLL : enums.PageModes.SINGLE_PAGE
97
+ );
98
+ }),
99
+ "togglePrintPreview": new command.Command(function() {
100
+ controller.setViewMode(
101
+ controller.getViewMode() === enums.ViewModes.PRINT_PREVIEW ? enums.ViewModes.INTERACTIVE : enums.ViewModes.PRINT_PREVIEW
102
+ );
103
+ }),
104
+ "toggleDocumentMap": new command.Command(function() {
105
+ controller.setDocumentMapVisible({ visible: !getDocumentMapVisible() });
106
+ }),
107
+ "toggleParametersArea": new command.Command(function() {
108
+ controller.setParametersAreaVisible({ visible: !getParametersAreaVisible() });
109
+ }),
110
+ "zoom": new command.Command(function(scale) {
111
+ controller.setScale(scale);
112
+ }),
113
+ "zoomIn": new command.Command(function() {
114
+ zoom(1);
115
+ }),
116
+ "zoomOut": new command.Command(function() {
117
+ zoom(-1);
118
+ }),
119
+ "toggleSideMenu": new command.Command(function() {
120
+ controller.setSideMenuVisible({ visible: !getSideMenuVisible() });
121
+ }),
122
+ "toggleZoomMode": new command.Command(function(e) {
123
+ var scale = controller.getScale();
124
+ var scaleMode = controller.getScaleMode();
125
+ controller.setScale(scaleTransitionMap[scaleMode].scale || scale);
126
+ controller.setScaleMode(scaleTransitionMap[scaleMode].scaleMode);
127
+ }),
128
+ "toggleSearchDialog": new command.Command(function() {
129
+ controller.setSearchDialogVisible({ visible: !getSearchDialogVisible() });
130
+ }),
131
+ "toggleSendEmailDialog": new command.Command(function() {
132
+ controller.setSendEmailDialogVisible({ visible: !getSendEmailDialogVisible() });
133
+ })
134
+ };
135
+ function zoom(step) {
136
+ controller.setScale(getZoomScale(controller.getScale(), step));
137
+ }
138
+ function getZoomScale(scale, steps) {
139
+ var pos = -1;
140
+ var length = scaleValues.length;
141
+ for (var i = 0; i < length; i++) {
142
+ var value = scaleValues[i];
143
+ if (scale < value) {
144
+ pos = i - 0.5;
145
+ break;
146
+ }
147
+ if (scale === value) {
148
+ pos = i;
149
+ break;
150
+ }
151
+ }
152
+ pos = pos + steps;
153
+ if (steps >= 0) {
154
+ pos = Math.round(pos - 0.49);
155
+ } else {
156
+ pos = Math.round(pos + 0.49);
157
+ }
158
+ if (pos < 0) {
159
+ pos = 0;
160
+ } else if (pos > length - 1) {
161
+ pos = length - 1;
162
+ }
163
+ return scaleValues[pos];
164
+ }
165
+ }
166
+
167
+ exports.CommandSet = CommandSet;