@syncfusion/ej2-filemanager 27.1.50 → 27.1.52

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.
@@ -3320,14 +3320,7 @@ function readSuccess(parent, result, event) {
3320
3320
  }
3321
3321
  }
3322
3322
  catch (error) {
3323
- var errorResult = {
3324
- files: null,
3325
- error: {
3326
- message: error.message,
3327
- fileExists: null
3328
- }
3329
- };
3330
- onFailure(parent, errorResult, 'read');
3323
+ handleCatchError(parent, error, 'read');
3331
3324
  parent.setProperties({ path: parent.oldPath }, true);
3332
3325
  parent.pathNames.pop();
3333
3326
  }
@@ -3426,61 +3419,69 @@ function createSuccess(parent, result, itemName) {
3426
3419
  * @private
3427
3420
  */
3428
3421
  function renameSuccess(parent, result) {
3429
- if (!isNullOrUndefined(result.files)) {
3430
- if (!isNullOrUndefined(parent.dialogObj)) {
3431
- parent.dialogObj.hide();
3432
- }
3433
- var args = { action: 'rename', result: result };
3434
- parent.trigger('success', args);
3435
- parent.renamedItem = Array.isArray(result.files) ? result.files[0] : result.files;
3436
- var renameEventArgs = {
3437
- newName: parent.renamedItem.name,
3438
- itemData: parent.renamedItem,
3439
- path: parent.path
3440
- };
3441
- parent.trigger('rename', renameEventArgs);
3442
- if (parent.activeModule === 'navigationpane') {
3443
- parent.pathId.pop();
3444
- parent.itemData = [getValue(parent.pathId[parent.pathId.length - 1], parent.feParent)];
3445
- read(parent, renameEndParent, getValue('filterPath', parent.renamedItem).replace(/\\/g, '/'));
3446
- parent.itemData[0] = parent.renamedItem;
3447
- if (getValue('filterPath', parent.renamedItem) === getValue('filterPath', parent.itemData[0]) && parent.pathNames.length > 1) {
3448
- parent.pathNames[parent.pathNames.length - 1] = parent.renameText;
3449
- }
3450
- read(parent, pathChanged, parent.path === '/' ? parent.path : getValue('filterPath', parent.renamedItem).replace(/\\/g, '/') + parent.renamedItem.name + '/');
3451
- parent.renamedItem = null;
3452
- }
3453
- else {
3454
- parent.itemData = [getPathObject(parent)];
3455
- if (parent.breadcrumbbarModule.searchObj.value !== '') {
3456
- Search(parent, renameEnd, parent.path, parent.searchWord, parent.showHiddenItems, !parent.searchSettings.ignoreCase);
3422
+ try {
3423
+ if (!isNullOrUndefined(result.files)) {
3424
+ if (!isNullOrUndefined(parent.dialogObj)) {
3425
+ parent.dialogObj.hide();
3426
+ }
3427
+ var args = { action: 'rename', result: result };
3428
+ parent.trigger('success', args);
3429
+ parent.renamedItem = Array.isArray(result.files) ? result.files[0] : result.files;
3430
+ var renameEventArgs = {
3431
+ newName: parent.renamedItem.name,
3432
+ itemData: parent.renamedItem,
3433
+ path: parent.path
3434
+ };
3435
+ parent.trigger('rename', renameEventArgs);
3436
+ if (parent.activeModule === 'navigationpane') {
3437
+ parent.pathId.pop();
3438
+ parent.itemData = [getValue(parent.pathId[parent.pathId.length - 1], parent.feParent)];
3439
+ read(parent, renameEndParent, getValue('filterPath', parent.renamedItem).replace(/\\/g, '/'));
3440
+ parent.itemData[0] = parent.renamedItem;
3441
+ if (getValue('filterPath', parent.renamedItem) === getValue('filterPath', parent.itemData[0]) && parent.pathNames.length > 1) {
3442
+ parent.pathNames[parent.pathNames.length - 1] = parent.renameText;
3443
+ }
3444
+ read(parent, pathChanged, parent.path === '/' ? parent.path : getValue('filterPath', parent.renamedItem).replace(/\\/g, '/') + parent.renamedItem.name + '/');
3445
+ parent.renamedItem = null;
3457
3446
  }
3458
3447
  else {
3459
- if (parent.isFiltered) {
3460
- filter(parent, renameEnd);
3448
+ parent.itemData = [getPathObject(parent)];
3449
+ if (parent.breadcrumbbarModule.searchObj.value !== '') {
3450
+ Search(parent, renameEnd, parent.path, parent.searchWord, parent.showHiddenItems, !parent.searchSettings.ignoreCase);
3461
3451
  }
3462
3452
  else {
3463
- read(parent, renameEnd, parent.path);
3453
+ if (parent.isFiltered) {
3454
+ filter(parent, renameEnd);
3455
+ }
3456
+ else {
3457
+ read(parent, renameEnd, parent.path);
3458
+ }
3464
3459
  }
3465
3460
  }
3466
3461
  }
3467
- }
3468
- else {
3469
- if (result.error.code === '400' && parent.dialogObj && parent.dialogObj.visible) {
3470
- var ele = select('#rename', parent.dialogObj.element);
3471
- var error = getLocaleText(parent, 'Validation-Rename-Exists').replace('{0}', '"' + parent.currentItemText + '"');
3472
- error = error.replace('{1}', '"' + ele.value + '"');
3473
- ele.parentElement.nextElementSibling.innerHTML = error;
3474
- var args = { action: 'rename', error: result.error };
3475
- parent.trigger('failure', args);
3476
- }
3477
3462
  else {
3478
- if (!isNullOrUndefined(parent.dialogObj)) {
3479
- parent.dialogObj.hide();
3463
+ if (result.error.code === '400' && parent.dialogObj && parent.dialogObj.visible) {
3464
+ var ele = select('#rename', parent.dialogObj.element);
3465
+ var error = getLocaleText(parent, 'Validation-Rename-Exists').replace('{0}', '"' + parent.currentItemText + '"');
3466
+ error = error.replace('{1}', '"' + ele.value + '"');
3467
+ ele.parentElement.nextElementSibling.innerHTML = error;
3468
+ var args = { action: 'rename', error: result.error };
3469
+ parent.trigger('failure', args);
3470
+ }
3471
+ else {
3472
+ if (!isNullOrUndefined(parent.dialogObj)) {
3473
+ parent.dialogObj.hide();
3474
+ }
3475
+ onFailure(parent, result, 'rename');
3480
3476
  }
3481
- onFailure(parent, result, 'rename');
3482
3477
  }
3483
3478
  }
3479
+ catch (error) {
3480
+ if (!isNullOrUndefined(parent.dialogObj)) {
3481
+ parent.dialogObj.hide();
3482
+ }
3483
+ handleCatchError(parent, error, 'rename');
3484
+ }
3484
3485
  }
3485
3486
  /* istanbul ignore next */
3486
3487
  /**
@@ -3494,36 +3495,41 @@ function renameSuccess(parent, result) {
3494
3495
  * @private
3495
3496
  */
3496
3497
  function pasteSuccess(parent, result, path, operation) {
3497
- var moveorcopyEventArgs = {
3498
- itemData: result.files,
3499
- isCopy: operation === 'copy' ? true : false,
3500
- path: path,
3501
- targetData: parent.itemData[0],
3502
- targetPath: parent.path
3503
- };
3504
- parent.trigger('move', moveorcopyEventArgs);
3505
- if (result.error && result.error.fileExists) {
3506
- parent.fileLength = 0;
3507
- if (!isNullOrUndefined(result.files)) {
3508
- parent.isPasteError = true;
3498
+ try {
3499
+ var moveorcopyEventArgs = {
3500
+ itemData: result.files,
3501
+ isCopy: operation === 'copy' ? true : false,
3502
+ path: path,
3503
+ targetData: parent.itemData[0],
3504
+ targetPath: parent.path
3505
+ };
3506
+ parent.trigger('move', moveorcopyEventArgs);
3507
+ if (result.error && result.error.fileExists) {
3508
+ parent.fileLength = 0;
3509
+ if (!isNullOrUndefined(result.files)) {
3510
+ parent.isPasteError = true;
3511
+ doPasteUpdate(parent, operation, result);
3512
+ }
3513
+ createExtDialog(parent, 'DuplicateItems', result.error.fileExists);
3514
+ if (result.error.code === '404') {
3515
+ createDialog(parent, 'Error', result);
3516
+ }
3517
+ }
3518
+ else if (!result.error && !isNullOrUndefined(result.files)) {
3519
+ parent.isPasteError = false;
3509
3520
  doPasteUpdate(parent, operation, result);
3510
3521
  }
3511
- createExtDialog(parent, 'DuplicateItems', result.error.fileExists);
3512
- if (result.error.code === '404') {
3522
+ else if (result.error && !isNullOrUndefined(result.files)) {
3523
+ parent.isPasteError = true;
3524
+ doPasteUpdate(parent, operation, result);
3513
3525
  createDialog(parent, 'Error', result);
3514
3526
  }
3527
+ else {
3528
+ onFailure(parent, result, operation);
3529
+ }
3515
3530
  }
3516
- else if (!result.error && !isNullOrUndefined(result.files)) {
3517
- parent.isPasteError = false;
3518
- doPasteUpdate(parent, operation, result);
3519
- }
3520
- else if (result.error && !isNullOrUndefined(result.files)) {
3521
- parent.isPasteError = true;
3522
- doPasteUpdate(parent, operation, result);
3523
- createDialog(parent, 'Error', result);
3524
- }
3525
- else {
3526
- onFailure(parent, result, operation);
3531
+ catch (error) {
3532
+ handleCatchError(parent, error, operation);
3527
3533
  }
3528
3534
  }
3529
3535
  /**
@@ -3536,25 +3542,30 @@ function pasteSuccess(parent, result, path, operation) {
3536
3542
  * @private
3537
3543
  */
3538
3544
  function deleteSuccess(parent, result, path) {
3539
- var deleteEventArgs = {
3540
- itemData: result.files,
3541
- path: path
3542
- };
3543
- parent.trigger('delete', deleteEventArgs);
3544
- if (!isNullOrUndefined(result.files)) {
3545
- parent.setProperties({ path: path }, true);
3546
- parent.itemData = [getPathObject(parent)];
3547
- read(parent, deleteEnd, parent.path);
3548
- if (result.error) {
3549
- onFailure(parent, result, 'delete');
3545
+ try {
3546
+ var deleteEventArgs = {
3547
+ itemData: result.files,
3548
+ path: path
3549
+ };
3550
+ parent.trigger('delete', deleteEventArgs);
3551
+ if (!isNullOrUndefined(result.files)) {
3552
+ parent.setProperties({ path: path }, true);
3553
+ parent.itemData = [getPathObject(parent)];
3554
+ read(parent, deleteEnd, parent.path);
3555
+ if (result.error) {
3556
+ onFailure(parent, result, 'delete');
3557
+ }
3558
+ else {
3559
+ var args = { action: 'delete', result: result };
3560
+ parent.trigger('success', args);
3561
+ }
3550
3562
  }
3551
3563
  else {
3552
- var args = { action: 'delete', result: result };
3553
- parent.trigger('success', args);
3564
+ onFailure(parent, result, 'delete');
3554
3565
  }
3555
3566
  }
3556
- else {
3557
- onFailure(parent, result, 'delete');
3567
+ catch (error) {
3568
+ handleCatchError(parent, error, 'delete');
3558
3569
  }
3559
3570
  }
3560
3571
  /**
@@ -3570,13 +3581,18 @@ function deleteSuccess(parent, result, path) {
3570
3581
  function detailsSuccess(
3571
3582
  // eslint:disable-next-line
3572
3583
  parent, result, path, operation) {
3573
- if (!isNullOrUndefined(result.details)) {
3574
- createDialog(parent, operation, null, result.details);
3575
- var args = { action: 'details', result: result };
3576
- parent.trigger('success', args);
3584
+ try {
3585
+ if (!isNullOrUndefined(result.details)) {
3586
+ createDialog(parent, operation, null, result.details);
3587
+ var args = { action: 'details', result: result };
3588
+ parent.trigger('success', args);
3589
+ }
3590
+ else {
3591
+ onFailure(parent, result, 'details');
3592
+ }
3577
3593
  }
3578
- else {
3579
- onFailure(parent, result, 'details');
3594
+ catch (error) {
3595
+ handleCatchError(parent, error, 'details');
3580
3596
  }
3581
3597
  }
3582
3598
  /**
@@ -3623,13 +3639,18 @@ function Search(parent, event, path, searchString, showHiddenItems, caseSensitiv
3623
3639
  * @private
3624
3640
  */
3625
3641
  function searchSuccess(parent, result, event) {
3626
- if (!isNullOrUndefined(result.files)) {
3627
- parent.notify(event, result);
3628
- var args = { action: 'search', result: result };
3629
- parent.trigger('success', args);
3642
+ try {
3643
+ if (!isNullOrUndefined(result.files)) {
3644
+ parent.notify(event, result);
3645
+ var args = { action: 'search', result: result };
3646
+ parent.trigger('success', args);
3647
+ }
3648
+ else {
3649
+ onFailure(parent, result, 'search');
3650
+ }
3630
3651
  }
3631
- else {
3632
- onFailure(parent, result, 'search');
3652
+ catch (error) {
3653
+ handleCatchError(parent, error, 'search');
3633
3654
  }
3634
3655
  }
3635
3656
  /* istanbul ignore next */
@@ -3673,52 +3694,76 @@ function Download(parent, path, items) {
3673
3694
  parent.element.removeChild(form);
3674
3695
  }
3675
3696
  else {
3676
- var contentDisposition_1;
3677
- var fileName_1;
3678
- var fetch_1 = new Fetch({
3679
- url: getValue('url', downloadArgs.ajaxSettings),
3680
- type: getValue('type', downloadArgs.ajaxSettings),
3681
- contentType: getValue('contentType', downloadArgs.ajaxSettings),
3682
- responseType: getValue('responseType', downloadArgs.ajaxSettings),
3683
- beforeSend: getValue('beforeSend', downloadArgs.ajaxSettings),
3684
- onLoad: function (e) {
3685
- contentDisposition_1 = e.headers.get('Content-Disposition');
3686
- if (contentDisposition_1) {
3687
- var filenameMatch = contentDisposition_1.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/);
3688
- var extractedFilename = filenameMatch && filenameMatch[1];
3689
- fileName_1 = extractedFilename ? extractedFilename.replace(/['"]/g, '') : fileName_1;
3690
- }
3691
- else {
3692
- fileName_1 = parent.itemData.length > 1 ? 'files.zip' : getValue('isFile', parent.itemData[0]) ? getValue('name', parent.itemData[0]) : getValue('name', parent.itemData[0]) + '.zip';
3693
- }
3694
- },
3695
- onSuccess: function (e) {
3696
- parent.trigger('success', downloadArgs);
3697
- var blob = e;
3698
- var blobUrl = URL.createObjectURL(blob);
3699
- var link = document.createElement('a');
3700
- link.href = blobUrl;
3701
- link.download = fileName_1;
3702
- document.body.appendChild(link);
3703
- link.click();
3704
- document.body.removeChild(link);
3705
- },
3706
- onFailure: function (e) {
3707
- var result = {
3708
- error: {
3709
- code: e.status.toString(),
3710
- message: getLocaleText(parent, 'Network-Error') + ' ' + parent.ajaxSettings.downloadUrl
3697
+ try {
3698
+ var contentDisposition_1;
3699
+ var fileName_1;
3700
+ var fetch_1 = new Fetch({
3701
+ url: getValue('url', downloadArgs.ajaxSettings),
3702
+ type: getValue('type', downloadArgs.ajaxSettings),
3703
+ contentType: getValue('contentType', downloadArgs.ajaxSettings),
3704
+ responseType: getValue('responseType', downloadArgs.ajaxSettings),
3705
+ beforeSend: getValue('beforeSend', downloadArgs.ajaxSettings),
3706
+ onLoad: function (e) {
3707
+ contentDisposition_1 = e.headers.get('Content-Disposition');
3708
+ if (contentDisposition_1) {
3709
+ var filenameMatch = contentDisposition_1.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/);
3710
+ var extractedFilename = filenameMatch && filenameMatch[1];
3711
+ fileName_1 = extractedFilename ? extractedFilename.replace(/['"]/g, '') : fileName_1;
3711
3712
  }
3712
- };
3713
- createDialog(parent, 'Error', result);
3714
- parent.trigger('failure', downloadArgs);
3715
- }
3716
- });
3717
- fetch_1.send(JSON.stringify(downloadArgs.data));
3713
+ else {
3714
+ fileName_1 = parent.itemData.length > 1 ? 'files.zip' : getValue('isFile', parent.itemData[0]) ? getValue('name', parent.itemData[0]) : getValue('name', parent.itemData[0]) + '.zip';
3715
+ }
3716
+ },
3717
+ onSuccess: function (e) {
3718
+ parent.trigger('success', downloadArgs);
3719
+ var blob = e;
3720
+ var blobUrl = URL.createObjectURL(blob);
3721
+ var link = document.createElement('a');
3722
+ link.href = blobUrl;
3723
+ link.download = fileName_1;
3724
+ document.body.appendChild(link);
3725
+ link.click();
3726
+ document.body.removeChild(link);
3727
+ },
3728
+ onFailure: function (e) {
3729
+ var result = {
3730
+ error: {
3731
+ code: e.status.toString(),
3732
+ message: getLocaleText(parent, 'Network-Error') + ' ' + parent.ajaxSettings.downloadUrl
3733
+ }
3734
+ };
3735
+ createDialog(parent, 'Error', result);
3736
+ parent.trigger('failure', downloadArgs);
3737
+ }
3738
+ });
3739
+ fetch_1.send(JSON.stringify(downloadArgs.data));
3740
+ }
3741
+ catch (error) {
3742
+ handleCatchError(parent, error, 'download');
3743
+ }
3718
3744
  }
3719
3745
  }
3720
3746
  });
3721
3747
  }
3748
+ /**
3749
+ * Function for on catch handler in File Manager.
3750
+ *
3751
+ * @param {IFileManager} parent - specifies the parent element.
3752
+ * @param {any} error - specifies the catch error.
3753
+ * @param {string} action - specifies the action.
3754
+ * @returns {void}
3755
+ * @private
3756
+ */
3757
+ function handleCatchError(parent, error, action) {
3758
+ var errorResult = {
3759
+ files: null,
3760
+ error: {
3761
+ message: error.message,
3762
+ fileExists: null
3763
+ }
3764
+ };
3765
+ onFailure(parent, errorResult, action);
3766
+ }
3722
3767
 
3723
3768
  /**
3724
3769
  *
@@ -5381,7 +5426,6 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
5381
5426
  if (toBind) {
5382
5427
  this.clickObj = new Touch(this.element, {
5383
5428
  tap: function (eve) {
5384
- eve.originalEvent.preventDefault();
5385
5429
  if (_this.parent.isDevice) {
5386
5430
  _this.tapCount = eve.tapCount;
5387
5431
  _this.tapEvent = eve;
@@ -9889,10 +9933,7 @@ var NavigationPane = /** @__PURE__ @class */ (function () {
9889
9933
  NavigationPane.prototype.addDragDrop = function () {
9890
9934
  var _this = this;
9891
9935
  if (!this.parent.isMobile && this.treeObj) {
9892
- if (this.parent.allowDragAndDrop) {
9893
- if (this.dragObj) {
9894
- this.dragObj.destroy();
9895
- }
9936
+ if (this.parent.allowDragAndDrop && isNullOrUndefined(this.dragObj)) {
9896
9937
  this.dragObj = new Draggable(this.treeObj.element, {
9897
9938
  cursorAt: this.parent.dragCursorPosition,
9898
9939
  dragTarget: '.' + FULLROW,
@@ -9910,6 +9951,7 @@ var NavigationPane = /** @__PURE__ @class */ (function () {
9910
9951
  }
9911
9952
  else if (!this.parent.allowDragAndDrop && this.dragObj) {
9912
9953
  this.dragObj.destroy();
9954
+ this.dragObj = null;
9913
9955
  }
9914
9956
  }
9915
9957
  };
@@ -10419,7 +10461,7 @@ var NavigationPane = /** @__PURE__ @class */ (function () {
10419
10461
  };
10420
10462
  /* istanbul ignore next */
10421
10463
  NavigationPane.prototype.checkDropPath = function (args) {
10422
- if (isFileSystemData(this.parent) && this.parent.path === this.parent.dropPath || this.parent.targetModule === 'navigationpane') {
10464
+ if (isFileSystemData(this.parent) && (this.parent.path === this.parent.dropPath || this.parent.targetModule === 'navigationpane')) {
10423
10465
  return;
10424
10466
  }
10425
10467
  if (this.parent.hasId) {
@@ -10693,6 +10735,7 @@ var DetailsView = /** @__PURE__ @class */ (function () {
10693
10735
  this.isRendered = true;
10694
10736
  this.isLoaded = false;
10695
10737
  this.isNameWidth = false;
10738
+ this.isMultiSelect = false;
10696
10739
  this.pasteOperation = false;
10697
10740
  this.uploadOperation = false;
10698
10741
  Grid.Inject(Resize, ContextMenu$2, Sort, VirtualScroll);
@@ -11692,10 +11735,7 @@ var DetailsView = /** @__PURE__ @class */ (function () {
11692
11735
  DetailsView.prototype.createDragObj = function () {
11693
11736
  var _this = this;
11694
11737
  if (this.gridObj) {
11695
- if (this.parent.allowDragAndDrop) {
11696
- if (this.dragObj) {
11697
- this.dragObj.destroy();
11698
- }
11738
+ if (this.parent.allowDragAndDrop && isNullOrUndefined(this.dragObj)) {
11699
11739
  this.dragObj = new Draggable(this.gridObj.element, {
11700
11740
  cursorAt: this.parent.dragCursorPosition,
11701
11741
  distance: 5,
@@ -11713,6 +11753,7 @@ var DetailsView = /** @__PURE__ @class */ (function () {
11713
11753
  }
11714
11754
  else if (!this.parent.allowDragAndDrop && this.dragObj) {
11715
11755
  this.dragObj.destroy();
11756
+ this.dragObj = null;
11716
11757
  }
11717
11758
  }
11718
11759
  };
@@ -11786,6 +11827,17 @@ var DetailsView = /** @__PURE__ @class */ (function () {
11786
11827
  };
11787
11828
  this.parent.trigger('fileSelection', eventArgs);
11788
11829
  args.cancel = eventArgs.cancel;
11830
+ if (!this.isMultiSelect) {
11831
+ this.isMultiSelect = true;
11832
+ if ((args.isShiftPressed || args.isCtrlPressed) && !this.parent.allowMultiSelection && (args.target && args.target.parentElement && !args.target.parentElement.classList.contains('e-checkbox-wrapper'))) {
11833
+ args.cancel = true;
11834
+ var rowIndex = (args && args.rowIndexes)
11835
+ ? args.rowIndexes[args.rowIndexes.length - 1]
11836
+ : args.rowIndex;
11837
+ this.gridObj.selectRow(rowIndex);
11838
+ }
11839
+ this.isMultiSelect = false;
11840
+ }
11789
11841
  };
11790
11842
  /* istanbul ignore next */
11791
11843
  DetailsView.prototype.onSelected = function (args) {