@syncfusion/ej2-inputs 32.2.8 → 33.1.47

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)) {
@@ -2369,7 +2378,9 @@ let NumericTextBox = class NumericTextBox extends Component {
2369
2378
  floatLabelType: this.floatLabelType,
2370
2379
  properties: this.properties
2371
2380
  }, this.clearButton);
2372
- setValue('ej2_instances', null, this.element);
2381
+ if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {
2382
+ setValue('ej2_instances', null, this.element);
2383
+ }
2373
2384
  super.destroy();
2374
2385
  }
2375
2386
  /**
@@ -2454,7 +2465,7 @@ let NumericTextBox = class NumericTextBox extends Component {
2454
2465
  Input.validateInputType(this.container, this.element);
2455
2466
  break;
2456
2467
  case 'placeholder':
2457
- Input.setPlaceholder(newProp.placeholder, this.element);
2468
+ Input.setPlaceholder(newProp.placeholder, this.element, this.getModuleName());
2458
2469
  Input.calculateWidth(this.element, this.container);
2459
2470
  break;
2460
2471
  case 'step':
@@ -4412,7 +4423,9 @@ let MaskedTextBox = class MaskedTextBox extends Component {
4412
4423
  }, this.clearButton);
4413
4424
  this.changeEventArgs = null;
4414
4425
  this.inputObj = null;
4415
- setValue('ej2_instances', null, this.element);
4426
+ if (this.element.tagName === 'EJS-MASKEDTEXTBOX') {
4427
+ setValue('ej2_instances', null, this.element);
4428
+ }
4416
4429
  super.destroy();
4417
4430
  }
4418
4431
  };
@@ -8714,6 +8727,7 @@ let Uploader = class Uploader extends Component {
8714
8727
  }
8715
8728
  }
8716
8729
  }
8730
+ element = null;
8717
8731
  }
8718
8732
  reRenderFileList() {
8719
8733
  if (this.listParent) {
@@ -8778,7 +8792,12 @@ let Uploader = class Uploader extends Component {
8778
8792
  }
8779
8793
  }
8780
8794
  if (isNullOrUndefined(this.element.getAttribute('name'))) {
8781
- this.element.setAttribute('name', this.element.getAttribute('id'));
8795
+ if (!isNullOrUndefined(this.element.getAttribute('id')) && this.element.getAttribute('id') !== '') {
8796
+ this.element.setAttribute('name', this.element.getAttribute('id'));
8797
+ }
8798
+ else {
8799
+ this.element.setAttribute('name', 'UploadFiles');
8800
+ }
8782
8801
  }
8783
8802
  if (!this.element.hasAttribute('type')) {
8784
8803
  this.element.setAttribute('type', 'file');
@@ -9030,6 +9049,7 @@ let Uploader = class Uploader extends Component {
9030
9049
  if (!enableDropText && dropTextArea) {
9031
9050
  remove(dropTextArea);
9032
9051
  }
9052
+ element = null;
9033
9053
  }
9034
9054
  else if (!isNullOrUndefined(this.uploaderOptions) && this.uploaderOptions.dropArea === undefined) {
9035
9055
  this.createDropTextHint();
@@ -9338,7 +9358,7 @@ let Uploader = class Uploader extends Component {
9338
9358
  }
9339
9359
  getSelectedFiles(index) {
9340
9360
  const data = [];
9341
- const liElement = this.fileList[index];
9361
+ let liElement = this.fileList[index];
9342
9362
  const allFiles = this.getFilesData();
9343
9363
  const nameElements = +liElement.getAttribute('data-files-count');
9344
9364
  let startIndex = 0;
@@ -9348,15 +9368,16 @@ let Uploader = class Uploader extends Component {
9348
9368
  for (let j = startIndex; j < (startIndex + nameElements); j++) {
9349
9369
  data.push(allFiles[j]);
9350
9370
  }
9371
+ liElement = null;
9351
9372
  return data;
9352
9373
  }
9353
9374
  removeFiles(args) {
9354
9375
  if (!this.enabled) {
9355
9376
  return;
9356
9377
  }
9357
- const selectedElement = args.target.parentElement;
9378
+ let selectedElement = args.target.parentElement;
9358
9379
  const index = this.fileList.indexOf(selectedElement);
9359
- const liElement = this.fileList[index];
9380
+ let liElement = this.fileList[index];
9360
9381
  const formUpload = this.isFormUpload();
9361
9382
  const fileData = formUpload ? this.getSelectedFiles(index) : this.getFilesInArray(this.filesData[index]);
9362
9383
  if (isNullOrUndefined(fileData)) {
@@ -9391,6 +9412,8 @@ let Uploader = class Uploader extends Component {
9391
9412
  this.clearButton.removeAttribute('disabled');
9392
9413
  }
9393
9414
  }
9415
+ liElement = null;
9416
+ selectedElement = null;
9394
9417
  }
9395
9418
  removeFilesData(file, customTemplate) {
9396
9419
  let index;
@@ -9406,6 +9429,10 @@ let Uploader = class Uploader extends Component {
9406
9429
  return;
9407
9430
  }
9408
9431
  this.element.value = '';
9432
+ const iconElement = selectedElement.querySelector('.e-icons');
9433
+ if (iconElement) {
9434
+ EventHandler.remove(iconElement, 'click', this.removeFiles);
9435
+ }
9409
9436
  detach(selectedElement);
9410
9437
  index = this.fileList.indexOf(selectedElement);
9411
9438
  this.fileList.splice(index, 1);
@@ -9457,7 +9484,7 @@ let Uploader = class Uploader extends Component {
9457
9484
  removingEventCallback(eventArgs, formData, selectedFiles, file) {
9458
9485
  /* istanbul ignore next */
