@syncfusion/ej2-filemanager 27.1.51 → 27.1.53
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/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 +114 -62
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +116 -62
- 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 +12 -12
- package/src/file-manager/base/file-manager-model.d.ts +1 -1
- package/src/file-manager/base/file-manager.js +28 -5
- package/src/file-manager/common/operations.js +57 -44
- package/src/file-manager/common/utility.d.ts +1 -2
- package/src/file-manager/common/utility.js +7 -9
- package/src/file-manager/layout/details-view.d.ts +1 -0
- package/src/file-manager/layout/details-view.js +20 -2
- package/src/file-manager/layout/large-icons-view.js +4 -2
@@ -1430,9 +1430,8 @@ function getSortedData(parent, items) {
|
|
1430
1430
|
*/
|
1431
1431
|
function getObject(parent, key, value) {
|
1432
1432
|
var currFiles = getValue(parent.pathId[parent.pathId.length - 1], parent.feFiles);
|
1433
|
-
var
|
1434
|
-
|
1435
|
-
return lists[0];
|
1433
|
+
var result = currFiles.filter(function (data) { return data[key].toString() === value; });
|
1434
|
+
return result.length > 0 ? result[0] : null;
|
1436
1435
|
}
|
1437
1436
|
/**
|
1438
1437
|
* Creates empty element
|
@@ -2117,16 +2116,15 @@ function removeItemClass(parent, value) {
|
|
2117
2116
|
* @param {Element} scrollParent - specifies the scrolling target.
|
2118
2117
|
* @param {IFileManager} parent - specifies the parent.
|
2119
2118
|
* @param {string} nodeClass - specifies the node class.
|
2120
|
-
* @param {number} screenY - specifies the vertical (Y) coordinate of the mouse cursor position relative to the entire screen.
|
2121
2119
|
* @param {number} clientY - specifies the vertical (Y) coordinate of the mouse cursor position relative to the target element.
|
2122
2120
|
* @returns {void}
|
2123
2121
|
* @private
|
2124
2122
|
*/
|
2125
|
-
function scrollHandler(scrollParent, parent, nodeClass,
|
2123
|
+
function scrollHandler(scrollParent, parent, nodeClass, clientY) {
|
2126
2124
|
var position;
|
2127
2125
|
var elementData = scrollParent.getBoundingClientRect();
|
2128
2126
|
var node = select('.' + nodeClass, scrollParent);
|
2129
|
-
if ((
|
2127
|
+
if ((clientY >= (elementData.top + scrollParent.clientHeight - 30)) && !isNullOrUndefined(node)) {
|
2130
2128
|
position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
|
2131
2129
|
scrollParent.scrollBy(0, position);
|
2132
2130
|
}
|
@@ -2163,7 +2161,7 @@ function draggingHandler(parent, args) {
|
|
2163
2161
|
/* istanbul ignore next */
|
2164
2162
|
parent.treeExpandTimer = window.setTimeout(function () { parent.notify(dragging, args); }, 800);
|
2165
2163
|
scrollParent = parent.navigationpaneModule.treeObj.element.parentElement;
|
2166
|
-
scrollHandler(scrollParent, parent, 'e-level-2', args.event.
|
2164
|
+
scrollHandler(scrollParent, parent, 'e-level-2', args.event.y);
|
2167
2165
|
}
|
2168
2166
|
else if (parent.targetModule === 'detailsview') {
|
2169
2167
|
node = closest(args.target, 'tr');
|
@@ -2175,7 +2173,7 @@ function draggingHandler(parent, args) {
|
|
2175
2173
|
}
|
2176
2174
|
canDrop = true;
|
2177
2175
|
scrollParent = parent.detailsviewModule.gridObj.element.querySelector('.e-content');
|
2178
|
-
scrollHandler(scrollParent, parent, 'e-row', args.event.
|
2176
|
+
scrollHandler(scrollParent, parent, 'e-row', args.event.y);
|
2179
2177
|
}
|
2180
2178
|
else if (parent.targetModule === 'largeiconsview') {
|
2181
2179
|
node = closest(args.target, 'li');
|
@@ -2184,7 +2182,7 @@ function draggingHandler(parent, args) {
|
|
2184
2182
|
}
|
2185
2183
|
canDrop = true;
|
2186
2184
|
scrollParent = parent.largeiconsviewModule.element.firstElementChild;
|
2187
|
-
scrollHandler(scrollParent, parent, 'e-large-icon', args.event.
|
2185
|
+
scrollHandler(scrollParent, parent, 'e-large-icon', args.event.y);
|
2188
2186
|
/* istanbul ignore next */
|
2189
2187
|
}
|
2190
2188
|
else if (parent.targetModule === 'breadcrumbbar') {
|
@@ -3343,13 +3341,18 @@ function readSuccess(parent, result, event) {
|
|
3343
3341
|
* @private
|
3344
3342
|
*/
|
3345
3343
|
function filterSuccess(parent, result, event, action) {
|
3346
|
-
|
3347
|
-
|
3348
|
-
|
3349
|
-
|
3344
|
+
try {
|
3345
|
+
if (!isNullOrUndefined(result.files)) {
|
3346
|
+
parent.notify(event, result);
|
3347
|
+
var args = { action: action, result: result };
|
3348
|
+
parent.trigger('success', args);
|
3349
|
+
}
|
3350
|
+
else {
|
3351
|
+
onFailure(parent, result, action);
|
3352
|
+
}
|
3350
3353
|
}
|
3351
|
-
|
3352
|
-
|
3354
|
+
catch (error) {
|
3355
|
+
handleCatchError(parent, error, action);
|
3353
3356
|
}
|
3354
3357
|
}
|
3355
3358
|
/* istanbul ignore next */
|
@@ -3363,50 +3366,58 @@ function filterSuccess(parent, result, event, action) {
|
|
3363
3366
|
* @private
|
3364
3367
|
*/
|
3365
3368
|
function createSuccess(parent, result, itemName) {
|
3366
|
-
|
3367
|
-
if (
|
3368
|
-
parent.dialogObj.hide();
|
3369
|
-
}
|
3370
|
-
parent.createdItem = isFileSystemData(parent) ? result.files[result.files.length - 1] : result.files[0];
|
3371
|
-
parent.breadcrumbbarModule.searchObj.value = '';
|
3372
|
-
var createEventArgs = {
|
3373
|
-
folderName: itemName,
|
3374
|
-
path: parent.path,
|
3375
|
-
parentFolder: parent.itemData
|
3376
|
-
};
|
3377
|
-
parent.trigger('folderCreate', createEventArgs);
|
3378
|
-
var args = { action: 'create', result: result };
|
3379
|
-
parent.trigger('success', args);
|
3380
|
-
parent.itemData = [getPathObject(parent)];
|
3381
|
-
read(parent, createEnd, parent.path);
|
3382
|
-
}
|
3383
|
-
else {
|
3384
|
-
if (result.error.code === '400') {
|
3369
|
+
try {
|
3370
|
+
if (!isNullOrUndefined(result.files)) {
|
3385
3371
|
if (parent.dialogObj && parent.dialogObj.visible) {
|
3386
|
-
|
3387
|
-
var error = getLocaleText(parent, 'Validation-NewFolder-Exists').replace('{0}', '"' + ele.value + '"');
|
3388
|
-
ele.parentElement.nextElementSibling.innerHTML = error;
|
3389
|
-
}
|
3390
|
-
else {
|
3391
|
-
var result_2 = {
|
3392
|
-
files: null,
|
3393
|
-
error: {
|
3394
|
-
code: '400',
|
3395
|
-
message: getLocaleText(parent, 'Validation-NewFolder-Exists').replace('{0}', '"' + itemName + '"'),
|
3396
|
-
fileExists: null
|
3397
|
-
}
|
3398
|
-
};
|
3399
|
-
createDialog(parent, 'Error', result_2);
|
3372
|
+
parent.dialogObj.hide();
|
3400
3373
|
}
|
3401
|
-
|
3402
|
-
parent.
|
3374
|
+
parent.createdItem = isFileSystemData(parent) ? result.files[result.files.length - 1] : result.files[0];
|
3375
|
+
parent.breadcrumbbarModule.searchObj.value = '';
|
3376
|
+
var createEventArgs = {
|
3377
|
+
folderName: itemName,
|
3378
|
+
path: parent.path,
|
3379
|
+
parentFolder: parent.itemData
|
3380
|
+
};
|
3381
|
+
parent.trigger('folderCreate', createEventArgs);
|
3382
|
+
var args = { action: 'create', result: result };
|
3383
|
+
parent.trigger('success', args);
|
3384
|
+
parent.itemData = [getPathObject(parent)];
|
3385
|
+
read(parent, createEnd, parent.path);
|
3403
3386
|
}
|
3404
3387
|
else {
|
3405
|
-
if (
|
3406
|
-
parent.dialogObj.
|
3388
|
+
if (result.error.code === '400') {
|
3389
|
+
if (parent.dialogObj && parent.dialogObj.visible) {
|
3390
|
+
var ele = select('#newname', parent.dialogObj.element);
|
3391
|
+
var error = getLocaleText(parent, 'Validation-NewFolder-Exists').replace('{0}', '"' + ele.value + '"');
|
3392
|
+
ele.parentElement.nextElementSibling.innerHTML = error;
|
3393
|
+
}
|
3394
|
+
else {
|
3395
|
+
var result_2 = {
|
3396
|
+
files: null,
|
3397
|
+
error: {
|
3398
|
+
code: '400',
|
3399
|
+
message: getLocaleText(parent, 'Validation-NewFolder-Exists').replace('{0}', '"' + itemName + '"'),
|
3400
|
+
fileExists: null
|
3401
|
+
}
|
3402
|
+
};
|
3403
|
+
createDialog(parent, 'Error', result_2);
|
3404
|
+
}
|
3405
|
+
var args = { action: 'create', error: result.error };
|
3406
|
+
parent.trigger('failure', args);
|
3407
3407
|
}
|
3408
|
-
|
3408
|
+
else {
|
3409
|
+
if (parent.dialogObj && parent.dialogObj.visible) {
|
3410
|
+
parent.dialogObj.hide();
|
3411
|
+
}
|
3412
|
+
onFailure(parent, result, 'create');
|
3413
|
+
}
|
3414
|
+
}
|
3415
|
+
}
|
3416
|
+
catch (error) {
|
3417
|
+
if (parent.dialogObj && parent.dialogObj.visible) {
|
3418
|
+
parent.dialogObj.hide();
|
3409
3419
|
}
|
3420
|
+
handleCatchError(parent, error, 'create');
|
3410
3421
|
}
|
3411
3422
|
}
|
3412
3423
|
/* istanbul ignore next */
|
@@ -5003,7 +5014,9 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
|
|
5003
5014
|
var textEle = args.item.querySelector('.' + LIST_TEXT);
|
5004
5015
|
var txt = getValue('name', args.curData);
|
5005
5016
|
var type = getValue('type', args.curData);
|
5006
|
-
|
5017
|
+
if (txt.indexOf(type) !== -1) {
|
5018
|
+
textEle.innerHTML = txt.substr(0, txt.length - type.length);
|
5019
|
+
}
|
5007
5020
|
}
|
5008
5021
|
this.renderCheckbox(args);
|
5009
5022
|
var eventArgs = {
|
@@ -5371,6 +5384,7 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
|
|
5371
5384
|
read(this.parent, pathChanged, this.parent.path);
|
5372
5385
|
break;
|
5373
5386
|
case 'allowMultiSelection':
|
5387
|
+
case 'showItemCheckBoxes':
|
5374
5388
|
if (this.parent.view !== 'LargeIcons') {
|
5375
5389
|
break;
|
5376
5390
|
}
|
@@ -5426,7 +5440,6 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
|
|
5426
5440
|
if (toBind) {
|
5427
5441
|
this.clickObj = new Touch(this.element, {
|
5428
5442
|
tap: function (eve) {
|
5429
|
-
eve.originalEvent.preventDefault();
|
5430
5443
|
if (_this.parent.isDevice) {
|
5431
5444
|
_this.tapCount = eve.tapCount;
|
5432
5445
|
_this.tapEvent = eve;
|
@@ -8290,7 +8303,9 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
|
|
8290
8303
|
*/
|
8291
8304
|
/* istanbul ignore next */
|
8292
8305
|
FileManager.prototype.onPropertyChanged = function (newProp, oldProp) {
|
8306
|
+
var _this = this;
|
8293
8307
|
var height;
|
8308
|
+
var requiresRefresh = false;
|
8294
8309
|
for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {
|
8295
8310
|
var prop = _a[_i];
|
8296
8311
|
switch (prop) {
|
@@ -8301,6 +8316,14 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
|
|
8301
8316
|
this.allowDragAndDrop = newProp.allowDragAndDrop;
|
8302
8317
|
this.notify(modelChanged, { module: 'common', newProp: newProp, oldProp: oldProp });
|
8303
8318
|
break;
|
8319
|
+
case 'showItemCheckBoxes':
|
8320
|
+
this.showItemCheckBoxes = newProp.showItemCheckBoxes;
|
8321
|
+
this.notify(modelChanged, { module: 'common', newProp: newProp, oldProp: oldProp });
|
8322
|
+
break;
|
8323
|
+
case 'enableVirtualization':
|
8324
|
+
this.enableVirtualization = newProp.enableVirtualization;
|
8325
|
+
requiresRefresh = true;
|
8326
|
+
break;
|
8304
8327
|
case 'allowMultiSelection':
|
8305
8328
|
if (this.allowMultiSelection) {
|
8306
8329
|
addClass([this.element], CHECK_SELECT);
|
@@ -8328,11 +8351,11 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
|
|
8328
8351
|
break;
|
8329
8352
|
case 'enableRtl':
|
8330
8353
|
this.enableRtl = newProp.enableRtl;
|
8331
|
-
|
8354
|
+
requiresRefresh = true;
|
8332
8355
|
break;
|
8333
8356
|
case 'rootAliasName':
|
8334
8357
|
this.rootAliasName = newProp.rootAliasName;
|
8335
|
-
|
8358
|
+
requiresRefresh = true;
|
8336
8359
|
break;
|
8337
8360
|
case 'height':
|
8338
8361
|
height = !isNullOrUndefined(newProp.height) ? formatUnit(newProp.height) : newProp.height;
|
@@ -8407,11 +8430,21 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
|
|
8407
8430
|
this.notify(sortByChange, {});
|
8408
8431
|
break;
|
8409
8432
|
case 'sortBy':
|
8410
|
-
refresh(this);
|
8411
|
-
this.notify(sortByChange, {});
|
8412
8433
|
if (this.view === 'Details') {
|
8434
|
+
var columns = this.detailsViewSettings.columns;
|
8435
|
+
var isValidSortField = !isNullOrUndefined(columns) &&
|
8436
|
+
columns.findIndex(function (col) { return col.field === _this.sortBy; }) !== -1;
|
8437
|
+
if (!isValidSortField) {
|
8438
|
+
return;
|
8439
|
+
}
|
8440
|
+
refresh(this);
|
8441
|
+
this.notify(sortByChange, {});
|
8413
8442
|
this.notify(sortColumn, {});
|
8414
8443
|
}
|
8444
|
+
else {
|
8445
|
+
refresh(this);
|
8446
|
+
this.notify(sortByChange, {});
|
8447
|
+
}
|
8415
8448
|
break;
|
8416
8449
|
case 'popupTarget':
|
8417
8450
|
if (this.uploadDialogObj) {
|
@@ -8429,10 +8462,13 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
|
|
8429
8462
|
break;
|
8430
8463
|
case 'fileSystemData':
|
8431
8464
|
this.fileSystemData = newProp.fileSystemData;
|
8432
|
-
|
8465
|
+
requiresRefresh = true;
|
8433
8466
|
break;
|
8434
8467
|
}
|
8435
8468
|
}
|
8469
|
+
if (requiresRefresh) {
|
8470
|
+
this.refresh();
|
8471
|
+
}
|
8436
8472
|
};
|
8437
8473
|
/* istanbul ignore next */
|
8438
8474
|
FileManager.prototype.ajaxSettingSetModel = function (newProp) {
|
@@ -10736,6 +10772,7 @@ var DetailsView = /** @__PURE__ @class */ (function () {
|
|
10736
10772
|
this.isRendered = true;
|
10737
10773
|
this.isLoaded = false;
|
10738
10774
|
this.isNameWidth = false;
|
10775
|
+
this.isMultiSelect = false;
|
10739
10776
|
this.pasteOperation = false;
|
10740
10777
|
this.uploadOperation = false;
|
10741
10778
|
Grid.Inject(Resize, ContextMenu$2, Sort, VirtualScroll);
|
@@ -10783,6 +10820,7 @@ var DetailsView = /** @__PURE__ @class */ (function () {
|
|
10783
10820
|
}
|
10784
10821
|
/* istanbul ignore next */
|
10785
10822
|
DetailsView.prototype.render = function (args) {
|
10823
|
+
var _this = this;
|
10786
10824
|
showSpinner(this.parent.element);
|
10787
10825
|
if (this.parent.view === 'Details') {
|
10788
10826
|
removeClass([this.parent.element], MULTI_SELECT);
|
@@ -10790,7 +10828,9 @@ var DetailsView = /** @__PURE__ @class */ (function () {
|
|
10790
10828
|
this.checkNameWidth();
|
10791
10829
|
var columns = this.getColumns();
|
10792
10830
|
var sortSettings = void 0;
|
10793
|
-
|
10831
|
+
var isValidSortField = !isNullOrUndefined(columns) &&
|
10832
|
+
columns.findIndex(function (col) { return col.field === _this.parent.sortBy; }) !== -1;
|
10833
|
+
if (this.parent.isMobile || !isValidSortField) {
|
10794
10834
|
sortSettings = [];
|
10795
10835
|
}
|
10796
10836
|
else {
|
@@ -11001,7 +11041,9 @@ var DetailsView = /** @__PURE__ @class */ (function () {
|
|
11001
11041
|
if (textEle) {
|
11002
11042
|
var name_1 = getValue('name', args.data);
|
11003
11043
|
var type = getValue('type', args.data);
|
11004
|
-
|
11044
|
+
if (name_1.indexOf(type) !== -1) {
|
11045
|
+
textEle.innerHTML = name_1.substr(0, name_1.length - type.length);
|
11046
|
+
}
|
11005
11047
|
}
|
11006
11048
|
}
|
11007
11049
|
if (getValue('size', args.data) !== undefined && args.row.querySelector('.e-fe-size')) {
|
@@ -11264,6 +11306,7 @@ var DetailsView = /** @__PURE__ @class */ (function () {
|
|
11264
11306
|
case 'showHiddenItems':
|
11265
11307
|
read(this.parent, pathChanged, this.parent.path);
|
11266
11308
|
break;
|
11309
|
+
case 'showItemCheckBoxes':
|
11267
11310
|
case 'allowMultiSelection':
|
11268
11311
|
if (!isNullOrUndefined(this.gridObj)) {
|
11269
11312
|
this.currentSelectedItem = this.parent.selectedItems;
|
@@ -11827,6 +11870,17 @@ var DetailsView = /** @__PURE__ @class */ (function () {
|
|
11827
11870
|
};
|
11828
11871
|
this.parent.trigger('fileSelection', eventArgs);
|
11829
11872
|
args.cancel = eventArgs.cancel;
|
11873
|
+
if (!this.isMultiSelect) {
|
11874
|
+
this.isMultiSelect = true;
|
11875
|
+
if ((args.isShiftPressed || args.isCtrlPressed) && !this.parent.allowMultiSelection && (args.target && args.target.parentElement && !args.target.parentElement.classList.contains('e-checkbox-wrapper'))) {
|
11876
|
+
args.cancel = true;
|
11877
|
+
var rowIndex = (args && args.rowIndexes)
|
11878
|
+
? args.rowIndexes[args.rowIndexes.length - 1]
|
11879
|
+
: args.rowIndex;
|
11880
|
+
this.gridObj.selectRow(rowIndex);
|
11881
|
+
}
|
11882
|
+
this.isMultiSelect = false;
|
11883
|
+
}
|
11830
11884
|
};
|
11831
11885
|
/* istanbul ignore next */
|
11832
11886
|
DetailsView.prototype.onSelected = function (args) {
|