@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
@@ -2,6 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('@progress/telerik-common-report-viewer');
5
6
  var stringResources = require('./stringResources.js');
6
7
  var binder = require('./binder.js');
7
8
  var command = require('./command.js');
@@ -12,8 +13,10 @@ function replaceStringResources($sendEmailDialog) {
12
13
  return;
13
14
  }
14
15
  var labels = $sendEmailDialog.find(".trv-replace-string");
15
- var ariaLabel = $sendEmailDialog.find("[aria-label]");
16
+ var ariaLabel = $sendEmailDialog.find("[aria-label]").add($sendEmailDialog);
16
17
  var titles = $sendEmailDialog.find("[title]");
18
+ var requiredMsg = $sendEmailDialog.find("[data-required-msg]");
19
+ var emailMsg = $sendEmailDialog.find("[data-email-msg]");
17
20
  if (labels.length) {
18
21
  Array.from(labels).forEach((element) => {
19
22
  replaceText($(element));
@@ -29,6 +32,16 @@ function replaceStringResources($sendEmailDialog) {
29
32
  replaceAttribute($(element), "title");
30
33
  });
31
34
  }
35
+ if (requiredMsg.length) {
36
+ Array.from(requiredMsg).forEach((element) => {
37
+ replaceAttribute($(element), "data-required-msg");
38
+ });
39
+ }
40
+ if (emailMsg.length) {
41
+ Array.from(emailMsg).forEach((element) => {
42
+ replaceAttribute($(element), "data-email-msg");
43
+ });
44
+ }
32
45
  }