9459
9486
  const name = this.element.getAttribute('name');
9460
- const liElement = this.getLiElement(file);
9487
+ let liElement = this.getLiElement(file);
9461
9488
  if (!isNullOrUndefined(liElement) && (!isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON)) ||
9462
9489
  !isNullOrUndefined(liElement.querySelector('.' + REMOVE_ICON)))) {
9463
9490
  const spinnerTarget = liElement.querySelector('.' + DELETE_ICON) ?
@@ -9473,6 +9500,7 @@ let Uploader = class Uploader extends Component {
9473
9500
  formData.append(name, selectedFiles.name);
9474
9501
  }
9475
9502
  this.updateFormData(formData, eventArgs.customFormData);
9503
+ liElement = null;
9476
9504
  }
9477
9505
  /* istanbul ignore next */
9478
9506
  updateFormData(formData, customData) {
@@ -9524,7 +9552,7 @@ let Uploader = class Uploader extends Component {
9524
9552
  };
9525
9553
  if (!customTemplate) {
9526
9554
  const index = this.filesData.indexOf(files);
9527
- const rootElement = this.fileList[index];
9555
+ let rootElement = this.fileList[index];
9528
9556
  if (rootElement) {
9529
9557
  rootElement.classList.remove(UPLOAD_SUCCESS);
9530
9558
  rootElement.classList.add(UPLOAD_FAILED);
@@ -9534,16 +9562,18 @@ let Uploader = class Uploader extends Component {
9534
9562
  statusElement.classList.add(UPLOAD_FAILED);
9535
9563
  }
9536
9564
  }
9565
+ rootElement = null;
9537
9566
  this.checkActionButtonStatus();
9538
9567
  }
9539
9568
  this.trigger('failure', args);
9540
- const liElement = this.getLiElement(files);
9569
+ let liElement = this.getLiElement(files);
9541
9570
  /* istanbul ignore next */
9542
9571
  if (!isNullOrUndefined(liElement) && !isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON))) {
9543
9572
  const spinnerTarget = liElement.querySelector('.' + DELETE_ICON);
9544
9573
  hideSpinner(spinnerTarget);
9545
9574
  detach(liElement.querySelector('.e-spinner-pane'));
9546
9575
  }
