@syncfusion/ej2-filemanager 19.4.42 → 19.4.50

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 (48) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/ej2-filemanager.umd.min.js +2 -2
  3. package/dist/ej2-filemanager.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-filemanager.es2015.js +83 -18
  5. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  6. package/dist/es6/ej2-filemanager.es5.js +83 -18
  7. package/dist/es6/ej2-filemanager.es5.js.map +1 -1
  8. package/dist/global/ej2-filemanager.min.js +2 -2
  9. package/dist/global/ej2-filemanager.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +15 -16
  12. package/src/file-manager/base/file-manager-model.d.ts +1 -1
  13. package/src/file-manager/base/file-manager.d.ts +2 -0
  14. package/src/file-manager/base/file-manager.js +8 -0
  15. package/src/file-manager/base/interface.d.ts +2 -0
  16. package/src/file-manager/common/utility.js +8 -1
  17. package/src/file-manager/layout/large-icons-view.d.ts +1 -1
  18. package/src/file-manager/layout/navigation-pane.d.ts +5 -0
  19. package/src/file-manager/layout/navigation-pane.js +55 -10
  20. package/src/file-manager/pop-up/context-menu.d.ts +1 -0
  21. package/src/file-manager/pop-up/context-menu.js +12 -7
  22. package/styles/bootstrap-dark.css +4 -0
  23. package/styles/bootstrap.css +4 -0
  24. package/styles/bootstrap4.css +4 -0
  25. package/styles/bootstrap5-dark.css +4 -0
  26. package/styles/bootstrap5.css +4 -0
  27. package/styles/fabric-dark.css +4 -0
  28. package/styles/fabric.css +4 -0
  29. package/styles/file-manager/_layout.scss +6 -0
  30. package/styles/file-manager/bootstrap-dark.css +4 -0
  31. package/styles/file-manager/bootstrap.css +4 -0
  32. package/styles/file-manager/bootstrap4.css +4 -0
  33. package/styles/file-manager/bootstrap5-dark.css +4 -0
  34. package/styles/file-manager/bootstrap5.css +4 -0
  35. package/styles/file-manager/fabric-dark.css +4 -0
  36. package/styles/file-manager/fabric.css +4 -0
  37. package/styles/file-manager/highcontrast-light.css +4 -0
  38. package/styles/file-manager/highcontrast.css +4 -0
  39. package/styles/file-manager/material-dark.css +4 -0
  40. package/styles/file-manager/material.css +4 -0
  41. package/styles/file-manager/tailwind-dark.css +4 -0
  42. package/styles/file-manager/tailwind.css +4 -0
  43. package/styles/highcontrast-light.css +4 -0
  44. package/styles/highcontrast.css +4 -0
  45. package/styles/material-dark.css +4 -0
  46. package/styles/material.css +4 -0
  47. package/styles/tailwind-dark.css +4 -0
  48. package/styles/tailwind.css +4 -0
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 19.4.42
3
+ * version : 19.4.50
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-filemanager@*",
3
- "_id": "@syncfusion/ej2-filemanager@19.4.38",
3
+ "_id": "@syncfusion/ej2-filemanager@19.4.48",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-rJDFRFW8bZ+YAALkJ2EqB9SpF/U+meeTFCim7f35CXLugxZLlGoHpwzHm93PWTbpLjMETYqZFJZ2eWtMW+uR3A==",
5
+ "_integrity": "sha512-X0K/Cjp5QertYxW0u7Pudh6eHENw0RQNcPc2iqwsq4G0jQAIHLvg1JD3vcLb2KeZXLyxbZ/A4nfp3Lp+tdITFg==",
6
6
  "_location": "/@syncfusion/ej2-filemanager",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -25,8 +25,8 @@
25
25
  "/@syncfusion/ej2-richtexteditor",
26
26
  "/@syncfusion/ej2-vue-filemanager"
27
27
  ],
28
- "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-filemanager/-/ej2-filemanager-19.4.38.tgz",
29
- "_shasum": "fbe4cf4e95eba896e82d8ac698135179dd008039",
28
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-filemanager/-/ej2-filemanager-19.4.48.tgz",
29
+ "_shasum": "7418712086c90cb46e9f8bb34fb59c1ef06fa9b3",
30
30
  "_spec": "@syncfusion/ej2-filemanager@*",
