@syncfusion/ej2-filemanager 26.2.10 → 27.1.48
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/.eslintrc.json +2 -4
- package/dist/ej2-filemanager.min.js +2 -2
- package/dist/ej2-filemanager.umd.min.js +2 -2
- package/dist/ej2-filemanager.umd.min.js.map +1 -1
- package/dist/es6/ej2-filemanager.es2015.js +190 -21
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +191 -21
- package/dist/es6/ej2-filemanager.es5.js.map +1 -1
- package/dist/global/ej2-filemanager.min.js +2 -2
- package/dist/global/ej2-filemanager.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +16 -16
- package/src/file-manager/base/file-manager-model.d.ts +17 -1
- package/src/file-manager/base/file-manager.d.ts +32 -1
- package/src/file-manager/base/file-manager.js +148 -1
- package/src/file-manager/base/interface.d.ts +38 -0
- package/src/file-manager/common/operations.js +1 -0
- package/src/file-manager/common/utility.js +3 -0
- package/src/file-manager/layout/details-view.js +11 -2
- package/src/file-manager/layout/large-icons-view.d.ts +0 -1
- package/src/file-manager/layout/large-icons-view.js +5 -17
- package/src/file-manager/pop-up/context-menu.d.ts +1 -1
- package/src/file-manager/pop-up/context-menu.js +24 -2
- package/styles/bootstrap-dark-lite.css +1058 -0
- package/styles/bootstrap-dark-lite.scss +16 -0
- package/styles/bootstrap-dark.css +201 -161
- package/styles/bootstrap-dark.scss +1 -0
- package/styles/bootstrap-lite.css +1040 -0
- package/styles/bootstrap-lite.scss +16 -0
- package/styles/bootstrap.css +183 -143
- package/styles/bootstrap.scss +1 -0
- package/styles/bootstrap4-lite.css +1068 -0
- package/styles/bootstrap4-lite.scss +16 -0
- package/styles/bootstrap4.css +211 -171
- package/styles/bootstrap4.scss +1 -0
- package/styles/bootstrap5-dark-lite.css +1078 -0
- package/styles/bootstrap5-dark-lite.scss +16 -0
- package/styles/bootstrap5-dark.css +220 -186
- package/styles/bootstrap5-dark.scss +1 -0
- package/styles/bootstrap5-lite.css +1078 -0
- package/styles/bootstrap5-lite.scss +16 -0
- package/styles/bootstrap5.3-lite.css +1035 -0
- package/styles/bootstrap5.3-lite.scss +16 -0
- package/styles/bootstrap5.3.css +1603 -0
- package/styles/bootstrap5.3.scss +17 -0
- package/styles/bootstrap5.css +220 -186
- package/styles/bootstrap5.scss +1 -0
- package/styles/fabric-dark-lite.css +1039 -0
- package/styles/fabric-dark-lite.scss +16 -0
- package/styles/fabric-dark.css +184 -144
- package/styles/fabric-dark.scss +1 -0
- package/styles/fabric-lite.css +1039 -0
- package/styles/fabric-lite.scss +16 -0
- package/styles/fabric.css +183 -143
- package/styles/fabric.scss +1 -0
- package/styles/file-manager/_bds-definition.scss +2 -0
- package/styles/file-manager/_bigger.scss +758 -0
- package/styles/file-manager/_bootstrap-dark-definition.scss +2 -0
- package/styles/file-manager/_bootstrap-definition.scss +2 -0
- package/styles/file-manager/_bootstrap4-definition.scss +2 -0
- package/styles/file-manager/_bootstrap5-definition.scss +2 -0
- package/styles/file-manager/_bootstrap5.3-definition.scss +22 -20
- package/styles/file-manager/_fabric-dark-definition.scss +2 -0
- package/styles/file-manager/_fabric-definition.scss +2 -0
- package/styles/file-manager/_fluent-definition.scss +2 -0
- package/styles/file-manager/_fluent2-definition.scss +15 -9
- package/styles/file-manager/_fusionnew-definition.scss +2 -0
- package/styles/file-manager/_highcontrast-definition.scss +2 -0
- package/styles/file-manager/_highcontrast-light-definition.scss +2 -0
- package/styles/file-manager/_layout.scss +45 -663
- package/styles/file-manager/_material-dark-definition.scss +2 -0
- package/styles/file-manager/_material-definition.scss +2 -0
- package/styles/file-manager/_material3-definition.scss +2 -0
- package/styles/file-manager/_tailwind-definition.scss +2 -0
- package/styles/file-manager/_theme.scss +38 -7
- package/styles/file-manager/bootstrap-dark.css +201 -161
- package/styles/file-manager/bootstrap-dark.scss +1 -0
- package/styles/file-manager/bootstrap.css +183 -143
- package/styles/file-manager/bootstrap.scss +1 -0
- package/styles/file-manager/bootstrap4.css +211 -171
- package/styles/file-manager/bootstrap4.scss +1 -0
- package/styles/file-manager/bootstrap5-dark.css +220 -186
- package/styles/file-manager/bootstrap5-dark.scss +1 -0
- package/styles/file-manager/bootstrap5.3.css +1603 -0
- package/styles/file-manager/bootstrap5.3.scss +17 -0
- package/styles/file-manager/bootstrap5.css +220 -186
- package/styles/file-manager/bootstrap5.scss +1 -0
- package/styles/file-manager/fabric-dark.css +184 -144
- package/styles/file-manager/fabric-dark.scss +1 -0
- package/styles/file-manager/fabric.css +183 -143
- package/styles/file-manager/fabric.scss +1 -0
- package/styles/file-manager/fluent-dark.css +187 -147
- package/styles/file-manager/fluent-dark.scss +1 -0
- package/styles/file-manager/fluent.css +186 -146
- package/styles/file-manager/fluent.scss +1 -0
- package/styles/file-manager/fluent2.css +204 -158
- package/styles/file-manager/fluent2.scss +1 -0
- package/styles/file-manager/highcontrast-light.css +184 -144
- package/styles/file-manager/highcontrast-light.scss +1 -0
- package/styles/file-manager/highcontrast.css +207 -167
- package/styles/file-manager/highcontrast.scss +1 -0
- package/styles/file-manager/material-dark.css +198 -158
- package/styles/file-manager/material-dark.scss +1 -0
- package/styles/file-manager/material.css +183 -143
- package/styles/file-manager/material.scss +1 -0
- package/styles/file-manager/material3-dark.css +185 -145
- package/styles/file-manager/material3-dark.scss +1 -0
- package/styles/file-manager/material3.css +185 -145
- package/styles/file-manager/material3.scss +1 -0
- package/styles/file-manager/tailwind-dark.css +198 -164
- package/styles/file-manager/tailwind-dark.scss +1 -0
- package/styles/file-manager/tailwind.css +198 -164
- package/styles/file-manager/tailwind.scss +1 -0
- package/styles/fluent-dark-lite.css +1037 -0
- package/styles/fluent-dark-lite.scss +16 -0
- package/styles/fluent-dark.css +187 -147
- package/styles/fluent-dark.scss +1 -0
- package/styles/fluent-lite.css +1036 -0
- package/styles/fluent-lite.scss +16 -0
- package/styles/fluent.css +186 -146
- package/styles/fluent.scss +1 -0
- package/styles/fluent2-lite.css +1272 -0
- package/styles/fluent2-lite.scss +16 -0
- package/styles/fluent2.css +204 -158
- package/styles/fluent2.scss +1 -0
- package/styles/highcontrast-light-lite.css +1039 -0
- package/styles/highcontrast-light-lite.scss +16 -0
- package/styles/highcontrast-light.css +184 -144
- package/styles/highcontrast-light.scss +1 -0
- package/styles/highcontrast-lite.css +1059 -0
- package/styles/highcontrast-lite.scss +16 -0
- package/styles/highcontrast.css +207 -167
- package/styles/highcontrast.scss +1 -0
- package/styles/material-dark-lite.css +1092 -0
- package/styles/material-dark-lite.scss +16 -0
- package/styles/material-dark.css +198 -158
- package/styles/material-dark.scss +1 -0
- package/styles/material-lite.css +1097 -0
- package/styles/material-lite.scss +16 -0
- package/styles/material.css +183 -143
- package/styles/material.scss +1 -0
- package/styles/material3-dark-lite.css +1090 -0
- package/styles/material3-dark-lite.scss +16 -0
- package/styles/material3-dark.css +185 -145
- package/styles/material3-dark.scss +1 -0
- package/styles/material3-lite.css +1092 -0
- package/styles/material3-lite.scss +16 -0
- package/styles/material3.css +185 -145
- package/styles/material3.scss +1 -0
- package/styles/tailwind-dark-lite.css +1060 -0
- package/styles/tailwind-dark-lite.scss +16 -0
- package/styles/tailwind-dark.css +198 -164
- package/styles/tailwind-dark.scss +1 -0
- package/styles/tailwind-lite.css +1060 -0
- package/styles/tailwind-lite.scss +16 -0
- package/styles/tailwind.css +198 -164
- package/styles/tailwind.scss +1 -0
- package/tslint.json +0 -111
@@ -1559,6 +1559,9 @@ function pasteHandler(parent) {
|
|
1559
1559
|
parent.isDragDrop = false;
|
1560
1560
|
if (parent.selectedNodes.length !== 0 && parent.enablePaste) {
|
1561
1561
|
const path = (parent.folderPath === '') ? parent.path : parent.folderPath;
|
1562
|
+
if (parent.activeModule === 'navigationpane' && !parent.selectedNodes[0].includes('/')) {
|
1563
|
+
parent.targetPath = getValue('filterPath', parent.actionRecords[0]).replace(/\\/g, '/');
|
1564
|
+
}
|
1562
1565
|
const subFolder = validateSubFolder(parent, parent.actionRecords, path, parent.path);
|
1563
1566
|
if (!subFolder) {
|
1564
1567
|
if ((parent.fileAction === 'move' && parent.targetPath !== path) || parent.fileAction === 'copy') {
|
@@ -2837,6 +2840,7 @@ function triggerSearchOperation(parent, data, eventArgs) {
|
|
2837
2840
|
showHiddenItems: getValue('showHiddenItems', data)
|
2838
2841
|
};
|
2839
2842
|
parent.trigger('search', searchEventArgs, function (args) {
|
2843
|
+
setValue('data', args.searchResults, data);
|
2840
2844
|
if (args.cancel) {
|
2841
2845
|
eventArgs.cancel = true;
|
2842
2846
|
}
|
@@ -4653,9 +4657,6 @@ class LargeIconsView {
|
|
4653
4657
|
}
|
4654
4658
|
iconsView.classList.remove(DISPLAY_NONE);
|
4655
4659
|
if (this.parent.enableVirtualization && this.allItems.length > 0) {
|
4656
|
-
if (!this.element.style.height) {
|
4657
|
-
this.adjustHeight();
|
4658
|
-
}
|
4659
4660
|
this.parent.virtualizationModule.setUIVirtualization();
|
4660
4661
|
}
|
4661
4662
|
this.listElements = ListBase.createListFromJson(createElement, this.items, this.listObj);
|
@@ -4693,7 +4694,6 @@ class LargeIconsView {
|
|
4693
4694
|
for (let i = 0; i < activeEle.length; i++) {
|
4694
4695
|
activeEle[i].setAttribute('aria-selected', 'true');
|
4695
4696
|
}
|
4696
|
-
this.adjustHeight();
|
4697
4697
|
this.element.style.maxHeight = '100%';
|
4698
4698
|
this.getItemCount();
|
4699
4699
|
this.addEventListener();
|
@@ -4799,11 +4799,6 @@ class LargeIconsView {
|
|
4799
4799
|
getModuleName() {
|
4800
4800
|
return 'largeiconsview';
|
4801
4801
|
}
|
4802
|
-
adjustHeight() {
|
4803
|
-
const pane = select('#' + this.parent.element.id + CONTENT_ID, this.parent.element);
|
4804
|
-
const bar = select('#' + this.parent.element.id + BREADCRUMBBAR_ID, this.parent.element);
|
4805
|
-
this.element.style.height = (pane.offsetHeight - bar.offsetHeight) + 'px';
|
4806
|
-
}
|
4807
4802
|
onItemCreated(args) {
|
4808
4803
|
args.item.removeAttribute('aria-level');
|
4809
4804
|
if (!this.parent.showFileExtension && getValue('isFile', args.curData)) {
|
@@ -5003,7 +4998,6 @@ class LargeIconsView {
|
|
5003
4998
|
if (this.parent.view !== 'LargeIcons') {
|
5004
4999
|
return;
|
5005
5000
|
}
|
5006
|
-
this.adjustHeight();
|
5007
5001
|
}
|
5008
5002
|
onUpdateSelectionData() {
|
5009
5003
|
if (this.parent.view !== 'LargeIcons') {
|
@@ -5131,7 +5125,8 @@ class LargeIconsView {
|
|
5131
5125
|
onpasteEnd(args) {
|
5132
5126
|
if (this.parent.view === 'LargeIcons') {
|
5133
5127
|
this.isPasteOperation = true;
|
5134
|
-
if (this.parent.path === this.parent.destinationPath ||
|
5128
|
+
if (this.parent.path === this.parent.destinationPath ||
|
5129
|
+
this.parent.path === getDirectoryPath(this.parent, args) || this.parent.hasId) {
|
5135
5130
|
this.onPathChanged(args);
|
5136
5131
|
}
|
5137
5132
|
}
|
@@ -5152,9 +5147,6 @@ class LargeIconsView {
|
|
5152
5147
|
case 'allowDragAndDrop':
|
5153
5148
|
this.createDragObj();
|
5154
5149
|
break;
|
5155
|
-
case 'height':
|
5156
|
-
this.adjustHeight();
|
5157
|
-
break;
|
5158
5150
|
case 'selectedItems':
|
5159
5151
|
this.isInteraction = false;
|
5160
5152
|
this.isInteracted = false;
|
@@ -5615,6 +5607,9 @@ class LargeIconsView {
|
|
5615
5607
|
case 'ctrlD':
|
5616
5608
|
this.doDownload();
|
5617
5609
|
break;
|
5610
|
+
case 'back':
|
5611
|
+
this.parent.traverseBackward();
|
5612
|
+
break;
|
5618
5613
|
}
|
5619
5614
|
}
|
5620
5615
|
doDownload() {
|
@@ -5907,9 +5902,6 @@ class LargeIconsView {
|
|
5907
5902
|
}
|
5908
5903
|
resizeHandler() {
|
5909
5904
|
this.getItemCount();
|
5910
|
-
if (!isNullOrUndefined(this.listObj)) {
|
5911
|
-
this.adjustHeight();
|
5912
|
-
}
|
5913
5905
|
}
|
5914
5906
|
splitterResizeHandler() {
|
5915
5907
|
this.getItemCount();
|
@@ -6588,7 +6580,23 @@ class ContextMenu {
|
|
6588
6580
|
iconSpan.setAttribute('class', ICON_GRID + ' ' + MENU_ICON);
|
6589
6581
|
}
|
6590
6582
|
}
|
6591
|
-
onBeforeClose() {
|
6583
|
+
onBeforeClose(args) {
|
6584
|
+
const eventArgs = {
|
6585
|
+
cancel: false,
|
6586
|
+
element: args.element,
|
6587
|
+
event: args.event,
|
6588
|
+
isFocused: args.isFocused,
|
6589
|
+
fileDetails: [this.menuItemData],
|
6590
|
+
items: args.items,
|
6591
|
+
parentItem: args.parentItem,
|
6592
|
+
menuType: this.menuType
|
6593
|
+
};
|
6594
|
+
this.parent.trigger('menuClose', eventArgs, (menuCloseArgs) => {
|
6595
|
+
if (menuCloseArgs.cancel) {
|
6596
|
+
args.cancel = menuCloseArgs.cancel;
|
6597
|
+
return;
|
6598
|
+
}
|
6599
|
+
});
|
6592
6600
|
this.menuTarget = null;
|
6593
6601
|
if (!this.isMenuItemClicked && this.parent.pathId.length > 1 && this.parent.activeModule === 'navigationpane') {
|
6594
6602
|
this.parent.pathId.pop();
|
@@ -6922,7 +6930,13 @@ class ContextMenu {
|
|
6922
6930
|
break;
|
6923
6931
|
case 'paste':
|
6924
6932
|
if (this.menuType === 'folder') {
|
6925
|
-
|
6933
|
+
if (this.parent.activeModule === 'navigationpane') {
|
6934
|
+
this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(this.targetNodeElement, 'li'));
|
6935
|
+
this.parent.folderPath = this.parent.path;
|
6936
|
+
}
|
6937
|
+
else {
|
6938
|
+
this.parent.folderPath = getFullPath(this.parent, this.menuItemData, this.parent.path);
|
6939
|
+
}
|
6926
6940
|
}
|
6927
6941
|
else {
|
6928
6942
|
this.parent.folderPath = '';
|
@@ -7349,6 +7363,7 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
7349
7363
|
this.uploadedCount = 0;
|
7350
7364
|
//Specifies whether the operating system is MAC or not
|
7351
7365
|
this.isMac = false;
|
7366
|
+
this.dragSelectedItems = [];
|
7352
7367
|
FileManager_1.Inject(BreadCrumbBar, LargeIconsView, ContextMenu);
|
7353
7368
|
}
|
7354
7369
|
/**
|
@@ -7471,6 +7486,9 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
7471
7486
|
this.setRtl(this.enableRtl);
|
7472
7487
|
this.addEventListeners();
|
7473
7488
|
read(this, (this.path !== this.originalPath) ? initialEnd : finalizeEnd, this.path);
|
7489
|
+
if (this.fileView === 'Details') {
|
7490
|
+
this.largeiconsviewModule.element.classList.add(DISPLAY_NONE);
|
7491
|
+
}
|
7474
7492
|
this.adjustHeight();
|
7475
7493
|
if (isNullOrUndefined(this.navigationpaneModule)) {
|
7476
7494
|
this.splitterObj.collapse(this.enableRtl ? 1 : 0);
|
@@ -7907,7 +7925,33 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
7907
7925
|
break;
|
7908
7926
|
}
|
7909
7927
|
}
|
7928
|
+
wireSelectOnDragEvent(isBind) {
|
7929
|
+
if (isNullOrUndefined(this.view)) {
|
7930
|
+
return;
|
7931
|
+
}
|
7932
|
+
if (isBind) {
|
7933
|
+
this.viewElem = this.view === 'LargeIcons' ? this.largeiconsviewModule.element : this.element.querySelector('.e-gridcontent');
|
7934
|
+
}
|
7935
|
+
if (!this.viewElem) {
|
7936
|
+
return;
|
7937
|
+
}
|
7938
|
+
if (isBind) {
|
7939
|
+
if (this.allowMultiSelection) {
|
7940
|
+
EventHandler.add(this.viewElem, 'mousedown', this.onDragStart, this);
|
7941
|
+
this.on(layoutChange, this.onLayoutChange, this);
|
7942
|
+
this.on(selectionChanged, this.onLayoutChange, this);
|
7943
|
+
}
|
7944
|
+
}
|
7945
|
+
else {
|
7946
|
+
EventHandler.remove(this.viewElem, 'mousedown', this.onDragStart);
|
7947
|
+
this.off(layoutChange, this.onLayoutChange);
|
7948
|
+
this.off(selectionChanged, this.onLayoutChange);
|
7949
|
+
}
|
7950
|
+
}
|
7910
7951
|
wireEvents() {
|
7952
|
+
if (this.enableRangeSelection) {
|
7953
|
+
this.wireSelectOnDragEvent(true);
|
7954
|
+
}
|
7911
7955
|
EventHandler.add(window, 'resize', this.resizeHandler, this);
|
7912
7956
|
this.keyboardModule = new KeyboardEvents(this.element, {
|
7913
7957
|
keyAction: this.keyActionHandler.bind(this),
|
@@ -7916,9 +7960,93 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
7916
7960
|
});
|
7917
7961
|
}
|
7918
7962
|
unWireEvents() {
|
7963
|
+
this.wireSelectOnDragEvent(false);
|
7919
7964
|
EventHandler.remove(window, 'resize', this.resizeHandler);
|
7920
7965
|
this.keyboardModule.destroy();
|
7921
7966
|
}
|
7967
|
+
onDragStart(event) {
|
7968
|
+
if (this.viewElem) {
|
7969
|
+
if (this.allowDragAndDrop) {
|
7970
|
+
const targetElement = closest(event.target, this.viewElem.classList.contains('e-large-icons') ? '.e-list-item' : '.e-fe-text');
|
7971
|
+
if (targetElement) {
|
7972
|
+
return;
|
7973
|
+
}
|
7974
|
+
}
|
7975
|
+
event.preventDefault();
|
7976
|
+
this.dragX = event.pageX;
|
7977
|
+
this.dragY = event.pageY;
|
7978
|
+
if (!this.dragSelectElement) {
|
7979
|
+
this.dragSelectElement = createElement('div', {
|
7980
|
+
id: this.element.id + '_drag',
|
7981
|
+
className: 'e-filemanager e-drag-select',
|
7982
|
+
styles: 'left: ' + this.dragX + 'px;top: ' + this.dragY + 'px;'
|
7983
|
+
});
|
7984
|
+
document.body.append(this.dragSelectElement);
|
7985
|
+
}
|
7986
|
+
EventHandler.add(document, 'mouseup', this.onDragStop, this);
|
7987
|
+
EventHandler.add(this.viewElem, 'mousemove', this.onDrag, this);
|
7988
|
+
EventHandler.add(this.dragSelectElement, 'mousemove', this.onDrag, this);
|
7989
|
+
}
|
7990
|
+
}
|
7991
|
+
onDrag(event) {
|
7992
|
+
event.stopPropagation();
|
7993
|
+
if (this.dragSelectElement) {
|
7994
|
+
const diffX = event.pageX - this.dragX;
|
7995
|
+
const diffY = event.pageY - this.dragY;
|
7996
|
+
setStyleAttribute(this.dragSelectElement, {
|
7997
|
+
'left': diffX < 0 ? this.dragX + diffX + 'px' : this.dragX + 'px', 'top': diffY < 0 ? this.dragY + diffY + 'px' : this.dragY + 'px',
|
7998
|
+
'height': Math.abs(diffY) + 'px', 'width': Math.abs(diffX) + 'px'
|
7999
|
+
});
|
8000
|
+
this.selectItems();
|
8001
|
+
}
|
8002
|
+
else {
|
8003
|
+
EventHandler.remove(this.viewElem, 'mousemove', this.onDrag);
|
8004
|
+
}
|
8005
|
+
}
|
8006
|
+
onDragStop() {
|
8007
|
+
if (this.viewElem) {
|
8008
|
+
EventHandler.remove(document, 'mouseup', this.onDragStop);
|
8009
|
+
EventHandler.remove(this.viewElem, 'mousemove', this.onDrag);
|
8010
|
+
}
|
8011
|
+
if (this.dragSelectElement) {
|
8012
|
+
EventHandler.remove(this.dragSelectElement, 'mousemove', this.onDrag);
|
8013
|
+
if (this.dragSelectElement.clientHeight > 0 && this.dragSelectElement.clientWidth > 0) {
|
8014
|
+
this.setProperties({ selectedItems: this.dragSelectedItems });
|
8015
|
+
}
|
8016
|
+
this.dragSelectedItems = [];
|
8017
|
+
detach(this.dragSelectElement);
|
8018
|
+
this.dragSelectElement = null;
|
8019
|
+
}
|
8020
|
+
}
|
8021
|
+
selectItems() {
|
8022
|
+
this.dragSelectedItems = [];
|
8023
|
+
const dragRect = this.dragSelectElement.getBoundingClientRect();
|
8024
|
+
const allItems = selectAll(this.viewElem.classList.contains('e-large-icons') ? '.e-list-item' : '.e-row', this.viewElem);
|
8025
|
+
removeClass(selectAll('.e-active', this.viewElem), ['e-active', 'e-focus']);
|
8026
|
+
removeClass(selectAll('.e-check', this.viewElem), ['e-check']);
|
8027
|
+
for (const item of allItems) {
|
8028
|
+
const itemRect = item.getBoundingClientRect();
|
8029
|
+
if (!(dragRect.right < itemRect.left || dragRect.left > itemRect.right
|
8030
|
+
|| dragRect.bottom < itemRect.top || dragRect.top > itemRect.bottom)
|
8031
|
+
&& (this.dragSelectElement.clientHeight > 0 && this.dragSelectElement.clientWidth > 0)) {
|
8032
|
+
if (this.viewElem.classList.contains('e-large-icons')) {
|
8033
|
+
item.classList.add('e-active');
|
8034
|
+
this.dragSelectedItems.push(item.getAttribute('title'));
|
8035
|
+
}
|
8036
|
+
else {
|
8037
|
+
addClass(selectAll('.e-rowcell', item), ['e-active']);
|
8038
|
+
this.dragSelectedItems.push(item.querySelector('.e-drag-text').textContent);
|
8039
|
+
}
|
8040
|
+
item.querySelector('.e-frame').classList.add('e-check');
|
8041
|
+
}
|
8042
|
+
}
|
8043
|
+
}
|
8044
|
+
onLayoutChange() {
|
8045
|
+
if (this.enableRangeSelection) {
|
8046
|
+
this.unWireEvents();
|
8047
|
+
this.wireEvents();
|
8048
|
+
}
|
8049
|
+
}
|
7922
8050
|
setPath() {
|
7923
8051
|
this.setProperties({ selectedItems: [] }, true);
|
7924
8052
|
this.ensurePath();
|
@@ -7964,6 +8092,12 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
7964
8092
|
case 'detailsViewSettings':
|
7965
8093
|
this.notify(modelChanged, { module: 'detailsview', newProp: newProp, oldProp: oldProp });
|
7966
8094
|
break;
|
8095
|
+
case 'enableRangeSelection':
|
8096
|
+
this.wireSelectOnDragEvent(false);
|
8097
|
+
if (newProp.enableRangeSelection) {
|
8098
|
+
this.wireSelectOnDragEvent(true);
|
8099
|
+
}
|
8100
|
+
break;
|
7967
8101
|
case 'enableRtl':
|
7968
8102
|
this.enableRtl = newProp.enableRtl;
|
7969
8103
|
this.refresh();
|
@@ -8144,6 +8278,9 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
8144
8278
|
this.largeiconsviewModule = null;
|
8145
8279
|
this.detailsviewModule = null;
|
8146
8280
|
this.breadcrumbbarModule = null;
|
8281
|
+
this.viewElem = null;
|
8282
|
+
this.dragSelectElement = null;
|
8283
|
+
this.dragSelectedItems = null;
|
8147
8284
|
}
|
8148
8285
|
/**
|
8149
8286
|
* Creates a new folder in file manager.
|
@@ -8332,6 +8469,23 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
8332
8469
|
selectAll() {
|
8333
8470
|
this.notify(methodCall, { action: 'selectAll' });
|
8334
8471
|
}
|
8472
|
+
/**
|
8473
|
+
* Specifies the method that must be invoked to traverse the path backwards in the file manager.
|
8474
|
+
*
|
8475
|
+
* @returns {void}
|
8476
|
+
*/
|
8477
|
+
traverseBackward() {
|
8478
|
+
if (this.pathNames.length > 1 && this.breadcrumbbarModule.searchObj.element.value === '' && !this.isFiltered) {
|
8479
|
+
this.pathId.pop();
|
8480
|
+
this.pathNames.pop();
|
8481
|
+
let newPath = this.pathNames.slice(1).join('/');
|
8482
|
+
newPath = newPath === '' ? '/' : '/' + newPath + '/';
|
8483
|
+
this.setProperties({ path: newPath }, true);
|
8484
|
+
read(this, pathChanged, this.path);
|
8485
|
+
const treeNodeId = this.pathId[this.pathId.length - 1];
|
8486
|
+
this.notify(updateTreeSelection, { module: 'treeview', selectedNode: treeNodeId });
|
8487
|
+
}
|
8488
|
+
}
|
8335
8489
|
/**
|
8336
8490
|
* Deselects the currently selected folders and files in current path.
|
8337
8491
|
*
|
@@ -8468,6 +8622,9 @@ __decorate$8([
|
|
8468
8622
|
__decorate$8([
|
8469
8623
|
Property(null)
|
8470
8624
|
], FileManager.prototype, "sortComparer", void 0);
|
8625
|
+
__decorate$8([
|
8626
|
+
Property(false)
|
8627
|
+
], FileManager.prototype, "enableRangeSelection", void 0);
|
8471
8628
|
__decorate$8([
|
8472
8629
|
Complex({}, ToolbarSettings)
|
8473
8630
|
], FileManager.prototype, "toolbarSettings", void 0);
|
@@ -8558,6 +8715,9 @@ __decorate$8([
|
|
8558
8715
|
__decorate$8([
|
8559
8716
|
Event()
|
8560
8717
|
], FileManager.prototype, "menuOpen", void 0);
|
8718
|
+
__decorate$8([
|
8719
|
+
Event()
|
8720
|
+
], FileManager.prototype, "menuClose", void 0);
|
8561
8721
|
__decorate$8([
|
8562
8722
|
Event()
|
8563
8723
|
], FileManager.prototype, "failure", void 0);
|
@@ -10374,7 +10534,8 @@ class DetailsView {
|
|
10374
10534
|
ctrlD: 'ctrl+d',
|
10375
10535
|
f2: 'f2',
|
10376
10536
|
ctrlA: 'ctrl+a',
|
10377
|
-
enter: 'enter'
|
10537
|
+
enter: 'enter',
|
10538
|
+
back: 'backspace'
|
10378
10539
|
};
|
10379
10540
|
}
|
10380
10541
|
/* istanbul ignore next */
|
@@ -10545,6 +10706,10 @@ class DetailsView {
|
|
10545
10706
|
for (let i = 0, len = columns.length; i < len; i++) {
|
10546
10707
|
columns[i].disableHtmlEncode = !this.parent.enableHtmlSanitizer;
|
10547
10708
|
}
|
10709
|
+
if (this.parent.enableRangeSelection) {
|
10710
|
+
const HiddenName = { field: 'name', visible: false, customAttributes: { class: 'e-drag-text' } };
|
10711
|
+
columns.push(HiddenName);
|
10712
|
+
}
|
10548
10713
|
return columns;
|
10549
10714
|
}
|
10550
10715
|
adjustHeight() {
|
@@ -11368,7 +11533,8 @@ class DetailsView {
|
|
11368
11533
|
onpasteEnd(args) {
|
11369
11534
|
if (this.parent.view === 'Details') {
|
11370
11535
|
this.isPasteOperation = true;
|
11371
|
-
if (this.parent.path === this.parent.destinationPath ||
|
11536
|
+
if (this.parent.path === this.parent.destinationPath ||
|
11537
|
+
this.parent.path === getDirectoryPath(this.parent, args) || this.parent.hasId) {
|
11372
11538
|
this.onPathChanged(args);
|
11373
11539
|
}
|
11374
11540
|
}
|
@@ -11804,6 +11970,9 @@ class DetailsView {
|
|
11804
11970
|
this.parent.setProperties({ selectedItems: lastItem }, true);
|
11805
11971
|
this.selectRecords(lastItem);
|
11806
11972
|
break;
|
11973
|
+
case 'back':
|
11974
|
+
this.parent.traverseBackward();
|
11975
|
+
break;
|
11807
11976
|
}
|
11808
11977
|
}
|
11809
11978
|
gridSelectNodes() {
|