9576
+ liElement = null;
9547
9577
  }
9548
9578
  /* istanbul ignore next */
9549
9579
  getFilesFromFolder(event) {
@@ -9811,6 +9841,10 @@ let Uploader = class Uploader extends Component {
9811
9841
  }
9812
9842
  clearData(singleUpload) {
9813
9843
  if (!isNullOrUndefined(this.listParent)) {
9844
+ const fileItems = this.listParent.querySelectorAll('.e-icons');
9845
+ for (let i = 0; i < fileItems.length; i++) {
9846
+ EventHandler.remove(fileItems[i], 'click', this.removeFiles);
9847
+ }
9814
9848
  detach(this.listParent);
9815
9849
  this.listParent = null;
9816
9850
  }
@@ -9818,13 +9852,14 @@ let Uploader = class Uploader extends Component {
9818
9852
  this.element.value = '';
9819
9853
  }
9820
9854
  if (this.isFormUpload() && this.uploadWrapper.querySelector('.' + INPUT_WRAPPER)) {
9821
- const hiddenElement = this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).querySelector('.' + HIDDEN_INPUT);
9855
+ let hiddenElement = this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).querySelector('.' + HIDDEN_INPUT);
9822
9856
  if (hiddenElement) {
9823
9857
  this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).removeChild(hiddenElement);
9824
9858
  }
9859
+ hiddenElement = null;
9825
9860
  }
9826
- this.fileList = [];
9827
- this.filesData = [];
9861
+ this.fileList.length = 0;
9862
+ this.filesData.length = 0;
9828
9863
  this.removeActionButtons();
9829
9864
  }
