@syncfusion/ej2-inputs 35.1.37 → 35.1.42
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/dist/ej2-inputs.min.js +2 -2
- 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 +87 -15
- package/dist/es6/ej2-inputs.es2015.js.map +1 -1
- package/dist/es6/ej2-inputs.es5.js +87 -15
- 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 +3 -3
- package/src/color-picker/color-picker.js +54 -12
- package/src/input/input.js +33 -10
|
@@ -40,6 +40,30 @@ var Input;
|
|
|
40
40
|
let floatType;
|
|
41
41
|
let isBindClearAction = true;
|
|
42
42
|
let resizeHandlers = new Map();
|
|
43
|
+
const mutationObservers = new Map();
|
|
44
|
+
const observeElementDetach = (element, container, resizeHandler) => {
|
|
45
|
+
const parent = container.parentElement;
|
|
46
|
+
if (!parent) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const observer = new MutationObserver(() => {
|
|
50
|
+
if (!document.documentElement.contains(container)) {
|
|
51
|
+
window.removeEventListener('resize', resizeHandler);
|
|
52
|
+
resizeHandlers.delete(element);
|
|
53
|
+
observer.disconnect();
|
|
54
|
+
mutationObservers.delete(element);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
let host = parent;
|
|
58
|
+
while (host && host.parentElement && host.parentElement !== document.body) {
|
|
59
|
+
host = host.parentElement;
|
|
60
|
+
}
|
|
61
|
+
observer.observe(host || parent, {
|
|
62
|
+
childList: true,
|
|
63
|
+
subtree: true
|
|
64
|
+
});
|
|
65
|
+
mutationObservers.set(element, observer);
|
|
66
|
+
};
|
|
43
67
|
/**
|
|
44
68
|
* Create a wrapper to input element with multiple span elements and set the basic properties to input based components.
|
|
45
69
|
* ```
|
|
@@ -461,8 +485,11 @@ var Input;
|
|
|
461
485
|
if (!isNullOrUndefined(resizeHandlers)) {
|
|
462
486
|
const resizeHandler = resizeHandlers.get(args.element);
|
|
463
487
|
if (resizeHandler) {
|
|
464
|
-
|
|
465
|
-
|
|
488
|
+
const observer = mutationObservers.get(args.element);
|
|
489
|
+
if (observer) {
|
|
490
|
+
observer.disconnect();
|
|
491
|
+
mutationObservers.delete(args.element);
|
|
492
|
+
}
|
|
466
493
|
if (isReactMode) {
|
|
467
494
|
resizeHandlers = null;
|
|
468
495
|
}
|
|
@@ -480,7 +507,9 @@ var Input;
|
|
|
480
507
|
const parent = getParentNode(element);
|
|
481
508
|
if (parent.classList.contains(CLASSNAMES.FLOATINPUT) && floatLabelType === 'Auto') {
|
|
482
509
|
const label = getParentNode(element).getElementsByClassName('e-float-text')[0];
|
|
483
|
-
|
|
510
|
+
if (label) {
|
|
511
|
+
updateLabelState(element.value, label, element);
|
|
512
|
+
}
|
|
484
513
|
}
|
|
485
514
|
}
|
|
486
515
|
/**
|
|
@@ -603,6 +632,7 @@ var Input;
|
|
|
603
632
|
};
|
|
604
633
|
resizeHandlers.set(element, resizeHandler);
|
|
605
634
|
window.addEventListener('resize', resizeHandler);
|
|
635
|
+
observeElementDetach(element, container, resizeHandler);
|
|
606
636
|
}
|
|
607
637
|
if (moduleName !== 'multiselect' && !_isElementVisible(element)) {
|
|
608
638
|
return;
|
|
@@ -12456,11 +12486,26 @@ let ColorPicker = class ColorPicker extends Component {
|
|
|
12456
12486
|
}
|
|
12457
12487
|
firstPaletteFocus() {
|
|
12458
12488
|
if (!select('.' + SELECT, this.container.children[0])) {
|
|
12459
|
-
|
|
12489
|
+
const firstTile = select('.' + TILE, this.container);
|
|
12490
|
+
if (firstTile) {
|
|
12491
|
+
firstTile.focus();
|
|
12492
|
+
}
|
|
12493
|
+
else {
|
|
12494
|
+
selectAll('.' + PALETTES, this.container)[0].focus();
|
|
12495
|
+
}
|
|
12460
12496
|
}
|
|
12461
12497
|
}
|
|
12462
12498
|
appendPalette(colors, key, refEle) {
|
|
12463
|
-
const
|
|
12499
|
+
const rowCount = Math.ceil(colors.length / this.columns);
|
|
12500
|
+
const palette = this.createElement('div', {
|
|
12501
|
+
className: PALETTES,
|
|
12502
|
+
attrs: {
|
|
12503
|
+
'tabindex': '0', 'role': 'grid',
|
|
12504
|
+
'aria-label': (key === 'recent-color' ? 'Recent ' : '') + 'Color palette, ' + rowCount +
|
|
12505
|
+
(rowCount === 1 ? ' row and ' : ' rows and ') + this.columns +
|
|
12506
|
+
(this.columns === 1 ? ' column' : ' columns')
|
|
12507
|
+
}
|
|
12508
|
+
});
|
|
12464
12509
|
if (key === 'recent-color') {
|
|
12465
12510
|
palette.classList.add('e-recent-palette');
|
|
12466
12511
|
}
|
|
@@ -12473,34 +12518,51 @@ let ColorPicker = class ColorPicker extends Component {
|
|
|
12473
12518
|
let row;
|
|
12474
12519
|
let tile;
|
|
12475
12520
|
let roundedColor;
|
|
12521
|
+
let rowIdx = 0;
|
|
12522
|
+
let colIdx;
|
|
12476
12523
|
for (let i = 0, len = colors.length; i < len; i++) {
|
|
12477
12524
|
if (i === 0 || i % this.columns === 0) {
|
|
12525
|
+
rowIdx++;
|
|
12526
|
+
colIdx = 0;
|
|
12478
12527
|
row = this.createElement('div', {
|
|
12479
|
-
className: 'e-row',
|
|
12528
|
+
className: 'e-row',
|
|
12529
|
+
attrs: { 'role': 'row', 'aria-label': 'Row ' + rowIdx }
|
|
12480
12530
|
});
|
|
12481
12531
|
palette.appendChild(row);
|
|
12482
12532
|
}
|
|
12533
|
+
colIdx++;
|
|
12483
12534
|
roundedColor = this.roundValue(colors[i]).toLowerCase();
|
|
12484
12535
|
tile = this.createElement('span', {
|
|
12485
|
-
className: TILE, attrs: {
|
|
12536
|
+
className: TILE, attrs: {
|
|
12537
|
+
'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false',
|
|
12538
|
+
'tabindex': '-1',
|
|
12539
|
+
'aria-rowindex': rowIdx.toString(), 'aria-colindex': colIdx.toString()
|
|
12540
|
+
}
|
|
12486
12541
|
});
|
|
12487
12542
|
this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });
|
|
12488
12543
|
row.appendChild(tile);
|
|
12489
12544
|
if (this.value === roundedColor && key !== 'recent-color') {
|
|
12490
12545
|
this.addTileSelection(tile);
|
|
12491
|
-
palette.focus();
|
|
12492
12546
|
}
|
|
12493
12547
|
tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor));
|
|
12494
12548
|
}
|
|
12549
|
+
const selectedTile = palette.querySelector('.' + TILE + '.' + SELECT);
|
|
12550
|
+
if (selectedTile) {
|
|
12551
|
+
selectedTile.focus();
|
|
12552
|
+
}
|
|
12495
12553
|
}
|
|
12496
12554
|
setNoColor() {
|
|
12497
12555
|
const noColorEle = this.container.querySelector('.e-row').children[0];
|
|
12498
12556
|
noColorEle.classList.add(NOCOLOR);
|
|
12557
|
+
noColorEle.setAttribute('aria-label', 'No color');
|
|
12499
12558
|
if (!this.value) {
|
|
12500
12559
|
noColorEle.classList.add(SELECT);
|
|
12501
|
-
|
|
12560
|
+
noColorEle.setAttribute('aria-selected', 'true');
|
|
12561
|
+
noColorEle.focus();
|
|
12562
|
+
}
|
|
12563
|
+
else {
|
|
12564
|
+
noColorEle.setAttribute('aria-selected', 'false');
|
|
12502
12565
|
}
|
|
12503
|
-
['aria-selected', 'aria-label'].forEach((attr) => { noColorEle.removeAttribute(attr); });
|
|
12504
12566
|
noColorEle.style.backgroundColor = '';
|
|
12505
12567
|
}
|
|
12506
12568
|
appendElement(ele, insertPos = 0) {
|
|
@@ -13073,7 +13135,7 @@ let ColorPicker = class ColorPicker extends Component {
|
|
|
13073
13135
|
else {
|
|
13074
13136
|
this.setProperties({ 'value': hex }, true);
|
|
13075
13137
|
}
|
|
13076
|
-
this.element.value = hex ? hex : '#000000';
|
|
13138
|
+
this.element.value = hex ? hex : (this.mode === 'Palette' && !this.modeSwitcher && this.noColor ? '' : '#000000');
|
|
13077
13139
|
}
|
|
13078
13140
|
handlerDragPosition(prob, value, e) {
|
|
13079
13141
|
e.preventDefault();
|
|
@@ -13356,10 +13418,12 @@ let ColorPicker = class ColorPicker extends Component {
|
|
|
13356
13418
|
}
|
|
13357
13419
|
}
|
|
13358
13420
|
paletteKeyDown(e) {
|
|
13359
|
-
const
|
|
13360
|
-
if (!
|
|
13421
|
+
const eventTarget = e.target;
|
|
13422
|
+
if (!eventTarget.classList.contains(PALETTES) && !eventTarget.classList.contains(TILE)) {
|
|
13361
13423
|
return;
|
|
13362
13424
|
}
|
|
13425
|
+
const target = eventTarget.classList.contains(TILE) ?
|
|
13426
|
+
closest(eventTarget, '.' + PALETTES) : eventTarget;
|
|
13363
13427
|
let selectedEle;
|
|
13364
13428
|
let idx;
|
|
13365
13429
|
const tiles = [].slice.call(selectAll('.' + TILE, target));
|
|
@@ -13417,8 +13481,13 @@ let ColorPicker = class ColorPicker extends Component {
|
|
|
13417
13481
|
case 13:
|
|
13418
13482
|
e.preventDefault();
|
|
13419
13483
|
if (prevSelectedEle) {
|
|
13420
|
-
|
|
13421
|
-
|
|
13484
|
+
if (prevSelectedEle.classList.contains(NOCOLOR)) {
|
|
13485
|
+
this.enterKeyHandler('');
|
|
13486
|
+
}
|
|
13487
|
+
else {
|
|
13488
|
+
const cValue = prevSelectedEle.getAttribute('aria-label');
|
|
13489
|
+
this.enterKeyHandler(cValue ? cValue : '');
|
|
13490
|
+
}
|
|
13422
13491
|
}
|
|
13423
13492
|
break;
|
|
13424
13493
|
}
|
|
@@ -13439,6 +13508,9 @@ let ColorPicker = class ColorPicker extends Component {
|
|
|
13439
13508
|
}
|
|
13440
13509
|
this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true);
|
|
13441
13510
|
}
|
|
13511
|
+
if (newEle) {
|
|
13512
|
+
newEle.focus();
|
|
13513
|
+
}
|
|
13442
13514
|
}
|
|
13443
13515
|
tilePosition(items, element, cIdx) {
|
|
13444
13516
|
items = Array.prototype.slice.call(items);
|