@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.
@@ -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
  }
@@ -483,7 +510,9 @@ var Input;
483
510
  var parent = getParentNode(element);
484
511
  if (parent.classList.contains(CLASSNAMES.FLOATINPUT) && floatLabelType === 'Auto') {
485
512
  var label = getParentNode(element).getElementsByClassName('e-float-text')[0];
486
- updateLabelState(element.value, label, element);
513
+ if (label) {
514
+ updateLabelState(element.value, label, element);
515
+ }
487
516
  }
488
517
  }
489
518
  /**
@@ -606,6 +635,7 @@ var Input;
606
635
  };
607
636
  resizeHandlers.set(element, resizeHandler_1);
608
637
  window.addEventListener('resize', resizeHandler_1);
638
+ observeElementDetach(element, container, resizeHandler_1);
609
639
  }
610
640
  if (moduleName !== 'multiselect' && !_isElementVisible(element)) {
611
641
  return;
@@ -12702,11 +12732,26 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
12702
12732
  };
12703
12733
  ColorPicker.prototype.firstPaletteFocus = function () {
12704
12734
  if (!select('.' + SELECT, this.container.children[0])) {
12705
- 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
+ }
12706
12742
  }
12707
12743
  };
12708
12744
  ColorPicker.prototype.appendPalette = function (colors, key, refEle) {
12709
- 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
+ });
12710
12755
  if (key === 'recent-color') {
12711
12756
  palette.classList.add('e-recent-palette');
12712
12757
  }
@@ -12719,34 +12764,51 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
12719
12764
  var row;
12720
12765
  var tile;
12721
12766
  var roundedColor;
12767
+ var rowIdx = 0;
12768
+ var colIdx;
12722
12769
  for (var i = 0, len = colors.length; i < len; i++) {
12723
12770
  if (i === 0 || i % this.columns === 0) {
12771
+ rowIdx++;
12772
+ colIdx = 0;
12724
12773
  row = this.createElement('div', {
12725
- className: 'e-row', attrs: { 'role': 'row' }
12774
+ className: 'e-row',
12775
+ attrs: { 'role': 'row', 'aria-label': 'Row ' + rowIdx }
12726
12776
  });
12727
12777
  palette.appendChild(row);
12728
12778
  }
12779
+ colIdx++;
12729
12780
  roundedColor = this.roundValue(colors[i]).toLowerCase();
12730
12781
  tile = this.createElement('span', {
12731
- 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
+ }
12732
12787
  });
12733
12788
  this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });
12734
12789
  row.appendChild(tile);
12735
12790
  if (this.value === roundedColor && key !== 'recent-color') {
12736
12791
  this.addTileSelection(tile);
12737
- palette.focus();
12738
12792
  }
12739
12793
  tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor));
12740
12794
  }
12795
+ var selectedTile = palette.querySelector('.' + TILE + '.' + SELECT);
12796
+ if (selectedTile) {
12797
+ selectedTile.focus();
12798
+ }
12741
12799
  };
12742
12800
  ColorPicker.prototype.setNoColor = function () {
12743
12801
  var noColorEle = this.container.querySelector('.e-row').children[0];
12744
12802
  noColorEle.classList.add(NOCOLOR);
12803
+ noColorEle.setAttribute('aria-label', 'No color');
12745
12804
  if (!this.value) {
12746
12805
  noColorEle.classList.add(SELECT);
12747
- closest(noColorEle, '.' + PALETTES).focus();
12806
+ noColorEle.setAttribute('aria-selected', 'true');
12807
+ noColorEle.focus();
12808
+ }
12809
+ else {
12810
+ noColorEle.setAttribute('aria-selected', 'false');
12748
12811
  }
12749
- ['aria-selected', 'aria-label'].forEach(function (attr) { noColorEle.removeAttribute(attr); });
12750
12812
  noColorEle.style.backgroundColor = '';
12751
12813
  };
12752
12814
  ColorPicker.prototype.appendElement = function (ele, insertPos) {
@@ -13325,7 +13387,7 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13325
13387
  else {
13326
13388
  this.setProperties({ 'value': hex }, true);
13327
13389
  }
13328
- this.element.value = hex ? hex : '#000000';
13390
+ this.element.value = hex ? hex : (this.mode === 'Palette' && !this.modeSwitcher && this.noColor ? '' : '#000000');
13329
13391
  };
13330
13392
  ColorPicker.prototype.handlerDragPosition = function (prob, value, e) {
13331
13393
  e.preventDefault();
@@ -13609,10 +13671,12 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13609
13671
  }
13610
13672
  };
13611
13673
  ColorPicker.prototype.paletteKeyDown = function (e) {
13612
- var target = e.target;
13613
- if (!target.classList.contains(PALETTES)) {
13674
+ var eventTarget = e.target;
13675
+ if (!eventTarget.classList.contains(PALETTES) && !eventTarget.classList.contains(TILE)) {
13614
13676
  return;
13615
13677
  }
13678
+ var target = eventTarget.classList.contains(TILE) ?
13679
+ closest(eventTarget, '.' + PALETTES) : eventTarget;
13616
13680
  var selectedEle;
13617
13681
  var idx;
13618
13682
  var tiles = [].slice.call(selectAll('.' + TILE, target));
@@ -13670,8 +13734,13 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13670
13734
  case 13:
13671
13735
  e.preventDefault();
13672
13736
  if (prevSelectedEle) {
13673
- var cValue = prevSelectedEle.getAttribute('aria-label');
13674
- 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
+ }
13675
13744
  }
13676
13745
  break;
13677
13746
  }
@@ -13692,6 +13761,9 @@ var ColorPicker = /** @__PURE__ @class */ (function (_super) {
13692
13761
  }
13693
13762
  this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true);
13694
13763
  }
13764
+ if (newEle) {
13765
+ newEle.focus();
13766
+ }
13695
13767
  };
13696
13768
  ColorPicker.prototype.tilePosition = function (items, element, cIdx) {
13697
13769
  items = Array.prototype.slice.call(items);