@syncfusion/ej2-inputs 20.2.43 → 20.2.48
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.
- package/.eslintrc.json +244 -0
- package/CHANGELOG.md +6 -0
- package/dist/ej2-inputs.umd.min.js +2 -2
- package/dist/ej2-inputs.umd.min.js.map +1 -1
- package/dist/es6/ej2-inputs.es2015.js +63 -4
- package/dist/es6/ej2-inputs.es2015.js.map +1 -1
- package/dist/es6/ej2-inputs.es5.js +63 -4
- package/dist/es6/ej2-inputs.es5.js.map +1 -1
- package/dist/global/ej2-inputs.min.js +2 -2
- package/dist/global/ej2-inputs.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +9 -9
- package/src/input/input.d.ts +22 -0
- package/src/input/input.js +53 -2
- package/src/maskedtextbox/maskedtextbox/maskedtextbox.js +1 -0
- package/src/numerictextbox/numerictextbox.js +2 -0
- package/src/textbox/textbox.js +3 -2
- package/src/uploader/uploader.d.ts +1 -0
- package/src/uploader/uploader.js +4 -0
- package/styles/bootstrap5-dark.css +2 -2
- package/styles/bootstrap5.css +2 -2
- package/styles/fluent-dark.css +2 -2
- package/styles/fluent.css +2 -2
- package/styles/input/_layout.scss +38 -1
- package/styles/input/material-dark.css +27 -0
- package/styles/input/material.css +27 -0
- package/styles/material-dark.css +27 -0
- package/styles/material.css +27 -0
- package/styles/tailwind-dark.css +2 -2
- package/styles/tailwind.css +2 -2
- package/styles/uploader/_bootstrap5-definition.scss +1 -1
- package/styles/uploader/_fluent-definition.scss +1 -1
- package/styles/uploader/_tailwind-definition.scss +1 -1
- package/styles/uploader/bootstrap5-dark.css +2 -2
- package/styles/uploader/bootstrap5.css +2 -2
- package/styles/uploader/fluent-dark.css +2 -2
- package/styles/uploader/fluent.css +2 -2
- package/styles/uploader/tailwind-dark.css +2 -2
- package/styles/uploader/tailwind.css +2 -2
- package/tslint.json +111 -0
|
@@ -12,6 +12,7 @@ const 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
|
}
|
|
@@ -362,6 +364,9 @@ var Input;
|
|
|
362
364
|
*/
|
|
363
365
|
function setValue$$1(value, element, floatLabelType, clearButton) {
|
|
364
366
|
element.value = value;
|
|
367
|
+
if (isNullOrUndefined(element.getAttribute('value'))) {
|
|
368
|
+
calculateWidth(element, element.parentElement);
|
|
369
|
+
}
|
|
365
370
|
if ((!isNullOrUndefined(floatLabelType)) && floatLabelType === 'Auto') {
|
|
366
371
|
validateLabel(element, floatLabelType);
|
|
367
372
|
}
|
|
@@ -402,6 +407,26 @@ var Input;
|
|
|
402
407
|
}
|
|
403
408
|
}
|
|
404
409
|
Input.setCssClass = setCssClass;
|
|
410
|
+
/**
|
|
411
|
+
* Set the width to the placeholder when it overflows on the button such as spinbutton, clearbutton, icon etc
|
|
412
|
+
* ```
|
|
413
|
+
* E.g : Input.calculateWidth(element, container);
|
|
414
|
+
* ```
|
|
415
|
+
*
|
|
416
|
+
* @param {any} element - Input element which is need to add.
|
|
417
|
+
* @param {HTMLElement} container - The parent element which is need to get the label span to calculate width
|
|
418
|
+
*/
|
|
419
|
+
function calculateWidth(element, container) {
|
|
420
|
+
if (!isNullOrUndefined(container.getElementsByClassName('e-float-text-content')[0])) {
|
|
421
|
+
if (container.getElementsByClassName('e-float-text-content')[0].classList.contains('e-float-text-overflow')) {
|
|
422
|
+
container.getElementsByClassName('e-float-text-content')[0].classList.remove('e-float-text-overflow');
|
|
423
|
+
}
|
|
424
|
+
if (element.clientWidth < container.getElementsByClassName('e-float-text-content')[0].clientWidth || element.clientWidth === container.getElementsByClassName('e-float-text-content')[0].clientWidth) {
|
|
425
|
+
container.getElementsByClassName('e-float-text-content')[0].classList.add('e-float-text-overflow');
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
Input.calculateWidth = calculateWidth;
|
|
405
430
|
/**
|
|
406
431
|
* Set the width to the wrapper of input element.
|
|
407
432
|
* ```
|
|
@@ -418,6 +443,7 @@ var Input;
|
|
|
418
443
|
else if (typeof width === 'string') {
|
|
419
444
|
container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));
|
|
420
445
|
}
|
|
446
|
+
calculateWidth(container.firstChild, container);
|
|
421
447
|
}
|
|
422
448
|
Input.setWidth = setWidth;
|
|
423
449
|
/**
|
|
@@ -434,13 +460,13 @@ var Input;
|
|
|
434
460
|
const parentElement = getParentNode(element);
|
|
435
461
|
if (parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {
|
|
436
462
|
if (!isNullOrUndefined(placeholder) && placeholder !== '') {
|
|
437
|
-
parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder;
|
|
463
|
+
parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = placeholder : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder;
|
|
438
464
|
parentElement.classList.remove(CLASSNAMES.NOFLOATLABEL);
|
|
439
465
|
element.removeAttribute('placeholder');
|
|
440
466
|
}
|
|
441
467
|
else {
|
|
442
468
|
parentElement.classList.add(CLASSNAMES.NOFLOATLABEL);
|
|
443
|
-
parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';
|
|
469
|
+
parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = '' : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';
|
|
444
470
|
}
|
|
445
471
|
}
|
|
446
472
|
else {
|
|
@@ -631,6 +657,8 @@ var Input;
|
|
|
631
657
|
const inputObj = { container: container };
|
|
632
658
|
input.classList.remove(CLASSNAMES.INPUT);
|
|
633
659
|
createFloatingInput(args, inputObj, makeElement);
|
|
660
|
+
createSpanElement(inputObj, makeElement);
|
|
661
|
+
calculateWidth(args.element, inputObj.container);
|
|
634
662
|
const isPrependIcon = container.classList.contains('e-float-icon-left');
|
|
635
663
|
if (isNullOrUndefined(iconEle)) {
|
|
636
664
|
if (isPrependIcon) {
|
|
@@ -661,6 +689,26 @@ var Input;
|
|
|
661
689
|
checkFloatLabelType(type, input.parentElement);
|
|
662
690
|
}
|
|
663
691
|
Input.addFloating = addFloating;
|
|
692
|
+
/**
|
|
693
|
+
* Create the span inside the label and add the label text into the span textcontent
|
|
694
|
+
* ```
|
|
695
|
+
* E.g : Input.createSpanElement(inputObject, makeElement);
|
|
696
|
+
* ```
|
|
697
|
+
*
|
|
698
|
+
* @param {InputObject} inputObject
|
|
699
|
+
* - Element which is need to get the label
|
|
700
|
+
* @param {createElementParams} makeElement
|
|
701
|
+
* - Element which is need to create the span
|
|
702
|
+
*/
|
|
703
|
+
function createSpanElement(inputObject, makeElement) {
|
|
704
|
+
if (inputObject.container.classList.contains('e-outline') && inputObject.container.getElementsByClassName('e-float-text')[0]) {
|
|
705
|
+
const labelSpanElement = makeElement('span', { className: CLASSNAMES.FLOATTEXTCONTENT });
|
|
706
|
+
labelSpanElement.innerHTML = inputObject.container.getElementsByClassName('e-float-text')[0].innerHTML;
|
|
707
|
+
inputObject.container.getElementsByClassName('e-float-text')[0].innerHTML = '';
|
|
708
|
+
inputObject.container.getElementsByClassName('e-float-text')[0].appendChild(labelSpanElement);
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
Input.createSpanElement = createSpanElement;
|
|
664
712
|
/**
|
|
665
713
|
* Enable or Disable the ripple effect on the icons inside the Input. Ripple effect is only applicable for material theme.
|
|
666
714
|
* ```
|
|
@@ -749,6 +797,9 @@ var Input;
|
|
|
749
797
|
prependSpan(icon, container, input, internalCreate);
|
|
750
798
|
}
|
|
751
799
|
}
|
|
800
|
+
if (container.getElementsByClassName('e-input-group-icon')[0] && container.getElementsByClassName('e-float-text-overflow')[0]) {
|
|
801
|
+
container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
|
|
802
|
+
}
|
|
752
803
|
}
|
|
753
804
|
Input.addIcon = addIcon;
|
|
754
805
|
/**
|
|
@@ -1958,6 +2009,7 @@ let NumericTextBox = class NumericTextBox extends Component {
|
|
|
1958
2009
|
switch (prop) {
|
|
1959
2010
|
case 'width':
|
|
1960
2011
|
this.setElementWidth(newProp.width);
|
|
2012
|
+
Input.calculateWidth(this.element, this.container);
|
|
1961
2013
|
break;
|
|
1962
2014
|
case 'cssClass':
|
|
1963
2015
|
this.updateCssClass(newProp.cssClass, oldProp.cssClass);
|
|
@@ -1986,6 +2038,7 @@ let NumericTextBox = class NumericTextBox extends Component {
|
|
|
1986
2038
|
break;
|
|
1987
2039
|
case 'placeholder':
|
|
1988
2040
|
Input.setPlaceholder(newProp.placeholder, this.element);
|
|
2041
|
+
Input.calculateWidth(this.element, this.container);
|
|
1989
2042
|
break;
|
|
1990
2043
|
case 'step':
|
|
1991
2044
|
this.step = newProp.step;
|
|
@@ -3607,6 +3660,7 @@ let MaskedTextBox = class MaskedTextBox extends Component {
|
|
|
3607
3660
|
break;
|
|
3608
3661
|
case 'width':
|
|
3609
3662
|
this.setWidth(newProp.width);
|
|
3663
|
+
Input.calculateWidth(this.element, this.inputObj.container);
|
|
3610
3664
|
break;
|
|
3611
3665
|
case 'cssClass':
|
|
3612
3666
|
this.updateCssClass(newProp.cssClass, oldProp.cssClass);
|
|
@@ -7634,6 +7688,7 @@ let Uploader = class Uploader extends Component {
|
|
|
7634
7688
|
this.newFileRef = 0;
|
|
7635
7689
|
this.isFirstFileOnSelection = false;
|
|
7636
7690
|
this.dragCounter = 0;
|
|
7691
|
+
this.isAngular = false;
|
|
7637
7692
|
/**
|
|
7638
7693
|
* Get the file item(li) which are shown in file list.
|
|
7639
7694
|
*
|
|
@@ -8674,6 +8729,9 @@ let Uploader = class Uploader extends Component {
|
|
|
8674
8729
|
targetFiles = [].slice.call(args.target.files);
|
|
8675
8730
|
this.renderSelectedFiles(args, targetFiles);
|
|
8676
8731
|
}
|
|
8732
|
+
if (this.isAngular) {
|
|
8733
|
+
args.stopPropagation();
|
|
8734
|
+
}
|
|
8677
8735
|
}
|
|
8678
8736
|
/* istanbul ignore next */
|
|
8679
8737
|
getBase64(file) {
|
|
@@ -12862,6 +12920,7 @@ let TextBox = class TextBox extends Component {
|
|
|
12862
12920
|
break;
|
|
12863
12921
|
case 'placeholder':
|
|
12864
12922
|
Input.setPlaceholder(this.placeholder, this.respectiveElement);
|
|
12923
|
+
Input.calculateWidth(this.respectiveElement, this.textboxWrapper.container);
|
|
12865
12924
|
break;
|
|
12866
12925
|
case 'autocomplete':
|
|
12867
12926
|
if (this.autocomplete !== 'on' && this.autocomplete !== '') {
|
|
@@ -13154,7 +13213,7 @@ let TextBox = class TextBox extends Component {
|
|
|
13154
13213
|
}
|
|
13155
13214
|
if (!isNullOrUndefined(this.textboxWrapper)) {
|
|
13156
13215
|
const label = this.textboxWrapper.container.querySelector('.e-float-text');
|
|
13157
|
-
if (!isNullOrUndefined(label)) {
|
|
13216
|
+
if (!isNullOrUndefined(label) && this.floatLabelType !== 'Always') {
|
|
13158
13217
|
if ((isNullOrUndefined(this.initialValue) || this.initialValue === '')) {
|
|
13159
13218
|
label.classList.add('e-label-bottom');
|
|
13160
13219
|
label.classList.remove('e-label-top');
|
|
@@ -13176,7 +13235,7 @@ let TextBox = class TextBox extends Component {
|
|
|
13176
13235
|
}
|
|
13177
13236
|
focusOutHandler(args) {
|
|
13178
13237
|
if (!(this.previousValue === null && this.value === null && this.respectiveElement.value === '') &&
|
|
13179
|
-
(this.previousValue !== this.
|
|
13238
|
+
(this.previousValue !== this.value)) {
|
|
13180
13239
|
this.raiseChangeEvent(args, true);
|
|
13181
13240
|
}
|
|
13182
13241
|
const eventArgs = {
|