33
46
  function replaceText($el) {
34
47
  if ($el) {
@@ -40,220 +53,210 @@ function replaceAttribute($el, attribute) {
40
53
  $el.attr(attribute, stringResources.stringResources[$el.attr(attribute)]);
41
54
  }
42
55
  }
43
- function SendEmail(placeholder, options, viewerOptions) {
44
- options = $.extend({}, defaultOptions, options);
45
- var controller = options.controller;
46
- var initialized = false;
47
- var dialogVisible = false;
48
- var $placeholder;
49
- var kendoSendEmailDialog;
50
- var selector = viewerOptions.viewerSelector;
51
- var inputFrom;
52
- var inputTo;
53
- var inputCC;
54
- var inputSubject;
55
- var docFormat;
56
- var docFormatEl;
57
- var bodyEditorEl;
58
- var bodyEditor;
59
- var docFormatList;
60
- var optionsCommandSet;
61
- var windowLocation;
62
- var reportViewerWrapper = $("[data-selector='" + selector + "']").find(".trv-report-viewer");
63
- if (!controller) {
64
- throw "No controller (telerikReporting.ReportViewerController) has been specified.";
65
- }
66
- if (!viewerOptions.sendEmail || !viewerOptions.sendEmail.enabled) {
67
- var toolbarSendEmailItem = $("[data-selector='" + selector + "']").find("a[data-command='telerik_ReportViewer_toggleSendEmailDialog']").closest(".k-item ");
68
- toolbarSendEmailItem.hide();
69
- return;
70
- }
71
- controller.beginLoadReport(closeAndClear).viewModeChanged(closeAndClear);
72
- controller.getSendEmailDialogState(function(event, args) {
73
- args.visible = dialogVisible;
74
- }).setSendEmailDialogVisible(function(event, args) {
75
- toggle(args.visible);
76
- }).setSearchDialogVisible(function(event, args) {
77
- if (args.visible && dialogVisible) {
78
- toggle(!dialogVisible);
56
+ class SendEmail {
57
+ // #region fields
58
+ // #endregion
59
+ // #region constructor
60
+ constructor(element, options, viewerOptions) {
61
+ this.options = $.extend({}, defaultOptions, options);
62
+ this.viewerOptions = viewerOptions;
63
+ this.element = element;
64
+ this.$element = $(element);
65
+ this.viewerElement = $(`[data-selector='${this.viewerOptions.viewerSelector}']`);
66
+ this.viewer = this.viewerElement.data("telerik_ReportViewer");
67
+ this.controller = this.options.controller;
68
+ this.notificationService = options.notificationService;
69
+ this.initialized = false;
70
+ this.dialogVisible = false;
71
+ this.kendoSendEmailDialog;
72
+ this.inputFrom;
73
+ this.inputTo;
74
+ this.inputCC;
75
+ this.inputSubject;
76
+ this.docFormat;
77
+ this.docFormatEl;
78
+ this.bodyEditorEl;
79
+ this.bodyEditor;
80
+ this.docFormatList;
81
+ this.optionsCommandSet;
82
+ this.windowLocation;
83
+ if (!this.controller) {
84
+ throw "No controller (telerikReporting.ReportViewerController) has been specified.";
79
85
  }
80
- });
81
- controller.getDocumentFormats().then(function(formats) {
82
- docFormatList = formats;
83
- });
84
- function closeAndClear() {
85
- toggle(false);
86
- }
87
- function toggle(show) {
88
- dialogVisible = show;
89
- if (show) {
90
- ensureInitialized();
91
- setDefaultValues(viewerOptions.sendEmail);
92
- kendoSendEmailDialog.open();
93
- } else {
94
- if (kendoSendEmailDialog && kendoSendEmailDialog.options.visible) {
95
- kendoSendEmailDialog.close();
96
- }
86
+ if (!this.notificationService) {
87
+ throw "No notificationService (telerikReporting.NotificationService) has been specified.";
97
88
  }
89
+ if (!this.viewerOptions.sendEmail || !this.viewerOptions.sendEmail.enabled) {
90
+ this.viewerElement.find("[data-command='toggleSendEmailDialog']").addClass("send-email-hidden");
91
+ return;
92
+ }
93
+ this.init();
98
94
  }
99
- function getBody() {
100
- return bodyEditor ? bodyEditor.value() : "";
95
+ // #endregion
96
+ // #region methods
97
+ init() {
98
+ if (this.initialized) {
99
+ return;
100
+ }
101
+ replaceStringResources(this.$element);
102
+ this.controller.getDocumentFormats().then((formats) => {
103
+ this.docFormatList = formats;
104
+ this.docFormat?.setDataSource(this.docFormatList);
105
+ });
106
+ this._initDialog();
107
+ this._initInputFields();
108
+ this._attachCommands();
109
+ this._attachEvents();
110
+ this.initialized = true;
101
111
  }
102
- function ensureInitialized() {
103
- if (!initialized) {
104
- $placeholder = $(placeholder);
105
- inputFrom = $placeholder.find("[name='from']");
106
- inputTo = $placeholder.find("[name='to']");
107
- inputCC = $placeholder.find("[name='cc']");
108
- inputSubject = $placeholder.find("[name='subject']");
109
- docFormatEl = $placeholder.find("[name='format']");
110
- bodyEditorEl = $placeholder.find("textarea");
111
- setAttrs();
112
- initCommands();
113
- replaceStringResources($placeholder);
114
- try {
115
- kendoSendEmailDialog = reportViewerWrapper.find(".trv-send-email-window").kendoWindow({
116
- title: stringResources.stringResources.sendEmailDialogTitle,
117
- minWidth: 350,
118
- minHeight: 350,
119
- maxHeight: 900,
120
- modal: true,
121
- close: function() {
122
- storeDialogPosition();
123
- clearValidation();
124
- },
125
- open: function() {
126
- adjustDialogSize();
127
- adjustDialogPosition();
128
- },
129
- deactivate: function() {
130
- controller.setSendEmailDialogVisible({
131
- visible: false
132
- });
133
- },
134
- activate: function() {
135
- kendoSendEmailDialog.wrapper.find(".trv-send-email-fields input[type='email']:visible").first().focus();
136
- setTimeout(function() {
137
- setValidation();
138
- }, 250);
139
- }
140
- }).data("kendoWindow");
141
- } catch (error) {
142
- console.error("Instantiation of Kendo Window for Send Email dialog threw an exception", error);
143
- throw error;
112
+ _attachEvents() {
113
+ this.controller.on("beginLoadReport", this.close.bind(this)).on("viewModeChanged", this.close.bind(this));
114
+ this.notificationService.getSendEmailDialogState((event, args) => {
115
+ args.visible = this.dialogVisible;
116
+ }).setSendEmailDialogVisible((event, args) => {
117
+ if (args.visible === true) {
118
+ this.open();
119
+ } else {
120
+ this.close();
144
121
  }
145
- kendoSendEmailDialog.wrapper.addClass("trv-send-email");
146
- try {
147
- docFormat = docFormatEl.kendoComboBox({
148
- dataTextField: "localizedName",
149
- dataValueField: "name",
150
- dataSource: docFormatList || [],
151
- filter: "startswith",
152
- dataBound: function() {
153
- this.select(0);
154
- this.trigger("change");
155
- }
156
- }).data("kendoComboBox");
157
- } catch (error) {
158
- console.error("Instantiation of Kendo ComboBox as document format selector threw an exception", error);
159
- throw error;
122
+ }).setSearchDialogVisible((event, args) => {
123
+ if (args.visible && this.dialogVisible) {
124
+ this.close();
160
125
  }
161
- $placeholder.on("keydown", '[name="format_input"]', function(event) {
162
- var tabkey = 9;
163
- if (event.keyCode === tabkey && bodyEditor) {
164
- setTimeout(function() {
165
- bodyEditor.focus();
166
- });
167
- }
168
- });
169
- try {
170
- bodyEditor = bodyEditorEl.kendoEditor({
171
- tools: [
172
- "bold",
173
- "italic",
174
- "underline",
175
- "strikethrough",
176
- "justifyLeft",
177
- "justifyCenter",
178
- "justifyRight",
179
- "justifyFull",
180
- "insertUnorderedList",
181
- "insertOrderedList",
182
- "indent",
183
- "outdent",
184
- "createLink",
185
- "unlink",
186
- "cleanFormatting",
187
- "formatting",
188
- "fontName",
189
- "fontSize",
190
- "foreColor",
191
- "backColor",
192
- "subscript",
193
- "superscript"
194
- ]
195
- }).data("kendoEditor");
196
- } catch (error) {
197
- console.error("Instantiation of Kendo Editor for Email body editor threw an exception", error);
198
- throw error;
126
+ });
127
+ $(window).on("resize", () => {
128
+ if (this.kendoSendEmailDialog && this.kendoSendEmailDialog.options.visible) {
129
+ this.storeDialogPosition();
130
+ this.adjustDialogPosition();
199
131
  }
200
- setDefaultValues(viewerOptions.sendEmail);
201
- initialized = true;
202
- }
132
+ });
203
133
  }
204
- $(window).resize(function() {
205
- if (kendoSendEmailDialog && kendoSendEmailDialog.options.visible) {
206
- storeDialogPosition();
207
- adjustDialogSize();
208
- adjustDialogPosition();
134
+ open() {
135
+ this.dialogVisible = true;
136
+ this.kendoSendEmailDialog.open();
137
+ }
138
+ close() {
139
+ this.dialogVisible = false;
140
+ if (this.kendoSendEmailDialog && this.kendoSendEmailDialog.options.visible) {
141
+ this.kendoSendEmailDialog.close();
209
142
  }
210
- });
211
- function setAttrs() {
212
- $placeholder.find(".trv-send-email-field input").each(function() {
213
- var el = $(this);
214
- var attrName = el.attr("name");
215
- el.attr("id", selector + "-" + attrName);
216
- });
217
- $placeholder.find(".trv-send-email-label label").each(function() {
218
- var el = $(this);
219
- var attrName = el.attr("for");
220
- el.attr("for", selector + "-" + attrName);
143
+ }
144
+ getBody() {
145
+ return this.bodyEditor ? this.bodyEditor.value() : "";
146
+ }
147
+ _initDialog() {
148
+ this.kendoSendEmailDialog = new kendo.ui.Window(this.element, {
149
+ title: stringResources.stringResources.sendEmailDialogTitle,
150
+ visible: false,
151
+ width: 800,
152
+ minWidth: 350,
153
+ minHeight: 350,
154
+ modal: true,
155
+ close: () => {
156
+ this.storeDialogPosition();
157
+ this.kendoValidator.reset();
158
+ },
159
+ open: () => {
160
+ this.adjustDialogPosition();
161
+ },
162
+ deactivate: () => {
163
+ this.notificationService.setSendEmailDialogVisible({
164
+ visible: false
165
+ });
166
+ },
167
+ activate: () => {
168
+ this.inputFrom.focus();
169
+ setTimeout(() => {
170
+ this.setValidation();
171
+ }, 250);
172
+ }
221
173
  });
174
+ this.kendoSendEmailDialog.element.removeClass("trv-send-email-dialog k-hidden");
175
+ this.kendoSendEmailDialog.wrapper.addClass("trv-send-email-dialog");
222
176
  }
223
- function storeDialogPosition() {
224
- var kendoWindow = kendoSendEmailDialog.element.parent(".k-window");
225
- windowLocation = kendoWindow.offset();
177
+ _initInputFields() {
178
+ const prefix = this.viewerOptions.viewerSelector;
179
+ this.setAttrs();
180
+ this.inputFrom = new kendo.ui.TextBox(this.element.querySelector(`[name="${prefix}-from"]`), {});
181
+ this.inputTo = new kendo.ui.TextBox(this.element.querySelector(`[name="${prefix}-to"]`), {});
182
+ this.inputCC = new kendo.ui.TextBox(this.element.querySelector(`[name="${prefix}-cc"]`), {});
183
+ this.inputSubject = new kendo.ui.TextBox(this.element.querySelector(`[name="${prefix}-subject"]`), {});
184
+ this.docFormat = new kendo.ui.ComboBox(this.element.querySelector(`[name="${prefix}-format"]`), {
185
+ dataTextField: "localizedName",
186
+ dataValueField: "name",
187
+ dataSource: this.docFormatList || [],
188
+ filter: "startswith",
189
+ dataBound: (event) => {
190
+ event.sender.select(0);
191
+ event.sender.trigger("change");
192
+ }
193
+ });
194
+ this.bodyEditor = new kendo.ui.Editor(this.element.querySelector(`[name="${prefix}-emailBody"]`), {
195
+ tools: [
196
+ "bold",
197
+ "italic",
198
+ "underline",
199
+ "strikethrough",
200
+ "justifyLeft",
201
+ "justifyCenter",
202
+ "justifyRight",
203
+ "justifyFull",
204
+ "insertUnorderedList",
205
+ "insertOrderedList",
206
+ "indent",
207
+ "outdent",
208
+ "createLink",
209
+ "unlink",
210
+ "cleanFormatting",
211
+ "formatting",
212
+ "fontName",
213
+ "fontSize",
214
+ "foreColor",
215
+ "backColor",
216
+ "subscript",
217
+ "superscript"
218
+ ]
219
+ });
220
+ this.kendoValidator = new kendo.ui.Validator(this.element.querySelector(".trv-send-email-fields"), {});
226
221
  }
227
- function adjustDialogSize() {
228
- var kendoWindow = kendoSendEmailDialog.element.parent(".k-window");
229
- var windowWidth = $(window).width();
230
- var kendoWindowWidth = 350;
231
- if (windowWidth > 800) {
232
- kendoWindowWidth = 720;
233
- }
234
- kendoWindow.css({ width: kendoWindowWidth });
235
- kendoSendEmailDialog.refresh({
236
- width: kendoWindowWidth
222
+ setAttrs() {
223
+ const prefix = this.viewerOptions.viewerSelector;
224
+ Array.from(this.element.querySelectorAll(".trv-send-email-field input, .trv-send-email-field textarea")).forEach((element) => {
225
+ var attrName = element.getAttribute("name");
226
+ if (attrName === null) {
227
+ return;
228
+ }
229
+ element.setAttribute("id", `${prefix}-${attrName}`);
230
+ element.setAttribute("name", `${prefix}-${attrName}`);
231
+ });
232
+ Array.from(this.element.querySelectorAll(".trv-send-email-label label")).forEach((element) => {
233
+ var attrFor = element.getAttribute("for");
234
+ if (attrFor === null) {
235
+ return;
236
+ }
237
+ element.setAttribute("for", `${prefix}-${attrFor}`);
237
238
  });
238
239
  }
239
- function adjustDialogPosition() {
240
- if (!windowLocation) {
241
- kendoSendEmailDialog.center();
240
+ storeDialogPosition() {
241
+ var kendoWindow = this.kendoSendEmailDialog.element.parent(".k-window");
242
+ this.windowLocation = kendoWindow.offset();
243
+ }
244
+ adjustDialogPosition() {
245
+ var windowWidth = $(window).innerWidth();
246
+ var windowHeight = $(window).innerHeight();
247
+ var width = this.kendoSendEmailDialog.wrapper.outerWidth(true);
248
+ var height = this.kendoSendEmailDialog.wrapper.outerHeight(true);
249
+ var padding = 10;
250
+ if (!this.windowLocation) {
251
+ this.kendoSendEmailDialog.center();
242
252
  } else {
243
- var padding = 10;
244
- var windowWidth = $(window).innerWidth();
245
- var windowHeight = $(window).innerHeight();
246
- var kendoWindow = kendoSendEmailDialog.wrapper;
247
- var width = kendoWindow.outerWidth(true);
248
- var height = kendoWindow.outerHeight(true);
249
- var left = windowLocation.left;
250
- var top = windowLocation.top;
253
+ var left = this.windowLocation.left;
254
+ var top = this.windowLocation.top;
251
255
  var right = left + width;
252
256
  var bottom = top + height;
253
257
  if (right > windowWidth - padding) {
254
258
  left = Math.max(padding, windowWidth - width - padding);
255
- kendoWindow.css({ left });
256
- kendoSendEmailDialog.setOptions({
259
+ this.kendoSendEmailDialog.setOptions({
257
260
  position: {
258
261
  left
259
262
  }
@@ -261,8 +264,7 @@ function SendEmail(placeholder, options, viewerOptions) {
261
264
  }
262
265
  if (bottom > windowHeight - padding) {
263
266
  top = Math.max(padding, windowHeight - height - padding);
264
- kendoWindow.css({ top });
265
- kendoSendEmailDialog.setOptions({
267
+ this.kendoSendEmailDialog.setOptions({
266
268
  position: {
267
269
  top
268
270
  }
@@ -270,123 +272,116 @@ function SendEmail(placeholder, options, viewerOptions) {
270
272
  }
271
273
  }
272
274
  }
273
- function initCommands() {
274
- optionsCommandSet = {
275
- "sendEmail_Cancel": new command.Command(function() {
276
- closeWindow();
275
+ _attachCommands() {
276
+ this.optionsCommandSet = {
277
+ "sendEmail_Cancel": new command.Command(() => {
278
+ this.close();
277
279
  }),
278
- "sendEmail_Send": new command.Command(function() {
279
- sendingEmail();
280
+ "sendEmail_Send": new command.Command(() => {
281
+ this.sendingEmail();
280
282
  })
281
283
  };
282
- binder.Binder.attachCommands($placeholder.find(".trv-send-email-actions"), optionsCommandSet, viewerOptions);
284
+ binder.Binder.attachCommands(this.$element.find(".trv-send-email-actions"), this.optionsCommandSet, this.viewerOptions);
283
285
  }
284
- function sendingEmail(cmd, args) {
286
+ sendingEmail(cmd, args) {
285
287
  var sendEmailArgs = {
286
- from: inputFrom.val(),
287
- to: inputTo.val(),
288
- cc: inputCC.val(),
289
- subject: inputSubject.val(),
290
- format: docFormat.value(),
291
- body: getBody(),
288
+ from: this.inputFrom.value(),
289
+ to: this.inputTo.value(),
290
+ cc: this.inputCC.value(),
291
+ subject: this.inputSubject.value(),
292
+ format: this.docFormat.value(),
293
+ body: this.getBody(),
292
294
  deviceInfo: {}
293
295
  };
294
- if (validateFields()) {
295
- controller.sendReport(sendEmailArgs);
296
- closeWindow();
296
+ if (this.validateFields()) {
297
+ this.controller.sendReport(sendEmailArgs);
298
+ this.close();
297
299
  }
298
300
  }
299
- function setValidation() {
300
- inputFrom.off("blur").on("blur", function(event) {
301
- if (!isEmpty($(this))) {
302
- isValidEmail($(this), false);
301
+ setValidation() {
302
+ this.inputFrom.element.off("blur").on("blur", () => {
303
+ if (!this.isEmpty(this.inputFrom)) {
304
+ this.isValidEmail(this.inputFrom, false);
303
305
  }
304
306
  });
305
- inputTo.off("blur").on("blur", function(event) {
306
- if (!isEmpty($(this))) {
307
- isValidEmail($(this), true);
307
+ this.inputTo.element.off("blur").on("blur", () => {
308
+ if (!this.isEmpty(this.inputTo)) {
309
+ this.isValidEmail(this.inputTo, true);
308
310
  }
309
311
  });
310
- inputCC.off("blur").on("blur", function(event) {
311
- if ($(this).val().length) {
312
- isValidEmail($(this), true);
312
+ this.inputCC.element.off("blur").on("blur", () => {
313
+ if (this.inputCC.value().toString().length) {
314
+ this.isValidEmail(this.inputCC, true);
313
315
  } else {
314
- hideError($(this));
316
+ this.hideError(this.inputCC.element);
315
317
  }
316
318
  });
317
319
  }
318
- function validateFields() {
319
- var fromIsValid = isEmpty(inputFrom) || !isValidEmail(inputFrom, false);
320
- var toIsValid = isEmpty(inputTo) || !isValidEmail(inputTo, true);
321
- var ccIsValid = inputCC.val().length && !isValidEmail(inputCC, true);
322
- var hasFormat = docFormat.value().length;
320
+ validateFields() {
321
+ var fromIsValid = !this.isEmpty(this.inputFrom) && this.isValidEmail(this.inputFrom, false);
322
+ var toIsValid = !this.isEmpty(this.inputTo) && this.isValidEmail(this.inputTo, true);
323
+ var ccIsValid = this.isEmpty(this.inputCC) || this.isValidEmail(this.inputCC, true);
324
+ var hasFormat = this.docFormat.value().length > 0;
323
325
  if (!hasFormat) {
324
- showError(docFormatEl, "data-required-msg");
326
+ this.showError(this.docFormat.element, "data-required-msg");
325
327
  }
326
- if (fromIsValid || toIsValid || ccIsValid || !hasFormat) {
327
- return false;
328
- }
329
- return true;
328
+ return fromIsValid && toIsValid && ccIsValid && hasFormat;
330
329
  }
331
- function setDefaultValues(sendEmail) {
332
- inputFrom.val(sendEmail && sendEmail.from || "");
333
- inputTo.val(sendEmail && sendEmail.to || "");
334
- inputCC.val(sendEmail && sendEmail.cc || "");
335
- inputSubject.val(sendEmail && sendEmail.subject || "");
330
+ setDefaultValues(sendEmail) {
331
+ this.inputFrom.value(sendEmail && sendEmail.from || "");
332
+ this.inputTo.value(sendEmail && sendEmail.to || "");
333
+ this.inputCC.value(sendEmail && sendEmail.cc || "");
334
+ this.inputSubject.value(sendEmail && sendEmail.subject || "");
336
335
  if (sendEmail && sendEmail.format) {
337
- docFormat.value(sendEmail.format);
336
+ this.docFormat.value(sendEmail.format);
338
337
  } else {
339
- docFormat.select(0);
338
+ this.docFormat.select(0);
340
339
  }
341
- docFormat.trigger("change");
342
- bodyEditor.value(sendEmail && sendEmail.body || "");
340
+ this.docFormat.trigger("change");
341
+ this.bodyEditor.value(sendEmail && sendEmail.body || "");
343
342
  }
344
- function isEmpty($el) {
345
- if (!$el.val().length) {
346
- showError($el, "data-required-msg");
343
+ isEmpty(input) {
344
+ var $el = input.element;
345
+ if (!input.value().length) {
346
+ this.showError($el, "data-required-msg");
347
347
  return true;
348
348
  }
349
- hideError($el);
349
+ this.hideError($el);
350
350
  return false;
351
351
  }
352
- function showError($el, tag) {
352
+ showError($el, tag) {
353
353
  var validationMsg = stringResources.stringResources[$el.attr(tag)];
354
354
  $('[data-for="' + $el.attr("name") + '"]').addClass("-visible").text(validationMsg);
355
355
  }
356
- function hideError($el) {
356
+ hideError($el) {
357
357
  $('[data-for="' + $el.attr("name") + '"]').removeClass("-visible");
358
358
  }
359
- function isValidEmail($el, moreThenOneEmail) {
360
- var inputValue = $el.val();
359
+ isValidEmail(input, moreThenOneEmail) {
360
+ var inputValue = input.value();
361
+ var $el = input.element;
361
362
  if (moreThenOneEmail) {
362
363
  var listEmailsAddress = inputValue.split(/[\s,;]+/);
363
364
  for (var i = 0; i < listEmailsAddress.length; i++) {
364
- if (!_validateEmail(listEmailsAddress[i].trim(), $el)) {
365
+ if (!this._validateEmail(listEmailsAddress[i].trim(), $el)) {
365
366
  return false;
366
367
  }
367
368
  }
368
369
  return true;
369
370
  }
370
- return _validateEmail(inputValue, $el);
371
+ return this._validateEmail(inputValue, $el);
371
372
  }
372
- function _validateEmail(email, $el) {
373
+ _validateEmail(email, $el) {
373
374
  var regexEmail = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
374
375
  if (email.indexOf(",") > -1 || email.indexOf(";") > -1) {
375
- showError($el, "data-single-email-msg");
376
+ this.showError($el, "data-single-email-msg");
376
377
  return false;
377
378
  }
378
379
  if (!regexEmail.test(email)) {
379
- showError($el, "data-email-msg");
380
+ this.showError($el, "data-email-msg");
380
381
  return false;
381
382
  }
382
383
  return true;
383
384
  }
384
- function closeWindow() {
385
- kendoSendEmailDialog.close();
386
- }
387
- function clearValidation() {
388
- $(".k-invalid-msg").removeClass("-visible");
389
- }
390
385
  }
391
386
 
392
387
  exports.SendEmail = SendEmail;
@@ -29,7 +29,7 @@ function ServiceClientSentinel(serviceClient, clientID, sessionTimeoutSeconds) {
29
29
  return;
30
30
  }
31
31
  pingMilliseconds = Math.min(pingMilliseconds, 2147483647);
32
- interval = setInterval(function() {
32
+ interval = setInterval(() => {
33
33
  serviceClient.keepClientAlive(clientID);
34
34
  }, pingMilliseconds);
35
35
  }