9830
9865
  updateSortedFileList(filesData) {
@@ -9832,8 +9867,9 @@ let Uploader = class Uploader extends Component {
9832
9867
  let added = -1;
9833
9868
  if (this.listParent) {
9834
9869
  for (let i = 0; i < this.listParent.querySelectorAll('li').length; i++) {
9835
- const liElement = this.listParent.querySelectorAll('li')[i];
9870
+ let liElement = this.listParent.querySelectorAll('li')[i];
9836
9871
  previousListClone.appendChild(liElement.cloneNode(true));
9872
+ liElement = null;
9837
9873
  }
9838
9874
  this.removeActionButtons();
9839
9875
  const oldList = [].slice.call(previousListClone.childNodes);
@@ -9851,6 +9887,8 @@ let Uploader = class Uploader extends Component {
9851
9887
  this.internalCreateFileList([filesData[index]]);
9852
9888
  }
9853
9889
  }
9890
+ previousListClone.innerHTML = '';
9891
+ oldList.length = 0;
9854
9892
  }
9855
9893
  else {
9856
9894
  this.internalCreateFileList(filesData);
@@ -9935,7 +9973,7 @@ let Uploader = class Uploader extends Component {
9935
9973
  createCustomfileList(fileData) {
9936
9974
  this.createParentUL();
9937
9975
  for (const listItem of fileData) {
9938
- const listElement = this.createElement('li', { className: FILE, attrs: { 'data-file-name': listItem.name } });
9976
+ let listElement = this.createElement('li', { className: FILE, attrs: { 'data-file-name': listItem.name } });
9939
9977
  this.uploadTemplateFn = this.templateComplier(this.template);
9940
9978
  const liTempCompiler = this.uploadTemplateFn(listItem, this, 'template', this.element.id + 'Template', this.isStringTemplate, null, listElement);
9941
9979
  if (liTempCompiler) {
@@ -9959,6 +9997,7 @@ let Uploader = class Uploader extends Component {
9959
9997
  this.trigger('fileListRendering', eventsArgs);
9960
9998
  this.listParent.appendChild(listElement);
9961
9999
  this.fileList.push(listElement);
10000
+ listElement = null;
9962
10001
  }
9963
10002
  this.renderReactTemplates();
9964
10003
  }
@@ -10196,7 +10235,7 @@ let Uploader = class Uploader extends Component {
10196
10235
  }
10197
10236
  else {
10198
10237
  for (const listItem of fileData) {
10199
- const liElement = this.createElement('li', {
10238
+ let liElement = this.createElement('li', {
10200
10239
  className: FILE,
10201
10240
  attrs: { 'data-file-name': listItem.name, 'data-files-count': '1' }
10202
10241
  });
@@ -10276,6 +10315,7 @@ let Uploader = class Uploader extends Component {
10276
10315
  this.checkActionComplete(true);
10277
10316
  this.flag = preventActionComplete;
10278
10317
  }
10318
+ liElement = null;
10279
10319
  }
10280
10320
  }
10281
10321
  }
@@ -10335,6 +10375,7 @@ let Uploader = class Uploader extends Component {
10335
10375
  filterFiles.push(files[i]);
10336
10376
  }
10337
10377
  }
10378
+ li = null;
10338
10379
  return filterFiles;
10339
10380
  }
10340
10381
  updateStatus(files, status, statusCode, updateLiStatus = true) {
@@ -10343,12 +10384,13 @@ let Uploader = class Uploader extends Component {
10343
10384
  files.statusCode = statusCode;
10344
10385
  }
10345
10386
  if (updateLiStatus) {
10346
- const li = this.getLiElement(files);
10387
+ let li = this.getLiElement(files);
10347
10388
  if (!isNullOrUndefined(li)) {
10348
10389
  if (!isNullOrUndefined(li.querySelector('.' + STATUS)) && !((status === '' || isNullOrUndefined(status)))) {
10349
10390
  li.querySelector('.' + STATUS).textContent = status;
10350
10391
  }
10351
10392
  }
10393
+ li = null;
10352
10394
  }
10353
10395
  return files;
10354
10396
  }
@@ -10394,7 +10436,7 @@ let Uploader = class Uploader extends Component {
10394
10436
  li.querySelector('.' + PROGRESSBAR_TEXT).textContent = progressValue;
10395
10437
  }
10396
10438
  uploadInProgress(e, files, customUI, request) {
10397
- const li = this.getLiElement(files);
10439
+ let li = this.getLiElement(files);
10398
10440
  if (isNullOrUndefined(li) && (!customUI)) {
10399
10441
  return;
10400
10442
  }
@@ -10422,6 +10464,7 @@ let Uploader = class Uploader extends Component {
10422
10464
  }
10423
10465
  const args = { e, operation: 'upload', file: this.updateStatus(files, this.localizedTexts('inProgress'), '3') };
10424
10466
  this.trigger('progress', args);
10467
+ li = null;
10425
10468
  }
10426
10469
  /* istanbul ignore next */
10427
10470
  cancelUploadingFile(files, e, request, li) {
@@ -10471,7 +10514,7 @@ let Uploader = class Uploader extends Component {
10471
10514
  }
10472
10515
  }
10473
10516
  removecanceledFile(e, file) {
10474
- const liElement = this.getLiElement(file);
10517
+ let liElement = this.getLiElement(file);
10475
10518
  if (isNullOrUndefined(liElement) || liElement.querySelector('.' + RETRY_ICON) || isNullOrUndefined(liElement.querySelector('.' + ABORT_ICON))) {
10476
10519
  return;
10477
10520
  }
@@ -10487,6 +10530,7 @@ let Uploader = class Uploader extends Component {
10487
10530
  const requestResponse = e && e.currentTarget ? this.getResponse(e) : null;
10488
10531
  const args = { event: e, response: requestResponse, operation: 'cancel', file: file };
10489
10532
  this.trigger('success', args);
10533
+ liElement = null;
10490
10534
  }
10491
10535
  renderFailureState(e, file, liElement) {
10492
10536
  this.updateProgressBarClasses(liElement, UPLOAD_FAILED);
@@ -10572,7 +10616,7 @@ let Uploader = class Uploader extends Component {
10572
10616
  const args = {
10573
10617
  e, response: response, operation: 'upload', file: this.updateStatus(file, statusMessage, '2', false), statusText: statusMessage
10574
10618
  };
10575
- const liElement = this.getLiElement(file);
10619
+ let liElement = this.getLiElement(file);
10576
10620
  if (!isNullOrUndefined(liElement)) {
10577
10621
  const spinnerEle = liElement.querySelector('.' + SPINNER_PANE);
10578
10622
  if (!isNullOrUndefined(spinnerEle)) {
@@ -10604,9 +10648,10 @@ let Uploader = class Uploader extends Component {
10604
10648
  this.checkActionComplete(true);
10605
10649
  }
10606
10650
  });
10651
+ liElement = null;
10607
10652
  }
10608
10653
  uploadFailed(e, file) {
10609
- const li = this.getLiElement(file);
10654
+ let li = this.getLiElement(file);
10610
10655
  const response = e && e.currentTarget ? this.getResponse(e) : null;
10611
10656
  const statusMessage = this.localizedTexts('uploadFailedMessage');
10612
10657
  const args = {
@@ -10621,6 +10666,7 @@ let Uploader = class Uploader extends Component {
10621
10666
  this.uploadSequential();
10622
10667
  this.checkActionComplete(true);
10623
10668
  });
10669
+ li = null;
10624
10670
  }
10625
10671
  uploadSequential() {
10626
10672
  if (this.sequentialUpload) {
@@ -10882,7 +10928,7 @@ let Uploader = class Uploader extends Component {
10882
10928
  }
10883
10929
  eventArgs.fileData.statusCode = '5';
10884
10930
  eventArgs.fileData.status = this.localizedTexts('fileUploadCancel');
10885
- const liElement = this.getLiElement(eventArgs.fileData);
10931
+ let liElement = this.getLiElement(eventArgs.fileData);
10886
10932
  if (liElement) {
10887
10933
  if (!isNullOrUndefined(liElement.querySelector('.' + STATUS))) {
10888
10934
  liElement.querySelector('.' + STATUS).innerHTML = this.localizedTexts('fileUploadCancel');
@@ -10900,6 +10946,7 @@ let Uploader = class Uploader extends Component {
10900
10946
  }, false);
10901
10947
  this.checkActionButtonStatus();
10902
10948
  }
10949
+ liElement = null;
10903
10950
  }
10904
10951
  checkChunkUpload() {
10905
10952
  return (this.asyncSettings.chunkSize <= 0 || isNullOrUndefined(this.asyncSettings.chunkSize)) ? false : true;
@@ -10992,6 +11039,7 @@ let Uploader = class Uploader extends Component {
10992
11039
  else {
10993
11040
  this.chunkUploadFailed(e, metaData);
10994
11041
  }
11042
+ liElement = null;
10995
11043
  }
10996
11044
  sendNextRequest(metaData) {
10997
11045
  metaData.start = metaData.end;
@@ -11002,7 +11050,7 @@ let Uploader = class Uploader extends Component {
11002
11050
  }
11003
11051
  removeChunkFile(e, metaData, custom) {
11004
11052
  if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) && !custom)) {
11005
- const liElement = this.getLiElement(metaData.file);
11053
+ let liElement = this.getLiElement(metaData.file);
11006
11054
  const deleteIcon = liElement.querySelector('.' + ABORT_ICON);
11007
11055
  const spinnerTarget = deleteIcon;
11008
11056
  this.updateStatus(metaData.file, this.localizedTexts('fileUploadCancel'), '5');
@@ -11024,6 +11072,7 @@ let Uploader = class Uploader extends Component {
11024
11072
  hideSpinner(spinnerTarget);
11025
11073
  detach(liElement.querySelector('.e-spinner-pane'));
11026
11074
  }
11075
+ liElement = null;
11027
11076
  }
11028
11077
  }
11029
11078
  pauseUpload(metaData, e, custom) {
@@ -11047,7 +11096,7 @@ let Uploader = class Uploader extends Component {
11047
11096
  metaData.request.emitError = false;
11048
11097
  metaData.request.httpRequest.abort();
11049
11098
  }
11050
- const liElement = this.getLiElement(metaData.file);
11099
+ let liElement = this.getLiElement(metaData.file);
11051
11100
  if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom) && liElement) {
11052
11101
  const targetElement = liElement.querySelector('.' + PAUSE_UPLOAD);
11053
11102
  targetElement.classList.remove(PAUSE_UPLOAD);
@@ -11064,9 +11113,10 @@ let Uploader = class Uploader extends Component {
11064
11113
  }
11065
11114
  this.pausedData.push(metaData);
11066
11115
  this.trigger('pausing', eventArgs);
11116
+ liElement = null;
11067
11117
  }
11068
11118
  resumeUpload(metaData, e, custom) {
11069
- const liElement = this.getLiElement(metaData.file);
11119
+ let liElement = this.getLiElement(metaData.file);
11070
11120
  let targetElement;
11071
11121
  if (!isNullOrUndefined(liElement)) {
11072
11122
  targetElement = liElement.querySelector('.' + RESUME_UPLOAD);
@@ -11104,6 +11154,7 @@ let Uploader = class Uploader extends Component {
11104
11154
  }
11105
11155
  }
11106
11156
  }
11157
+ liElement = null;
11107
11158
  }
11108
11159
  updateMetaData(metaData) {
11109
11160
  if (this.uploadMetaData.indexOf(metaData) === -1) {
@@ -11115,7 +11166,7 @@ let Uploader = class Uploader extends Component {
11115
11166
  }
11116
11167
  }
11117
11168
  removeChunkProgressBar(metaData) {
11118
- const liElement = this.getLiElement(metaData.file);
11169
+ let liElement = this.getLiElement(metaData.file);
11119
11170
  if (!isNullOrUndefined(liElement)) {
11120
11171
  this.updateProgressBarClasses(liElement, UPLOAD_SUCCESS);
11121
11172
  this.removeProgressbar(liElement, 'success');
@@ -11126,6 +11177,7 @@ let Uploader = class Uploader extends Component {
11126
11177
  cancelButton.classList.remove(ABORT_ICON, UPLOAD_INPROGRESS);
11127
11178
  }
11128
11179
  }
11180
+ liElement = null;
11129
11181
  }
11130
11182
  chunkUploadFailed(e, metaData, custom) {
11131
11183
  const chunkCount = Math.max(Math.ceil(metaData.file.size / this.asyncSettings.chunkSize), 1);
@@ -11194,6 +11246,7 @@ let Uploader = class Uploader extends Component {
11194
11246
  }
11195
11247
  }
11196
11248
  });
11249
+ liElement = null;
11197
11250
  }
11198
11251
  retryRequest(liElement, metaData, custom) {
11199
11252
  if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom) && liElement) {
@@ -11251,7 +11304,7 @@ let Uploader = class Uploader extends Component {
11251
11304
  metaData.file.status = this.localizedTexts('inProgress');
11252
11305
  }
11253
11306
  this.updateMetaData(metaData);
11254
- const liElement = this.getLiElement(metaData.file);
11307
+ let liElement = this.getLiElement(metaData.file);
11255
11308
  if (isNullOrUndefined(liElement)) {
11256
11309
  return;
11257
11310
  }
@@ -11303,6 +11356,7 @@ let Uploader = class Uploader extends Component {
11303
11356
  this.checkPausePlayAction(e);
11304
11357
  }, false);
11305
11358
  }
