@syncfusion/ej2-filemanager 27.2.5 → 28.1.36

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.
Files changed (52) hide show
  1. package/README.md +2 -2
  2. package/dist/ej2-filemanager.min.js +1 -10
  3. package/dist/ej2-filemanager.umd.min.js +1 -10
  4. package/dist/ej2-filemanager.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-filemanager.es2015.js +134 -28
  6. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  7. package/dist/es6/ej2-filemanager.es5.js +142 -36
  8. package/dist/es6/ej2-filemanager.es5.js.map +1 -1
  9. package/dist/global/ej2-filemanager.min.js +1 -10
  10. package/dist/global/ej2-filemanager.min.js.map +1 -1
  11. package/dist/global/index.d.ts +0 -9
  12. package/package.json +16 -17
  13. package/src/file-manager/base/file-manager-model.d.ts +2 -1
  14. package/src/file-manager/base/file-manager.d.ts +4 -1
  15. package/src/file-manager/base/file-manager.js +39 -4
  16. package/src/file-manager/common/operations.js +44 -15
  17. package/src/file-manager/common/utility.d.ts +9 -0
  18. package/src/file-manager/common/utility.js +19 -3
  19. package/src/file-manager/layout/details-view.js +10 -0
  20. package/src/file-manager/layout/large-icons-view.js +7 -5
  21. package/src/file-manager/layout/navigation-pane.js +9 -5
  22. package/src/file-manager/models/upload-settings-model.d.ts +9 -0
  23. package/src/file-manager/models/upload-settings.d.ts +8 -0
  24. package/src/file-manager/models/upload-settings.js +3 -0
  25. package/src/file-manager/pop-up/context-menu.d.ts +1 -0
  26. package/src/file-manager/pop-up/context-menu.js +4 -3
  27. package/src/file-manager/pop-up/dialog.js +8 -2
  28. package/styles/bds-lite.css +1284 -0
  29. package/styles/bds-lite.scss +16 -0
  30. package/styles/bds.css +1876 -0
  31. package/styles/bds.scss +17 -0
  32. package/styles/file-manager/_bigger.scss +69 -6
  33. package/styles/file-manager/_fluent2-definition.scss +1 -1
  34. package/styles/file-manager/_layout.scss +77 -14
  35. package/styles/file-manager/_material3-definition.scss +2 -2
  36. package/styles/file-manager/_tailwind3-definition.scss +243 -0
  37. package/styles/file-manager/_theme.scss +4 -1
  38. package/styles/file-manager/bds.css +1876 -0
  39. package/styles/file-manager/bds.scss +17 -0
  40. package/styles/file-manager/fluent2.css +2 -2
  41. package/styles/file-manager/icons/_tailwind3.scss +235 -0
  42. package/styles/file-manager/material3-dark.css +3 -2
  43. package/styles/file-manager/material3.css +3 -2
  44. package/styles/file-manager/tailwind3.css +1666 -0
  45. package/styles/file-manager/tailwind3.scss +17 -0
  46. package/styles/fluent2.css +2 -2
  47. package/styles/material3-dark.css +3 -2
  48. package/styles/material3.css +3 -2
  49. package/styles/tailwind3-lite.css +1069 -0
  50. package/styles/tailwind3-lite.scss +16 -0
  51. package/styles/tailwind3.css +1666 -0
  52. package/styles/tailwind3.scss +17 -0
