@syncfusion/ej2-inputs 32.2.8 → 33.1.44

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.
@@ -116,27 +116,29 @@ var Input;
116
116
  args.element.addEventListener('focus', focusHandler);
117
117
  args.element.addEventListener('blur', blurHandler);
118
118
  args.element.addEventListener('input', inputHandler);
119
- args.element.__eventHandlers['inputFocusHandler'] = { focusHandler };
120
- args.element.__eventHandlers['inputBlurHandler'] = { blurHandler };
121
- args.element.__eventHandlers['inputHandler'] = { inputHandler };
119
+ args.element.__eventHandlers.inputFocusHandler = focusHandler;
120
+ args.element.__eventHandlers.inputBlurHandler = blurHandler;
121
+ args.element.__eventHandlers.inputHandler = inputHandler;
122
122
  }
123
123
  Input.bindInitialEvent = bindInitialEvent;
124
124
  function unbindInitialEvent(args) {
125
125
  if (!isNullOrUndefined(args.element)) {
126
126
  if (!isNullOrUndefined(args.element.__eventHandlers)) {
127
- if (!isNullOrUndefined(args.element.__eventHandlers['inputFocusHandler'])
128
- && !isNullOrUndefined(args.element.__eventHandlers['inputBlurHandler'])
129
- && !isNullOrUndefined(args.element.__eventHandlers['inputHandler'])) {
130
- const focusHandler = args.element.__eventHandlers['inputFocusHandler'].focusHandler;
131
- const blurHandler = args.element.__eventHandlers['inputBlurHandler'].blurHandler;
132
- const inputHandler = args.element.__eventHandlers['inputHandler'].inputHandler;
127
+ if (!isNullOrUndefined(args.element.__eventHandlers.inputFocusHandler)
128
+ && !isNullOrUndefined(args.element.__eventHandlers.inputBlurHandler)
129
+ && !isNullOrUndefined(args.element.__eventHandlers.inputHandler)) {
130
+ const focusHandler = args.element
131
+ .__eventHandlers.inputFocusHandler;
132
+ const blurHandler = args.element
133
+ .__eventHandlers.inputBlurHandler;
134
+ const inputHandler = args.element.__eventHandlers.inputHandler;
133
135
  args.element.removeEventListener('focus', focusHandler);
134
136
  args.element.removeEventListener('blur', blurHandler);
135
137
  args.element.removeEventListener('input', inputHandler);
136
138
  // Clean up stored bound functions
137
- delete args.element.__eventHandlers['inputFocusHandler'];
138
- delete args.element.__eventHandlers['inputBlurHandler'];
139
- delete args.element.__eventHandlers['inputHandler'];
139
+ args.element.__eventHandlers.inputFocusHandler = null;
140
+ args.element.__eventHandlers.inputBlurHandler = null;
141
+ args.element.__eventHandlers.inputHandler = null;
140
142
  }
141
143
  }
142
144
  }
@@ -261,8 +263,8 @@ var Input;
261
263
  args.element.addEventListener('input', inputFloatHandler);
262
264
  args.element.addEventListener('blur', blurFloatHandler);
263
265
  // Store the event handler functions to remove them later
264
- args.element.__eventHandlers['floatInputHandler'] = { inputFloatHandler };
265
- args.element.__eventHandlers['floatBlurHandler'] = { blurFloatHandler };
266
+ args.element.__eventHandlers.floatInputHandler = inputFloatHandler;
267
+ args.element.__eventHandlers.floatBlurHandler = blurFloatHandler;
266
268
  }
267
269
  else {
268
270
  unWireFloatLabelEvents(args);
@@ -274,16 +276,16 @@ var Input;
274
276
  function unWireFloatLabelEvents(args) {
275
277
  if (!isNullOrUndefined(args.element) &&
276
278
  !isNullOrUndefined(args.element.__eventHandlers)
277
- && !isNullOrUndefined(args.element.__eventHandlers['floatInputHandler'])
278
- && !isNullOrUndefined(args.element.__eventHandlers['floatBlurHandler'])) {
279
- const inputFloatHandler = args.element.__eventHandlers['floatInputHandler'].inputFloatHandler;
280
- const blurFloatHandler = args.element.__eventHandlers['floatBlurHandler'].blurFloatHandler;
279
+ && !isNullOrUndefined(args.element.__eventHandlers.floatInputHandler)
280
+ && !isNullOrUndefined(args.element.__eventHandlers.floatBlurHandler)) {
281
+ const inputFloatHandler = args.element.__eventHandlers.floatInputHandler;
282
+ const blurFloatHandler = args.element.__eventHandlers.floatBlurHandler;
281
283
  // Remove the event listeners using the defined functions
282
284
  args.element.removeEventListener('input', inputFloatHandler);
283
285
  args.element.removeEventListener('blur', blurFloatHandler);
284
286
  // Clean up stored event handler functions
285
- delete args.element.__eventHandlers['floatInputHandler'];
286
- delete args.element.__eventHandlers['floatBlurHandler'];
287
+ args.element.__eventHandlers.floatInputHandler = null;
288
+ args.element.__eventHandlers.floatBlurHandler = null;
287
289
  }
288
290
  }
289
291
  function checkFloatLabelType(type, container) {
@@ -400,7 +402,7 @@ var Input;
400
402
  if (isBindClearAction === undefined || isBindClearAction) {
401
403
  const clickHandlerEvent = (e) => clickHandler(e, element, button);
402
404
  button.addEventListener('click', clickHandlerEvent);
403
- element.__eventHandlers['clearClickHandler'] = { clickHandlerEvent };
405
+ element.__eventHandlers.clearClickHandler = clickHandlerEvent;
404
406
  }
405
407
  const inputHandlerEvent = () => inputHandler(element, button);
406
408
  const focusHandlerEvent = () => focusHandler(element, button);
@@ -409,36 +411,36 @@ var Input;
409
411
  element.addEventListener('focus', focusHandlerEvent);
410
412
  element.addEventListener('blur', blurHandlerEvent);
411
413
  // Store the bound functions to remove them later
412
- element.__eventHandlers['clearInputHandler'] = { inputHandlerEvent };
413
- element.__eventHandlers['clearFocusHandler'] = { focusHandlerEvent };
414
- element.__eventHandlers['clearBlurHandler'] = { blurHandlerEvent };
414
+ element.__eventHandlers.clearInputHandler = inputHandlerEvent;
415
+ element.__eventHandlers.clearFocusHandler = focusHandlerEvent;
416
+ element.__eventHandlers.clearBlurHandler = blurHandlerEvent;
415
417
  }
416
418
  Input.wireClearBtnEvents = wireClearBtnEvents;
417
419
  function unWireClearBtnEvents(element, button) {
418
420
  if (!isNullOrUndefined(element) &&
419
421
  !isNullOrUndefined(element.__eventHandlers)) {
420
- if (!isNullOrUndefined(element.__eventHandlers['clearClickHandler'])) {
421
- const clickHandlerEvent = element.__eventHandlers['clearClickHandler'].clickHandlerEvent;
422
+ if (!isNullOrUndefined(element.__eventHandlers.clearClickHandler)) {
423
+ const clickHandlerEvent = element.__eventHandlers.clearClickHandler;
422
424
  if (isBindClearAction === undefined || isBindClearAction) {
423
425
  if (!isNullOrUndefined(button)) {
424
426
  button.removeEventListener('click', clickHandlerEvent);
425
427
  }
426
428
  }
427
- delete element.__eventHandlers['clearClickHandler'];
429
+ element.__eventHandlers.clearClickHandler = null;
428
430
  }
429
- if (!isNullOrUndefined(element.__eventHandlers['clearInputHandler'])
430
- && !isNullOrUndefined(element.__eventHandlers['clearFocusHandler'])
431
- && !isNullOrUndefined(element.__eventHandlers['clearBlurHandler'])) {
432
- const inputHandlerEvent = element.__eventHandlers['clearInputHandler'].inputHandlerEvent;
433
- const focusHandlerEvent = element.__eventHandlers['clearFocusHandler'].focusHandlerEvent;
434
- const blurHandlerEvent = element.__eventHandlers['clearBlurHandler'].blurHandlerEvent;
431
+ if (!isNullOrUndefined(element.__eventHandlers.clearInputHandler)
432
+ && !isNullOrUndefined(element.__eventHandlers.clearFocusHandler)
433
+ && !isNullOrUndefined(element.__eventHandlers.clearBlurHandler)) {
434
+ const inputHandlerEvent = element.__eventHandlers.clearInputHandler;
435
+ const focusHandlerEvent = element.__eventHandlers.clearFocusHandler;
436
+ const blurHandlerEvent = element.__eventHandlers.clearBlurHandler;
435
437
  element.removeEventListener('input', inputHandlerEvent);
436
438
  element.removeEventListener('focus', focusHandlerEvent);
437
439
  element.removeEventListener('blur', blurHandlerEvent);
438
440
  // Clean up stored Event functions
439
- delete element.__eventHandlers['clearInputHandler'];
440
- delete element.__eventHandlers['clearFocusHandler'];
441
- delete element.__eventHandlers['clearBlurHandler'];
441
+ element.__eventHandlers.clearInputHandler = null;
442
+ element.__eventHandlers.clearFocusHandler = null;
443
+ element.__eventHandlers.clearBlurHandler = null;
442
444
  }
443
445
  }
444
446
  }
@@ -615,7 +617,11 @@ var Input;
615
617
  * @param {string} placeholder - Placeholder value which is need to add.
616
618
  * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the placeholder is need to add.
617
619
  */
618
- function setPlaceholder(placeholder, element) {
620
+ function setPlaceholder(placeholder, element, moduleName) {
621
+ const modules = [
622
+ 'textbox', 'numerictextbox', 'textarea', 'combobox',
623
+ 'datepicker', 'daterangepicker', 'datetimepicker'
624
+ ];
619
625
  placeholder = encodePlaceHolder(placeholder);
620
626
  const parentElement = getParentNode(element);
621
627
  if (parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {
@@ -624,6 +630,9 @@ var Input;
624
630
  if (floatTextContent && floatTextContent.children[0]) {
625
631
  floatTextContent.children[0].textContent = placeholder;
626
632
  }
633
+ else if (modules.indexOf(moduleName) !== -1 && floatTextContent) {
634
+ floatTextContent.textContent = placeholder;
635
+ }
627
636
  else {
628
637
  const floatText = parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0];
629
638
  if (!isNullOrUndefined(floatText)) {
@@ -2454,7 +2463,7 @@ let NumericTextBox = class NumericTextBox extends Component {
2454
2463
  Input.validateInputType(this.container, this.element);
2455
2464
  break;
2456
2465
  case 'placeholder':
2457
- Input.setPlaceholder(newProp.placeholder, this.element);
2466
+ Input.setPlaceholder(newProp.placeholder, this.element, this.getModuleName());
2458
2467
  Input.calculateWidth(this.element, this.container);
2459
2468
  break;
2460
2469
  case 'step':
@@ -8714,6 +8723,7 @@ let Uploader = class Uploader extends Component {
8714
8723
  }
8715
8724
  }
8716
8725
  }
8726
+ element = null;
8717
8727
  }
8718
8728
  reRenderFileList() {
8719
8729
  if (this.listParent) {
@@ -9030,6 +9040,7 @@ let Uploader = class Uploader extends Component {
9030
9040
  if (!enableDropText && dropTextArea) {
9031
9041
  remove(dropTextArea);
9032
9042
  }
9043
+ element = null;
9033
9044
  }
9034
9045
  else if (!isNullOrUndefined(this.uploaderOptions) && this.uploaderOptions.dropArea === undefined) {
9035
9046
  this.createDropTextHint();
@@ -9338,7 +9349,7 @@ let Uploader = class Uploader extends Component {
9338
9349
  }
9339
9350
  getSelectedFiles(index) {
9340
9351
  const data = [];
9341
- const liElement = this.fileList[index];
9352
+ let liElement = this.fileList[index];
9342
9353
  const allFiles = this.getFilesData();
9343
9354
  const nameElements = +liElement.getAttribute('data-files-count');
9344
9355
  let startIndex = 0;
@@ -9348,15 +9359,16 @@ let Uploader = class Uploader extends Component {
9348
9359
  for (let j = startIndex; j < (startIndex + nameElements); j++) {
9349
9360
  data.push(allFiles[j]);
9350
9361
  }
9362
+ liElement = null;
9351
9363
  return data;
9352
9364
  }
9353
9365
  removeFiles(args) {
9354
9366
  if (!this.enabled) {
9355
9367
  return;
9356
9368
  }
9357
- const selectedElement = args.target.parentElement;
9369
+ let selectedElement = args.target.parentElement;
9358
9370
  const index = this.fileList.indexOf(selectedElement);
9359
- const liElement = this.fileList[index];
9371
+ let liElement = this.fileList[index];
9360
9372
  const formUpload = this.isFormUpload();
9361
9373
  const fileData = formUpload ? this.getSelectedFiles(index) : this.getFilesInArray(this.filesData[index]);
9362
9374
  if (isNullOrUndefined(fileData)) {
@@ -9391,6 +9403,8 @@ let Uploader = class Uploader extends Component {
9391
9403
  this.clearButton.removeAttribute('disabled');
9392
9404
  }
9393
9405
  }
9406
+ liElement = null;
9407
+ selectedElement = null;
9394
9408
  }
9395
9409
  removeFilesData(file, customTemplate) {
9396
9410
  let index;
@@ -9406,6 +9420,10 @@ let Uploader = class Uploader extends Component {
9406
9420
  return;
9407
9421
  }
9408
9422
  this.element.value = '';
9423
+ const iconElement = selectedElement.querySelector('.e-icons');
9424
+ if (iconElement) {
9425
+ EventHandler.remove(iconElement, 'click', this.removeFiles);
9426
+ }
9409
9427
  detach(selectedElement);
9410
9428
  index = this.fileList.indexOf(selectedElement);
9411
9429
  this.fileList.splice(index, 1);
@@ -9457,7 +9475,7 @@ let Uploader = class Uploader extends Component {
9457
9475
  removingEventCallback(eventArgs, formData, selectedFiles, file) {
9458
9476
  /* istanbul ignore next */
9459
9477
  const name = this.element.getAttribute('name');
9460
- const liElement = this.getLiElement(file);
9478
+ let liElement = this.getLiElement(file);
9461
9479
  if (!isNullOrUndefined(liElement) && (!isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON)) ||
9462
9480
  !isNullOrUndefined(liElement.querySelector('.' + REMOVE_ICON)))) {
9463
9481
  const spinnerTarget = liElement.querySelector('.' + DELETE_ICON) ?
@@ -9473,6 +9491,7 @@ let Uploader = class Uploader extends Component {
9473
9491
  formData.append(name, selectedFiles.name);
9474
9492
  }
9475
9493
  this.updateFormData(formData, eventArgs.customFormData);
9494
+ liElement = null;
9476
9495
  }
9477
9496
  /* istanbul ignore next */
9478
9497
  updateFormData(formData, customData) {
@@ -9524,7 +9543,7 @@ let Uploader = class Uploader extends Component {
9524
9543
  };
9525
9544
  if (!customTemplate) {
9526
9545
  const index = this.filesData.indexOf(files);
9527
- const rootElement = this.fileList[index];
9546
+ let rootElement = this.fileList[index];
9528
9547
  if (rootElement) {
9529
9548
  rootElement.classList.remove(UPLOAD_SUCCESS);
9530
9549
  rootElement.classList.add(UPLOAD_FAILED);
@@ -9534,16 +9553,18 @@ let Uploader = class Uploader extends Component {
9534
9553
  statusElement.classList.add(UPLOAD_FAILED);
9535
9554
  }
9536
9555
  }
9556
+ rootElement = null;
9537
9557
  this.checkActionButtonStatus();
9538
9558
  }
9539
9559
  this.trigger('failure', args);
9540
- const liElement = this.getLiElement(files);
9560
+ let liElement = this.getLiElement(files);
9541
9561
  /* istanbul ignore next */
9542
9562
  if (!isNullOrUndefined(liElement) && !isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON))) {
9543
9563
  const spinnerTarget = liElement.querySelector('.' + DELETE_ICON);
9544
9564
  hideSpinner(spinnerTarget);
9545
9565
  detach(liElement.querySelector('.e-spinner-pane'));
9546
9566
  }
9567
+ liElement = null;
9547
9568
  }
9548
9569
  /* istanbul ignore next */
9549
9570
  getFilesFromFolder(event) {
@@ -9811,6 +9832,10 @@ let Uploader = class Uploader extends Component {
9811
9832
  }
9812
9833
  clearData(singleUpload) {
9813
9834
  if (!isNullOrUndefined(this.listParent)) {
9835
+ const fileItems = this.listParent.querySelectorAll('.e-icons');
9836
+ for (let i = 0; i < fileItems.length; i++) {
9837
+ EventHandler.remove(fileItems[i], 'click', this.removeFiles);
9838
+ }
9814
9839
  detach(this.listParent);
9815
9840
  this.listParent = null;
9816
9841
  }
@@ -9818,13 +9843,14 @@ let Uploader = class Uploader extends Component {
9818
9843
  this.element.value = '';
9819
9844
  }
9820
9845
  if (this.isFormUpload() && this.uploadWrapper.querySelector('.' + INPUT_WRAPPER)) {
9821
- const hiddenElement = this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).querySelector('.' + HIDDEN_INPUT);
9846
+ let hiddenElement = this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).querySelector('.' + HIDDEN_INPUT);
9822
9847
  if (hiddenElement) {
9823
9848
  this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).removeChild(hiddenElement);
9824
9849
  }
9850
+ hiddenElement = null;
9825
9851
  }
9826
- this.fileList = [];
9827
- this.filesData = [];
9852
+ this.fileList.length = 0;
9853
+ this.filesData.length = 0;
9828
9854
  this.removeActionButtons();
9829
9855
  }
9830
9856
  updateSortedFileList(filesData) {
@@ -9832,8 +9858,9 @@ let Uploader = class Uploader extends Component {
9832
9858
  let added = -1;
9833
9859
  if (this.listParent) {
9834
9860
  for (let i = 0; i < this.listParent.querySelectorAll('li').length; i++) {
9835
- const liElement = this.listParent.querySelectorAll('li')[i];
9861
+ let liElement = this.listParent.querySelectorAll('li')[i];
9836
9862
  previousListClone.appendChild(liElement.cloneNode(true));
9863
+ liElement = null;
9837
9864
  }
9838
9865
  this.removeActionButtons();
9839
9866
  const oldList = [].slice.call(previousListClone.childNodes);
@@ -9851,6 +9878,8 @@ let Uploader = class Uploader extends Component {
9851
9878
  this.internalCreateFileList([filesData[index]]);
9852
9879
  }
9853
9880
  }
9881
+ previousListClone.innerHTML = '';
9882
+ oldList.length = 0;
9854
9883
  }
9855
9884
  else {
9856
9885
  this.internalCreateFileList(filesData);
@@ -9935,7 +9964,7 @@ let Uploader = class Uploader extends Component {
9935
9964
  createCustomfileList(fileData) {
9936
9965
  this.createParentUL();
9937
9966
  for (const listItem of fileData) {
9938
- const listElement = this.createElement('li', { className: FILE, attrs: { 'data-file-name': listItem.name } });
9967
+ let listElement = this.createElement('li', { className: FILE, attrs: { 'data-file-name': listItem.name } });
9939
9968
  this.uploadTemplateFn = this.templateComplier(this.template);
9940
9969
  const liTempCompiler = this.uploadTemplateFn(listItem, this, 'template', this.element.id + 'Template', this.isStringTemplate, null, listElement);
9941
9970
  if (liTempCompiler) {
@@ -9959,6 +9988,7 @@ let Uploader = class Uploader extends Component {
9959
9988
  this.trigger('fileListRendering', eventsArgs);
9960
9989
  this.listParent.appendChild(listElement);
9961
9990
  this.fileList.push(listElement);
9991
+ listElement = null;
9962
9992
  }
9963
9993
  this.renderReactTemplates();
9964
9994
  }
@@ -10196,7 +10226,7 @@ let Uploader = class Uploader extends Component {
10196
10226
  }
10197
10227
  else {
10198
10228
  for (const listItem of fileData) {
10199
- const liElement = this.createElement('li', {
10229
+ let liElement = this.createElement('li', {
10200
10230
  className: FILE,
10201
10231
  attrs: { 'data-file-name': listItem.name, 'data-files-count': '1' }
10202
10232
  });
@@ -10276,6 +10306,7 @@ let Uploader = class Uploader extends Component {
10276
10306
  this.checkActionComplete(true);
10277
10307
  this.flag = preventActionComplete;
10278
10308
  }
10309
+ liElement = null;
10279
10310
  }
10280
10311
  }
10281
10312
  }
@@ -10335,6 +10366,7 @@ let Uploader = class Uploader extends Component {
10335
10366
  filterFiles.push(files[i]);
10336
10367
  }
10337
10368
  }
10369
+ li = null;
10338
10370
  return filterFiles;
10339
10371
  }
10340
10372
  updateStatus(files, status, statusCode, updateLiStatus = true) {
@@ -10343,12 +10375,13 @@ let Uploader = class Uploader extends Component {
10343
10375
  files.statusCode = statusCode;
10344
10376
  }
10345
10377
  if (updateLiStatus) {
10346
- const li = this.getLiElement(files);
10378
+ let li = this.getLiElement(files);
10347
10379
  if (!isNullOrUndefined(li)) {
10348
10380
  if (!isNullOrUndefined(li.querySelector('.' + STATUS)) && !((status === '' || isNullOrUndefined(status)))) {
10349
10381
  li.querySelector('.' + STATUS).textContent = status;
10350
10382
  }
10351
10383
  }
10384
+ li = null;
10352
10385
  }
10353
10386
  return files;
10354
10387
  }
@@ -10394,7 +10427,7 @@ let Uploader = class Uploader extends Component {
10394
10427
  li.querySelector('.' + PROGRESSBAR_TEXT).textContent = progressValue;
10395
10428
  }
10396
10429
  uploadInProgress(e, files, customUI, request) {
10397
- const li = this.getLiElement(files);
10430
+ let li = this.getLiElement(files);
10398
10431
  if (isNullOrUndefined(li) && (!customUI)) {
10399
10432
  return;
10400
10433
  }
@@ -10422,6 +10455,7 @@ let Uploader = class Uploader extends Component {
10422
10455
  }
10423
10456
  const args = { e, operation: 'upload', file: this.updateStatus(files, this.localizedTexts('inProgress'), '3') };
10424
10457
  this.trigger('progress', args);
10458
+ li = null;
10425
10459
  }
10426
10460
  /* istanbul ignore next */
10427
10461
  cancelUploadingFile(files, e, request, li) {
@@ -10471,7 +10505,7 @@ let Uploader = class Uploader extends Component {
10471
10505
  }
10472
10506
  }
10473
10507
  removecanceledFile(e, file) {
10474
- const liElement = this.getLiElement(file);
10508
+ let liElement = this.getLiElement(file);
10475
10509
  if (isNullOrUndefined(liElement) || liElement.querySelector('.' + RETRY_ICON) || isNullOrUndefined(liElement.querySelector('.' + ABORT_ICON))) {
10476
10510
  return;
10477
10511
  }
@@ -10487,6 +10521,7 @@ let Uploader = class Uploader extends Component {
10487
10521
  const requestResponse = e && e.currentTarget ? this.getResponse(e) : null;
10488
10522
  const args = { event: e, response: requestResponse, operation: 'cancel', file: file };
10489
10523
  this.trigger('success', args);
10524
+ liElement = null;
10490
10525
  }
10491
10526
  renderFailureState(e, file, liElement) {
10492
10527
  this.updateProgressBarClasses(liElement, UPLOAD_FAILED);
@@ -10572,7 +10607,7 @@ let Uploader = class Uploader extends Component {
10572
10607
  const args = {
10573
10608
  e, response: response, operation: 'upload', file: this.updateStatus(file, statusMessage, '2', false), statusText: statusMessage
10574
10609
  };
10575
- const liElement = this.getLiElement(file);
10610
+ let liElement = this.getLiElement(file);
10576
10611
  if (!isNullOrUndefined(liElement)) {
10577
10612
  const spinnerEle = liElement.querySelector('.' + SPINNER_PANE);
10578
10613
  if (!isNullOrUndefined(spinnerEle)) {
@@ -10604,9 +10639,10 @@ let Uploader = class Uploader extends Component {
10604
10639
  this.checkActionComplete(true);
10605
10640
  }
10606
10641
  });
10642
+ liElement = null;
10607
10643
  }
10608
10644
  uploadFailed(e, file) {
10609
- const li = this.getLiElement(file);
10645
+ let li = this.getLiElement(file);
10610
10646
  const response = e && e.currentTarget ? this.getResponse(e) : null;
10611
10647
  const statusMessage = this.localizedTexts('uploadFailedMessage');
10612
10648
  const args = {
@@ -10621,6 +10657,7 @@ let Uploader = class Uploader extends Component {
10621
10657
  this.uploadSequential();
10622
10658
  this.checkActionComplete(true);
10623
10659
  });
10660
+ li = null;
10624
10661
  }
10625
10662
  uploadSequential() {
10626
10663
  if (this.sequentialUpload) {
@@ -10882,7 +10919,7 @@ let Uploader = class Uploader extends Component {
10882
10919
  }
10883
10920
  eventArgs.fileData.statusCode = '5';
10884
10921
  eventArgs.fileData.status = this.localizedTexts('fileUploadCancel');
10885
- const liElement = this.getLiElement(eventArgs.fileData);
10922
+ let liElement = this.getLiElement(eventArgs.fileData);
10886
10923
  if (liElement) {
10887
10924
  if (!isNullOrUndefined(liElement.querySelector('.' + STATUS))) {
10888
10925
  liElement.querySelector('.' + STATUS).innerHTML = this.localizedTexts('fileUploadCancel');
@@ -10900,6 +10937,7 @@ let Uploader = class Uploader extends Component {
10900
10937
  }, false);
10901
10938
  this.checkActionButtonStatus();
10902
10939
  }
10940
+ liElement = null;
10903
10941
  }
10904
10942
  checkChunkUpload() {
10905
10943
  return (this.asyncSettings.chunkSize <= 0 || isNullOrUndefined(this.asyncSettings.chunkSize)) ? false : true;
@@ -10992,6 +11030,7 @@ let Uploader = class Uploader extends Component {
10992
11030
  else {
10993
11031
  this.chunkUploadFailed(e, metaData);
10994
11032
  }
11033
+ liElement = null;
10995
11034
  }
10996
11035
  sendNextRequest(metaData) {
10997
11036
  metaData.start = metaData.end;
@@ -11002,7 +11041,7 @@ let Uploader = class Uploader extends Component {
11002
11041
  }
11003
11042
  removeChunkFile(e, metaData, custom) {
11004
11043
  if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) && !custom)) {
11005
- const liElement = this.getLiElement(metaData.file);
11044
+ let liElement = this.getLiElement(metaData.file);
11006
11045
  const deleteIcon = liElement.querySelector('.' + ABORT_ICON);
11007
11046
  const spinnerTarget = deleteIcon;
11008
11047
  this.updateStatus(metaData.file, this.localizedTexts('fileUploadCancel'), '5');
@@ -11024,6 +11063,7 @@ let Uploader = class Uploader extends Component {
11024
11063
  hideSpinner(spinnerTarget);
11025
11064
  detach(liElement.querySelector('.e-spinner-pane'));
11026
11065
  }
11066
+ liElement = null;
11027
11067
  }
11028
11068
  }
11029
11069
  pauseUpload(metaData, e, custom) {
@@ -11047,7 +11087,7 @@ let Uploader = class Uploader extends Component {
11047
11087
  metaData.request.emitError = false;
11048
11088
  metaData.request.httpRequest.abort();
11049
11089
  }
11050
- const liElement = this.getLiElement(metaData.file);
11090
+ let liElement = this.getLiElement(metaData.file);
11051
11091
  if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom) && liElement) {
11052
11092
  const targetElement = liElement.querySelector('.' + PAUSE_UPLOAD);
11053
11093
  targetElement.classList.remove(PAUSE_UPLOAD);
@@ -11064,9 +11104,10 @@ let Uploader = class Uploader extends Component {
11064
11104
  }
11065
11105
  this.pausedData.push(metaData);
11066
11106
  this.trigger('pausing', eventArgs);
11107
+ liElement = null;
11067
11108
  }
11068
11109
  resumeUpload(metaData, e, custom) {
11069
- const liElement = this.getLiElement(metaData.file);
11110
+ let liElement = this.getLiElement(metaData.file);
11070
11111
  let targetElement;
11071
11112
  if (!isNullOrUndefined(liElement)) {
11072
11113
  targetElement = liElement.querySelector('.' + RESUME_UPLOAD);
@@ -11104,6 +11145,7 @@ let Uploader = class Uploader extends Component {
11104
11145
  }
11105
11146
  }
11106
11147
  }
11148
+ liElement = null;
11107
11149
  }
11108
11150
  updateMetaData(metaData) {
11109
11151
  if (this.uploadMetaData.indexOf(metaData) === -1) {
@@ -11115,7 +11157,7 @@ let Uploader = class Uploader extends Component {
11115
11157
  }
11116
11158
  }
11117
11159
  removeChunkProgressBar(metaData) {
11118
- const liElement = this.getLiElement(metaData.file);
11160
+ let liElement = this.getLiElement(metaData.file);
11119
11161
  if (!isNullOrUndefined(liElement)) {
11120
11162
  this.updateProgressBarClasses(liElement, UPLOAD_SUCCESS);
11121
11163
  this.removeProgressbar(liElement, 'success');
@@ -11126,6 +11168,7 @@ let Uploader = class Uploader extends Component {
11126
11168
  cancelButton.classList.remove(ABORT_ICON, UPLOAD_INPROGRESS);
11127
11169
  }
11128
11170
  }
11171
+ liElement = null;
11129
11172
  }
11130
11173
  chunkUploadFailed(e, metaData, custom) {
11131
11174
  const chunkCount = Math.max(Math.ceil(metaData.file.size / this.asyncSettings.chunkSize), 1);
@@ -11194,6 +11237,7 @@ let Uploader = class Uploader extends Component {
11194
11237
  }
11195
11238
  }
11196
11239
  });
11240
+ liElement = null;
11197
11241
  }
11198
11242
  retryRequest(liElement, metaData, custom) {
11199
11243
  if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom) && liElement) {
@@ -11251,7 +11295,7 @@ let Uploader = class Uploader extends Component {
11251
11295
  metaData.file.status = this.localizedTexts('inProgress');
11252
11296
  }
11253
11297
  this.updateMetaData(metaData);
11254
- const liElement = this.getLiElement(metaData.file);
11298
+ let liElement = this.getLiElement(metaData.file);
11255
11299
  if (isNullOrUndefined(liElement)) {
11256
11300
  return;
11257
11301
  }
@@ -11303,6 +11347,7 @@ let Uploader = class Uploader extends Component {
11303
11347
  this.checkPausePlayAction(e);
11304
11348
  }, false);
11305
11349
  }
11350
+ liElement = null;
11306
11351
  }
11307
11352
  /**
11308
11353
  * It is used to convert bytes value into kilobytes or megabytes depending on the size based
@@ -11379,11 +11424,18 @@ let Uploader = class Uploader extends Component {
11379
11424
  this.uploadWrapper.parentElement.appendChild(this.element);
11380
11425
  detach(this.uploadWrapper);
11381
11426
  }
11382
- this.uploadWrapper = null;
11427
+ this.fileList = [];
11428
+ this.filesData = [];
11429
+ this.fileList.length = 0;
11430
+ this.filesData.length = 0;
11383
11431
  this.uploadWrapper = null;
11384
11432
  this.browseButton = null;
11433
+ this.listParent = null;
11385
11434
  this.dropAreaWrapper = null;
11386
11435
  this.dropZoneElement = null;
11436
+ this.actionButtons = null;
11437
+ this.pauseButton = null;
11438
+ this.formElement = null;
11387
11439
  this.dropArea = null;
11388
11440
  this.keyboardModule = null;
11389
11441
  this.clearButton = null;
@@ -11562,7 +11614,7 @@ let Uploader = class Uploader extends Component {
11562
11614
  }
11563
11615
  }
11564
11616
  spliceFiles(liIndex) {
11565
- const liElement = this.fileList[liIndex];
11617
+ let liElement = this.fileList[liIndex];
11566
11618
  const allFiles = this.getFilesData();
11567
11619
  const nameElements = +liElement.getAttribute('data-files-count');
11568
11620
  let startIndex = 0;
@@ -11573,6 +11625,7 @@ let Uploader = class Uploader extends Component {
11573
11625
  for (let j = endIndex; j >= startIndex; j--) {
11574
11626
  allFiles.splice(j, 1);
11575
11627
  }
11628
+ liElement = null;
11576
11629
  }
11577
11630
  /* eslint-disable valid-jsdoc, jsdoc/require-param */
11578
11631
  /**
@@ -14141,7 +14194,7 @@ let TextBox = class TextBox extends Component {
14141
14194
  this.handleFloatLabel();
14142
14195
  break;
14143
14196
  case 'placeholder':
14144
- Input.setPlaceholder(this.placeholder, this.respectiveElement);
14197
+ Input.setPlaceholder(this.placeholder, this.respectiveElement, this.getModuleName());
14145
14198
  Input.calculateWidth(this.respectiveElement, this.textboxWrapper.container);
14146
14199
  break;
14147
14200
  case 'autocomplete':
@@ -14996,7 +15049,7 @@ let TextArea = class TextArea extends Component {
14996
15049
  this.handleAdornmentFloatLabel();
14997
15050
  break;
14998
15051
  case 'placeholder':
14999
- Input.setPlaceholder(this.placeholder, this.element);
15052
+ Input.setPlaceholder(this.placeholder, this.element, this.getModuleName());
15000
15053
  Input.calculateWidth(this.element, this.textareaWrapper.container);
15001
15054
  break;
15002
15055
  case 'cssClass':