@syncfusion/ej2-filemanager 27.1.52 → 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.
@@ -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 query = new Query().where(key, 'equal', value);
1434
- var lists = new DataManager(currFiles).executeLocal(query);
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, screenY, clientY) {
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 ((screenY >= (elementData.top + scrollParent.clientHeight - 30)) && !isNullOrUndefined(node)) {
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.screenY, args.event.y);
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.screenY, args.event.y);
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.screenY, args.event.y);
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
- if (!isNullOrUndefined(result.files)) {
3347
- parent.notify(event, result);
3348
- var args = { action: action, result: result };
3349
- parent.trigger('success', args);
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
- else {
3352
- onFailure(parent, result, action);
3354
+ catch (error) {
3355
+ handleCatchError(parent, error, action);
3353
3356
  }
3354
3357
  }
3355
3358
  /* istanbul ignore next */
@@ -3363,51 +3366,59 @@ function filterSuccess(parent, result, event, action) {
3363
3366
  * @private
3364
3367
  */
3365
3368
  function createSuccess(parent, result, itemName) {
3366
- if (!isNullOrUndefined(result.files)) {
3367
- if (parent.dialogObj && parent.dialogObj.visible) {
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
- var ele = select('#newname', parent.dialogObj.element);
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
- var args = { action: 'create', error: result.error };
3402
- parent.trigger('failure', args);
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 (parent.dialogObj && parent.dialogObj.visible) {
3406
- parent.dialogObj.hide();
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
+ }
3408
+ else {
3409
+ if (parent.dialogObj && parent.dialogObj.visible) {
3410
+ parent.dialogObj.hide();
3411
+ }
3412
+ onFailure(parent, result, 'create');
3407
3413
  }
3408
- onFailure(parent, result, 'create');
3409
3414
  }
3410
3415
  }
3416
+ catch (error) {
3417
+ if (parent.dialogObj && parent.dialogObj.visible) {
3418
+ parent.dialogObj.hide();
3419
+ }
3420
+ handleCatchError(parent, error, 'create');
3421
+ }
3411
3422
  }
3412
3423
  /* istanbul ignore next */
3413
3424
  /**
@@ -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
- textEle.innerHTML = txt.substr(0, txt.length - type.length);
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
  }
@@ -8289,7 +8303,9 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8289
8303
  */
8290
8304
  /* istanbul ignore next */
8291
8305
  FileManager.prototype.onPropertyChanged = function (newProp, oldProp) {
8306
+ var _this = this;
8292
8307
  var height;
8308
+ var requiresRefresh = false;
8293
8309
  for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {
8294
8310
  var prop = _a[_i];
8295
8311
  switch (prop) {
@@ -8300,6 +8316,14 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8300
8316
  this.allowDragAndDrop = newProp.allowDragAndDrop;
8301
8317
  this.notify(modelChanged, { module: 'common', newProp: newProp, oldProp: oldProp });
8302
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;
8303
8327
  case 'allowMultiSelection':
8304
8328
  if (this.allowMultiSelection) {
8305
8329
  addClass([this.element], CHECK_SELECT);
@@ -8327,11 +8351,11 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8327
8351
  break;
8328
8352
  case 'enableRtl':
8329
8353
  this.enableRtl = newProp.enableRtl;
8330
- this.refresh();
8354
+ requiresRefresh = true;
8331
8355
  break;
8332
8356
  case 'rootAliasName':
8333
8357
  this.rootAliasName = newProp.rootAliasName;
8334
- this.refresh();
8358
+ requiresRefresh = true;
8335
8359
  break;
8336
8360
  case 'height':
8337
8361
  height = !isNullOrUndefined(newProp.height) ? formatUnit(newProp.height) : newProp.height;
@@ -8406,11 +8430,21 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8406
8430
  this.notify(sortByChange, {});
8407
8431
  break;
8408
8432
  case 'sortBy':
8409
- refresh(this);
8410
- this.notify(sortByChange, {});
8411
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, {});
8412
8442
  this.notify(sortColumn, {});
8413
8443
  }
8444
+ else {
8445
+ refresh(this);
8446
+ this.notify(sortByChange, {});
8447
+ }
8414
8448
  break;
8415
8449
  case 'popupTarget':
8416
8450
  if (this.uploadDialogObj) {
@@ -8428,10 +8462,13 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8428
8462
  break;
8429
8463
  case 'fileSystemData':
8430
8464
  this.fileSystemData = newProp.fileSystemData;
8431
- this.refresh();
8465
+ requiresRefresh = true;
8432
8466
  break;
8433
8467
  }
8434
8468
  }
8469
+ if (requiresRefresh) {
8470
+ this.refresh();
8471
+ }
8435
8472
  };
8436
8473
  /* istanbul ignore next */
8437
8474
  FileManager.prototype.ajaxSettingSetModel = function (newProp) {
@@ -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
- if (this.parent.isMobile) {
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
- textEle.innerHTML = name_1.substr(0, name_1.length - type.length);
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;