31
31
  "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
32
32
  "author": {
@@ -37,17 +37,16 @@
37
37
  },
38
38
  "bundleDependencies": false,
39
39
  "dependencies": {
40
- "@syncfusion/ej2-base": "~19.4.42",
41
- "@syncfusion/ej2-buttons": "~19.4.42",
42
- "@syncfusion/ej2-data": "~19.4.42",
43
- "@syncfusion/ej2-grids": "~19.4.42",
44
- "@syncfusion/ej2-inputs": "~19.4.42",
45
- "@syncfusion/ej2-layouts": "~19.4.38",
46
- "@syncfusion/ej2-lists": "~19.4.38",
47
- "@syncfusion/ej2-navigations": "~19.4.41",
48
- "@syncfusion/ej2-popups": "~19.4.41",
49
- "@syncfusion/ej2-splitbuttons": "~19.4.40",
50
- "selenium-webdriver": "^4.0.0-alpha.1"
40
+ "@syncfusion/ej2-base": "~19.4.48",
41
+ "@syncfusion/ej2-buttons": "~19.4.50",
42
+ "@syncfusion/ej2-data": "~19.4.50",
43
+ "@syncfusion/ej2-grids": "~19.4.50",
44
+ "@syncfusion/ej2-inputs": "~19.4.48",
45
+ "@syncfusion/ej2-layouts": "~19.4.48",
46
+ "@syncfusion/ej2-lists": "~19.4.48",
47
+ "@syncfusion/ej2-navigations": "~19.4.50",
48
+ "@syncfusion/ej2-popups": "~19.4.50",
49
+ "@syncfusion/ej2-splitbuttons": "~19.4.48"
51
50
  },
52
51
  "deprecated": false,
53
52
  "description": "Essential JS 2 FileManager Component",
@@ -68,6 +67,6 @@
68
67
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
69
68
  },
70
69
  "typings": "index.d.ts",
71
- "version": "19.4.42",
70
+ "version": "19.4.50",
72
71
  "sideEffects": false
73
72
  }
