@syncfusion/ej2-filemanager 33.2.3 → 33.2.6

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.
@@ -5457,9 +5457,11 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
5457
5457
  }
5458
5458
  }
5459
5459
  }
5460
- var targetItem = this.getFocusedItem() || mappedItem || this.parent.visitedItem || this.getFirstItem();
5461
- if (targetItem) {
5462
- this.addFocus(targetItem);
5460
+ if (this.parent.activeModule !== 'navigationpane') {
5461
+ var targetItem = this.getFocusedItem() || mappedItem || this.parent.visitedItem || this.getFirstItem();
5462
+ if (targetItem) {
5463
+ this.addFocus(targetItem);
5464
+ }
5463
5465
  }
5464
5466
  }
5465
5467
  };
@@ -5697,13 +5699,15 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
5697
5699
  }
5698
5700
  };
5699
5701
  LargeIconsView.prototype.destroy = function () {
5700
- if (this.parent.isDestroyed) {
5701
- return;
5702
- }
5703
5702
  this.removeEventListener();
5704
5703
  if (this.listObj) {
5705
5704
  this.unWireEvents();
5706
5705
  }
5706
+ if (this.itemList) {
5707
+ this.itemList.forEach(function (el) {
5708
+ el.ondragstart = null;
5709
+ });
5710
+ }
5707
5711
  this.startItem = null;
5708
5712
  this.listElements = null;
5709
5713
  };
@@ -6690,10 +6694,14 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6690
6694
  this.addressBarLink = '';
6691
6695
  this.searchTimer = null;
6692
6696
  this.searchWrapWidth = null;
6697
+ this.searchIcon = null;
6698
+ this.searchSibling = null;
6693
6699
  this.parent = parent;
6694
6700
  this.keyConfigs = {
6695
6701
  enter: 'enter'
6696
6702
  };
6703
+ this.boundSearchChangeHandler = this.searchChangeHandler.bind(this);
6704
+ this.boundOnKeyUp = this.onKeyUp.bind(this);
6697
6705
  this.render();
6698
6706
  }
6699
6707
  BreadCrumbBar.prototype.onPropertyChanged = function (e) {
@@ -6718,8 +6726,15 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6718
6726
  }
6719
6727
  };
6720
6728
  BreadCrumbBar.prototype.render = function () {
6729
+ this.setBreadcrumbNavAttributes();
6721
6730
  this.addEventListener();
6722
6731
  };
6732
+ BreadCrumbBar.prototype.setBreadcrumbNavAttributes = function () {
6733
+ var navElement = this.parent && this.parent.breadCrumbNavElement;
6734
+ if (navElement) {
6735
+ navElement.setAttribute('aria-label', 'Breadcrumb');
6736
+ }
6737
+ };
6723
6738
  BreadCrumbBar.prototype.onPathChange = function () {
6724
6739
  var pathNames = this.parent.pathNames;
6725
6740
  var paths = this.parent.path.split('/');
@@ -6740,7 +6755,6 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6740
6755
  addressbarLI.appendChild(icon);
6741
6756
  }
6742
6757
  addressbarLI.setAttribute('tabindex', '0');
6743
- addressbarLI.setAttribute('role', 'link');
6744
6758
  var pathLabel = pathNames.slice(0, i + 1).join(' / ');
6745
6759
  addressbarLI.setAttribute('aria-label', pathLabel);
6746
6760
  if (pathNamesLen - i === 1) {
@@ -6748,24 +6762,24 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6748
6762
  }
6749
6763
  id = '';
6750
6764
  addressATag = createElement('a', { className: LIST_TEXT });
6751
- addressATag.setAttribute('role', 'presentation');
6765
+ addressATag.setAttribute('role', 'link');
6752
6766
  addressATag.innerText = pathNames[i];
6753
6767
  addressbarLI.appendChild(addressATag);
6754
6768
  addressbarUL.appendChild(addressbarLI);
6755
6769
  }
6756
- var ulElement = this.parent.breadCrumbBarNavigation.querySelector('.e-addressbar-ul');
6770
+ var ulElement = this.parent.breadCrumbNavElement.querySelector('.e-addressbar-ul');
6757
6771
  if (!isNullOrUndefined(ulElement)) {
6758
6772
  if (!isNullOrUndefined(this.subMenuObj)) {
6759
6773
  this.subMenuObj.destroy();
6760
6774
  }
6761
6775
  remove(ulElement);
6762
6776
  }