11359
+ liElement = null;
11306
11360
  }
11307
11361
  /**
11308
11362
  * It is used to convert bytes value into kilobytes or megabytes depending on the size based
@@ -11379,16 +11433,25 @@ let Uploader = class Uploader extends Component {
11379
11433
  this.uploadWrapper.parentElement.appendChild(this.element);
11380
11434
  detach(this.uploadWrapper);
11381
11435
  }
11382
- this.uploadWrapper = null;
11436
+ this.fileList = [];
11437
+ this.filesData = [];
11438
+ this.fileList.length = 0;
11439
+ this.filesData.length = 0;
11383
11440
  this.uploadWrapper = null;
11384
11441
  this.browseButton = null;
11442
+ this.listParent = null;
11385
11443
  this.dropAreaWrapper = null;
11386
11444
  this.dropZoneElement = null;
11445
+ this.actionButtons = null;
11446
+ this.pauseButton = null;
11447
+ this.formElement = null;
11387
11448
  this.dropArea = null;
11388
11449
  this.keyboardModule = null;
11389
11450
  this.clearButton = null;
11390
11451
  this.uploadButton = null;
11391
- setValue('ej2_instances', null, this.element);
11452
+ if (this.element.tagName === 'EJS-UPLOADER') {
11453
+ setValue('ej2_instances', null, this.element);
11454
+ }
11392
11455
  super.destroy();
11393
11456
  }
11394
11457
  /**
@@ -11562,7 +11625,7 @@ let Uploader = class Uploader extends Component {
11562
11625
  }
11563
11626
  }
11564
11627
  spliceFiles(liIndex) {
11565
- const liElement = this.fileList[liIndex];
11628
+ let liElement = this.fileList[liIndex];
11566
11629
  const allFiles = this.getFilesData();
11567
11630
  const nameElements = +liElement.getAttribute('data-files-count');
11568
11631
  let startIndex = 0;
@@ -11573,6 +11636,7 @@ let Uploader = class Uploader extends Component {
11573
11636
  for (let j = endIndex; j >= startIndex; j--) {
11574
11637
  allFiles.splice(j, 1);
11575
11638
  }
11639
+ liElement = null;
11576
11640
  }
11577
11641
  /* eslint-disable valid-jsdoc, jsdoc/require-param */
