@syncfusion/ej2-inputs 20.2.38 → 20.2.45

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 (35) hide show
  1. package/dist/ej2-inputs.umd.min.js +2 -2
  2. package/dist/ej2-inputs.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-inputs.es2015.js +57 -2
  4. package/dist/es6/ej2-inputs.es2015.js.map +1 -1
  5. package/dist/es6/ej2-inputs.es5.js +57 -2
  6. package/dist/es6/ej2-inputs.es5.js.map +1 -1
  7. package/dist/global/ej2-inputs.min.js +2 -2
  8. package/dist/global/ej2-inputs.min.js.map +1 -1
  9. package/dist/global/index.d.ts +1 -1
  10. package/package.json +9 -9
  11. package/src/input/input.d.ts +22 -0
  12. package/src/input/input.js +53 -2
  13. package/src/maskedtextbox/maskedtextbox/maskedtextbox.js +1 -0
  14. package/src/numerictextbox/numerictextbox.js +2 -0
  15. package/src/textbox/textbox.js +1 -0
  16. package/styles/bootstrap5-dark.css +2 -2
  17. package/styles/bootstrap5.css +2 -2
  18. package/styles/fluent-dark.css +2 -2
  19. package/styles/fluent.css +2 -2
  20. package/styles/input/_layout.scss +38 -1
  21. package/styles/input/material-dark.css +27 -0
  22. package/styles/input/material.css +27 -0
  23. package/styles/material-dark.css +27 -0
  24. package/styles/material.css +27 -0
  25. package/styles/tailwind-dark.css +2 -2
  26. package/styles/tailwind.css +2 -2
  27. package/styles/uploader/_bootstrap5-definition.scss +1 -1
  28. package/styles/uploader/_fluent-definition.scss +1 -1
  29. package/styles/uploader/_tailwind-definition.scss +1 -1
  30. package/styles/uploader/bootstrap5-dark.css +2 -2
  31. package/styles/uploader/bootstrap5.css +2 -2
  32. package/styles/uploader/fluent-dark.css +2 -2
  33. package/styles/uploader/fluent.css +2 -2
  34. package/styles/uploader/tailwind-dark.css +2 -2
  35. package/styles/uploader/tailwind.css +2 -2
@@ -12,6 +12,7 @@ var CLASSNAMES = {
12
12
  FLOATINPUT: 'e-float-input',
13
13
  FLOATLINE: 'e-float-line',
14
14
  FLOATTEXT: 'e-float-text',
15
+ FLOATTEXTCONTENT: 'e-float-text-content',
15
16
  CLEARICON: 'e-clear-icon',
16
17
  CLEARICONHIDE: 'e-clear-icon-hide',
17
18
  LABELTOP: 'e-label-top',
@@ -68,6 +69,7 @@ var Input;
68
69
  }
69
70
  validateInputType(inputObject.container, args.element);
70
71
  inputObject = setPropertyValue(args, inputObject);
72
+ createSpanElement(inputObject, makeElement);
71
73
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
74
  return inputObject;
73
75
  }
@@ -364,6 +366,9 @@ var Input;
364
366
  */
365
367
  function setValue$$1(value, element, floatLabelType, clearButton) {
366
368
  element.value = value;
369
+ if (isNullOrUndefined(element.getAttribute('value'))) {
370
+ calculateWidth(element, element.parentElement);
371
+ }
367
372
  if ((!isNullOrUndefined(floatLabelType)) && floatLabelType === 'Auto') {
368
373
  validateLabel(element, floatLabelType);
369
374
  }
@@ -404,6 +409,26 @@ var Input;
404
409
  }
405
410
  }
406
411
  Input.setCssClass = setCssClass;