6763
- var searchWrap = this.parent.breadCrumbBarNavigation.querySelector('.e-search-wrap');
6777
+ var searchWrap = this.parent.breadCrumbNavElement.querySelector('.e-search-wrap');
6764
6778
  if (!searchWrap) {
6765
- this.parent.breadCrumbBarNavigation.insertBefore(addressbarUL, searchWrap);
6779
+ this.parent.breadCrumbNavElement.insertBefore(addressbarUL, searchWrap);
6766
6780
  }
6767
6781
  else {
6768
- this.parent.breadCrumbBarNavigation.appendChild(addressbarUL);
6782
+ this.parent.breadCrumbNavElement.appendChild(addressbarUL);
6769
6783
  }
6770
6784
  this.updateBreadCrumbBar(addressbarUL);
6771
6785
  }
@@ -6773,7 +6787,7 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6773
6787
  /* istanbul ignore next */
6774
6788
  BreadCrumbBar.prototype.updateBreadCrumbBar = function (addresBarUL) {
6775
6789
  var liElements = addresBarUL.querySelectorAll('li');
6776
- var ulElement = this.parent.breadCrumbBarNavigation.querySelector('.e-addressbar-ul');
6790
+ var ulElement = this.parent.breadCrumbNavElement.querySelector('.e-addressbar-ul');
6777
6791
  var style = window.getComputedStyle(ulElement, null);
6778
6792
  var pRight = parseFloat(style.getPropertyValue('padding-right'));
6779
6793
  var pLeft = parseFloat(style.getPropertyValue('padding-left'));
@@ -6795,12 +6809,12 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6795
6809
  var searchInput = createElement('input', { id: id,
6796
6810
  attrs: { autocomplete: 'off', 'aria-label': getLocaleText(this.parent, 'Search') } });
6797
6811
  searchContainer.appendChild(searchInput);
6798
- var searchEle = this.parent.breadCrumbBarNavigation.querySelector('.e-search-wrap .e-input');
6812
+ var searchEle = this.parent.breadCrumbNavElement.querySelector('.e-search-wrap .e-input');
6799
6813
  if (isNullOrUndefined(searchEle)) {
6800
- this.parent.breadCrumbBarNavigation.appendChild(searchContainer);
6801
- var span = createElement('span', { className: 'e-icons e-fe-search' });
6802
- EventHandler.add(span, 'click', this.onShowInput, this);
6803
- searchInput.parentElement.insertBefore(span, searchInput);
6814
+ this.parent.breadCrumbNavElement.appendChild(searchContainer);
6815
+ this.searchIcon = createElement('span', { className: 'e-icons e-fe-search' });
6816
+ EventHandler.add(this.searchIcon, 'click', this.onShowInput, this);
6817
+ searchInput.parentElement.insertBefore(this.searchIcon, searchInput);
6804
6818
  this.searchObj = new TextBox({
6805
6819
  value: '',
6806
6820
  showClearButton: true,
@@ -6810,11 +6824,11 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6810
6824
  });
6811
6825
  this.searchObj.appendTo('#' + this.parent.element.id + SEARCH_ID);
6812
6826
  this.searchEventBind(this.parent.searchSettings.allowSearchOnTyping);
6813
- var search = this.searchObj.element.nextElementSibling;
6814
- EventHandler.add(search, 'mousedown', this.searchChangeHandler.bind(this), this);
6815
- EventHandler.add(this.searchObj.element, 'keyup', this.onKeyUp.bind(this), this);
6827
+ this.searchSibling = this.searchObj.element.nextElementSibling;
6828
+ EventHandler.add(this.searchSibling, 'mousedown', this.boundSearchChangeHandler, this);
6829
+ EventHandler.add(this.searchObj.element, 'keyup', this.boundOnKeyUp, this);
6816
6830
  }
6817
- var searchWrap = this.parent.breadCrumbBarNavigation.querySelector('.e-search-wrap');
6831
+ var searchWrap = this.parent.breadCrumbNavElement.querySelector('.e-search-wrap');
6818
6832
  breadCrumbBarWidth = breadCrumbBarWidth - (this.searchWrapWidth ? this.searchWrapWidth : searchWrap.offsetWidth);
6819
6833
  if (liElementsWidth > breadCrumbBarWidth) {
6820
6834
  var i = liElements.length;
@@ -6852,10 +6866,10 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6852
6866
  break;
6853
6867
  }
6854
6868
  }