11578
11642
  /**
@@ -14141,7 +14205,7 @@ let TextBox = class TextBox extends Component {
14141
14205
  this.handleFloatLabel();
14142
14206
  break;
14143
14207
  case 'placeholder':
14144
- Input.setPlaceholder(this.placeholder, this.respectiveElement);
14208
+ Input.setPlaceholder(this.placeholder, this.respectiveElement, this.getModuleName());
14145
14209
  Input.calculateWidth(this.respectiveElement, this.textboxWrapper.container);
14146
14210
  break;
14147
14211
  case 'autocomplete':
@@ -14704,7 +14768,9 @@ let TextBox = class TextBox extends Component {
14704
14768
  floatLabelType: this.floatLabelType,
14705
14769
  properties: this.properties
14706
14770
  }, this.clearButton);
14707
- setValue('ej2_instances', null, this.element);
14771
+ if (this.element.tagName === 'EJS-TEXTBOX') {
14772
+ setValue('ej2_instances', null, this.element);
14773
+ }
14708
14774
  super.destroy();
14709
14775
  }
14710
14776
  /**
@@ -14996,7 +15062,7 @@ let TextArea = class TextArea extends Component {
14996
15062
  this.handleAdornmentFloatLabel();
14997
15063
  break;
14998
15064
  case 'placeholder':
14999
- Input.setPlaceholder(this.placeholder, this.element);
15065
+ Input.setPlaceholder(this.placeholder, this.element, this.getModuleName());
15000
15066
  Input.calculateWidth(this.element, this.textareaWrapper.container);
15001
15067
  break;
15002
15068
  case 'cssClass':
@@ -15406,7 +15472,9 @@ let TextArea = class TextArea extends Component {
15406
15472
  properties: this.properties
15407
15473
  }, this.clearButton);
15408
15474
  this.formElement = null;
15409
- setValue('ej2_instances', null, this.element);
15475
+ if (this.element.tagName === 'EJS-TEXTAREA' || this.element.tagName === 'EJS-SMARTTEXTAREA') {
15476
+ setValue('ej2_instances', null, this.element);
15477
+ }
15410
15478
  super.destroy();
15411
15479
  }
15412
15480
  focusHandler(args) {