@syncfusion/ej2-inputs 35.1.41 → 35.1.43

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.
@@ -40,6 +40,30 @@ var Input;
40
40
  var floatType;
41
41
  var isBindClearAction = true;
42
42
  var resizeHandlers = new Map();
43
+ var mutationObservers = new Map();
44
+ var observeElementDetach = function (element, container, resizeHandler) {
45
+ var parent = container.parentElement;
46
+ if (!parent) {
47
+ return;
48
+ }
49
+ var observer = new MutationObserver(function () {
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
+ var 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
  * ```
@@ -464,8 +488,11 @@ var Input;
464
488
  if (!isNullOrUndefined(resizeHandlers)) {
465
489
  var resizeHandler = resizeHandlers.get(args.element);
466
490
  if (resizeHandler) {
467
- window.removeEventListener('resize', resizeHandler);
468
- resizeHandlers.delete(args.element);
491
+ var observer = mutationObservers.get(args.element);
492
+ if (observer) {
493
+ observer.disconnect();
494
+ mutationObservers.delete(args.element);
495
+ }
469
496
  if (isReactMode) {
470
497
  resizeHandlers = null;
471
498
  }
@@ -608,6 +635,7 @@ var Input;
608
635
  };
609
636
  resizeHandlers.set(element, resizeHandler_1);
610
637
  window.addEventListener('resize', resizeHandler_1);
638
+ observeElementDetach(element, container, resizeHandler_1);
611
639
  }
612
640
  if (moduleName !== 'multiselect' && !_isElementVisible(element)) {
613
641
  return;
@@ -1632,12 +1660,18 @@ var NumericTextBox = /** @__PURE__ @class */ (function (_super) {
1632
1660
  'title': this.l10n.getConstant('decrementTitle'),
1633
1661
  'aria-label': this.l10n.getConstant('decrementTitle')
1634
1662
  });
1663
+ if (this.spinDown.getAttribute('aria-label')) {
1664
+ this.spinDown.setAttribute('role', 'button');
1665
+ }
1635
1666
  }
1636
1667
  if (!isNullOrUndefined(this.spinUp)) {
1637
1668
  attributes(this.spinUp, {
1638
1669
  'title': this.l10n.getConstant('incrementTitle'),
1639
1670
  'aria-label': this.l10n.getConstant('incrementTitle')
1640
1671
  });
1672
+ if (this.spinUp.getAttribute('aria-label')) {
1673
+ this.spinUp.setAttribute('role', 'button');
1674
+ }
1641
1675
  }
1642
1676
  };
1643
1677
  NumericTextBox.prototype.wireEvents = function () {
@@ -12704,11 +12738,26 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
12704
12738
  };
12705
12739
  ColorPicker.prototype.firstPaletteFocus = function () {
12706
12740
  if (!select('.' + SELECT, this.container.children[0])) {
12707
- selectAll('.' + PALETTES, this.container)[0].focus();
12741
+ var firstTile = select('.' + TILE, this.container);
12742
+ if (firstTile) {
12743
+ firstTile.focus();
12744
+ }
12745
+ else {
12746
+ selectAll('.' + PALETTES, this.container)[0].focus();
12747
+ }
12708
12748
  }
12709
12749
  };
12710
12750
  ColorPicker.prototype.appendPalette = function (colors, key, refEle) {
12711
- var palette = this.createElement('div', { className: PALETTES, attrs: { 'tabindex': '0', 'role': 'grid' } });
12751
+ var rowCount = Math.ceil(colors.length / this.columns);
12752
+ var palette = this.createElement('div', {
12753
+ className: PALETTES,
12754
+ attrs: {
12755
+ 'tabindex': '0', 'role': 'grid',
12756
+ 'aria-label': (key === 'recent-color' ? 'Recent ' : '') + 'Color palette, ' + rowCount +
12757
+ (rowCount === 1 ? ' row and ' : ' rows and ') + this.columns +
12758
+ (this.columns === 1 ? ' column' : ' columns')
12759
+ }
12760
+ });
12712
12761
  if (key === 'recent-color') {
12713
12762
  palette.classList.add('e-recent-palette');
12714
12763
  }
@@ -12721,34 +12770,51 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
12721
12770
  var row;
12722
12771
  var tile;
12723
12772
  var roundedColor;
12773
+ var rowIdx = 0;
12774
+ var colIdx;
12724
12775
  for (var i = 0, len = colors.length; i < len; i++) {
12725
12776
  if (i === 0 || i % this.columns === 0) {
12777
+ rowIdx++;
12778
+ colIdx = 0;
12726
12779
  row = this.createElement('div', {
12727
- className: 'e-row', attrs: { 'role': 'row' }
12780
+ className: 'e-row',
12781
+ attrs: { 'role': 'row', 'aria-label': 'Row ' + rowIdx }
12728
12782
  });
12729
12783
  palette.appendChild(row);
12730
12784
  }
12785
+ colIdx++;
12731
12786
  roundedColor = this.roundValue(colors[i]).toLowerCase();
12732
12787
  tile = this.createElement('span', {
12733
- className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false' }
12788
+ className: TILE, attrs: {
12789
+ 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false',
12790
+ 'tabindex': '-1',
12791
+ 'aria-rowindex': rowIdx.toString(), 'aria-colindex': colIdx.toString()
12792
+ }
12734
12793
  });
12735
12794
  this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });
12736
12795
  row.appendChild(tile);
12737
12796
  if (this.value === roundedColor && key !== 'recent-color') {
12738
12797
  this.addTileSelection(tile);
12739
- palette.focus();
12740
12798
  }
12741
12799
  tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor));
12742
12800
  }
12801
+ var selectedTile = palette.querySelector('.' + TILE + '.' + SELECT);
12802
+ if (selectedTile) {
12803
+ selectedTile.focus();
12804
+ }
12743
12805
  };
12744
12806
  ColorPicker.prototype.setNoColor = function () {
12745
12807
  var noColorEle = this.container.querySelector('.e-row').children[0];
12746
12808
  noColorEle.classList.add(NOCOLOR);
12809
+ noColorEle.setAttribute('aria-label', 'No color');
12747
12810
  if (!this.value) {
12748
12811
  noColorEle.classList.add(SELECT);
12749
- closest(noColorEle, '.' + PALETTES).focus();
12812
+ noColorEle.setAttribute('aria-selected', 'true');
12813
+ noColorEle.focus();
12814
+ }
12815
+ else {
12816
+ noColorEle.setAttribute('aria-selected', 'false');
12750
12817
  }
12751
- ['aria-selected', 'aria-label'].forEach(function (attr) { noColorEle.removeAttribute(attr); });
12752
12818
  noColorEle.style.backgroundColor = '';
12753
12819
  };
12754
12820
  ColorPicker.prototype.appendElement = function (ele, insertPos) {
@@ -13611,10 +13677,12 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13611
13677
  }
13612
13678
  };
13613
13679
  ColorPicker.prototype.paletteKeyDown = function (e) {
13614
- var target = e.target;
13615
- if (!target.classList.contains(PALETTES)) {
13680
+ var eventTarget = e.target;
13681
+ if (!eventTarget.classList.contains(PALETTES) && !eventTarget.classList.contains(TILE)) {
13616
13682
  return;
13617
13683
  }
13684
+ var target = eventTarget.classList.contains(TILE) ?
13685
+ closest(eventTarget, '.' + PALETTES) : eventTarget;
13618
13686
  var selectedEle;
13619
13687
  var idx;
13620
13688
  var tiles = [].slice.call(selectAll('.' + TILE, target));
@@ -13672,8 +13740,13 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13672
13740
  case 13:
13673
13741
  e.preventDefault();
13674
13742
  if (prevSelectedEle) {
13675
- var cValue = prevSelectedEle.getAttribute('aria-label');
13676
- this.enterKeyHandler(cValue ? cValue : '');
13743
+ if (prevSelectedEle.classList.contains(NOCOLOR)) {
13744
+ this.enterKeyHandler('');
13745
+ }
13746
+ else {
13747
+ var cValue = prevSelectedEle.getAttribute('aria-label');
13748
+ this.enterKeyHandler(cValue ? cValue : '');
13749
+ }
13677
13750
  }
13678
13751
  break;
13679
13752
  }
@@ -13694,6 +13767,9 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13694
13767
  }
13695
13768
  this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true);
13696
13769
  }
13770
+ if (newEle) {
13771
+ newEle.focus();
13772
+ }
13697
13773
  };
13698
13774
  ColorPicker.prototype.tilePosition = function (items, element, cIdx) {
13699
13775
  items = Array.prototype.slice.call(items);