@@ -1,4 +1,4 @@
1
- import { Component, EmitType, ModuleDeclaration, isNullOrUndefined, L10n, closest } from '@syncfusion/ej2-base';import { Property, INotifyPropertyChanged, NotifyPropertyChanges, Complex, select } from '@syncfusion/ej2-base';import { createElement, addClass, removeClass, setStyleAttribute as setAttr, getUniqueID } from '@syncfusion/ej2-base';import { isNullOrUndefined as isNOU, formatUnit, Browser, KeyboardEvents, KeyboardEventArgs } from '@syncfusion/ej2-base';import { Event, EventHandler, getValue, setValue } from '@syncfusion/ej2-base';import { Splitter, PanePropertiesModel } from '@syncfusion/ej2-layouts';import { Dialog, createSpinner, hideSpinner, showSpinner, BeforeOpenEventArgs, BeforeCloseEventArgs } from '@syncfusion/ej2-popups';import { createDialog, createExtDialog } from '../pop-up/dialog';import { ToolbarSettings, ToolbarSettingsModel, AjaxSettings, NavigationPaneSettings, DetailsViewSettings } from '../models/index';import { NavigationPaneSettingsModel, DetailsViewSettingsModel } from '../models/index';import { AjaxSettingsModel, SearchSettings, SearchSettingsModel } from '../models/index';import { Toolbar } from '../actions/toolbar';import { DetailsView } from '../layout/details-view';import { LargeIconsView } from '../layout/large-icons-view';import { Uploader, UploadingEventArgs, SelectedEventArgs, FileInfo } from '@syncfusion/ej2-inputs';import { UploadSettingsModel } from '../models/upload-settings-model';import { UploadSettings } from '../models/upload-settings';import * as events from './constant';import * as CLS from './classes';import { read, filter, createFolder } from '../common/operations';import { ITreeView, IContextMenu, ViewType, SortOrder, FileDragEventArgs, RetryArgs, ReadArgs, FileSelectionEventArgs } from './interface';import { BeforeSendEventArgs, SuccessEventArgs, FailureEventArgs, FileLoadEventArgs } from './interface';import { FileOpenEventArgs, FileSelectEventArgs, MenuClickEventArgs, MenuOpenEventArgs } from './interface';import { ToolbarClickEventArgs, ToolbarCreateEventArgs, UploadListCreateArgs } from './interface';import { PopupOpenCloseEventArgs, BeforePopupOpenCloseEventArgs, BeforeDownloadEventArgs, BeforeImageLoadEventArgs } from './interface';import { refresh, getPathObject, getLocaleText, setNextPath, createDeniedDialog, getCssClass } from '../common/utility';import { hasContentAccess, hasUploadAccess, updateLayout, createNewFolder, uploadItem } from '../common/utility';import { TreeView as BaseTreeView } from '@syncfusion/ej2-navigations';import { ContextMenuSettingsModel } from '../models/contextMenu-settings-model';import { ContextMenuSettings } from '../models/contextMenu-settings';import { BreadCrumbBar } from '../actions/breadcrumb-bar';import { ContextMenu } from '../pop-up/context-menu';import { defaultLocale } from '../models/default-locale';import { PositionModel } from '@syncfusion/ej2-base/src/draggable-model';
1
+ import { Component, EmitType, ModuleDeclaration, isNullOrUndefined, L10n, closest } from '@syncfusion/ej2-base';import { Property, INotifyPropertyChanged, NotifyPropertyChanges, Complex, select } from '@syncfusion/ej2-base';import { createElement, addClass, removeClass, setStyleAttribute as setAttr, getUniqueID } from '@syncfusion/ej2-base';import { isNullOrUndefined as isNOU, formatUnit, Browser, KeyboardEvents, KeyboardEventArgs } from '@syncfusion/ej2-base';import { Event, EventHandler, getValue, setValue } from '@syncfusion/ej2-base';import { Splitter, PanePropertiesModel } from '@syncfusion/ej2-layouts';import { Dialog, createSpinner, hideSpinner, showSpinner, BeforeOpenEventArgs, BeforeCloseEventArgs } from '@syncfusion/ej2-popups';import { createDialog, createExtDialog } from '../pop-up/dialog';import { ToolbarSettings, ToolbarSettingsModel, AjaxSettings, NavigationPaneSettings, DetailsViewSettings } from '../models/index';import { NavigationPaneSettingsModel, DetailsViewSettingsModel } from '../models/index';import { AjaxSettingsModel, SearchSettings, SearchSettingsModel } from '../models/index';import { Toolbar } from '../actions/toolbar';import { DetailsView } from '../layout/details-view';import { LargeIconsView } from '../layout/large-icons-view';import { Uploader, UploadingEventArgs, SelectedEventArgs, FileInfo, CancelEventArgs } from '@syncfusion/ej2-inputs';import { UploadSettingsModel } from '../models/upload-settings-model';import { UploadSettings } from '../models/upload-settings';import * as events from './constant';import * as CLS from './classes';import { read, filter, createFolder } from '../common/operations';import { ITreeView, IContextMenu, ViewType, SortOrder, FileDragEventArgs, RetryArgs, ReadArgs, FileSelectionEventArgs } from './interface';import { BeforeSendEventArgs, SuccessEventArgs, FailureEventArgs, FileLoadEventArgs } from './interface';import { FileOpenEventArgs, FileSelectEventArgs, MenuClickEventArgs, MenuOpenEventArgs } from './interface';import { ToolbarClickEventArgs, ToolbarCreateEventArgs, UploadListCreateArgs } from './interface';import { PopupOpenCloseEventArgs, BeforePopupOpenCloseEventArgs, BeforeDownloadEventArgs, BeforeImageLoadEventArgs } from './interface';import { refresh, getPathObject, getLocaleText, setNextPath, createDeniedDialog, getCssClass } from '../common/utility';import { hasContentAccess, hasUploadAccess, updateLayout, createNewFolder, uploadItem } from '../common/utility';import { TreeView as BaseTreeView } from '@syncfusion/ej2-navigations';import { ContextMenuSettingsModel } from '../models/contextMenu-settings-model';import { ContextMenuSettings } from '../models/contextMenu-settings';import { BreadCrumbBar } from '../actions/breadcrumb-bar';import { ContextMenu } from '../pop-up/context-menu';import { defaultLocale } from '../models/default-locale';import { PositionModel } from '@syncfusion/ej2-base/src/draggable-model';
2
2
  import {ComponentModel} from '@syncfusion/ej2-base';