6855
- this.parent.breadCrumbBarNavigation.insertBefore(addressbarUL, searchWrap);
6869
+ this.parent.breadCrumbNavElement.insertBefore(addressbarUL, searchWrap);
6856
6870
  }
6857
6871
  else {
6858
- this.parent.breadCrumbBarNavigation.insertBefore(addresBarUL, searchWrap);
6872
+ this.parent.breadCrumbNavElement.insertBefore(addresBarUL, searchWrap);
6859
6873
  }
6860
6874
  };
6861
6875
  /* istanbul ignore next */
@@ -6934,7 +6948,7 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
6934
6948
  this.searchWrapWidth = null;
6935
6949
  }
6936
6950
  else {
6937
- var searchWrap = this.parent.breadCrumbBarNavigation.querySelector('.e-search-wrap');
6951
+ var searchWrap = this.parent.breadCrumbNavElement.querySelector('.e-search-wrap');
6938
6952
  this.searchWrapWidth = searchWrap.offsetWidth;
6939
6953
  addClass([this.parent.element], FILTER);
6940
6954
  this.searchObj.element.focus();
@@ -7035,6 +7049,18 @@ var BreadCrumbBar = /** @__PURE__ @class */ (function () {
7035
7049
  this.parent.off(dropInit, this.onDropInit);
7036
7050
  this.parent.off(layoutRefresh, this.onResize);
7037
7051
  this.parent.off(dropPath, this.onPathChange);
7052
+ if (this.parent.breadCrumbBarNavigation) {
7053
+ EventHandler.remove(this.parent.breadCrumbBarNavigation, 'click', this.addressPathClickHandler);
7054
+ }
7055
+ if (this.searchIcon) {
7056
+ EventHandler.remove(this.searchIcon, 'click', this.onShowInput);
7057
+ }
7058
+ if (this.searchSibling) {
7059
+ EventHandler.remove(this.searchSibling, 'mousedown', this.boundSearchChangeHandler);
7060
+ }
7061
+ if (this.searchObj && this.searchObj.element) {
7062
+ EventHandler.remove(this.searchObj.element, 'keyup', this.boundOnKeyUp);
7063
+ }
7038
7064
  };
7039
7065
  /* istanbul ignore next */
7040
7066
  BreadCrumbBar.prototype.onDropInit = function (args) {
@@ -7225,10 +7251,16 @@ var ContextMenu = /** @__PURE__ @class */ (function () {
7225
7251
  }
7226
7252
  else if (!isNullOrUndefined(closest(target, 'tr.e-row'))) {
7227
7253
  uid = this.targetElement.getAttribute('data-uid');
7228
- data = this.parent.detailsviewModule.gridObj.getRowObjectFromUID(uid).data;
7229
- if (isNullOrUndefined(this.targetElement.getAttribute('aria-selected'))) {
7230
- /* istanbul ignore next */
7231
- this.parent.detailsviewModule.gridObj.selectRows([parseInt(this.targetElement.getAttribute('aria-rowindex'), 10) - 1]);
7254
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7255
+ var gridObj = this.parent.detailsviewModule && this.parent.detailsviewModule.gridObj;
7256
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7257
+ var rowObj = (!isNullOrUndefined(uid) && !isNullOrUndefined(gridObj)) ? gridObj.getRowObjectFromUID(uid) : null;
7258
+ if (!isNullOrUndefined(rowObj)) {
7259
+ data = rowObj.data;
7260
+ if (isNullOrUndefined(this.targetElement.getAttribute('aria-selected'))) {
7261
+ /* istanbul ignore next */
7262
+ gridObj.selectRows([parseInt(this.targetElement.getAttribute('aria-rowindex'), 10) - 1]);
7263
+ }
7232
7264
  }
7233
7265
  selected = true;
7234
7266
  /* istanbul ignore next */
@@ -7424,10 +7456,12 @@ var ContextMenu = /** @__PURE__ @class */ (function () {
7424
7456
  this.menuType = 'layout';
7425
7457
  this.contextMenu.items = this.getItemData(this.parent.contextMenuSettings.layout.map(function (item) { return item.trim(); }));
7426
7458
  this.contextMenu.dataBind();
7427
- if (!this.parent.allowMultiSelection || ((this.parent.view === 'LargeIcons' &&
7428
- (closest(target, '#' + this.parent.element.id + LARGEICON_ID).getElementsByClassName(EMPTY).length !== 0))
7429
- || (this.parent.view === 'Details' &&
7430
- (closest(target, '#' + this.parent.element.id + GRID_ID).getElementsByClassName(EMPTY).length !== 0)))) {
7459
+ var largeIconsEle = closest(target, '#' + this.parent.element.id + LARGEICON_ID);
7460
+ var detailsViewEle = closest(target, '#' + this.parent.element.id + GRID_ID);
7461
+ if (!this.parent.allowMultiSelection || ((this.parent.view === 'LargeIcons' && !isNullOrUndefined(largeIconsEle) &&
7462
+ (largeIconsEle.getElementsByClassName(EMPTY).length !== 0))
7463
+ || (this.parent.view === 'Details' && !isNullOrUndefined(detailsViewEle) &&
7464
+ (detailsViewEle.getElementsByClassName(EMPTY).length !== 0)))) {
7431
7465
  this.disabledItems.push('SelectAll');
7432
7466
  }
7433
7467
  else {
@@ -8158,6 +8192,8 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8158
8192
  id: this.element.id + BREADCRUMBBAR_ID,
8159
8193
  className: BREADCRUMBS
8160
8194
  });
8195
+ this.breadCrumbNavElement = this.createElement('nav');
8196
+ this.breadCrumbBarNavigation.appendChild(this.breadCrumbNavElement);
8161
8197
  contentWrap.appendChild(this.breadCrumbBarNavigation);
8162
8198
  var gridWrap = this.createElement('div', {
8163
8199
  id: this.element.id + GRID_ID
@@ -8657,41 +8693,74 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8657
8693
  return;
8658
8694
  }
8659
8695
  }
8696
+ var contentElem = this.viewElem.firstChild;
8697
+ var isLargeIcons = this.viewElem.classList.contains('e-large-icons');
8698
+ if (isLargeIcons) {
8699
+ this.dragContainer = (contentElem && contentElem.tagName === 'UL') ? contentElem : this.viewElem;
8700
+ }
8701
+ else {
8702
+ this.dragContainer = this.viewElem.firstChild;
8703
+ }
8704
+ if (!this.dragContainer) {
8705
+ return;
8706
+ }
8660
8707
  event.preventDefault();
8661
- this.dragX = event.pageX;
8662
- this.dragY = event.pageY;
8708
+ this.lastDragEvent = event;
8709
+ var ulRect = this.dragContainer.getBoundingClientRect();
8710
+ this.dragX = event.clientX - ulRect.left - this.dragContainer.clientLeft + this.dragContainer.scrollLeft;
8711
+ this.dragY = event.clientY - ulRect.top - this.dragContainer.clientTop + this.dragContainer.scrollTop;
8663
8712
  if (!this.dragSelectElement) {
8664
8713
  this.dragSelectElement = createElement('div', {
8665
8714
  id: this.element.id + '_drag',
8666
- className: 'e-filemanager e-drag-select',
8667
- styles: 'left: ' + this.dragX + 'px;top: ' + this.dragY + 'px;'
8715
+ className: 'e-filemanager e-drag-select'
8668
8716
  });
8669
- document.body.append(this.dragSelectElement);
8717
+ setStyleAttribute(this.dragSelectElement, {
8718
+ position: 'absolute',
8719
+ left: this.dragX + 'px',
8720
+ top: this.dragY + 'px',
8721
+ width: '0px',
8722
+ height: '0px',
8723
+ pointerEvents: 'none'
8724
+ });
8725
+ this.dragContainer.appendChild(this.dragSelectElement);
8726
+ this.dragContainer.style.position = 'relative';
8670
8727
  }
8728
+ EventHandler.add(this.dragContainer, 'scroll', this.onDragScroll, this);
8671
8729
  EventHandler.add(document, 'mouseup', this.onDragStop, this);
8672
- EventHandler.add(this.viewElem, 'mousemove', this.onDrag, this);
8730
+ EventHandler.add(this.dragContainer, 'mousemove', this.onDrag, this);
8673
8731
  EventHandler.add(this.dragSelectElement, 'mousemove', this.onDrag, this);
8674
8732
  }
8675
8733
  };
8676
8734
  FileManager.prototype.onDrag = function (event) {
8735
+ this.lastDragEvent = event;
8677
8736
  event.stopPropagation();
8678
- if (this.dragSelectElement) {
8679
- var diffX = event.pageX - this.dragX;
8680
- var diffY = event.pageY - this.dragY;
8737
+ if (this.dragSelectElement && this.dragContainer) {
8738
+ var ulRect = this.dragContainer.getBoundingClientRect();
8739
+ var currentX = event.clientX - ulRect.left - this.dragContainer.clientLeft + this.dragContainer.scrollLeft;
8740
+ var currentY = event.clientY - ulRect.top - this.dragContainer.clientTop + this.dragContainer.scrollTop;
8681
8741
  setStyleAttribute(this.dragSelectElement, {
8682
- 'left': diffX < 0 ? this.dragX + diffX + 'px' : this.dragX + 'px', 'top': diffY < 0 ? this.dragY + diffY + 'px' : this.dragY + 'px',
8683
- 'height': Math.abs(diffY) + 'px', 'width': Math.abs(diffX) + 'px'
8742
+ left: Math.min(this.dragX, currentX) + 'px',
8743
+ top: Math.min(this.dragY, currentY) + 'px',
8744
+ height: Math.abs(currentY - this.dragY) + 'px',
8745
+ width: Math.abs(currentX - this.dragX) + 'px'
8684
8746
  });
8685
8747
  this.selectItems();
8686
8748
  }
8687
- else {
8688
- EventHandler.remove(this.viewElem, 'mousemove', this.onDrag);
8749
+ else if (this.dragContainer) {
8750
+ EventHandler.remove(this.dragContainer, 'mousemove', this.onDrag);
8689
8751
  }
8690
8752
  };
8753
+ FileManager.prototype.onDragScroll = function () {
8754
+ if (!this.dragSelectElement || !this.lastDragEvent) {
8755
+ return;
8756
+ }
8757
+ this.onDrag(this.lastDragEvent);
8758
+ };
8691
8759
  FileManager.prototype.onDragStop = function () {
8692
- if (this.viewElem) {
8693
- EventHandler.remove(document, 'mouseup', this.onDragStop);
8694
- EventHandler.remove(this.viewElem, 'mousemove', this.onDrag);
8760
+ EventHandler.remove(document, 'mouseup', this.onDragStop);
8761
+ if (this.dragContainer) {
8762
+ EventHandler.remove(this.dragContainer, 'mousemove', this.onDrag);
8763
+ EventHandler.remove(this.dragContainer, 'scroll', this.onDragScroll);
8695
8764
  }
8696
8765
  if (this.dragSelectElement) {
8697
8766
  EventHandler.remove(this.dragSelectElement, 'mousemove', this.onDrag);
@@ -8702,6 +8771,7 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8702
8771
  detach(this.dragSelectElement);
8703
8772
  this.dragSelectElement = null;
8704
8773
  }
8774
+ this.dragContainer = null;
8705
8775
  };
8706
8776
  FileManager.prototype.selectItems = function () {
8707
8777
  var dragRect = this.dragSelectElement.getBoundingClientRect();
@@ -8992,6 +9062,7 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8992
9062
  removeClass([this.element], [RTL, MOBILE, CHECK_SELECT]);
8993
9063
  this.element.innerHTML = '';
8994
9064
  this.breadCrumbBarNavigation = null;
9065
+ this.breadCrumbNavElement = null;
8995
9066
  this.activeElements = null;
8996
9067
  this.virtualDragElement = null;
8997
9068
  this.visitedItem = null;