@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,401 @@
1
+ import { extend, rTrim, $ajax, stringFormat } from './utils.js';
2
+
3
+ var JSON_CONTENT_TYPE = "application/json; charset=UTF-8";
4
+ var URLENCODED_CONTENT_TYPE = "application/x-www-form-urlencoded; charset=UTF-8";
5
+ var HTTP_GET = "GET";
6
+ var HTTP_POST = "POST";
7
+ var HTTP_DELETE = "DELETE";
8
+ var defaultOptions = {};
9
+ function ServiceClient(options) {
10
+ options = extend({}, defaultOptions, options);
11
+ var baseUrl = rTrim(options.serviceUrl || options.baseUrl, "\\/");
12
+ var loginPromise;
13
+ var _ajax = $ajax;
14
+ function validateClientID(clientID) {
15
+ if (!clientID)
16
+ throw "Invalid clientID";
17
+ }
18
+ function urlFromTemplate(template, args) {
19
+ args = extend({}, { baseUrl }, args);
20
+ return stringFormat(template, args);
21
+ }
22
+ function getHeaderSettings(authorizationToken) {
23
+ return authorizationToken ? {
24
+ headers: {
25
+ Authorization: "Bearer " + authorizationToken
26
+ }
27
+ } : {};
28
+ }
29
+ function login() {
30
+ if (!loginPromise) {
31
+ var loginInfo = options.loginInfo;
32
+ if (loginInfo && loginInfo.url && (loginInfo.username || loginInfo.password)) {
33
+ loginPromise = _ajax({
34
+ url: loginInfo.url,
35
+ type: HTTP_POST,
36
+ data: {
37
+ grant_type: "password",
38
+ username: loginInfo.username,
39
+ password: loginInfo.password
40
+ },
41
+ dataType: "json",
42
+ contentType: URLENCODED_CONTENT_TYPE
43
+ }).then(function(result) {
44
+ return result.access_token;
45
+ });
46
+ } else {
47
+ loginPromise = Promise.resolve();
48
+ }
49
+ }
50
+ return loginPromise;
51
+ }
52
+ return {
53
+ _urlFromTemplate: urlFromTemplate,
54
+ registerClient: function(settings) {
55
+ return login().then(function(authorizationToken) {
56
+ var ajaxSettings = extend(
57
+ getHeaderSettings(authorizationToken),
58
+ settings,
59
+ {
60
+ type: HTTP_POST,
61
+ url: urlFromTemplate("{baseUrl}/clients"),
62
+ dataType: "json",
63
+ //Used to avoid Chrome caching functionality for simple async requests
64
+ //when the first request is not completed the second request is not send
65
+ //and the same response is used for both of the request. In this case the
66
+ //second client is not registered to the service and the same clientId is used.
67
+ data: JSON.stringify({ timeStamp: Date.now() })
68
+ }
69
+ );
70
+ return _ajax(ajaxSettings);
71
+ }).then(function(clientData) {
72
+ if (clientData.Message) {
73
+ throw clientData.Message;
74
+ }
75
+ return clientData.clientId;
76
+ });
77
+ },
78
+ unregisterClient: function(clientID, settings) {
79
+ validateClientID(clientID);
80
+ return login().then(function(authorizationToken) {
81
+ var ajaxSettings = extend(
82
+ getHeaderSettings(authorizationToken),
83
+ settings,
84
+ {
85
+ type: HTTP_DELETE,
86
+ url: urlFromTemplate("{baseUrl}/clients/{clientID}", { clientID })
87
+ }
88
+ );
89
+ return _ajax(ajaxSettings);
90
+ });
91
+ },
92
+ getParameters: function(clientID, report, parameterValues, settings) {
93
+ validateClientID(clientID);
94
+ return login().then(function(authorizationToken) {
95
+ var ajaxSettings = extend(
96
+ getHeaderSettings(authorizationToken),
97
+ settings,
98
+ {
99
+ type: HTTP_POST,
100
+ url: urlFromTemplate("{baseUrl}/clients/{clientID}/parameters", { clientID }),
101
+ contentType: JSON_CONTENT_TYPE,
102
+ dataType: "json",
103
+ data: JSON.stringify({ report, parameterValues })
104
+ }
105
+ );
106
+ return _ajax(ajaxSettings);
107
+ });
108
+ },
109
+ createReportInstance: function(clientID, report, parameterValues, settings) {
110
+ validateClientID(clientID);
111
+ return login().then(function(authorizationToken) {
112
+ var ajaxSettings = extend(
113
+ getHeaderSettings(authorizationToken),
114
+ settings,
115
+ {
116
+ type: HTTP_POST,
117
+ url: urlFromTemplate("{baseUrl}/clients/{clientID}/instances", { clientID }),
118
+ contentType: JSON_CONTENT_TYPE,
119
+ dataType: "json",
120
+ data: JSON.stringify({ report, parameterValues })
121
+ }
122
+ );
123
+ return _ajax(ajaxSettings);
124
+ }).then(function(instanceData) {
125
+ return instanceData.instanceId;
126
+ });
127
+ },
128
+ deleteReportInstance: function(clientID, instanceID, settings) {
129
+ validateClientID(clientID);
130
+ return login().then(function(authorizationToken) {
131
+ var ajaxSettings = extend(
132
+ getHeaderSettings(authorizationToken),
133
+ settings,
134
+ {
135
+ type: HTTP_DELETE,
136
+ url: urlFromTemplate("{baseUrl}/clients/{clientID}/instances/{instanceID}", { clientID, instanceID })
137
+ }
138
+ );
139
+ return _ajax(ajaxSettings);
140
+ });
141
+ },
142
+ createReportDocument: function(clientID, instanceID, format, deviceInfo, useCache, baseDocumentID, actionID, settings) {
143
+ validateClientID(clientID);
144
+ return login().then(function(authorizationToken) {
145
+ deviceInfo = deviceInfo || {};
146
+ deviceInfo["BasePath"] = baseUrl;
147
+ var ajaxSettings = extend(
148
+ getHeaderSettings(authorizationToken),
149
+ settings,
150
+ {
151
+ type: HTTP_POST,
152
+ url: urlFromTemplate("{baseUrl}/clients/{clientID}/instances/{instanceID}/documents", { clientID, instanceID }),
153
+ contentType: JSON_CONTENT_TYPE,
154
+ dataType: "json",
155
+ data: JSON.stringify(
156
+ {
157
+ format,
158
+ deviceInfo,
159
+ useCache,
160
+ baseDocumentID,
161
+ actionID
162
+ }
163
+ )
164
+ }
165
+ );
166
+ return _ajax(ajaxSettings);
167
+ }).then(function(documentData) {
168
+ return documentData.documentId;
169
+ });
170
+ },
171
+ sendDocument: function(clientID, instanceID, documentID, mailArgs, settings) {
172
+ validateClientID(clientID);
173
+ return login().then(function(authorizationToken) {
174
+ var ajaxSettings = extend(
175
+ getHeaderSettings(authorizationToken),
176
+ settings,
177
+ {
178
+ type: HTTP_POST,
179
+ url: urlFromTemplate(
180
+ "{baseUrl}/clients/{clientID}/instances/{instanceID}/documents/{documentID}/send",
181
+ { clientID, instanceID, documentID }
182
+ ),
183
+ contentType: JSON_CONTENT_TYPE,
184
+ data: JSON.stringify(
185
+ {
186
+ from: mailArgs.from,
187
+ to: mailArgs.to,
188
+ cc: mailArgs.cc,
189
+ subject: mailArgs.subject,
190
+ body: mailArgs.body
191
+ }
192
+ )
193
+ }
194
+ );
195
+ return _ajax(ajaxSettings);
196
+ });
197
+ },
198
+ deleteReportDocument: function(clientID, instanceID, documentID, settings) {
199
+ validateClientID(clientID);
200
+ return login().then(function(authorizationToken) {
201
+ var ajaxSettings = extend(
202
+ getHeaderSettings(authorizationToken),
203
+ settings,
204
+ {
205
+ type: HTTP_DELETE,
206
+ url: urlFromTemplate(
207
+ "{baseUrl}/clients/{clientID}/instances/{instanceID}/documents/{documentID}",
208
+ { clientID, instanceID, documentID }
209
+ )
210
+ }
211
+ );
212
+ return _ajax(ajaxSettings);
213
+ });
214
+ },
215
+ getDocumentInfo: function(clientID, instanceID, documentID, settings) {
216
+ validateClientID(clientID);
217
+ return login().then(function(authorizationToken) {
218
+ var ajaxSettings = extend(
219
+ getHeaderSettings(authorizationToken),
220
+ settings,
221
+ {
222
+ type: HTTP_GET,
223
+ url: urlFromTemplate(
224
+ "{baseUrl}/clients/{clientID}/instances/{instanceID}/documents/{documentID}/info",
225
+ {
226
+ clientID,
227
+ instanceID,
228
+ documentID
229
+ }
230
+ ),
231
+ dataType: "json"
232
+ }
233
+ );
234
+ return _ajax(ajaxSettings);
235
+ });
236
+ },
237
+ getPage: function(clientID, instanceID, documentID, pageNumber, settings) {
238
+ validateClientID(clientID);
239
+ return login().then(function(authorizationToken) {
240
+ var ajaxSettings = extend(
241
+ getHeaderSettings(authorizationToken),
242
+ settings,
243
+ {
244
+ type: HTTP_GET,
245
+ url: urlFromTemplate(
246
+ "{baseUrl}/clients/{clientID}/instances/{instanceID}/documents/{documentID}/pages/{pageNumber}",
247
+ {
248
+ clientID,
249
+ instanceID,
250
+ documentID,
251
+ pageNumber
252
+ }
253
+ ),
254
+ dataType: "json"
255
+ }
256
+ );
257
+ return _ajax(ajaxSettings);
258
+ });
259
+ },
260
+ get: function(url) {
261
+ var ajaxSettings = {
262
+ type: HTTP_GET,
263
+ url
264
+ };
265
+ return _ajax(ajaxSettings);
266
+ },
267
+ formatDocumentUrl: function(clientID, instanceID, documentID, queryString) {
268
+ var url = urlFromTemplate(
269
+ "{baseUrl}/clients/{clientID}/instances/{instanceID}/documents/{documentID}",
270
+ {
271
+ clientID,
272
+ instanceID,
273
+ documentID
274
+ }
275
+ );
276
+ if (queryString) {
277
+ url += "?" + queryString;
278
+ }
279
+ return url;
280
+ },
281
+ getDocumentFormats: function(settings) {
282
+ return login().then(function(authorizationToken) {
283
+ var ajaxSettings = extend(
284
+ getHeaderSettings(authorizationToken),
285
+ settings,
286
+ {
287
+ type: HTTP_GET,
288
+ url: urlFromTemplate("{baseUrl}/formats"),
289
+ // anonymous
290
+ dataType: "json"
291
+ }
292
+ );
293
+ return _ajax(ajaxSettings);
294
+ });
295
+ },
296
+ getServiceVersion: function(settings) {
297
+ return login().then(function(authorizationToken) {
298
+ var ajaxSettings = extend(
299
+ getHeaderSettings(authorizationToken),
300
+ settings,
301
+ {
302
+ type: HTTP_GET,
303
+ url: urlFromTemplate("{baseUrl}/version"),
304
+ // anonymous
305
+ dataType: "json"
306
+ }
307
+ );
308
+ return _ajax(ajaxSettings);
309
+ });
310
+ },
311
+ getResource: function(clientID, instanceID, documentID, resourceID, settings) {
312
+ validateClientID(clientID);
313
+ return login().then(function(authorizationToken) {
314
+ var ajaxSettings = extend(
315
+ getHeaderSettings(authorizationToken),
316
+ settings,
317
+ {
318
+ type: HTTP_GET,
319
+ url: urlFromTemplate(
320
+ "{baseUrl}/clients/{clientID}/instances/{instanceID}/documents/{documentID}/resources/{resourceID}",
321
+ {
322
+ clientID,
323
+ instanceID,
324
+ documentID,
325
+ resourceID
326
+ }
327
+ ),
328
+ dataType: (settings == null ? void 0 : settings.dataType) || "json"
329
+ }
330
+ );
331
+ return _ajax(ajaxSettings);
332
+ });
333
+ },
334
+ getSearchResults: function(clientID, instanceID, documentID, searchToken, matchCase, matchWholeWord, useRegex, settings) {
335
+ validateClientID(clientID);
336
+ var searchUrl = urlFromTemplate(
337
+ "{baseUrl}/clients/{clientID}/instances/{instanceID}/documents/{documentID}/search",
338
+ {
339
+ clientID,
340
+ instanceID,
341
+ documentID
342
+ }
343
+ );
344
+ return login().then(function(authorizationToken) {
345
+ var ajaxSettings = extend(
346
+ getHeaderSettings(authorizationToken),
347
+ settings,
348
+ {
349
+ type: HTTP_POST,
350
+ url: searchUrl,
351
+ contentType: JSON_CONTENT_TYPE,
352
+ dataType: "json",
353
+ data: JSON.stringify(
354
+ {
355
+ searchToken,
356
+ matchCase,
357
+ matchWholeWord,
358
+ useRegularExpressions: useRegex
359
+ }
360
+ )
361
+ }
362
+ );
363
+ return _ajax(ajaxSettings);
364
+ });
365
+ },
366
+ setAccessToken: function(accessToken) {
367
+ loginPromise = Promise.resolve(accessToken);
368
+ },
369
+ login,
370
+ keepClientAlive: function(clientID, settings) {
371
+ return login().then(function(authorizationToken) {
372
+ var ajaxSettings = extend(
373
+ getHeaderSettings(authorizationToken),
374
+ settings,
375
+ {
376
+ type: HTTP_POST,
377
+ url: urlFromTemplate("{baseUrl}/clients/keepAlive/{clientID}", { clientID })
378
+ }
379
+ );
380
+ return _ajax(ajaxSettings);
381
+ });
382
+ },
383
+ getClientsSessionTimeoutSeconds: function(settings) {
384
+ return login().then(function(authorizationToken) {
385
+ var ajaxSettings = extend(
386
+ getHeaderSettings(authorizationToken),
387
+ settings,
388
+ {
389
+ type: HTTP_GET,
390
+ url: urlFromTemplate("{baseUrl}/clients/sessionTimeout")
391
+ }
392
+ );
393
+ return _ajax(ajaxSettings);
394
+ }).then(function(sessionTimeoutData) {
395
+ return sessionTimeoutData.clientSessionTimeout;
396
+ });
397
+ }
398
+ };
399
+ }
400
+
401
+ export { ServiceClient };
@@ -0,0 +1,221 @@
1
+ import { each, stringFormat, findElement } from './utils.js';
2
+ import { stringResources } from './stringResources.js';
3
+
4
+ function SideMenu(dom, rootOptions, otherOptions) {
5
+ var options = $.extend({}, rootOptions, otherOptions);
6
+ var menu = $(dom).data("kendoMenu");
7
+ var enableAccessibility = options.enableAccessibility;
8
+ var DEFAULT_TABINDEX = 3;
9
+ var panelBar;
10
+ var sideMenuVisible = false;
11
+ var controller = options.controller;
12
+ if (!controller) {
13
+ throw "No controller (telerikReporting.ReportViewerController) has been specified.";
14
+ }
15
+ if (!menu) {
16
+ init(dom);
17
+ }
18
+ function init(root) {
19
+ var $root = $(root);
20
+ try {
21
+ panelBar = $root.children("ul").kendoPanelBar().data("kendoPanelBar");
22
+ } catch (e) {
23
+ console.error("Instantiation of Kendo PanelBar as side menu threw an exception", e);
24
+ throw e;
25
+ }
26
+ panelBar.bind("expand", onSubmenuOpen);
27
+ panelBar.element.off("keydown", onPanelKeyDown);
28
+ panelBar.element.on("keydown", onPanelKeyDown);
29
+ setTabIndexes($root);
30
+ enableCloseOnClick($root);
31
+ $root.click(function(e) {
32
+ if (e.target == root) {
33
+ controller.setSideMenuVisible({ visible: !sideMenuVisible });
34
+ }
35
+ });
36
+ replaceStringResources();
37
+ }
38
+ controller.setSideMenuVisible(function(event, args) {
39
+ setSideMenuVisibility();
40
+ if (enableAccessibility) {
41
+ panelBar.element.focus();
42
+ }
43
+ sideMenuVisible = args.visible;
44
+ if (!sideMenuVisible) {
45
+ panelBar.collapse($("#trv-side-menu-export-command"));
46
+ }
47
+ }).getSideMenuVisible(function(event, args) {
48
+ args.visible = sideMenuVisible;
49
+ });
50
+ function setSideMenuVisibility() {
51
+ var $root = panelBar.element.parent();
52
+ var hidden = $root.position().left < 0 || !$root.is(":visible");
53
+ if (hidden) {
54
+ $root.show();
55
+ } else {
56
+ window.setTimeout(function() {
57
+ $root.hide();
58
+ }, 500);
59
+ }
60
+ }
61
+ function onSubmenuOpen(e) {
62
+ var $item = $(e.item);
63
+ panelBar.unbind("expand", onSubmenuOpen);
64
+ panelBar.append({ text: stringResources.loadingFormats, spriteCssClass: "k-icon k-loading" }, $item);
65
+ options.controller.getDocumentFormats().then(fillFormats).then(function() {
66
+ panelBar.expand($item);
67
+ }).then(function() {
68
+ panelBar.bind("expand", onSubmenuOpen);
69
+ });
70
+ }
71
+ function fillFormats(formats) {
72
+ each($(dom).find("ul[data-command-list=export-format-list]"), function() {
73
+ var $list = $(this);
74
+ var $parent = $list.parents("li");
75
+ var tabIndex = $parent.attr("tabindex");
76
+ if (!tabIndex) {
77
+ tabIndex = DEFAULT_TABINDEX;
78
+ }
79
+ $list.empty();
80
+ each(formats, function(i) {
81
+ var format = this;
82
+ var ariaLabel = enableAccessibility ? stringFormat('aria-label="{localizedName}" ', format) : " ";
83
+ var li = "<li " + ariaLabel + stringFormat('tabindex="' + tabIndex + '"><a tabindex="-1" href="#" data-command="telerik_ReportViewer_export" data-command-parameter="{name}"><span>{localizedName}</span></a></li>', format);
84
+ panelBar.append(li, $parent);
85
+ });
86
+ setListItemsTabIndex($parent.find("li"), tabIndex);
87
+ enableCloseOnClick($parent);
88
+ });
89
+ }
90
+ function enableCloseOnClick(root) {
91
+ each(root.find("li"), function() {
92
+ var isLeaf = $(this).children("ul").length === 0;
93
+ if (isLeaf) {
94
+ $(this).children("a").click(function() {
95
+ controller.setSideMenuVisible({ visible: !sideMenuVisible });
96
+ });
97
+ }
98
+ });
99
+ }
100
+ function setTabIndexes(root) {
101
+ if (!root) {
102
+ return;
103
+ }
104
+ var $list = root.children("ul");
105
+ var parentTabIndex = root.attr("tabindex");
106
+ var listIndex = parentTabIndex ? parentTabIndex : DEFAULT_TABINDEX;
107
+ setListItemsTabIndex($list, listIndex);
108
+ }
109
+ function setListItemsTabIndex(list, tabIndex) {
110
+ list.attr("tabindex", tabIndex);
111
+ var items = list.find("li");
112
+ each(items, function() {
113
+ var $item = $(this);
114
+ $item.attr("tabindex", tabIndex);
115
+ var anchor = $item.children("a");
116
+ if (anchor.length > 0) {
117
+ var $anchor = $(anchor);
118
+ $anchor.attr("tabindex", -1);
119
+ }
120
+ $item.focus(function() {
121
+ var anchor2 = $item.children("a");
122
+ if (anchor2.length > 0) {
123
+ anchor2.addClass("k-focus");
124
+ }
125
+ });
126
+ $item.blur(function() {
127
+ var anchor2 = $item.children("a");
128
+ if (anchor2.length > 0) {
129
+ anchor2.removeClass("k-focus");
130
+ }
131
+ });
132
+ $item.off("keydown", onItemKeyDown);
133
+ $item.on("keydown", onItemKeyDown);
134
+ });
135
+ }
136
+ function onPanelKeyDown(e) {
137
+ if (e.which == kendo.keys.ENTER) {
138
+ var $item;
139
+ var isSelectedFocusedItem = false;
140
+ var focusedItem = document.activeElement;
141
+ if (focusedItem && focusedItem.localName == "li") {
142
+ var items = panelBar.element.find("li.k-item");
143
+ for (var i = 0; i < items.length; i++) {
144
+ var listItem = items[i];
145
+ if (focusedItem === listItem) {
146
+ $item = $(listItem);
147
+ isSelectedFocusedItem = true;
148
+ break;
149
+ }
150
+ }
151
+ } else {
152
+ $item = panelBar.select();
153
+ }
154
+ if (!$item || !$item.length > 0) {
155
+ return;
156
+ }
157
+ handleItemSelect($item, isSelectedFocusedItem);
158
+ }
159
+ }
160
+ function onItemKeyDown(e) {
161
+ if (e.which == kendo.keys.ENTER) {
162
+ handleItemSelect($(e.target), false);
163
+ }
164
+ }
165
+ function handleItemSelect(item, handleExpandCollapse) {
166
+ if (!item.length > 0) {
167
+ return;
168
+ }
169
+ var isLeaf = item.children("ul").length === 0;
170
+ if (!isLeaf) {
171
+ if (handleExpandCollapse) {
172
+ if (item.hasClass("k-active")) {
173
+ panelBar.collapse(item);
174
+ } else {
175
+ panelBar.expand(item);
176
+ }
177
+ }
178
+ } else {
179
+ var $anchor = item.find("a");
180
+ if ($anchor.length > 0) {
181
+ $anchor[0].click();
182
+ }
183
+ }
184
+ }
185
+ function replaceStringResources() {
186
+ var menuAreas = findMenuArea();
187
+ if (!menuAreas) {
188
+ return;
189
+ }
190
+ each(menuAreas, function() {
191
+ var $menu = $(this);
192
+ var menuItems = $menu.children("li.k-panelbar-header");
193
+ $menu.attr("aria-label", stringResources[$menu.attr("aria-label")]);
194
+ each(menuItems, function() {
195
+ var $menuItem = $(this);
196
+ var $a = $menuItem.find("a");
197
+ $menuItem.attr("aria-label", stringResources[$menuItem.attr("aria-label")]);
198
+ if ($a) {
199
+ var $span = $a.find("span:not(.k-icon)");
200
+ $a.attr("title", stringResources[$a.attr("title")]);
201
+ if ($span) {
202
+ $span.text(stringResources[$span.text()]);
203
+ }
204
+ }
205
+ });
206
+ });
207
+ }
208
+ function findMenuArea() {
209
+ return findElement("div[data-role=telerik_ReportViewer_SideMenu] > ul");
210
+ }
211
+ }
212
+ var pluginName = "telerik_ReportViewer_SideMenu";
213
+ $.fn[pluginName] = function(options, otherOptions) {
214
+ return each(this, function() {
215
+ if (!$.data(this, pluginName)) {
216
+ $.data(this, pluginName, new SideMenu(this, options, otherOptions));
217
+ }
218
+ });
219
+ };
220
+
221
+ export { SideMenu };