3
3
 
4
4
  /**
@@ -106,6 +106,7 @@ export declare class FileManager extends Component<HTMLElement> implements INoti
106
106
  currentItemText: string;
107
107
  renameText: string;
108
108
  isFiltered: boolean;
109
+ isSortByClicked: boolean;
109
110
  enablePaste: boolean;
110
111
  splitterObj: Splitter;
111
112
  persistData: boolean;
@@ -524,6 +525,7 @@ export declare class FileManager extends Component<HTMLElement> implements INoti
524
525
  private onClose;
525
526
  private onUploading;
526
527
  private onRemoving;
528
+ private onCancel;
527
529
  private onClearing;
528
530
  private onSelected;
529
531
  private onFileUploadSuccess;
@@ -77,6 +77,8 @@ var FileManager = /** @class */ (function (_super) {
77
77
  _this.folderPath = '';
78
78
  _this.isSameAction = false;
79
79
  _this.isFiltered = false;
80
+ // Specifies whether the sort by option is clicked or not.
81
+ _this.isSortByClicked = false;
80
82
  _this.enablePaste = false;
81
83
  _this.persistData = false;
82
84
  _this.retryArgs = [];
@@ -407,6 +409,7 @@ var FileManager = /** @class */ (function (_super) {
407
409
  enableRtl: this.enableRtl,
408
410
  uploading: this.onUploading.bind(this),
409
411
  removing: this.onRemoving.bind(this),
412
+ canceling: this.onCancel.bind(this),
410
413
  clearing: this.onClearing.bind(this),
411
414
  selected: this.onSelected.bind(this),
412
415
  success: this.onUploadSuccess.bind(this),
@@ -514,6 +517,11 @@ var FileManager = /** @class */ (function (_super) {
514
517
  }
515
518
  };
516
519
  /* istanbul ignore next */
520
+ FileManager.prototype.onCancel = function (args) {
521
+ var data = JSON.stringify(getValue(this.pathId[this.pathId.length - 1], this.feParent));
522
+ args.customFormData = [{ 'path': this.path }, { 'action': 'remove' }, { 'data': data }];
523
+ };
524
+ /* istanbul ignore next */
517
525
  FileManager.prototype.onClearing = function () {
518
526
  if (this.isOpened) {
519
527
  this.uploadDialogObj.hide();
@@ -543,6 +543,7 @@ export interface IFileManager extends Component<HTMLElement> {
543
543
  isCut: boolean;
544
544
  filterData: Object;
545
545
  isFiltered: boolean;
546
+ isSortByClicked: boolean;
546
547
  isLayoutChange: boolean;
547
548
  isSearchCut: boolean;
548
549
  isPasteError: boolean;
@@ -601,6 +602,7 @@ export interface ITreeView extends Component<HTMLElement> {
601
602
  duplicateFiles: Function;
602
603
  rootID: string;
603
604
  activeNode: Element;
605
+ openFileOnContextMenuClick: Function;
604
606
  }
605
607
  /** @hidden */
606
608
  export interface IContextMenu extends Component<HTMLElement> {
@@ -267,7 +267,13 @@ export function searchWordHandler(parent, value, isLayoutChange) {
267
267
  }
268
268
  else {
269
269
  if (!parent.isFiltered) {
270
- read(parent, isLayoutChange ? events.layoutChange : events.search, parent.path);
270
+ if (parent.isSortByClicked) {
271
+ parent.notify(events.layoutChange, { files: parent.largeiconsviewModule.items });
272
+ parent.isSortByClicked = false;
273
+ }
274
+ else {
275
+ read(parent, isLayoutChange ? events.layoutChange : events.search, parent.path);
276
+ }
271
277
  }
272
278
  else {
273
279
  filter(parent, events.layoutChange);
@@ -678,6 +684,7 @@ export function getCssClass(parent, css) {
678
684
  */
679
685
  export function sortbyClickHandler(parent, args) {
680
686
  var tick;
687
+ parent.isSortByClicked = true;
681
688
  if (args.item.id.indexOf('ascending') !== -1 || args.item.id.indexOf('descending') !== -1 || args.item.id.indexOf('none') !== -1) {
682
689
  tick = true;
683
690
  }
@@ -13,7 +13,7 @@ export declare class LargeIconsView {
13
13
  private keyConfigs;
14
14
  private isInteraction;
15
15
  private itemList;
16
- private items;
16
+ items: Object[];
17
17
  private clickObj;
18
18
  private perRow;
19
19
  private startItem;
@@ -21,6 +21,9 @@ export declare class NavigationPane {
21
21
  private isRenameParent;
22
22
  private isRightClick;
23
23
  private renameParent;
24
+ private previousSelected;
25
+ private isNodeClickCalled;
26
+ private restrictSelecting;
24
27
  /**
25
28
  * Constructor for the TreeView module
26
29
  *
@@ -38,6 +41,8 @@ export declare class NavigationPane {
38
41
  private getDropPath;
39
42
  private onDrowNode;
40
43
  private addChild;
44
+ private onNodeSelecting;
45
+ openFileOnContextMenuClick(node: HTMLLIElement): void;
41
46
  private onNodeSelected;
42
47
  private onPathDrag;
43
48
  private onNodeExpand;
@@ -29,6 +29,12 @@ var NavigationPane = /** @class */ (function () {
29
29
  this.isRenameParent = false;
30
30
  this.isRightClick = false;
31
31
  this.renameParent = null;
32
+ // Specifies the previously selected nodes in the treeview control.
33
+ this.previousSelected = null;
34
+ // Specifies whether the nodeClicked event of the treeview control is triggered or not.
35
+ this.isNodeClickCalled = false;
36
+ // Specifies whether to restrict node selection in the treeview control.
37
+ this.restrictSelecting = false;
32
38
  this.parent = parent;
33
39
  this.addEventListener();
34
40
  this.keyConfigs = {
@@ -68,6 +74,7 @@ var NavigationPane = /** @class */ (function () {
68
74
  hasChildren: 'hasChild', iconCss: '_fm_icon', htmlAttributes: '_fm_htmlAttr', tooltip: 'name'
69
75
  },
70
76
  enableHtmlSanitizer: this.parent.enableHtmlSanitizer,
77
+ nodeSelecting: this.onNodeSelecting.bind(this),
71
78
  nodeSelected: this.onNodeSelected.bind(this),
72
79
  nodeExpanding: this.onNodeExpand.bind(this),
73
80
  nodeClicked: this.onNodeClicked.bind(this),
@@ -173,6 +180,44 @@ var NavigationPane = /** @class */ (function () {
173
180
  this.treeObj.addNodes(directories, target, null, prevent);
174
181
  }
175
182
  };
183
+ // Node Selecting event handler
184
+ NavigationPane.prototype.onNodeSelecting = function (args) {
185
+ if (!args.isInteracted && !this.isRightClick && !this.isPathDragged && !this.isRenameParent || this.restrictSelecting) {
186
+ this.restrictSelecting = false;
187
+ this.isNodeClickCalled = false;
188
+ return;
189
+ }
190
+ if (!this.renameParent) {
191
+ this.parent.activeModule = 'navigationpane';
192
+ // eslint-disable-next-line
193
+ var nodeData = this.getTreeData(getValue('id', args.nodeData));
194
+ var eventArgs = { cancel: false, fileDetails: nodeData[0], module: 'NavigationPane' };
195
+ this.parent.trigger('fileOpen', eventArgs);
196
+ args.cancel = eventArgs.cancel;
197
+ if (args.cancel) {
198
+ this.restrictSelecting = this.isNodeClickCalled ? this.previousSelected[0] != args.node.getAttribute('data-uid') : false;
199
+ this.treeObj.selectedNodes = this.isNodeClickCalled ? this.previousSelected : this.treeObj.selectedNodes;
200
+ this.previousSelected = this.treeObj.selectedNodes;
201
+ if (!isNOU(this.parent) && !isNOU(this.parent.contextmenuModule)) {
202
+ this.parent.contextmenuModule.contextMenu.enableItems(['Open'], true);
203
+ }
204
+ }
205
+ }
206
+ };
207
+ // Opens the folder while clicking open context menu item in the treeview.
208
+ NavigationPane.prototype.openFileOnContextMenuClick = function (node) {
209
+ var data = this.treeObj.getTreeData(node);
210
+ // eslint-disable-next-line
211
+ this.parent.selectedItems = [];
212
+ this.parent.itemData = data;
213
+ this.activeNode = node;
214
+ this.parent.activeModule = 'navigationpane';
215
+ updatePath(node, this.parent.itemData[0], this.parent);
216
+ read(this.parent, this.isPathDragged ? events.pasteEnd : events.pathChanged, this.parent.path);
217
+ this.parent.visitedItem = node;
218
+ this.isPathDragged = this.isRenameParent = this.isRightClick = false;
219
+ this.treeObj.selectedNodes = [node.getAttribute('data-uid')];
220
+ };
176
221
  NavigationPane.prototype.onNodeSelected = function (args) {
177
222
  if (this.parent.breadcrumbbarModule && this.parent.breadcrumbbarModule.searchObj && !this.renameParent) {
178
223
  this.parent.breadcrumbbarModule.searchObj.element.value = '';
@@ -186,20 +231,18 @@ var NavigationPane = /** @class */ (function () {
186
231
  this.parent.activeModule = 'navigationpane';
187
232
  // eslint-disable-next-line
188
233
  var nodeData = this.getTreeData(getValue('id', args.nodeData));
189
- if (!this.renameParent) {
190
- var eventArgs = { cancel: false, fileDetails: nodeData[0], module: 'NavigationPane' };
191
- delete eventArgs.cancel;
192
- this.parent.trigger('fileOpen', eventArgs);
193
- }
194
234
  this.parent.selectedItems = [];
195
235
  this.parent.itemData = nodeData;
236
+ var previousPath = this.parent.path;
196
237
  updatePath(args.node, this.parent.itemData[0], this.parent);
197
- this.expandNodeTarget = null;
198
- if (args.node.querySelector('.' + CLS.ICONS) && args.node.querySelector('.' + CLS.LIST_ITEM) === null) {
199
- this.expandNodeTarget = 'add';
238
+ if (previousPath !== this.parent.path) {
239
+ this.expandNodeTarget = null;
240
+ if (args.node.querySelector('.' + CLS.ICONS) && args.node.querySelector('.' + CLS.LIST_ITEM) === null) {
241
+ this.expandNodeTarget = 'add';
242
+ }
243
+ read(this.parent, this.isPathDragged ? events.pasteEnd : events.pathChanged, this.parent.path);
244
+ this.parent.visitedItem = args.node;
200
245
  }
201
- read(this.parent, this.isPathDragged ? events.pasteEnd : events.pathChanged, this.parent.path);
202
- this.parent.visitedItem = args.node;
203
246
  this.isPathDragged = this.isRenameParent = this.isRightClick = false;
204
247
  };
205
248
  /* istanbul ignore next */
@@ -232,9 +275,11 @@ var NavigationPane = /** @class */ (function () {
232
275
  };
233
276
  NavigationPane.prototype.onNodeClicked = function (args) {
234
277
  this.parent.activeModule = 'navigationpane';
278
+ this.previousSelected = this.treeObj.selectedNodes;
235
279
  this.activeNode = args.node;
236
280
  if ((args.event.which === 3) && (args.node.getAttribute('data-uid') !== this.treeObj.selectedNodes[0])) {
237
281
  this.isRightClick = true;
282
+ this.isNodeClickCalled = true;
238
283
  this.treeObj.selectedNodes = [args.node.getAttribute('data-uid')];
239
284
  }
240
285
  else if (args.node.getAttribute('data-uid') === this.treeObj.selectedNodes[0] && this.parent.selectedItems.length !== 0) {
@@ -15,6 +15,7 @@ export declare class ContextMenu {
15
15
  private currentItems;
16
16
  private currentElement;
17
17
  private disabledItems;
18
+ private targetNodeElement;
18
19
  menuItemData: object;
19
20
  /**
20
21
  * Constructor for the ContextMenu module
@@ -73,14 +73,11 @@ var ContextMenu = /** @class */ (function () {
73
73
  var data;
74
74
  var treeFolder = false;
75
75
  var target = args.event.target;
76
- this.menuTarget = target;
76
+ this.menuTarget = this.targetNodeElement = target;
77
77
  this.currentElement = args.element;
78
78
  if (target.classList.contains('e-spinner-pane')) {
79
79
  target = this.parent.navigationpaneModule.activeNode.getElementsByClassName(CLS.FULLROW)[0];
80
- this.menuTarget = target;
81
- }
82
- if (target.classList.contains(CLS.FULLROW)) {
83
- this.parent.selectedItems.length = 0;
80
+ this.menuTarget = this.targetNodeElement = target;
84
81
  }
85
82
  this.targetElement = this.parent.view === 'Details' ? closest(target, 'tr.e-row') : target;
86
83
  var view = this.getTargetView(target);
@@ -191,7 +188,7 @@ var ContextMenu = /** @class */ (function () {
191
188
  _this.enableItems(_this.disabledItems, false, true);
192
189
  args.cancel = menuOpenArgs.cancel;
193
190
  if (menuOpenArgs.cancel) {
194
- _this.menuTarget = _this.currentElement = null;
191
+ _this.menuTarget = _this.targetNodeElement = _this.currentElement = null;
195
192
  }
196
193
  });
197
194
  };
@@ -311,7 +308,12 @@ var ContextMenu = /** @class */ (function () {
311
308
  }
312
309
  else {
313
310
  this.parent.notify(events.selectedData, {});
314
- details = this.parent.itemData;
311
+ if (this.parent.activeModule === 'navigationpane' && itemText === 'open') {
312
+ details = [this.menuItemData];
313
+ }
314
+ else {
315
+ details = this.parent.itemData;
316
+ }
315
317
  }
316
318
  var eventArgs = {
317
319
  cancel: false,
@@ -388,6 +390,9 @@ var ContextMenu = /** @class */ (function () {
388
390
  if (_this.parent.visitedItem) {
389
391
  _this.parent.notify(events.openInit, { target: _this.parent.visitedItem });
390
392
  }
393
+ else if (_this.parent.activeModule === 'navigationpane') {
394
+ _this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(_this.targetNodeElement, 'li'));
395
+ }
391
396
  break;
392
397
  case 'details':
393
398
  _this.parent.notify(events.detailsInit, {});
@@ -954,6 +954,10 @@ ejs-filemanager {
954
954
  overflow: hidden;
955
955
  }
956
956
 
957
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
958
+ overflow: auto;
959
+ }
960
+
957
961
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
958
962
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
959
963
  margin: 0 0;
@@ -955,6 +955,10 @@ ejs-filemanager {
955
955
  overflow: hidden;
956
956
  }
957
957
 
958
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
959
+ overflow: auto;
960
+ }
961
+
958
962
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
959
963
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
960
964
  margin: 0 0;
@@ -954,6 +954,10 @@ ejs-filemanager {
954
954
  overflow: hidden;
955
955
  }
956
956
 
957
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
958
+ overflow: auto;
959
+ }
960
+
957
961
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
958
962
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
959
963
  margin: 0 0;
@@ -956,6 +956,10 @@ ejs-filemanager {
956
956
  overflow: hidden;
957
957
  }
958
958
 
959
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
960
+ overflow: auto;
961
+ }
962
+
959
963
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
960
964
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
961
965
  margin: 0 0;
@@ -956,6 +956,10 @@ ejs-filemanager {
956
956
  overflow: hidden;
957
957
  }
958
958
 
959
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
960
+ overflow: auto;
961
+ }
962
+
959
963
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
960
964
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
961
965
  margin: 0 0;
@@ -946,6 +946,10 @@ ejs-filemanager {
946
946
  overflow: hidden;
947
947
  }
948
948
 
949
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
950
+ overflow: auto;
951
+ }
952
+
949
953
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
950
954
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
951
955
  margin: 0 0;
package/styles/fabric.css CHANGED
@@ -947,6 +947,10 @@ ejs-filemanager {
947
947
  overflow: hidden;
948
948
  }
949
949
 
950
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
951
+ overflow: auto;
952
+ }
953
+
950
954
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
951
955
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
952
956
  margin: 0 0;
@@ -962,6 +962,12 @@
962
962
  }
963
963
  }
964
964
 
965
+ &.e-dialog.e-fe-upload-dialog {
966
+ .e-dlg-content {
967
+ overflow: auto;
968
+ }
969
+ }
970
+
965
971
  &.e-contextmenu-wrapper ul .e-menu-item.e-separator,
966
972
  &.e-contextmenu-container ul .e-menu-item.e-separator {
967
973
  margin: $fe-cm-separator-margin;
@@ -954,6 +954,10 @@ ejs-filemanager {
954
954
  overflow: hidden;
955
955
  }
956
956
 
957
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
958
+ overflow: auto;
959
+ }
960
+
957
961
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
958
962
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
959
963
  margin: 0 0;
@@ -955,6 +955,10 @@ ejs-filemanager {
955
955
  overflow: hidden;
956
956
  }
957
957
 
958
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
959
+ overflow: auto;
960
+ }
961
+
958
962
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
959
963
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
960
964
  margin: 0 0;
@@ -954,6 +954,10 @@ ejs-filemanager {
954
954
  overflow: hidden;
955
955
  }
956
956
 
957
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
958
+ overflow: auto;
959
+ }
960
+
957
961
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
958
962
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
959
963
  margin: 0 0;
@@ -956,6 +956,10 @@ ejs-filemanager {
956
956
  overflow: hidden;
957
957
  }
958
958
 
959
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
960
+ overflow: auto;
961
+ }
962
+
959
963
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
960
964
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
961
965
  margin: 0 0;
@@ -956,6 +956,10 @@ ejs-filemanager {
956
956
  overflow: hidden;
957
957
  }
958
958
 
959
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
960
+ overflow: auto;
961
+ }
962
+
959
963
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
960
964
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
961
965
  margin: 0 0;
@@ -946,6 +946,10 @@ ejs-filemanager {
946
946
  overflow: hidden;
947
947
  }
948
948
 
949
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
950
+ overflow: auto;
951
+ }
952
+
949
953
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
950
954
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
951
955
  margin: 0 0;
@@ -947,6 +947,10 @@ ejs-filemanager {
947
947
  overflow: hidden;
948
948
  }
949
949
 
950
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
951
+ overflow: auto;
952
+ }
953
+
950
954
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
951
955
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
952
956
  margin: 0 0;
@@ -952,6 +952,10 @@ ejs-filemanager {
952
952
  overflow: hidden;
953
953
  }
954
954
 
955
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
956
+ overflow: auto;
957
+ }
958
+
955
959
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
956
960
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
957
961
  margin: 0 0;
@@ -947,6 +947,10 @@ ejs-filemanager {
947
947
  overflow: hidden;
948
948
  }
949
949
 
950
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
951
+ overflow: auto;
952
+ }
953
+
950
954
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
951
955
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
952
956
  margin: 0 0;
@@ -974,6 +974,10 @@ ejs-filemanager {
974
974
  overflow: hidden;
975
975
  }
976
976
 
977
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
978
+ overflow: auto;
979
+ }
980
+
977
981
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
978
982
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
979
983
  margin: 0 0;
@@ -983,6 +983,10 @@ ejs-filemanager {
983
983
  overflow: hidden;
984
984
  }
985
985
 
986
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
987
+ overflow: auto;
988
+ }
989
+
986
990
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
987
991
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
988
992
  margin: 0 0;
@@ -964,6 +964,10 @@ ejs-filemanager {
964
964
  overflow: hidden;
965
965
  }
966
966
 
967
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
968
+ overflow: auto;
969
+ }
970
+
967
971
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
968
972
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
969
973
  margin: 0 0;
@@ -964,6 +964,10 @@ ejs-filemanager {
964
964
  overflow: hidden;
965
965
  }
966
966
 
967
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
968
+ overflow: auto;
969
+ }
970
+
967
971
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
968
972
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
969
973
  margin: 0 0;
@@ -952,6 +952,10 @@ ejs-filemanager {
952
952
  overflow: hidden;
953
953
  }
954
954
 
955
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
956
+ overflow: auto;
957
+ }
958
+
955
959
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
956
960
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
957
961
  margin: 0 0;
@@ -947,6 +947,10 @@ ejs-filemanager {
947
947
  overflow: hidden;
948
948
  }
949
949
 
950
+ .e-fe-popup.e-dialog.e-fe-upload-dialog .e-dlg-content {
951
+ overflow: auto;
952
+ }
953
+
950
954
  .e-fe-popup.e-contextmenu-wrapper ul .e-menu-item.e-separator,
951
955
  .e-fe-popup.e-contextmenu-container ul .e-menu-item.e-separator {
952
956
  margin: 0 0;