@@ -254,6 +254,9 @@ __decorate$6([
254
254
  __decorate$6([
255
255
  Property(30000000)
256
256
  ], UploadSettings.prototype, "maxFileSize", void 0);
257
+ __decorate$6([
258
+ Property(0)
259
+ ], UploadSettings.prototype, "chunkSize", void 0);
257
260
 
258
261
  var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
259
262
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1579,7 +1582,7 @@ function pasteHandler(parent) {
1579
1582
  if (parent.selectedNodes.length !== 0 && parent.enablePaste) {
1580
1583
  const path = (parent.folderPath === '') ? parent.path : parent.folderPath;
1581
1584
  if (parent.activeModule === 'navigationpane' && !parent.selectedNodes[0].includes('/')) {
1582
- parent.targetPath = getValue('filterPath', parent.actionRecords[0]).replace(/\\/g, '/');
1585
+ parent.targetPath = getTargetPath(parent, parent.actionRecords[0]);
1583
1586
  }
1584
1587
  const subFolder = validateSubFolder(parent, parent.actionRecords, path, parent.path);
1585
1588
  if (!subFolder) {
@@ -1709,9 +1712,9 @@ function getDirectoryPath(parent, args) {
1709
1712
  const fPath = getValue(parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? 'filterId' : 'filterPath', args.cwd);
1710
1713
  if (!isNullOrUndefined(fPath)) {
1711
1714
  if (fPath === '') {
1712
- return parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? filePath : '/';
1715
+ return '/';
1713
1716
  }
1714
- return fPath.replace(/\\/g, '/') + filePath;
1717
+ return fPath.replace(/\\/g, '/').replace(/^.*?(?=\/)/, '') + filePath;
1715
1718
  }
1716
1719
  else {
1717
1720
  return isFileSystemData(parent) ? filePath : parent.path + filePath;
@@ -2320,6 +2323,22 @@ function closePopup(parent) {
2320
2323
  parent.dialogObj.hide();
2321
2324
  }
2322
2325
  }
2326
+ /**
2327
+ * Get target path from item data.
2328
+ *
2329
+ * @param {IFileManager} parent - specifies the parent.
2330
+ * @param {Object} itemData - specifies the item elements.
2331
+ * @returns {string} returns the path.
2332
+ * @private
2333
+ */
2334
+ function getTargetPath(parent, itemData) {
2335
+ if (parent.hasId && !isNullOrUndefined(getValue('filterId', itemData))) {
2336
+ return getValue('filterId', itemData).replace(/\\/g, '/').replace(/^[^/]+\//, '/');
2337
+ }
2338
+ else {
2339
+ return getValue('filterPath', itemData).replace(/\\/g, '/');
2340
+ }
2341
+ }
2323
2342
  /**
2324
2343
  * Access control handler
2325
2344
  *
@@ -2600,7 +2619,7 @@ function createNewItem(data, target, itemName, isCopy) {
2600
2619
  }
2601
2620
  }
2602
2621
  const currentDate = new Date();
2603
- const folderPath = target.id !== 0 ? target.filterPath + target.name : '\\';
2622
+ const folderPath = String(target.id) !== String(0) && !isNullOrUndefined(target.parentId) ? target.filterPath + target.name + '\\' : '\\';
2604
2623
  Object.assign(newItem, {
2605
2624
  dateCreated: currentDate,
2606
2625
  dateModified: currentDate,
@@ -2734,7 +2753,9 @@ function triggerRenameOperation(parent, data, eventArgs) {
2734
2753
  if (isFileSystemData(parent)) {
2735
2754
  if (!isFileExists(parent.fileSystemData, args.newName)) {
2736
2755
  const fileData = filterById(parent, args.itemData[0].id);
2756
+ const oldName = fileData.name;
2737
2757
  fileData.name = args.newName;
2758
+ updateChildrenFilterPath(parent, fileData.id, oldName, args.newName);
2738
2759
  }
2739
2760
  else {
2740
2761
  const message = 'Cannot rename' + args.itemData[0].name + 'to' + args.newName + ': destination already exists.';
@@ -2743,6 +2764,26 @@ function triggerRenameOperation(parent, data, eventArgs) {
2743
2764
  }
2744
2765
  });
2745
2766
  }
2767
+ /**
2768
+ * Function to update child item filter path.
2769
+ *
2770
+ * @param {IFileManager} parent - specifies the parent element.
2771
+ * @param {string | number} parentId - specifies the parent id.
2772
+ * @param {string} oldName - specifies the previous name.
2773
+ * @param {string} newName - specifies the new name.
2774
+ * @returns {void}
2775
+ * @private
2776
+ */
2777
+ function updateChildrenFilterPath(parent, parentId, oldName, newName) {
2778
+ parent.fileSystemData.forEach((item) => {
2779
+ if (String(item.parentId) === String(parentId)) {
2780
+ const oldPath = item.filterPath;
2781
+ const newPath = oldPath.replace(oldName + '\\', newName + '\\');
2782
+ item.filterPath = newPath;
2783
+ updateChildrenFilterPath(parent, item.id, oldName, newName);
2784
+ }
2785
+ });
2786
+ }
2746
2787
  /**
2747
2788
  * Function to trigger move or copy operation.
2748
2789
  *
@@ -2805,11 +2846,16 @@ function triggerMoveOrCopyOperation(parent, data, eventArgs) {
2805
2846
  if (!isFileExists(getTargetFiles, currItem.name) || getValue('renameFiles', data).length > 0) {
2806
2847
  if (!target.hasChild) {
2807
2848
  target.hasChild = !currItem.isFile;
2849
+ const targetItem = parent.fileSystemData
2850
+ .filter((item) => String(item.id) === String(target.id));
2851
+ if (targetItem.length > 0) {
2852
+ targetItem[0].hasChild = target.hasChild;
2853
+ }
2808
2854
  }
2809
2855
  if (!currItem.isFile) {
2810
2856
  //Check whether the source folder include other sub folders or not.
2811
2857
  const subItems = currItem.parentId !== 0
2812
- ? filterByParent(parent, currItem.parentID) : [];
2858
+ ? filterByParent(parent, currItem.parentId) : [];
2813
2859
  const itemData = filterById(parent, currItem.parentId);
2814
2860
  itemData.hasChild = subItems.length > 1 ? true : false;
2815
2861
  }
@@ -2932,7 +2978,6 @@ function createAjax(parent, data, fn, event, operation, targetPath) {
2932
2978
  ? getValue('path', data) : parent.path;
2933
2979
  const pathArray = filePath.replace(/^\/|\/$/g, '').split('/');
2934
2980
  const idValue = event === 'rename-end-parent' || (event === 'path-changed' && getValue('data', data).length !== 0 && isNullOrUndefined(parent.renamedItem))
2935
- || (event === 'paste-end' && (parent.targetModule === 'largeiconsview' || parent.targetModule === 'detailsview'))
2936
2981
  ? getValue('data', data)[0].id : pathArray[pathArray.length - 1];
2937
2982
  const action = getValue('action', data);
2938
2983
  const isFileOperation = (action === 'move' || action === 'rename' || action === 'copy' || action === 'delete' || action === 'search') && event !== 'rename-end';
@@ -2977,9 +3022,9 @@ function createAjax(parent, data, fn, event, operation, targetPath) {
2977
3022
  const isMultipleFiles = itemData.length > 1;
2978
3023
  const itemNames = itemData.map((item) => item.name);
2979
3024
  const totalSize = isMultipleFiles ? getSize(itemData.reduce((accumulator, currentObject) => accumulator + (currentObject.size || 0), 0)) : getSize(details.size);
2980
- const path = (parent.pathNames.includes(details.name) ? parent.pathNames.join('/') : parent.pathNames.join('/') + '/' + details.name);
3025
+ const path = (parent.pathNames.includes(details.name) || isMultipleFiles ? parent.pathNames.join('/') : parent.pathNames.join('/') + '/' + details.name);
2981
3026
  parent.responseData.details = Object.assign({
2982
- location: isMultipleFiles ? null : path,
3027
+ location: path,
2983
3028
  multipleFiles: isMultipleFiles,
2984
3029
  name: itemNames.join(', '),
2985
3030
  size: totalSize
@@ -3108,6 +3153,8 @@ function performReadOperation(parent, result, fn, data, event, operation, target
3108
3153
  if ((getValue('path', data) === '/') || (parent.hasId && getValue('path', data).match(/[/]/g).length === 1)) {
3109
3154
  if (getValue('names', data).length === 0) {
3110
3155
  setValue('name', rootName, result.details);
3156
+ }
3157
+ if (location.indexOf('\\') === -1) {
3111
3158
  location = rootName;
3112
3159
  }
3113
3160
  else {
@@ -3326,7 +3373,8 @@ function renameSuccess(parent, result) {
3326
3373
  const pathLevel = parent.pathId[parent.pathId.length - 1].split('_').length - 2;
3327
3374
  parent.pathId.pop();
3328
3375
  parent.itemData = [getValue(parent.pathId[parent.pathId.length - 1], parent.feParent)];
3329
- read(parent, renameEndParent, getValue('filterPath', parent.renamedItem).replace(/\\/g, '/'));
3376
+ const renamePath = getTargetPath(parent, parent.renamedItem);
3377
+ read(parent, renameEndParent, renamePath);
3330
3378
  if (!isNullOrUndefined(pathObject) && parent.pathNames.length > 1 && pathLevel <= parent.pathNames.length - 1) {
3331
3379
  parent.pathNames[pathLevel] = parent.renameText;
3332
3380
  if (!parent.hasId) {
@@ -4461,7 +4509,13 @@ function onReSubmit(parent) {
4461
4509
  parent.dialogObj.hide();
4462
4510
  return;
4463
4511
  }
4464
- const newPath = (parent.activeModule === 'navigationpane') ? getValue('filterPath', parent.itemData[0]).replace(/\\/g, '/') : parent.path;
4512
+ let newPath = '';
4513
+ if (parent.activeModule === 'navigationpane') {
4514
+ newPath = getTargetPath(parent, parent.itemData[0]);
4515
+ }
4516
+ else {
4517
+ newPath = parent.path;
4518
+ }
4465
4519
  parent.renamedId = getValue('id', parent.itemData[0]);
4466
4520
  if (parent.isFile) {
4467
4521
  const oldExtension = (oIndex === -1) ? '' : parent.currentItemText.substr(oIndex);
@@ -5389,31 +5443,33 @@ class LargeIconsView {
5389
5443
  * @hidden
5390
5444
  */
5391
5445
  doSelection(target, e) {
5446
+ const ctrlKey = this.parent.isMac ? e.metaKey : e.ctrlKey;
5447
+ const isMacRightClick = this.parent.isMac && e.ctrlKey && e.shiftKey;
5392
5448
  const item = closest(target, '.' + LIST_ITEM);
5393
5449
  const cList = target.classList;
5394
5450
  this.parent.isFile = false;
5395
5451
  let action = 'select';
5396
- if (e.which === 3 && !isNullOrUndefined(item) && item.classList.contains(ACTIVE)) {
5452
+ if ((e.which === 3 || isMacRightClick) && !isNullOrUndefined(item) && item.classList.contains(ACTIVE)) {
5397
5453
  this.addActive(item);
5398
5454
  this.updateType(item);
5399
5455
  return;
5400
5456
  }
5401
5457
  else if (!isNullOrUndefined(item)) {
5402
5458
  if (this.parent.allowMultiSelection && item.classList.contains(ACTIVE)
5403
- && (e.ctrlKey || target.classList.contains(CHECK))) {
5459
+ && (ctrlKey || target.classList.contains(CHECK))) {
5404
5460
  action = 'unselect';
5405
5461
  }
5406
- if (e.ctrlKey && e.shiftKey) {
5462
+ if (e.ctrlKey && e.shiftKey && !isMacRightClick) {
5407
5463
  this.isSelectAllCalled = true;
5408
5464
  }
5409
5465
  const fileSelectionArgs = this.triggerSelection(action, item);
5410
5466
  if (fileSelectionArgs.cancel !== true) {
5411
- if ((!this.parent.allowMultiSelection || (!this.multiSelect && (e && !e.ctrlKey)))
5467
+ if ((!this.parent.allowMultiSelection || (!this.multiSelect && (e && !ctrlKey)))
5412
5468
  && !cList.contains(FRAME)) {
5413
5469
  this.updateType(item);
5414
5470
  this.clearSelect();
5415
5471
  }
5416
- if (this.parent.allowMultiSelection && e.shiftKey) {
5472
+ if (this.parent.allowMultiSelection && e.shiftKey && !isMacRightClick) {
5417
5473
  if (!(e && e.ctrlKey)) {
5418
5474
  this.clearSelect();
5419
5475
  }
@@ -6762,7 +6818,7 @@ class ContextMenu {
6762
6818
  else if (closest(target, '#' + this.parent.element.id + TREE_ID)) {
6763
6819
  uid = closest(target, 'li').getAttribute('data-uid');
6764
6820
  if (!isNullOrUndefined(uid)) {
6765
- this.parent.navigationpaneModule.treeObj.setProperties({ selectedNodes: [uid] });
6821
+ this.navUid = uid;
6766
6822
  }
6767
6823
  treeFolder = true;
6768
6824
  }
@@ -6898,8 +6954,9 @@ class ContextMenu {
6898
6954
  this.contextMenu.items = this.getItemData(this.parent.contextMenuSettings.folder.map((item) => item.trim()));
6899
6955
  this.contextMenu.dataBind();
6900
6956
  if (isTree) {
6901
- const selectedTreeNode = select('[data-uid="' + this.parent.navigationpaneModule.treeObj.selectedNodes[0] + '"]', this.parent.navigationpaneModule.treeObj.element);
6902
- if (this.parent.pathNames[this.parent.pathNames.length - 1] === selectedTreeNode.querySelector('.e-list-text').innerHTML && this.parent.activeModule === 'navigationpane') {
6957
+ const selectedTreeNode = select('[data-uid="' + this.navUid + '"]', this.parent.navigationpaneModule.treeObj.element);
6958
+ if (!isNullOrUndefined(selectedTreeNode) &&
6959
+ this.parent.pathNames[this.parent.pathNames.length - 1] === selectedTreeNode.querySelector('.e-list-text').innerHTML && this.parent.activeModule === 'navigationpane') {
6903
6960
  this.disabledItems.push('Open');
6904
6961
  }
6905
6962
  else {
@@ -7768,11 +7825,14 @@ let FileManager = FileManager_1 = class FileManager extends Component {
7768
7825
  dropArea: select('#' + this.element.id + CONTENT_ID, this.element),
7769
7826
  asyncSettings: {
7770
7827
  saveUrl: uploadUrl,
7771
- removeUrl: uploadUrl
7828
+ removeUrl: uploadUrl,
7829
+ chunkSize: this.uploadSettings.chunkSize,
7830
+ retryCount: 0
7772
7831
  },
7773
7832
  locale: this.locale,
7774
7833
  enableRtl: this.enableRtl,
7775
7834
  uploading: this.onUploading.bind(this),
7835
+ chunkUploading: this.onChunkUploading.bind(this),
7776
7836
  removing: this.onRemoving.bind(this),
7777
7837
  canceling: this.onCancel.bind(this),
7778
7838
  clearing: this.onClearing.bind(this),
@@ -7834,19 +7894,34 @@ let FileManager = FileManager_1 = class FileManager extends Component {
7834
7894
  this.trigger('popupClose', args);
7835
7895
  }
7836
7896
  /* istanbul ignore next */
7897
+ onChunkUploading(args) {
7898
+ let action = 'save';
7899
+ if ((this.retryArgs.length !== 0)) {
7900
+ for (let i = 0; i < this.retryArgs.length; i++) {
7901
+ if (args.fileData.name === this.retryArgs[i].file.name) {
7902
+ action = this.retryArgs[i].action;
7903
+ }
7904
+ }
7905
+ }
7906
+ const data = JSON.stringify(getValue(this.pathId[this.pathId.length - 1], this.feParent));
7907
+ args.customFormData = [{ 'path': this.path }, { 'size': args.fileData.size }, { 'action': action }, { 'data': data }, { 'filename': args.fileData.name }];
7908
+ }
7909
+ /* istanbul ignore next */
7837
7910
  onUploading(args) {
7838
7911
  let action = 'save';
7839
7912
  if ((this.retryArgs.length !== 0)) {
7840
7913
  for (let i = 0; i < this.retryArgs.length; i++) {
7841
7914
  if (args.fileData.name === this.retryArgs[i].file.name) {
7842
7915
  action = this.retryArgs[i].action;
7843
- this.retryArgs.splice(i, 1);
7844
- i = this.retryArgs.length;
7916
+ if (this.uploadSettings.chunkSize === 0) {
7917
+ this.retryArgs.splice(i, 1);
7918
+ i = this.retryArgs.length;
7919
+ }
7845
7920
  }
7846
7921
  }
7847
7922
  }
7848
7923
  const data = JSON.stringify(getValue(this.pathId[this.pathId.length - 1], this.feParent));
7849
- args.customFormData = [{ 'path': this.path }, { 'action': action }, { 'data': data }, { 'filename': args.fileData.name }];
7924
+ args.customFormData = [{ 'path': this.path }, { 'size': args.fileData.size }, { 'action': action }, { 'data': data }, { 'filename': args.fileData.name }];
7850
7925
  const uploadUrl = this.ajaxSettings.uploadUrl ? this.ajaxSettings.uploadUrl : this.ajaxSettings.url;
7851
7926
  const ajaxSettings = {
7852
7927
  url: uploadUrl,
@@ -7913,8 +7988,22 @@ let FileManager = FileManager_1 = class FileManager extends Component {
7913
7988
  this.uploadDialogObj.hide();
7914
7989
  }
7915
7990
  }
7991
+ onChunkUploadComplete(files) {
7992
+ if ((this.retryArgs.length !== 0)) {
7993
+ for (let i = 0; i < this.retryArgs.length; i++) {
7994
+ const uploadFile = !isNullOrUndefined(files) ? getValue('file', files).name : '';
7995
+ if (uploadFile === this.retryArgs[i].file.name) {
7996
+ this.retryArgs.splice(i, 1);
7997
+ i = this.retryArgs.length;
7998
+ }
7999
+ }
8000
+ }
8001
+ }
7916
8002
  /* istanbul ignore next */
7917
8003
  onUploadSuccess(files) {
8004
+ if (this.uploadSettings.chunkSize > 0) {
8005
+ this.onChunkUploadComplete(files);
8006
+ }
7918
8007
  const args = { action: 'Upload', result: files };
7919
8008
  this.trigger('success', args);
7920
8009
  this.itemData = [getValue(this.pathId[this.pathId.length - 1], this.feParent)];
@@ -7926,6 +8015,9 @@ let FileManager = FileManager_1 = class FileManager extends Component {
7926
8015
  }
7927
8016
  /* istanbul ignore next */
7928
8017
  onUploadFailure(files) {
8018
+ if (this.uploadSettings.chunkSize > 0) {
8019
+ this.onChunkUploadComplete(files);
8020
+ }
7929
8021
  const response = getValue('response', files);
7930
8022
  const statusText = getValue('statusText', response);
7931
8023
  if (statusText !== '') {
@@ -10231,6 +10323,15 @@ class NavigationPane {
10231
10323
  this.removeChildNodes(e.selectedNode);
10232
10324
  }
10233
10325
  onDragEnd(args) {
10326
+ if (isFileSystemData(this.parent)) {
10327
+ this.moveNames = [];
10328
+ const obj = this.parent.dragData;
10329
+ for (let i = 0; i < obj.length; i++) {
10330
+ if (getValue('isFile', obj[i]) === false) {
10331
+ this.moveNames.push(getValue('_fm_id', obj[i]));
10332
+ }
10333
+ }
10334
+ }
10234
10335
  let moveNames = [];
10235
10336
  if (this.parent.isPasteError || this.parent.isSearchDrag) {
10236
10337
  moveNames = this.getMoveNames(args.files, this.parent.isSearchDrag, this.parent.dragPath);
@@ -10336,11 +10437,6 @@ class NavigationPane {
10336
10437
  if (isFileSystemData(this.parent) && (this.parent.path === this.parent.dropPath || this.parent.targetModule === 'navigationpane')) {
10337
10438
  return;
10338
10439
  }
10339
- if (this.parent.hasId) {
10340
- this.parent.isDropEnd = !this.parent.isPasteError;
10341
- readDropPath(this.parent);
10342
- return;
10343
- }
10344
10440
  if ((this.parent.dropPath.indexOf(getDirectoryPath(this.parent, args)) === -1)) {
10345
10441
  this.parent.isDropEnd = false;
10346
10442
  readDropPath(this.parent);
@@ -10656,6 +10752,16 @@ class DetailsView {
10656
10752
  }
10657
10753
  /* istanbul ignore next */
10658
10754
  render(args) {
10755
+ if (this.parent.enablePersistence) {
10756
+ const gridPersistenceValue = window.localStorage.getItem('grid' + this.parent.element.id + '_grid');
10757
+ if (!isNullOrUndefined(gridPersistenceValue)) {
10758
+ const model = JSON.parse(gridPersistenceValue);
10759
+ if (!isNullOrUndefined(model) && Object.keys(model).length > 0 && 'sortSettings' in model) {
10760
+ delete model.sortSettings;
10761
+ window.localStorage.setItem('grid' + this.parent.element.id + '_grid', JSON.stringify(model));
10762
+ }
10763
+ }
10764
+ }
10659
10765
  showSpinner(this.parent.element);
10660
10766
  if (this.parent.view === 'Details') {
10661
10767
  removeClass([this.parent.element], MULTI_SELECT);
@@ -12518,5 +12624,5 @@ class DetailsView {
12518
12624
  }
12519
12625
  }
12520
12626
 
12521
- export { ACTIVE, ALT_DIALOG_ID, AjaxSettings, BLUR, BREADCRUMBBAR_ID, BREADCRUMBS, BreadCrumbBar, CB_WRAP, CHECK, CHECK_SELECT, CLONE, COLLAPSED, CONTENT_ID, CONTEXT_MENU_ID, CONTROL, Column, ContextMenu, ContextMenuSettings, DETAILS_LABEL, DIALOG_ID, DISPLAY_NONE, DROP_FILE, DROP_FOLDER, Delete, DetailsView, DetailsViewSettings, Download, EMPTY, EMPTY_CONTENT, EMPTY_INNER_CONTENT, ERROR_CONTENT, EXTN_DIALOG_ID, FILTER, FOCUS, FOCUSED, FOLDER, FRAME, FULLROW, FileManager, GRID_CONTENT, GRID_HEADER, GRID_ID, GRID_VIEW, GetDetails, HEADER_CHECK, HOVER, ICONS, ICON_BREADCRUMB, ICON_CLEAR, ICON_COLLAPSIBLE, ICON_COPY, ICON_CUT, ICON_DELETE, ICON_DETAILS, ICON_DOWNLOAD, ICON_DROP_IN, ICON_DROP_OUT, ICON_GRID, ICON_IMAGE, ICON_LARGE, ICON_MUSIC, ICON_NEWFOLDER, ICON_NO_DROP, ICON_OPEN, ICON_OPTIONS, ICON_PASTE, ICON_REFRESH, ICON_RENAME, ICON_SELECTALL, ICON_SHORTBY, ICON_UPLOAD, ICON_VIDEO, ICON_VIEW, IMG_DIALOG_ID, LARGEICON_ID, LARGE_EMPTY_FOLDER, LARGE_EMPTY_FOLDER_TWO, LARGE_ICON, LARGE_ICONS, LARGE_ICON_FOLDER, LAYOUT, LAYOUT_CONTENT, LAYOUT_ID, LIST_ITEM, LIST_PARENT, LIST_TEXT, LargeIconsView, MENU_ICON, MENU_ITEM, MOBILE, MOB_POPUP, MULTI_SELECT, NAVIGATION, NAVIGATION_ID, NavigationPane, NavigationPaneSettings, OVERLAY, RETRY_DIALOG_ID, RETRY_ID, ROOT, ROOT_POPUP, ROW, ROWCELL, RTL, SEARCH_ID, SELECTED_ITEMS, SORTBY_ID, SPLITTER_ID, SPLIT_BAR, STATUS, SUBMENU_ICON, Search, SearchSettings, TB_ITEM, TB_OPTION_DOT, TB_OPTION_TICK, TEMPLATE_CELL, TEXT_CONTENT, TOOLBAR_ID, TREE_ID, TREE_VIEW, Toolbar, ToolbarItem, ToolbarSettings, UPLOAD_DIALOG_ID, UPLOAD_ID, UploadSettings, VALUE, VIEW_ID, Virtualization, actionFailure, activeElement, addBlur, afterRequest, beforeDelete, beforeDownload, beforeRequest, clearAllInit, clearPathInit, closePopup, columnArray, copyFiles, createDeniedDialog, createDialog, createEmptyElement, createEnd, createExtDialog, createFolder, createImageDialog, createNewFolder, createVirtualDragElement, cutCopyInit, cutEnd, cutFiles, defaultToolbarItems, deleteEnd, deleteInit, destroy, detailsInit, doDeleteFiles, doDownload, doDownloadFiles, doPasteUpdate, doRename, download, downloadInit, dragCancel, dragEnd, dragHelper, dragStartHandler, dragStopHandler, dragging, draggingHandler, dropHandler, dropInit, dropPath, fileItems, fileType, filter, filterEnd, finalizeEnd, folderItems, generatePath, getAccessClass, getAccessDetails, getAllChildItems, getCssClass, getDirectories, getDirectoryPath, getDuplicateData, getFullPath, getImageUrl, getItemName, getLocaleText, getModule, getName, getObject, getParentPath, getParents, getPath, getPathId, getPathNames, getPathObject, getSortField, getSortedData, getTargetModule, hasContentAccess, hasDownloadAccess, hasEditAccess, hasReadAccess, hasUploadAccess, hideLayout, hidePaste, initialEnd, isFile, isFileSystemData, layoutChange, layoutItems, layoutRefresh, menuItemData, methodCall, modelChanged, nodeExpand, objectToString, openAction, openEnd, openInit, openSearchFolder, paste, pasteEnd, pasteHandler, pasteInit, pathChanged, pathColumn, pathDrag, permissionCopy, permissionDownload, permissionEdit, permissionEditContents, permissionRead, permissionUpload, read, readDropPath, refresh, refreshEnd, removeActive, removeBlur, removeDropTarget, removeItemClass, rename, renameEnd, renameEndParent, renameInit, resizeEnd, scrollHandler, search, searchTextChange, searchWordHandler, selectAllInit, selectedData, selectionChanged, setDateObject, setNextPath, setNodeId, showPaste, skipUpload, sortByChange, sortColumn, sortComparer, sortbyClickHandler, splitterResize, treeSelect, updateLayout, updatePath, updateRenamingData, updateSelectionData, updateTreeSelection, upload, uploadItem, validateSubFolder };
12627
+ export { ACTIVE, ALT_DIALOG_ID, AjaxSettings, BLUR, BREADCRUMBBAR_ID, BREADCRUMBS, BreadCrumbBar, CB_WRAP, CHECK, CHECK_SELECT, CLONE, COLLAPSED, CONTENT_ID, CONTEXT_MENU_ID, CONTROL, Column, ContextMenu, ContextMenuSettings, DETAILS_LABEL, DIALOG_ID, DISPLAY_NONE, DROP_FILE, DROP_FOLDER, Delete, DetailsView, DetailsViewSettings, Download, EMPTY, EMPTY_CONTENT, EMPTY_INNER_CONTENT, ERROR_CONTENT, EXTN_DIALOG_ID, FILTER, FOCUS, FOCUSED, FOLDER, FRAME, FULLROW, FileManager, GRID_CONTENT, GRID_HEADER, GRID_ID, GRID_VIEW, GetDetails, HEADER_CHECK, HOVER, ICONS, ICON_BREADCRUMB, ICON_CLEAR, ICON_COLLAPSIBLE, ICON_COPY, ICON_CUT, ICON_DELETE, ICON_DETAILS, ICON_DOWNLOAD, ICON_DROP_IN, ICON_DROP_OUT, ICON_GRID, ICON_IMAGE, ICON_LARGE, ICON_MUSIC, ICON_NEWFOLDER, ICON_NO_DROP, ICON_OPEN, ICON_OPTIONS, ICON_PASTE, ICON_REFRESH, ICON_RENAME, ICON_SELECTALL, ICON_SHORTBY, ICON_UPLOAD, ICON_VIDEO, ICON_VIEW, IMG_DIALOG_ID, LARGEICON_ID, LARGE_EMPTY_FOLDER, LARGE_EMPTY_FOLDER_TWO, LARGE_ICON, LARGE_ICONS, LARGE_ICON_FOLDER, LAYOUT, LAYOUT_CONTENT, LAYOUT_ID, LIST_ITEM, LIST_PARENT, LIST_TEXT, LargeIconsView, MENU_ICON, MENU_ITEM, MOBILE, MOB_POPUP, MULTI_SELECT, NAVIGATION, NAVIGATION_ID, NavigationPane, NavigationPaneSettings, OVERLAY, RETRY_DIALOG_ID, RETRY_ID, ROOT, ROOT_POPUP, ROW, ROWCELL, RTL, SEARCH_ID, SELECTED_ITEMS, SORTBY_ID, SPLITTER_ID, SPLIT_BAR, STATUS, SUBMENU_ICON, Search, SearchSettings, TB_ITEM, TB_OPTION_DOT, TB_OPTION_TICK, TEMPLATE_CELL, TEXT_CONTENT, TOOLBAR_ID, TREE_ID, TREE_VIEW, Toolbar, ToolbarItem, ToolbarSettings, UPLOAD_DIALOG_ID, UPLOAD_ID, UploadSettings, VALUE, VIEW_ID, Virtualization, actionFailure, activeElement, addBlur, afterRequest, beforeDelete, beforeDownload, beforeRequest, clearAllInit, clearPathInit, closePopup, columnArray, copyFiles, createDeniedDialog, createDialog, createEmptyElement, createEnd, createExtDialog, createFolder, createImageDialog, createNewFolder, createVirtualDragElement, cutCopyInit, cutEnd, cutFiles, defaultToolbarItems, deleteEnd, deleteInit, destroy, detailsInit, doDeleteFiles, doDownload, doDownloadFiles, doPasteUpdate, doRename, download, downloadInit, dragCancel, dragEnd, dragHelper, dragStartHandler, dragStopHandler, dragging, draggingHandler, dropHandler, dropInit, dropPath, fileItems, fileType, filter, filterEnd, finalizeEnd, folderItems, generatePath, getAccessClass, getAccessDetails, getAllChildItems, getCssClass, getDirectories, getDirectoryPath, getDuplicateData, getFullPath, getImageUrl, getItemName, getLocaleText, getModule, getName, getObject, getParentPath, getParents, getPath, getPathId, getPathNames, getPathObject, getSortField, getSortedData, getTargetModule, getTargetPath, hasContentAccess, hasDownloadAccess, hasEditAccess, hasReadAccess, hasUploadAccess, hideLayout, hidePaste, initialEnd, isFile, isFileSystemData, layoutChange, layoutItems, layoutRefresh, menuItemData, methodCall, modelChanged, nodeExpand, objectToString, openAction, openEnd, openInit, openSearchFolder, paste, pasteEnd, pasteHandler, pasteInit, pathChanged, pathColumn, pathDrag, permissionCopy, permissionDownload, permissionEdit, permissionEditContents, permissionRead, permissionUpload, read, readDropPath, refresh, refreshEnd, removeActive, removeBlur, removeDropTarget, removeItemClass, rename, renameEnd, renameEndParent, renameInit, resizeEnd, scrollHandler, search, searchTextChange, searchWordHandler, selectAllInit, selectedData, selectionChanged, setDateObject, setNextPath, setNodeId, showPaste, skipUpload, sortByChange, sortColumn, sortComparer, sortbyClickHandler, splitterResize, treeSelect, updateLayout, updatePath, updateRenamingData, updateSelectionData, updateTreeSelection, upload, uploadItem, validateSubFolder };
12522
12628
  //# sourceMappingURL=ej2-filemanager.es2015.js.map