@syncfusion/ej2-filemanager 19.3.55 → 19.4.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -3
- package/README.md +1 -1
- package/dist/ej2-filemanager.umd.min.js +2 -2
- package/dist/ej2-filemanager.umd.min.js.map +1 -1
- package/dist/es6/ej2-filemanager.es2015.js +80 -18
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +80 -18
- package/dist/es6/ej2-filemanager.es5.js.map +1 -1
- package/dist/global/ej2-filemanager.min.js +2 -2
- package/dist/global/ej2-filemanager.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +15 -15
- package/src/file-manager/actions/breadcrumb-bar.js +1 -1
- package/src/file-manager/base/file-manager-model.d.ts +1 -1
- package/src/file-manager/base/file-manager.d.ts +1 -0
- package/src/file-manager/base/file-manager.js +6 -1
- package/src/file-manager/base/interface.d.ts +2 -0
- package/src/file-manager/common/utility.js +9 -2
- package/src/file-manager/layout/large-icons-view.d.ts +1 -1
- package/src/file-manager/layout/navigation-pane.d.ts +5 -0
- package/src/file-manager/layout/navigation-pane.js +47 -5
- package/src/file-manager/models/search-settings-model.d.ts +8 -0
- package/src/file-manager/models/search-settings.d.ts +7 -0
- package/src/file-manager/models/search-settings.js +3 -0
- package/src/file-manager/pop-up/context-menu.d.ts +1 -0
- package/src/file-manager/pop-up/context-menu.js +14 -9
- package/styles/bootstrap-dark.css +2 -2
- package/styles/bootstrap.css +1 -1
- package/styles/bootstrap4.css +2 -2
- package/styles/bootstrap5-dark.css +8 -3
- package/styles/bootstrap5.css +8 -3
- package/styles/fabric-dark.css +3 -3
- package/styles/fabric.css +4 -4
- package/styles/file-manager/_bootstrap-dark-definition.scss +1 -1
- package/styles/file-manager/_bootstrap-definition.scss +1 -1
- package/styles/file-manager/_bootstrap4-definition.scss +1 -1
- package/styles/file-manager/_fabric-dark-definition.scss +2 -2
- package/styles/file-manager/_fabric-definition.scss +3 -3
- package/styles/file-manager/_fluent-definition.scss +245 -0
- package/styles/file-manager/_layout.scss +29 -5
- package/styles/file-manager/_material-definition.scss +1 -1
- package/styles/file-manager/_tailwind-definition.scss +2 -2
- package/styles/file-manager/bootstrap-dark.css +2 -2
- package/styles/file-manager/bootstrap.css +1 -1
- package/styles/file-manager/bootstrap4.css +2 -2
- package/styles/file-manager/bootstrap5-dark.css +8 -3
- package/styles/file-manager/bootstrap5.css +8 -3
- package/styles/file-manager/fabric-dark.css +3 -3
- package/styles/file-manager/fabric.css +4 -4
- package/styles/file-manager/icons/_fluent.scss +235 -0
- package/styles/file-manager/material-dark.css +6 -0
- package/styles/file-manager/material.css +7 -1
- package/styles/file-manager/tailwind-dark.css +4 -4
- package/styles/file-manager/tailwind.css +4 -4
- package/styles/material-dark.css +6 -0
- package/styles/material.css +7 -1
- package/styles/tailwind-dark.css +4 -4
- package/styles/tailwind.css +4 -4
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Ajax, Browser, ChildProperty, Complex, Component, Draggable, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, Touch, addClass, closest, createElement, detach, extend, formatUnit, getValue, isNullOrUndefined, isVisible, matches, remove, removeClass, select, selectAll, setStyleAttribute, setValue } from '@syncfusion/ej2-base';
|
1
|
+
import { Ajax, Browser, ChildProperty, Complex, Component, Draggable, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, Touch, addClass, closest, createElement, detach, extend, formatUnit, getUniqueID, getValue, isNullOrUndefined, isVisible, matches, remove, removeClass, select, selectAll, setStyleAttribute, setValue } from '@syncfusion/ej2-base';
|
2
2
|
import { Splitter } from '@syncfusion/ej2-layouts';
|
3
3
|
import { Dialog, createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';
|
4
4
|
import { DataManager, Query } from '@syncfusion/ej2-data';
|
@@ -73,6 +73,9 @@ __decorate$2([
|
|
73
73
|
__decorate$2([
|
74
74
|
Property(true)
|
75
75
|
], SearchSettings.prototype, "ignoreCase", void 0);
|
76
|
+
__decorate$2([
|
77
|
+
Property(null)
|
78
|
+
], SearchSettings.prototype, "placeholder", void 0);
|
76
79
|
|
77
80
|
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
78
81
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
@@ -872,7 +875,13 @@ function searchWordHandler(parent, value, isLayoutChange) {
|
|
872
875
|
}
|
873
876
|
else {
|
874
877
|
if (!parent.isFiltered) {
|
875
|
-
|
878
|
+
if (parent.isSortByClicked) {
|
879
|
+
parent.notify(layoutChange, { files: parent.largeiconsviewModule.items });
|
880
|
+
parent.isSortByClicked = false;
|
881
|
+
}
|
882
|
+
else {
|
883
|
+
read(parent, isLayoutChange ? layoutChange : search, parent.path);
|
884
|
+
}
|
876
885
|
}
|
877
886
|
else {
|
878
887
|
filter(parent, layoutChange);
|
@@ -1053,7 +1062,7 @@ function fileType(file) {
|
|
1053
1062
|
function getImageUrl(parent, item) {
|
1054
1063
|
const baseUrl = parent.ajaxSettings.getImageUrl ? parent.ajaxSettings.getImageUrl : parent.ajaxSettings.url;
|
1055
1064
|
let imgUrl;
|
1056
|
-
const fileName = getValue('name', item);
|
1065
|
+
const fileName = encodeURIComponent(getValue('name', item));
|
1057
1066
|
const fPath = getValue('filterPath', item);
|
1058
1067
|
if (parent.hasId) {
|
1059
1068
|
const imgId = getValue('id', item);
|
@@ -1283,6 +1292,7 @@ function getCssClass(parent, css) {
|
|
1283
1292
|
*/
|
1284
1293
|
function sortbyClickHandler(parent, args) {
|
1285
1294
|
let tick;
|
1295
|
+
parent.isSortByClicked = true;
|
1286
1296
|
if (args.item.id.indexOf('ascending') !== -1 || args.item.id.indexOf('descending') !== -1 || args.item.id.indexOf('none') !== -1) {
|
1287
1297
|
tick = true;
|
1288
1298
|
}
|
@@ -5630,7 +5640,7 @@ class BreadCrumbBar {
|
|
5630
5640
|
}
|
5631
5641
|
}
|
5632
5642
|
onSearchTextChange(args) {
|
5633
|
-
this.searchObj.element.placeholder = getLocaleText(this.parent, 'Search') + ' ' + args.cwd.name;
|
5643
|
+
this.searchObj.element.placeholder = (this.parent.searchSettings.placeholder != null) ? this.parent.searchSettings.placeholder : getLocaleText(this.parent, 'Search') + ' ' + args.cwd.name;
|
5634
5644
|
}
|
5635
5645
|
}
|
5636
5646
|
|
@@ -5698,16 +5708,13 @@ class ContextMenu$2 {
|
|
5698
5708
|
let data;
|
5699
5709
|
let treeFolder = false;
|
5700
5710
|
let target = args.event.target;
|
5701
|
-
this.menuTarget = target;
|
5711
|
+
this.menuTarget = this.targetNodeElement = target;
|
5702
5712
|
this.currentElement = args.element;
|
5703
5713
|
if (target.classList.contains('e-spinner-pane')) {
|
5704
5714
|
target = this.parent.navigationpaneModule.activeNode.getElementsByClassName(FULLROW)[0];
|
5705
|
-
this.menuTarget = target;
|
5715
|
+
this.menuTarget = this.targetNodeElement = target;
|
5706
5716
|
}
|
5707
|
-
|
5708
|
-
this.parent.selectedItems.length = 0;
|
5709
|
-
}
|
5710
|
-
this.targetElement = this.parent.view === 'Details' ? closest(target, 'tr') : target;
|
5717
|
+
this.targetElement = this.parent.view === 'Details' ? closest(target, 'tr.e-row') : target;
|
5711
5718
|
const view = this.getTargetView(target);
|
5712
5719
|
this.updateActiveModule();
|
5713
5720
|
/* istanbul ignore next */
|
@@ -5739,7 +5746,7 @@ class ContextMenu$2 {
|
|
5739
5746
|
data = this.parent.visitedData;
|
5740
5747
|
selected = true;
|
5741
5748
|
}
|
5742
|
-
else if (!isNullOrUndefined(closest(target, 'tr'))) {
|
5749
|
+
else if (!isNullOrUndefined(closest(target, 'tr.e-row'))) {
|
5743
5750
|
uid = this.targetElement.getAttribute('data-uid');
|
5744
5751
|
// eslint-disable-next-line
|
5745
5752
|
data = this.parent.detailsviewModule.gridObj.getRowObjectFromUID(uid).data;
|
@@ -5816,7 +5823,7 @@ class ContextMenu$2 {
|
|
5816
5823
|
this.enableItems(this.disabledItems, false, true);
|
5817
5824
|
args.cancel = menuOpenArgs.cancel;
|
5818
5825
|
if (menuOpenArgs.cancel) {
|
5819
|
-
this.menuTarget = this.currentElement = null;
|
5826
|
+
this.menuTarget = this.targetNodeElement = this.currentElement = null;
|
5820
5827
|
}
|
5821
5828
|
});
|
5822
5829
|
}
|
@@ -5935,7 +5942,12 @@ class ContextMenu$2 {
|
|
5935
5942
|
}
|
5936
5943
|
else {
|
5937
5944
|
this.parent.notify(selectedData, {});
|
5938
|
-
|
5945
|
+
if (this.parent.activeModule === 'navigationpane' && itemText === 'open') {
|
5946
|
+
details = [this.menuItemData];
|
5947
|
+
}
|
5948
|
+
else {
|
5949
|
+
details = this.parent.itemData;
|
5950
|
+
}
|
5939
5951
|
}
|
5940
5952
|
const eventArgs = {
|
5941
5953
|
cancel: false,
|
@@ -6012,6 +6024,9 @@ class ContextMenu$2 {
|
|
6012
6024
|
if (this.parent.visitedItem) {
|
6013
6025
|
this.parent.notify(openInit, { target: this.parent.visitedItem });
|
6014
6026
|
}
|
6027
|
+
else if (this.parent.activeModule === 'navigationpane') {
|
6028
|
+
this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(this.targetNodeElement, 'li'));
|
6029
|
+
}
|
6015
6030
|
break;
|
6016
6031
|
case 'details':
|
6017
6032
|
this.parent.notify(detailsInit, {});
|
@@ -6369,6 +6384,8 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
6369
6384
|
this.folderPath = '';
|
6370
6385
|
this.isSameAction = false;
|
6371
6386
|
this.isFiltered = false;
|
6387
|
+
// Specifies whether the sort by option is clicked or not.
|
6388
|
+
this.isSortByClicked = false;
|
6372
6389
|
this.enablePaste = false;
|
6373
6390
|
this.persistData = false;
|
6374
6391
|
this.retryArgs = [];
|
@@ -6410,6 +6427,9 @@ let FileManager = FileManager_1 = class FileManager extends Component {
|
|
6410
6427
|
* @returns {void}
|
6411
6428
|
*/
|
6412
6429
|
preRender() {
|
6430
|
+
if (isNullOrUndefined(this.element.id) || this.element.id === '') {
|
6431
|
+
this.element.setAttribute('id', getUniqueID('filemanager'));
|
6432
|
+
}
|
6413
6433
|
this.ensurePath();
|
6414
6434
|
this.feParent = [];
|
6415
6435
|
this.feFiles = [];
|
@@ -8045,6 +8065,12 @@ class NavigationPane {
|
|
8045
8065
|
this.isRenameParent = false;
|
8046
8066
|
this.isRightClick = false;
|
8047
8067
|
this.renameParent = null;
|
8068
|
+
// Specifies the previously selected nodes in the treeview control.
|
8069
|
+
this.previousSelected = null;
|
8070
|
+
// Specifies whether the nodeClicked event of the treeview control is triggered or not.
|
8071
|
+
this.isNodeClickCalled = false;
|
8072
|
+
// Specifies whether to restrict node selection in the treeview control.
|
8073
|
+
this.restrictSelecting = false;
|
8048
8074
|
this.parent = parent;
|
8049
8075
|
this.addEventListener();
|
8050
8076
|
this.keyConfigs = {
|
@@ -8084,6 +8110,7 @@ class NavigationPane {
|
|
8084
8110
|
hasChildren: 'hasChild', iconCss: '_fm_icon', htmlAttributes: '_fm_htmlAttr', tooltip: 'name'
|
8085
8111
|
},
|
8086
8112
|
enableHtmlSanitizer: this.parent.enableHtmlSanitizer,
|
8113
|
+
nodeSelecting: this.onNodeSelecting.bind(this),
|
8087
8114
|
nodeSelected: this.onNodeSelected.bind(this),
|
8088
8115
|
nodeExpanding: this.onNodeExpand.bind(this),
|
8089
8116
|
nodeClicked: this.onNodeClicked.bind(this),
|
@@ -8188,6 +8215,44 @@ class NavigationPane {
|
|
8188
8215
|
this.treeObj.addNodes(directories, target, null, prevent);
|
8189
8216
|
}
|
8190
8217
|
}
|
8218
|
+
// Node Selecting event handler
|
8219
|
+
onNodeSelecting(args) {
|
8220
|
+
if (!args.isInteracted && !this.isRightClick && !this.isPathDragged && !this.isRenameParent || this.restrictSelecting) {
|
8221
|
+
this.restrictSelecting = false;
|
8222
|
+
this.isNodeClickCalled = false;
|
8223
|
+
return;
|
8224
|
+
}
|
8225
|
+
if (!this.renameParent) {
|
8226
|
+
this.parent.activeModule = 'navigationpane';
|
8227
|
+
// eslint-disable-next-line
|
8228
|
+
const nodeData = this.getTreeData(getValue('id', args.nodeData));
|
8229
|
+
const eventArgs = { cancel: false, fileDetails: nodeData[0], module: 'NavigationPane' };
|
8230
|
+
this.parent.trigger('fileOpen', eventArgs);
|
8231
|
+
args.cancel = eventArgs.cancel;
|
8232
|
+
if (args.cancel) {
|
8233
|
+
this.restrictSelecting = this.isNodeClickCalled ? this.previousSelected[0] != args.node.getAttribute('data-uid') : false;
|
8234
|
+
this.treeObj.selectedNodes = this.isNodeClickCalled ? this.previousSelected : this.treeObj.selectedNodes;
|
8235
|
+
this.previousSelected = this.treeObj.selectedNodes;
|
8236
|
+
if (!isNullOrUndefined(this.parent) && !isNullOrUndefined(this.parent.contextmenuModule)) {
|
8237
|
+
this.parent.contextmenuModule.contextMenu.enableItems(['Open'], true);
|
8238
|
+
}
|
8239
|
+
}
|
8240
|
+
}
|
8241
|
+
}
|
8242
|
+
// Opens the folder while clicking open context menu item in the treeview.
|
8243
|
+
openFileOnContextMenuClick(node) {
|
8244
|
+
const data = this.treeObj.getTreeData(node);
|
8245
|
+
// eslint-disable-next-line
|
8246
|
+
this.parent.selectedItems = [];
|
8247
|
+
this.parent.itemData = data;
|
8248
|
+
this.activeNode = node;
|
8249
|
+
this.parent.activeModule = 'navigationpane';
|
8250
|
+
updatePath(node, this.parent.itemData[0], this.parent);
|
8251
|
+
read(this.parent, this.isPathDragged ? pasteEnd : pathChanged, this.parent.path);
|
8252
|
+
this.parent.visitedItem = node;
|
8253
|
+
this.isPathDragged = this.isRenameParent = this.isRightClick = false;
|
8254
|
+
this.treeObj.selectedNodes = [node.getAttribute('data-uid')];
|
8255
|
+
}
|
8191
8256
|
onNodeSelected(args) {
|
8192
8257
|
if (this.parent.breadcrumbbarModule && this.parent.breadcrumbbarModule.searchObj && !this.renameParent) {
|
8193
8258
|
this.parent.breadcrumbbarModule.searchObj.element.value = '';
|
@@ -8201,11 +8266,6 @@ class NavigationPane {
|
|
8201
8266
|
this.parent.activeModule = 'navigationpane';
|
8202
8267
|
// eslint-disable-next-line
|
8203
8268
|
const nodeData = this.getTreeData(getValue('id', args.nodeData));
|
8204
|
-
if (!this.renameParent) {
|
8205
|
-
const eventArgs = { cancel: false, fileDetails: nodeData[0], module: 'NavigationPane' };
|
8206
|
-
delete eventArgs.cancel;
|
8207
|
-
this.parent.trigger('fileOpen', eventArgs);
|
8208
|
-
}
|
8209
8269
|
this.parent.selectedItems = [];
|
8210
8270
|
this.parent.itemData = nodeData;
|
8211
8271
|
updatePath(args.node, this.parent.itemData[0], this.parent);
|
@@ -8247,9 +8307,11 @@ class NavigationPane {
|
|
8247
8307
|
}
|
8248
8308
|
onNodeClicked(args) {
|
8249
8309
|
this.parent.activeModule = 'navigationpane';
|
8310
|
+
this.previousSelected = this.treeObj.selectedNodes;
|
8250
8311
|
this.activeNode = args.node;
|
8251
8312
|
if ((args.event.which === 3) && (args.node.getAttribute('data-uid') !== this.treeObj.selectedNodes[0])) {
|
8252
8313
|
this.isRightClick = true;
|
8314
|
+
this.isNodeClickCalled = true;
|
8253
8315
|
this.treeObj.selectedNodes = [args.node.getAttribute('data-uid')];
|
8254
8316
|
}
|
8255
8317
|
else if (args.node.getAttribute('data-uid') === this.treeObj.selectedNodes[0] && this.parent.selectedItems.length !== 0) {
|