@syncfusion/ej2-inputs 35.1.41 → 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.
@@ -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;
@@ -12704,11 +12732,26 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
12704
12732
  };
12705
12733
  ColorPicker.prototype.firstPaletteFocus = function () {
12706
12734
  if (!select('.' + SELECT, this.container.children[0])) {
12707
- selectAll('.' + PALETTES, this.container)[0].focus();
12735
+ var firstTile = select('.' + TILE, this.container);
12736
+ if (firstTile) {
12737
+ firstTile.focus();
12738
+ }
12739
+ else {
12740
+ selectAll('.' + PALETTES, this.container)[0].focus();
12741
+ }
12708
12742
  }
12709
12743
  };
12710
12744
  ColorPicker.prototype.appendPalette = function (colors, key, refEle) {
12711
- var palette = this.createElement('div', { className: PALETTES, attrs: { 'tabindex': '0', 'role': 'grid' } });
12745
+ var rowCount = Math.ceil(colors.length / this.columns);
12746
+ var palette = this.createElement('div', {
12747
+ className: PALETTES,
12748
+ attrs: {
12749
+ 'tabindex': '0', 'role': 'grid',
12750
+ 'aria-label': (key === 'recent-color' ? 'Recent ' : '') + 'Color palette, ' + rowCount +
12751
+ (rowCount === 1 ? ' row and ' : ' rows and ') + this.columns +
12752
+ (this.columns === 1 ? ' column' : ' columns')
12753
+ }
12754
+ });
12712
12755
  if (key === 'recent-color') {
12713
12756
  palette.classList.add('e-recent-palette');
12714
12757
  }
@@ -12721,34 +12764,51 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
12721
12764
  var row;
12722
12765
  var tile;
12723
12766
  var roundedColor;
12767
+ var rowIdx = 0;
12768
+ var colIdx;
12724
12769
  for (var i = 0, len = colors.length; i < len; i++) {
12725
12770
  if (i === 0 || i % this.columns === 0) {
12771
+ rowIdx++;
12772
+ colIdx = 0;
12726
12773
  row = this.createElement('div', {
12727
- className: 'e-row', attrs: { 'role': 'row' }
12774
+ className: 'e-row',
12775
+ attrs: { 'role': 'row', 'aria-label': 'Row ' + rowIdx }
12728
12776
  });
12729
12777
  palette.appendChild(row);
12730
12778
  }
12779
+ colIdx++;
12731
12780
  roundedColor = this.roundValue(colors[i]).toLowerCase();
12732
12781
  tile = this.createElement('span', {
12733
- className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false' }
12782
+ className: TILE, attrs: {
12783
+ 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false',
12784
+ 'tabindex': '-1',
12785
+ 'aria-rowindex': rowIdx.toString(), 'aria-colindex': colIdx.toString()
12786
+ }
12734
12787
  });
12735
12788
  this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });
12736
12789
  row.appendChild(tile);
12737
12790
  if (this.value === roundedColor && key !== 'recent-color') {
12738
12791
  this.addTileSelection(tile);
12739
- palette.focus();
12740
12792
  }
12741
12793
  tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor));
12742
12794
  }
12795
+ var selectedTile = palette.querySelector('.' + TILE + '.' + SELECT);
12796
+ if (selectedTile) {
12797
+ selectedTile.focus();
12798
+ }
12743
12799
  };
12744
12800
  ColorPicker.prototype.setNoColor = function () {
12745
12801
  var noColorEle = this.container.querySelector('.e-row').children[0];
12746
12802
  noColorEle.classList.add(NOCOLOR);
12803
+ noColorEle.setAttribute('aria-label', 'No color');
12747
12804
  if (!this.value) {
12748
12805
  noColorEle.classList.add(SELECT);
12749
- closest(noColorEle, '.' + PALETTES).focus();
12806
+ noColorEle.setAttribute('aria-selected', 'true');
12807
+ noColorEle.focus();
12808
+ }
12809
+ else {
12810
+ noColorEle.setAttribute('aria-selected', 'false');
12750
12811
  }
12751
- ['aria-selected', 'aria-label'].forEach(function (attr) { noColorEle.removeAttribute(attr); });
12752
12812
  noColorEle.style.backgroundColor = '';
12753
12813
  };
12754
12814
  ColorPicker.prototype.appendElement = function (ele, insertPos) {
@@ -13611,10 +13671,12 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13611
13671
  }
13612
13672
  };
13613
13673
  ColorPicker.prototype.paletteKeyDown = function (e) {
13614
- var target = e.target;
13615
- if (!target.classList.contains(PALETTES)) {
13674
+ var eventTarget = e.target;
13675
+ if (!eventTarget.classList.contains(PALETTES) && !eventTarget.classList.contains(TILE)) {
13616
13676
  return;
13617
13677
  }
13678
+ var target = eventTarget.classList.contains(TILE) ?
13679
+ closest(eventTarget, '.' + PALETTES) : eventTarget;
13618
13680
  var selectedEle;
13619
13681
  var idx;
13620
13682
  var tiles = [].slice.call(selectAll('.' + TILE, target));
@@ -13672,8 +13734,13 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13672
13734
  case 13:
13673
13735
  e.preventDefault();
13674
13736
  if (prevSelectedEle) {
13675
- var cValue = prevSelectedEle.getAttribute('aria-label');
13676
- this.enterKeyHandler(cValue ? cValue : '');
13737
+ if (prevSelectedEle.classList.contains(NOCOLOR)) {
13738
+ this.enterKeyHandler('');
13739
+ }
13740
+ else {
13741
+ var cValue = prevSelectedEle.getAttribute('aria-label');
13742
+ this.enterKeyHandler(cValue ? cValue : '');
13743
+ }
13677
13744
  }
13678
13745
  break;
13679
13746
  }
@@ -13694,6 +13761,9 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13694
13761
  }
13695
13762
  this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true);
13696
13763
  }
13764
+ if (newEle) {
13765
+ newEle.focus();
13766
+ }
13697
13767
  };
13698
13768
  ColorPicker.prototype.tilePosition = function (items, element, cIdx) {
13699
13769
  items = Array.prototype.slice.call(items);