412
+ /**
413
+ * Set the width to the placeholder when it overflows on the button such as spinbutton, clearbutton, icon etc
414
+ * ```
415
+ * E.g : Input.calculateWidth(element, container);
416
+ * ```
417
+ *
418
+ * @param {any} element - Input element which is need to add.
419
+ * @param {HTMLElement} container - The parent element which is need to get the label span to calculate width
420
+ */
421
+ function calculateWidth(element, container) {
422
+ if (!isNullOrUndefined(container.getElementsByClassName('e-float-text-content')[0])) {
423
+ if (container.getElementsByClassName('e-float-text-content')[0].classList.contains('e-float-text-overflow')) {
424
+ container.getElementsByClassName('e-float-text-content')[0].classList.remove('e-float-text-overflow');
425
+ }
426
+ if (element.clientWidth < container.getElementsByClassName('e-float-text-content')[0].clientWidth || container.getElementsByClassName('e-control')[0].clientWidth === container.getElementsByClassName('e-float-text-content')[0].clientWidth) {
427
+ container.getElementsByClassName('e-float-text-content')[0].classList.add('e-float-text-overflow');
428
+ }
429
+ }
430
+ }
431
+ Input.calculateWidth = calculateWidth;
407
432
  /**
408
433
  * Set the width to the wrapper of input element.
409
434
  * ```
@@ -420,6 +445,7 @@ var Input;
420
445
  else if (typeof width === 'string') {
421
446
  container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));
422
447
  }
448
+ calculateWidth(container.firstChild, container);
423
449
  }
424
450
  Input.setWidth = setWidth;
425
451
  /**
@@ -436,13 +462,13 @@ var Input;
436
462
  var parentElement = getParentNode(element);
437
463
  if (parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {
438
464
  if (!isNullOrUndefined(placeholder) && placeholder !== '') {
439
- parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder;
465
+ parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = placeholder : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder;
440
466
  parentElement.classList.remove(CLASSNAMES.NOFLOATLABEL);
441
467
  element.removeAttribute('placeholder');
442
468
  }
443
469
  else {
444
470
  parentElement.classList.add(CLASSNAMES.NOFLOATLABEL);
445
- parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';
471
+ parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = '' : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';
446
472
  }
447
473
  }
448
474
  else {
@@ -635,6 +661,8 @@ var Input;
635
661
  var inputObj = { container: container };
636
662
  input.classList.remove(CLASSNAMES.INPUT);
637
663
  createFloatingInput(args, inputObj, makeElement);
664
+ createSpanElement(inputObj, makeElement);
665
+ calculateWidth(args.element, inputObj.container);
638
666
  var isPrependIcon = container.classList.contains('e-float-icon-left');
639
667
  if (isNullOrUndefined(iconEle)) {
640
668
  if (isPrependIcon) {
@@ -665,6 +693,26 @@ var Input;
665
693
  checkFloatLabelType(type, input.parentElement);
666
694
  }
667
695
  Input.addFloating = addFloating;
696
+ /**
697
+ * Create the span inside the label and add the label text into the span textcontent
698
+ * ```
699
+ * E.g : Input.createSpanElement(inputObject, makeElement);
700
+ * ```
701
+ *
702
+ * @param {InputObject} inputObject
703
+ * - Element which is need to get the label
704
+ * @param {createElementParams} makeElement
705
+ * - Element which is need to create the span
706
+ */
707
+ function createSpanElement(inputObject, makeElement) {
708
+ if (inputObject.container.classList.contains('e-outline') && inputObject.container.getElementsByClassName('e-float-text')[0]) {
709
+ var labelSpanElement = makeElement('span', { className: CLASSNAMES.FLOATTEXTCONTENT });
710
+ labelSpanElement.innerHTML = inputObject.container.getElementsByClassName('e-float-text')[0].innerHTML;
711
+ inputObject.container.getElementsByClassName('e-float-text')[0].innerHTML = '';
712
+ inputObject.container.getElementsByClassName('e-float-text')[0].appendChild(labelSpanElement);
713
+ }
714
+ }
715
+ Input.createSpanElement = createSpanElement;
668
716
  /**
669
717
  * Enable or Disable the ripple effect on the icons inside the Input. Ripple effect is only applicable for material theme.
670
718
  * ```
@@ -755,6 +803,9 @@ var Input;
755
803
  prependSpan(icon, container, input, internalCreate);
756
804
  }
757
805
  }
806
+ if (container.getElementsByClassName('e-input-group-icon')[0] && container.getElementsByClassName('e-float-text-overflow')[0]) {
807
+ container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
808
+ }
758
809
  }
759
810
  Input.addIcon = addIcon;
760
811
  /**
@@ -1991,6 +2042,7 @@ var NumericTextBox = /** @__PURE__ @class */ (function (_super) {
1991
2042
  switch (prop) {
1992
2043
  case 'width':
1993
2044
  this.setElementWidth(newProp.width);
2045
+ Input.calculateWidth(this.element, this.container);
1994
2046
  break;
1995
2047
  case 'cssClass':
1996
2048
  this.updateCssClass(newProp.cssClass, oldProp.cssClass);
@@ -2019,6 +2071,7 @@ var NumericTextBox = /** @__PURE__ @class */ (function (_super) {
2019
2071
  break;
2020
2072
  case 'placeholder':
2021
2073
  Input.setPlaceholder(newProp.placeholder, this.element);
2074
+ Input.calculateWidth(this.element, this.container);
2022
2075
  break;
2023
2076
  case 'step':
2024
2077
  this.step = newProp.step;
@@ -3667,6 +3720,7 @@ var MaskedTextBox = /** @__PURE__ @class */ (function (_super) {
3667
3720
  break;
3668
3721
  case 'width':
3669
3722
  this.setWidth(newProp.width);
3723
+ Input.calculateWidth(this.element, this.inputObj.container);
3670
3724
  break;
3671
3725
  case 'cssClass':
3672
3726
  this.updateCssClass(newProp.cssClass, oldProp.cssClass);
@@ -13136,6 +13190,7 @@ var TextBox = /** @__PURE__ @class */ (function (_super) {
13136
13190
  break;
13137
13191
  case 'placeholder':
13138
13192
  Input.setPlaceholder(this.placeholder, this.respectiveElement);
13193
+ Input.calculateWidth(this.respectiveElement, this.textboxWrapper.container);
13139
13194
  break;
13140
13195
  case 'autocomplete':
13141
13196
  if (this.autocomplete !== 'on' && this.autocomplete !== '') {