@syncfusion/ej2-filemanager 20.1.47 → 20.1.52-10459
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/.eslintrc.json +20 -3
- package/README.md +54 -43
- package/dist/ej2-filemanager.min.js +1 -0
- package/dist/ej2-filemanager.umd.min.js +1 -10
- package/dist/ej2-filemanager.umd.min.js.map +1 -1
- package/dist/es6/ej2-filemanager.es2015.js +2353 -659
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +2422 -709
- package/dist/es6/ej2-filemanager.es5.js.map +1 -1
- package/dist/global/ej2-filemanager.min.js +1 -10
- package/dist/global/ej2-filemanager.min.js.map +1 -1
- package/dist/global/index.d.ts +0 -9
- package/helpers/e2e/filemanagerHelper.js +183 -166
- package/package.json +71 -71
- package/src/file-manager/actions/breadcrumb-bar.js +1 -5
- package/src/file-manager/actions/index.d.ts +1 -0
- package/src/file-manager/actions/index.js +1 -0
- package/src/file-manager/actions/toolbar.d.ts +1 -0
- package/src/file-manager/actions/toolbar.js +129 -17
- package/src/file-manager/actions/virtualization.d.ts +93 -0
- package/src/file-manager/actions/virtualization.js +279 -0
- package/src/file-manager/base/file-manager-model.d.ts +154 -28
- package/src/file-manager/base/file-manager.d.ts +176 -27
- package/src/file-manager/base/file-manager.js +244 -28
- package/src/file-manager/base/interface.d.ts +329 -3
- package/src/file-manager/base/interface.js +0 -1
- package/src/file-manager/common/operations.d.ts +7 -0
- package/src/file-manager/common/operations.js +830 -185
- package/src/file-manager/common/utility.d.ts +46 -3
- package/src/file-manager/common/utility.js +249 -73
- package/src/file-manager/index.d.ts +1 -0
- package/src/file-manager/index.js +1 -0
- package/src/file-manager/layout/details-view.d.ts +10 -0
- package/src/file-manager/layout/details-view.js +203 -94
- package/src/file-manager/layout/large-icons-view.d.ts +4 -2
- package/src/file-manager/layout/large-icons-view.js +122 -73
- package/src/file-manager/layout/navigation-pane.d.ts +2 -0
- package/src/file-manager/layout/navigation-pane.js +97 -73
- package/src/file-manager/models/column-model.d.ts +23 -5
- package/src/file-manager/models/column.d.ts +21 -2
- package/src/file-manager/models/column.js +6 -0
- package/src/file-manager/models/default-locale.js +0 -1
- package/src/file-manager/models/details-view-settings-model.d.ts +1 -1
- package/src/file-manager/models/details-view-settings.js +8 -3
- package/src/file-manager/models/search-settings.d.ts +5 -0
- package/src/file-manager/models/toolbar-settings-model.d.ts +177 -2
- package/src/file-manager/models/toolbar-settings.d.ts +157 -2
- package/src/file-manager/models/toolbar-settings.js +64 -2
- package/src/file-manager/models/upload-settings-model.d.ts +13 -0
- package/src/file-manager/models/upload-settings.d.ts +12 -0
- package/src/file-manager/models/upload-settings.js +3 -0
- package/src/file-manager/pop-up/context-menu.d.ts +2 -1
- package/src/file-manager/pop-up/context-menu.js +111 -36
- package/src/file-manager/pop-up/dialog.d.ts +1 -2
- package/src/file-manager/pop-up/dialog.js +19 -40
- package/src/global.js +1 -1
- package/styles/bootstrap-dark-lite.css +1058 -0
- package/styles/bootstrap-dark-lite.scss +16 -0
- package/styles/bootstrap-dark.css +371 -665
- package/styles/bootstrap-dark.scss +17 -1
- package/styles/bootstrap-lite.css +1040 -0
- package/styles/bootstrap-lite.scss +16 -0
- package/styles/bootstrap.css +353 -644
- package/styles/bootstrap.scss +17 -1
- package/styles/bootstrap4-lite.css +1068 -0
- package/styles/bootstrap4-lite.scss +16 -0
- package/styles/bootstrap4.css +381 -680
- package/styles/bootstrap4.scss +17 -1
- package/styles/bootstrap5-dark-lite.css +1078 -0
- package/styles/bootstrap5-dark-lite.scss +16 -0
- package/styles/bootstrap5-dark.css +376 -694
- package/styles/bootstrap5-dark.scss +17 -1
- package/styles/bootstrap5-lite.css +1078 -0
- package/styles/bootstrap5-lite.scss +16 -0
- package/styles/bootstrap5.3-lite.css +1035 -0
- package/styles/bootstrap5.3-lite.scss +16 -0
- package/styles/bootstrap5.3.css +1603 -0
- package/styles/bootstrap5.3.scss +17 -0
- package/styles/bootstrap5.css +376 -694
- package/styles/bootstrap5.scss +17 -1
- package/styles/fabric-dark-lite.css +1039 -0
- package/styles/fabric-dark-lite.scss +16 -0
- package/styles/fabric-dark.css +358 -642
- package/styles/fabric-dark.scss +17 -1
- package/styles/fabric-lite.css +1039 -0
- package/styles/fabric-lite.scss +16 -0
- package/styles/fabric.css +357 -641
- package/styles/fabric.scss +17 -1
- package/styles/file-manager/_all.scss +1 -1
- package/styles/file-manager/_bds-definition.scss +236 -0
- package/styles/file-manager/_bigger.scss +758 -0
- package/styles/file-manager/_bootstrap-dark-definition.scss +6 -2
- package/styles/file-manager/_bootstrap-definition.scss +6 -2
- package/styles/file-manager/_bootstrap4-definition.scss +6 -2
- package/styles/file-manager/_bootstrap5-definition.scss +20 -15
- package/styles/file-manager/_bootstrap5.3-definition.scss +242 -0
- package/styles/file-manager/_fabric-dark-definition.scss +6 -2
- package/styles/file-manager/_fabric-definition.scss +6 -2
- package/styles/file-manager/_fluent-definition.scss +20 -16
- package/styles/file-manager/_fluent2-definition.scss +255 -0
- package/styles/file-manager/_fusionnew-definition.scss +241 -0
- package/styles/file-manager/_highcontrast-definition.scss +6 -2
- package/styles/file-manager/_highcontrast-light-definition.scss +6 -2
- package/styles/file-manager/_layout.scss +367 -921
- package/styles/file-manager/_material-dark-definition.scss +7 -2
- package/styles/file-manager/_material-definition.scss +7 -2
- package/styles/file-manager/_material3-dark-definition.scss +1 -0
- package/styles/file-manager/_material3-definition.scss +235 -0
- package/styles/file-manager/_tailwind-definition.scss +20 -16
- package/styles/file-manager/_theme.scss +126 -102
- package/styles/file-manager/bootstrap-dark.css +371 -665
- package/styles/file-manager/bootstrap-dark.scss +2 -1
- package/styles/file-manager/bootstrap.css +353 -644
- package/styles/file-manager/bootstrap.scss +2 -1
- package/styles/file-manager/bootstrap4.css +381 -680
- package/styles/file-manager/bootstrap4.scss +2 -1
- package/styles/file-manager/bootstrap5-dark.css +376 -694
- package/styles/file-manager/bootstrap5-dark.scss +2 -1
- package/styles/file-manager/bootstrap5.3.css +1603 -0
- package/styles/file-manager/bootstrap5.3.scss +17 -0
- package/styles/file-manager/bootstrap5.css +376 -694
- package/styles/file-manager/bootstrap5.scss +2 -1
- package/styles/file-manager/fabric-dark.css +358 -642
- package/styles/file-manager/fabric-dark.scss +2 -1
- package/styles/file-manager/fabric.css +357 -641
- package/styles/file-manager/fabric.scss +2 -1
- package/styles/file-manager/fluent-dark.css +359 -641
- package/styles/file-manager/fluent-dark.scss +2 -1
- package/styles/file-manager/fluent.css +358 -641
- package/styles/file-manager/fluent.scss +2 -1
- package/styles/file-manager/fluent2.css +1886 -0
- package/styles/file-manager/fluent2.scss +17 -0
- package/styles/file-manager/highcontrast-light.css +354 -644
- package/styles/file-manager/highcontrast-light.scss +2 -1
- package/styles/file-manager/highcontrast.css +377 -647
- package/styles/file-manager/highcontrast.scss +2 -1
- package/styles/file-manager/icons/_bds.scss +235 -0
- package/styles/file-manager/icons/_bootstrap.scss +0 -1
- package/styles/file-manager/icons/_bootstrap4.scss +0 -1
- package/styles/file-manager/icons/_bootstrap5.3.scss +235 -0
- package/styles/file-manager/icons/_fabric-dark.scss +0 -1
- package/styles/file-manager/icons/_fabric.scss +0 -1
- package/styles/file-manager/icons/_fluent2.scss +235 -0
- package/styles/file-manager/icons/_fusionnew.scss +235 -0
- package/styles/file-manager/icons/_material3-dark.scss +1 -0
- package/styles/file-manager/icons/_material3.scss +235 -0
- package/styles/file-manager/material-dark.css +392 -671
- package/styles/file-manager/material-dark.scss +2 -1
- package/styles/file-manager/material.css +391 -654
- package/styles/file-manager/material.scss +2 -1
- package/styles/file-manager/material3-dark.css +1633 -0
- package/styles/file-manager/material3-dark.scss +18 -0
- package/styles/file-manager/material3.css +1635 -0
- package/styles/file-manager/material3.scss +18 -0
- package/styles/file-manager/tailwind-dark.css +347 -664
- package/styles/file-manager/tailwind-dark.scss +2 -1
- package/styles/file-manager/tailwind.css +347 -664
- package/styles/file-manager/tailwind.scss +2 -1
- package/styles/fluent-dark-lite.css +1037 -0
- package/styles/fluent-dark-lite.scss +16 -0
- package/styles/fluent-dark.css +359 -641
- package/styles/fluent-dark.scss +17 -1
- package/styles/fluent-lite.css +1036 -0
- package/styles/fluent-lite.scss +16 -0
- package/styles/fluent.css +358 -641
- package/styles/fluent.scss +17 -1
- package/styles/fluent2-lite.css +1272 -0
- package/styles/fluent2-lite.scss +16 -0
- package/styles/fluent2.css +1886 -0
- package/styles/fluent2.scss +17 -0
- package/styles/highcontrast-light-lite.css +1039 -0
- package/styles/highcontrast-light-lite.scss +16 -0
- package/styles/highcontrast-light.css +354 -644
- package/styles/highcontrast-light.scss +17 -1
- package/styles/highcontrast-lite.css +1059 -0
- package/styles/highcontrast-lite.scss +16 -0
- package/styles/highcontrast.css +377 -647
- package/styles/highcontrast.scss +17 -1
- package/styles/material-dark-lite.css +1092 -0
- package/styles/material-dark-lite.scss +16 -0
- package/styles/material-dark.css +392 -671
- package/styles/material-dark.scss +17 -1
- package/styles/material-lite.css +1097 -0
- package/styles/material-lite.scss +16 -0
- package/styles/material.css +391 -654
- package/styles/material.scss +17 -1
- package/styles/material3-dark-lite.css +1090 -0
- package/styles/material3-dark-lite.scss +16 -0
- package/styles/material3-dark.css +1633 -0
- package/styles/material3-dark.scss +19 -0
- package/styles/material3-lite.css +1092 -0
- package/styles/material3-lite.scss +16 -0
- package/styles/material3.css +1635 -0
- package/styles/material3.scss +19 -0
- package/styles/tailwind-dark-lite.css +1060 -0
- package/styles/tailwind-dark-lite.scss +16 -0
- package/styles/tailwind-dark.css +347 -664
- package/styles/tailwind-dark.scss +17 -1
- package/styles/tailwind-lite.css +1060 -0
- package/styles/tailwind-lite.scss +16 -0
- package/styles/tailwind.css +347 -664
- package/styles/tailwind.scss +17 -1
- package/CHANGELOG.md +0 -404
@@ -19,6 +19,7 @@ var ContextMenu = /** @class */ (function () {
|
|
19
19
|
* @hidden
|
20
20
|
*/
|
21
21
|
function ContextMenu(parent) {
|
22
|
+
this.isMenuItemClicked = false;
|
22
23
|
this.currentItems = [];
|
23
24
|
this.currentElement = null;
|
24
25
|
this.disabledItems = [];
|
@@ -60,16 +61,46 @@ var ContextMenu = /** @class */ (function () {
|
|
60
61
|
iconSpan.setAttribute('class', CLS.ICON_GRID + ' ' + CLS.MENU_ICON);
|
61
62
|
}
|
62
63
|
};
|
63
|
-
ContextMenu.prototype.onBeforeClose = function () {
|
64
|
+
ContextMenu.prototype.onBeforeClose = function (args) {
|
65
|
+
var eventArgs = {
|
66
|
+
cancel: false,
|
67
|
+
element: args.element,
|
68
|
+
event: args.event,
|
69
|
+
isFocused: args.isFocused,
|
70
|
+
fileDetails: [this.menuItemData],
|
71
|
+
items: args.items,
|
72
|
+
parentItem: args.parentItem,
|
73
|
+
menuType: this.menuType
|
74
|
+
};
|
75
|
+
this.parent.trigger('menuClose', eventArgs, function (menuCloseArgs) {
|
76
|
+
if (menuCloseArgs.cancel) {
|
77
|
+
args.cancel = menuCloseArgs.cancel;
|
78
|
+
return;
|
79
|
+
}
|
80
|
+
});
|
64
81
|
this.menuTarget = null;
|
82
|
+
if (!this.isMenuItemClicked && this.parent.pathId.length > 1 && this.parent.activeModule === 'navigationpane') {
|
83
|
+
this.parent.pathId.pop();
|
84
|
+
var parentKey = [];
|
85
|
+
var itemKeys = Object.keys(this.parent.feParent);
|
86
|
+
for (var _i = 0, itemKeys_1 = itemKeys; _i < itemKeys_1.length; _i++) {
|
87
|
+
var item = itemKeys_1[_i];
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
89
|
+
var itemData = getValue(item, this.parent.feParent);
|
90
|
+
if (this.parent.pathNames.indexOf(itemData.name) !== -1) {
|
91
|
+
parentKey.push(itemData._fm_id);
|
92
|
+
}
|
93
|
+
}
|
94
|
+
this.parent.pathId.push(parentKey[parentKey.length - 1]);
|
95
|
+
this.parent.navigationpaneModule.treeObj.selectedNodes = [this.parent.pathId[this.parent.pathId.length - 1]];
|
96
|
+
}
|
97
|
+
this.isMenuItemClicked = false;
|
65
98
|
};
|
66
99
|
/* istanbul ignore next */
|
67
100
|
ContextMenu.prototype.onBeforeOpen = function (args) {
|
68
101
|
var _this = this;
|
69
|
-
this.disabledItems = [];
|
70
102
|
var selected = false;
|
71
103
|
var uid;
|
72
|
-
// eslint-disable-next-line
|
73
104
|
var data;
|
74
105
|
var treeFolder = false;
|
75
106
|
var target = args.event.target;
|
@@ -80,6 +111,9 @@ var ContextMenu = /** @class */ (function () {
|
|
80
111
|
this.menuTarget = this.targetNodeElement = target;
|
81
112
|
}
|
82
113
|
this.targetElement = this.parent.view === 'Details' ? closest(target, 'tr.e-row') : target;
|
114
|
+
if (this.parent.enableVirtualization && (target.classList.contains('e-virtual-bottom') || target.classList.contains('e-virtualtable'))) {
|
115
|
+
target = target.parentElement.closest('div');
|
116
|
+
}
|
83
117
|
var view = this.getTargetView(target);
|
84
118
|
this.updateActiveModule();
|
85
119
|
/* istanbul ignore next */
|
@@ -87,7 +121,6 @@ var ContextMenu = /** @class */ (function () {
|
|
87
121
|
(closest(target, '#' + this.parent.element.id + CLS.BREADCRUMBBAR_ID)) ||
|
88
122
|
(closest(target, '#' + this.parent.element.id + CLS.TOOLBAR_ID))) {
|
89
123
|
args.cancel = true;
|
90
|
-
// eslint:disable-next-line
|
91
124
|
}
|
92
125
|
else if (!(this.parent.view === 'LargeIcons') && this.targetElement &&
|
93
126
|
this.targetElement.classList.contains('e-emptyrow')) {
|
@@ -96,34 +129,33 @@ var ContextMenu = /** @class */ (function () {
|
|
96
129
|
}
|
97
130
|
else if (closest(target, '.' + CLS.EMPTY)) {
|
98
131
|
this.setLayoutItem(target);
|
99
|
-
// eslint:disable-next-line
|
100
132
|
}
|
101
133
|
else if (!target.classList.contains(CLS.MENU_ITEM) &&
|
102
134
|
!target.classList.contains(CLS.MENU_ICON) && !target.classList.contains(CLS.SUBMENU_ICON)) {
|
103
135
|
/* istanbul ignore next */
|
104
|
-
// eslint:disable-next-line
|
105
136
|
if (this.parent.view === 'LargeIcons' && !isNOU(closest(target, 'li')) && !closest(target, '#' + this.parent.element.id + CLS.TREE_ID)) {
|
106
137
|
var eveArgs = { ctrlKey: true, shiftKey: true };
|
107
138
|
if (!closest(target, 'li').classList.contains('e-active')) {
|
108
139
|
this.parent.largeiconsviewModule.doSelection(target, eveArgs);
|
109
140
|
}
|
110
|
-
// eslint-disable-next-line
|
111
141
|
data = this.parent.visitedData;
|
112
142
|
selected = true;
|
113
143
|
}
|
114
144
|
else if (!isNOU(closest(target, 'tr.e-row'))) {
|
115
145
|
uid = this.targetElement.getAttribute('data-uid');
|
116
|
-
// eslint-disable-next-line
|
117
146
|
data = this.parent.detailsviewModule.gridObj.getRowObjectFromUID(uid).data;
|
118
147
|
if (isNOU(this.targetElement.getAttribute('aria-selected'))) {
|
119
148
|
/* istanbul ignore next */
|
120
|
-
this.parent.detailsviewModule.gridObj.selectRows([parseInt(this.targetElement.getAttribute('
|
149
|
+
this.parent.detailsviewModule.gridObj.selectRows([parseInt(this.targetElement.getAttribute('data-rowindex'), 10)]);
|
121
150
|
}
|
122
151
|
selected = true;
|
123
152
|
/* istanbul ignore next */
|
124
153
|
}
|
125
154
|
else if (closest(target, '#' + this.parent.element.id + CLS.TREE_ID)) {
|
126
155
|
uid = closest(target, 'li').getAttribute('data-uid');
|
156
|
+
if (!isNOU(uid)) {
|
157
|
+
this.parent.navigationpaneModule.treeObj.selectedNodes = [uid];
|
158
|
+
}
|
127
159
|
treeFolder = true;
|
128
160
|
}
|
129
161
|
/* istanbul ignore next */
|
@@ -141,8 +173,17 @@ var ContextMenu = /** @class */ (function () {
|
|
141
173
|
if (uid === this.parent.pathId[0]) {
|
142
174
|
this.disabledItems.push('Delete', 'Rename', 'Cut', 'Copy');
|
143
175
|
}
|
176
|
+
else {
|
177
|
+
var itemsToRemove = ['Delete', 'Rename', 'Cut', 'Copy'];
|
178
|
+
for (var i = 0; i < this.disabledItems.length; i++) {
|
179
|
+
var item = this.disabledItems[i];
|
180
|
+
if (itemsToRemove.indexOf(item) !== -1) {
|
181
|
+
this.disabledItems.splice(i, 1);
|
182
|
+
i--;
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|
144
186
|
/* istanbul ignore next */
|
145
|
-
// eslint:disable-next-line
|
146
187
|
}
|
147
188
|
else if (view === 'TreeView' || view === 'GridView' || view === 'LargeIcon') {
|
148
189
|
this.setLayoutItem(target);
|
@@ -155,7 +196,15 @@ var ContextMenu = /** @class */ (function () {
|
|
155
196
|
var pasteEle = select('#' + this.getMenuId('Paste'), this.contextMenu.element);
|
156
197
|
if (!args.cancel && !this.parent.enablePaste &&
|
157
198
|
pasteEle && !pasteEle.classList.contains('e-disabled')) {
|
158
|
-
this.disabledItems.
|
199
|
+
if (this.disabledItems.indexOf('Paste') === -1) {
|
200
|
+
this.disabledItems.push('Paste');
|
201
|
+
}
|
202
|
+
}
|
203
|
+
else {
|
204
|
+
var pasteIndex = this.disabledItems.indexOf('Paste');
|
205
|
+
if (pasteIndex !== -1) {
|
206
|
+
this.disabledItems.splice(pasteIndex, 1);
|
207
|
+
}
|
159
208
|
}
|
160
209
|
if (args.cancel) {
|
161
210
|
this.menuTarget = this.currentElement = null;
|
@@ -241,17 +290,46 @@ var ContextMenu = /** @class */ (function () {
|
|
241
290
|
this.contextMenu.items = this.getItemData(this.parent.contextMenuSettings.folder.map(function (item) { return item.trim(); }));
|
242
291
|
this.contextMenu.dataBind();
|
243
292
|
if (isTree) {
|
244
|
-
this.
|
293
|
+
var selectedTreeNode = select('[data-uid="' + this.parent.navigationpaneModule.treeObj.selectedNodes[0] + '"]', this.parent.navigationpaneModule.treeObj.element);
|
294
|
+
if (this.parent.pathNames[this.parent.pathNames.length - 1] === selectedTreeNode.querySelector('.e-list-text').innerHTML && this.parent.activeModule === 'navigationpane') {
|
295
|
+
this.disabledItems.push('Open');
|
296
|
+
}
|
297
|
+
else {
|
298
|
+
var indexToRemove = this.disabledItems.indexOf('Open');
|
299
|
+
if (indexToRemove !== -1) {
|
300
|
+
this.disabledItems.splice(indexToRemove, 1);
|
301
|
+
}
|
302
|
+
}
|
303
|
+
if (this.parent.selectedItems.length === 0) {
|
304
|
+
var renameIndex = this.disabledItems.indexOf('Rename');
|
305
|
+
if (renameIndex !== -1) {
|
306
|
+
this.disabledItems.splice(renameIndex, 1);
|
307
|
+
}
|
308
|
+
}
|
245
309
|
}
|
246
|
-
else if (this.parent.
|
247
|
-
this.
|
310
|
+
else if (this.parent.activeModule !== 'navigationpane') {
|
311
|
+
if (this.parent.selectedItems.length === 1) {
|
312
|
+
var renameIndex = this.disabledItems.indexOf('Rename');
|
313
|
+
if (renameIndex !== -1) {
|
314
|
+
this.disabledItems.splice(renameIndex, 1);
|
315
|
+
}
|
316
|
+
}
|
317
|
+
else {
|
318
|
+
this.disabledItems.push('Rename', 'Paste');
|
319
|
+
}
|
248
320
|
}
|
249
321
|
};
|
250
322
|
ContextMenu.prototype.setFileItem = function () {
|
251
323
|
this.menuType = 'file';
|
252
324
|
this.contextMenu.items = this.getItemData(this.parent.contextMenuSettings.file.map(function (item) { return item.trim(); }));
|
253
325
|
this.contextMenu.dataBind();
|
254
|
-
if (this.parent.selectedItems.length
|
326
|
+
if (this.parent.selectedItems.length === 1) {
|
327
|
+
var renameIndex = this.disabledItems.indexOf('Rename');
|
328
|
+
if (renameIndex !== -1) {
|
329
|
+
this.disabledItems.splice(renameIndex, 1);
|
330
|
+
}
|
331
|
+
}
|
332
|
+
else {
|
255
333
|
this.disabledItems.push('Rename');
|
256
334
|
}
|
257
335
|
};
|
@@ -265,8 +343,13 @@ var ContextMenu = /** @class */ (function () {
|
|
265
343
|
(closest(target, '#' + this.parent.element.id + CLS.GRID_ID).getElementsByClassName(CLS.EMPTY).length !== 0)))) {
|
266
344
|
this.disabledItems.push('SelectAll');
|
267
345
|
}
|
346
|
+
else {
|
347
|
+
this.disabledItems = this.disabledItems.filter(function (item) { return item !== 'SelectAll'; });
|
348
|
+
}
|
268
349
|
if (this.parent.selectedNodes.length === 0) {
|
269
|
-
this.disabledItems.
|
350
|
+
if (this.disabledItems.indexOf('Paste') === -1) {
|
351
|
+
this.disabledItems.push('Paste');
|
352
|
+
}
|
270
353
|
}
|
271
354
|
this.contextMenu.dataBind();
|
272
355
|
};
|
@@ -281,13 +364,11 @@ var ContextMenu = /** @class */ (function () {
|
|
281
364
|
return -1;
|
282
365
|
}
|
283
366
|
};
|
284
|
-
// eslint-disable-next-line
|
285
367
|
ContextMenu.prototype.getMenuItemData = function () {
|
286
368
|
if (this.menuType === 'layout') {
|
287
369
|
return getPathObject(this.parent);
|
288
370
|
}
|
289
371
|
else {
|
290
|
-
// eslint-disable-next-line
|
291
372
|
var args = { target: this.menuTarget };
|
292
373
|
this.parent.notify(events.menuItemData, args);
|
293
374
|
return this.parent.itemData[0];
|
@@ -300,7 +381,6 @@ var ContextMenu = /** @class */ (function () {
|
|
300
381
|
return;
|
301
382
|
}
|
302
383
|
var itemText = args.item.id.substr((this.parent.element.id + '_cm_').length);
|
303
|
-
// eslint-disable-next-line
|
304
384
|
var details;
|
305
385
|
if (itemText === 'refresh' || itemText === 'newfolder' || itemText === 'upload') {
|
306
386
|
details = [getPathObject(this.parent)];
|
@@ -324,7 +404,7 @@ var ContextMenu = /** @class */ (function () {
|
|
324
404
|
this.parent.trigger('menuClick', eventArgs, function (menuClickArgs) {
|
325
405
|
var sItems;
|
326
406
|
if (!menuClickArgs.cancel) {
|
327
|
-
|
407
|
+
_this.isMenuItemClicked = true;
|
328
408
|
switch (itemText) {
|
329
409
|
case 'cut':
|
330
410
|
cutFiles(_this.parent);
|
@@ -334,11 +414,12 @@ var ContextMenu = /** @class */ (function () {
|
|
334
414
|
break;
|
335
415
|
case 'paste':
|
336
416
|
if (_this.menuType === 'folder') {
|
337
|
-
if (
|
338
|
-
_this.parent.
|
417
|
+
if (_this.parent.activeModule === 'navigationpane') {
|
418
|
+
_this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(_this.targetNodeElement, 'li'));
|
419
|
+
_this.parent.folderPath = _this.parent.path;
|
339
420
|
}
|
340
421
|
else {
|
341
|
-
_this.parent.folderPath =
|
422
|
+
_this.parent.folderPath = getFullPath(_this.parent, _this.menuItemData, _this.parent.path);
|
342
423
|
}
|
343
424
|
}
|
344
425
|
else {
|
@@ -387,10 +468,13 @@ var ContextMenu = /** @class */ (function () {
|
|
387
468
|
refresh(_this.parent);
|
388
469
|
break;
|
389
470
|
case 'open':
|
390
|
-
if (_this.parent.visitedItem) {
|
471
|
+
if (_this.parent.visitedItem && _this.parent.activeModule !== 'navigationpane') {
|
391
472
|
_this.parent.notify(events.openInit, { target: _this.parent.visitedItem });
|
392
473
|
}
|
393
474
|
else if (_this.parent.activeModule === 'navigationpane') {
|
475
|
+
if (_this.parent.visitedItem) {
|
476
|
+
_this.parent.notify(events.openInit, { target: _this.parent.visitedItem });
|
477
|
+
}
|
394
478
|
_this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(_this.targetNodeElement, 'li'));
|
395
479
|
}
|
396
480
|
break;
|
@@ -399,6 +483,7 @@ var ContextMenu = /** @class */ (function () {
|
|
399
483
|
sItems = _this.parent.selectedItems;
|
400
484
|
if (_this.parent.activeModule === 'navigationpane') {
|
401
485
|
sItems = [];
|
486
|
+
_this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(_this.targetNodeElement, 'li'));
|
402
487
|
}
|
403
488
|
GetDetails(_this.parent, sItems, _this.parent.path, 'details');
|
404
489
|
break;
|
@@ -408,19 +493,10 @@ var ContextMenu = /** @class */ (function () {
|
|
408
493
|
case 'upload':
|
409
494
|
uploadItem(_this.parent);
|
410
495
|
break;
|
411
|
-
/* istanbul ignore next */
|
412
496
|
case 'name':
|
413
|
-
/* istanbul ignore next */
|
414
|
-
// eslint-disable-next-line no-fallthrough
|
415
497
|
case 'size':
|
416
|
-
/* istanbul ignore next */
|
417
|
-
// eslint-disable-next-line no-fallthrough
|
418
498
|
case 'date':
|
419
|
-
/* istanbul ignore next */
|
420
|
-
// eslint-disable-next-line no-fallthrough
|
421
499
|
case 'ascending':
|
422
|
-
/* istanbul ignore next */
|
423
|
-
// eslint-disable-next-line no-fallthrough
|
424
500
|
case 'descending':
|
425
501
|
/* istanbul ignore next */
|
426
502
|
sortbyClickHandler(_this.parent, args);
|
@@ -431,12 +507,10 @@ var ContextMenu = /** @class */ (function () {
|
|
431
507
|
sortbyClickHandler(_this.parent, args);
|
432
508
|
break;
|
433
509
|
/* istanbul ignore next */
|
434
|
-
// eslint:disable-next-line
|
435
510
|
case 'largeiconsview':
|
436
511
|
updateLayout(_this.parent, 'LargeIcons');
|
437
512
|
break;
|
438
513
|
/* istanbul ignore next */
|
439
|
-
// eslint:disable-next-line
|
440
514
|
case 'detailsview':
|
441
515
|
updateLayout(_this.parent, 'Details');
|
442
516
|
break;
|
@@ -494,6 +568,7 @@ var ContextMenu = /** @class */ (function () {
|
|
494
568
|
}
|
495
569
|
this.removeEventListener();
|
496
570
|
this.contextMenu.destroy();
|
571
|
+
this.targetElement = null;
|
497
572
|
};
|
498
573
|
/* istanbul ignore next */
|
499
574
|
ContextMenu.prototype.getItemData = function (data) {
|
@@ -601,7 +676,7 @@ var ContextMenu = /** @class */ (function () {
|
|
601
676
|
return items;
|
602
677
|
};
|
603
678
|
ContextMenu.prototype.getMenuId = function (id) {
|
604
|
-
return this.parent.element.id + '_cm_' + id.toLowerCase();
|
679
|
+
return this.parent.element.id + '_cm_' + id.split(' ').join('').toLowerCase();
|
605
680
|
};
|
606
681
|
return ContextMenu;
|
607
682
|
}());
|
@@ -6,11 +6,10 @@ import { SelectedEventArgs } from '@syncfusion/ej2-inputs';
|
|
6
6
|
* @param {string} text - specifies the text string.
|
7
7
|
* @param {ReadArgs | SelectedEventArgs} e - specifies the type of event args.
|
8
8
|
* @param {FileDetails} details - specifies the file details.
|
9
|
-
* @param {string[]} replaceItems - specifies the replacement.
|
10
9
|
* @returns {void}
|
11
10
|
* @private
|
12
11
|
*/
|
13
|
-
export declare function createDialog(parent: IFileManager, text: string, e?: ReadArgs | SelectedEventArgs, details?: FileDetails
|
12
|
+
export declare function createDialog(parent: IFileManager, text: string, e?: ReadArgs | SelectedEventArgs, details?: FileDetails): void;
|
14
13
|
/**
|
15
14
|
*
|
16
15
|
* @param {IFileManager} parent - Specifies the parent element.
|
@@ -5,22 +5,20 @@ import { createFolder } from '../common/operations';
|
|
5
5
|
import * as CLS from '../base/classes';
|
6
6
|
import * as events from '../base/constant';
|
7
7
|
import { paste, rename } from '../common/operations';
|
8
|
-
import { getLocaleText, getDuplicateData,
|
8
|
+
import { getLocaleText, getDuplicateData, objectToString, getCssClass } from '../common/utility';
|
9
9
|
import { Input } from '@syncfusion/ej2-inputs';
|
10
10
|
import { CheckBox } from '@syncfusion/ej2-buttons';
|
11
|
-
// eslint:disable-next-line
|
12
11
|
/**
|
13
12
|
*
|
14
13
|
* @param {IFileManager} parent - Specifies the parent element
|
15
14
|
* @param {string} text - specifies the text string.
|
16
15
|
* @param {ReadArgs | SelectedEventArgs} e - specifies the type of event args.
|
17
16
|
* @param {FileDetails} details - specifies the file details.
|
18
|
-
* @param {string[]} replaceItems - specifies the replacement.
|
19
17
|
* @returns {void}
|
20
18
|
* @private
|
21
19
|
*/
|
22
|
-
export function createDialog(parent, text, e, details
|
23
|
-
var options = getOptions(parent, text, e, details
|
20
|
+
export function createDialog(parent, text, e, details) {
|
21
|
+
var options = getOptions(parent, text, e, details);
|
24
22
|
if (isNOU(parent.dialogObj)) {
|
25
23
|
parent.dialogObj = new Dialog({
|
26
24
|
beforeOpen: keydownAction.bind(this, parent, options.dialogName),
|
@@ -168,7 +166,6 @@ function triggerPopupClose(parent, dlgModule, dialogName) {
|
|
168
166
|
var args = { popupModule: dlgModule, element: dlgModule.element, popupName: dialogName };
|
169
167
|
parent.trigger('popupClose', args);
|
170
168
|
}
|
171
|
-
// eslint:disable-next-line
|
172
169
|
/**
|
173
170
|
*
|
174
171
|
* @param {IFileManager} parent - Specifies the parent element.
|
@@ -388,7 +385,6 @@ function retryDlgClose(parent) {
|
|
388
385
|
* @returns {void}
|
389
386
|
* @private
|
390
387
|
*/
|
391
|
-
// eslint-disable-next-line
|
392
388
|
function onRetryOpen(parent, args) {
|
393
389
|
parent.isRetryOpened = true;
|
394
390
|
var dialogEle = getValue('element', args);
|
@@ -537,19 +533,16 @@ function createInput(ele, placeholder) {
|
|
537
533
|
}
|
538
534
|
});
|
539
535
|
}
|
540
|
-
/* istanbul ignore next */
|
541
|
-
// eslint:disable-next-line
|
542
536
|
/**
|
543
537
|
*
|
544
538
|
* @param {IFileManager} parent - specifies the parent element.
|
545
539
|
* @param {string} text - specifies the text string.
|
546
540
|
* @param {ReadArgs | SelectedEventArgs} e - specifies the event arguements.
|
547
541
|
* @param {FileDetails} details - specifies the file details.
|
548
|
-
* @param {string[]} replaceItems - specifies the replacement items.
|
549
542
|
* @returns {DialogOptions} - specifies the dialog options.
|
550
543
|
* @private
|
551
544
|
*/
|
552
|
-
function getOptions(parent, text, e, details
|
545
|
+
function getOptions(parent, text, e, details) {
|
553
546
|
var options = {
|
554
547
|
header: '', content: '', buttons: [], dialogName: ''
|
555
548
|
};
|
@@ -562,6 +555,7 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
562
555
|
options.open = function () { triggerPopupOpen(parent, parent.dialogObj, options.dialogName); };
|
563
556
|
options.close = function () { triggerPopupClose(parent, parent.dialogObj, options.dialogName); };
|
564
557
|
text = (details && details.multipleFiles === true) ? 'MultipleFileDetails' : text;
|
558
|
+
var index;
|
565
559
|
switch (text) {
|
566
560
|
case 'NewFolder':
|
567
561
|
options.dialogName = 'Create Folder';
|
@@ -594,7 +588,7 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
594
588
|
options.buttons = [
|
595
589
|
{
|
596
590
|
buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Yes') },
|
597
|
-
click: function (
|
591
|
+
click: function () {
|
598
592
|
onDeleteSubmit(parent);
|
599
593
|
}
|
600
594
|
},
|
@@ -646,7 +640,7 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
646
640
|
options.buttons = [
|
647
641
|
{
|
648
642
|
buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Ok') },
|
649
|
-
click: function (
|
643
|
+
click: function () {
|
650
644
|
parent.dialogObj.hide();
|
651
645
|
}
|
652
646
|
}
|
@@ -654,10 +648,16 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
654
648
|
break;
|
655
649
|
case 'MultipleFileDetails':
|
656
650
|
options.dialogName = 'File Details';
|
657
|
-
strArr =
|
658
|
-
|
659
|
-
return (index === 0) ? 'Folder' : val.substr(index).replace(' ', '');
|
651
|
+
strArr = parent.itemData.map(function (val) {
|
652
|
+
index = val.name.indexOf('.') + 1;
|
653
|
+
return (index === 0 && (!val.isFile)) ? 'Folder' : ((index !== 0) ? val.name.substr(index).replace(' ', '') : 'undetermined');
|
660
654
|
});
|
655
|
+
if (strArr[0] === undefined) {
|
656
|
+
strArr = details.name.split(',').map(function (val) {
|
657
|
+
index = val.indexOf('.') + 1;
|
658
|
+
return (index === 0) ? 'Folder' : val.substr(index).replace(' ', '');
|
659
|
+
});
|
660
|
+
}
|
661
661
|
fileType = strArr.every(function (val, i, arr) { return val === arr[0]; }) ?
|
662
662
|
((strArr[0] === 'Folder') ? 'Folder' : strArr[0].toLocaleUpperCase() + ' Type') : 'Multiple Types';
|
663
663
|
location = details.location;
|
@@ -695,7 +695,7 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
695
695
|
options.buttons = [
|
696
696
|
{
|
697
697
|
buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Ok') },
|
698
|
-
click: function (
|
698
|
+
click: function () {
|
699
699
|
parent.dialogObj.hide();
|
700
700
|
}
|
701
701
|
}
|
@@ -753,27 +753,6 @@ function preventKeydown(btnElement) {
|
|
753
753
|
_loop_1(btnCount);
|
754
754
|
}
|
755
755
|
}
|
756
|
-
/* istanbul ignore next */
|
757
|
-
/**
|
758
|
-
*
|
759
|
-
* @param {SelectedEventArgs} data - specifies the data.
|
760
|
-
* @returns {HTMLElement} - returns the HTML element.
|
761
|
-
* @private
|
762
|
-
*/
|
763
|
-
function getFilesName(data) {
|
764
|
-
var parent = createElement('div', { id: 'uploadDialog' });
|
765
|
-
var ulElement = createElement('ul');
|
766
|
-
var filesData = data.isModified ? data.modifiedFilesData : data.filesData;
|
767
|
-
for (var fileCount = 0; fileCount < filesData.length; fileCount++) {
|
768
|
-
var liElement = createElement('li', { className: 'dialogFiles' });
|
769
|
-
liElement.innerHTML = filesData[fileCount].name;
|
770
|
-
ulElement.appendChild(liElement);
|
771
|
-
}
|
772
|
-
parent.appendChild(ulElement);
|
773
|
-
var errorTag = createElement('div', { className: 'e-fe-error' });
|
774
|
-
parent.appendChild(errorTag);
|
775
|
-
return parent;
|
776
|
-
}
|
777
756
|
/**
|
778
757
|
*
|
779
758
|
* @param {IFileManager} parent - specifies the parent element.
|
@@ -833,7 +812,7 @@ function onReSubmit(parent) {
|
|
833
812
|
parent.dialogObj.hide();
|
834
813
|
return;
|
835
814
|
}
|
836
|
-
var newPath = (parent.activeModule === 'navigationpane') ?
|
815
|
+
var newPath = (parent.activeModule === 'navigationpane') ? getValue('filterPath', parent.itemData[0]).replace(/\\/g, '/') : parent.path;
|
837
816
|
parent.renamedId = getValue('id', parent.itemData[0]);
|
838
817
|
if (parent.isFile) {
|
839
818
|
var oldExtension = (oIndex === -1) ? '' : parent.currentItemText.substr(oIndex);
|
@@ -889,7 +868,7 @@ function onSubmitValidate(parent, ele) {
|
|
889
868
|
onValidate(parent, ele);
|
890
869
|
var len = ele.value.length - 1;
|
891
870
|
if (ele.value !== '' && ((ele.value.lastIndexOf('.') === len) || (ele.value.lastIndexOf(' ') === len)) &&
|
892
|
-
(parent.showFileExtension || (
|
871
|
+
(parent.showFileExtension || (ele.value.lastIndexOf('.') === -1 || ele.value.substring(ele.value.indexOf('.') + 1).length === 0))) {
|
893
872
|
addInvalid(parent, ele);
|
894
873
|
}
|
895
874
|
}
|
package/src/global.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
import * as index from './index';
|
2
|
-
index.FileManager.Inject(index.DetailsView, index.NavigationPane, index.LargeIconsView, index.Toolbar, index.ContextMenu, index.BreadCrumbBar);
|
2
|
+
index.FileManager.Inject(index.DetailsView, index.NavigationPane, index.LargeIconsView, index.Toolbar, index.ContextMenu, index.BreadCrumbBar, index.Virtualization);
|
3
3
|
export * from './index';
|