@syncfusion/ej2-filemanager 25.2.3 → 26.1.35
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 +3 -2
- package/dist/ej2-filemanager.min.js +2 -2
- 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 +931 -464
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +975 -517
- 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 +16 -16
- package/src/file-manager/actions/breadcrumb-bar.js +0 -4
- package/src/file-manager/actions/toolbar.js +1 -13
- package/src/file-manager/actions/virtualization.d.ts +28 -8
- package/src/file-manager/actions/virtualization.js +36 -12
- package/src/file-manager/base/file-manager-model.d.ts +107 -36
- package/src/file-manager/base/file-manager.d.ts +100 -25
- package/src/file-manager/base/file-manager.js +46 -20
- package/src/file-manager/base/interface.d.ts +224 -2
- 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 +596 -94
- package/src/file-manager/common/utility.d.ts +22 -0
- package/src/file-manager/common/utility.js +117 -65
- package/src/file-manager/layout/details-view.d.ts +1 -1
- package/src/file-manager/layout/details-view.js +23 -68
- package/src/file-manager/layout/large-icons-view.js +24 -46
- package/src/file-manager/layout/navigation-pane.js +18 -41
- package/src/file-manager/models/column-model.d.ts +1 -3
- package/src/file-manager/models/default-locale.js +0 -1
- package/src/file-manager/models/details-view-settings.js +2 -1
- package/src/file-manager/pop-up/context-menu.js +26 -27
- package/src/file-manager/pop-up/dialog.d.ts +1 -2
- package/src/file-manager/pop-up/dialog.js +12 -35
- package/styles/bootstrap-dark.css +116 -105
- package/styles/bootstrap-dark.scss +16 -1
- package/styles/bootstrap.css +117 -106
- package/styles/bootstrap.scss +16 -1
- package/styles/bootstrap4.css +116 -105
- package/styles/bootstrap4.scss +16 -1
- package/styles/bootstrap5-dark.css +98 -98
- package/styles/bootstrap5-dark.scss +16 -1
- package/styles/bootstrap5.css +98 -98
- package/styles/bootstrap5.scss +16 -1
- package/styles/fabric-dark.css +116 -105
- package/styles/fabric-dark.scss +16 -1
- package/styles/fabric.css +116 -105
- package/styles/fabric.scss +16 -1
- package/styles/file-manager/_bds-definition.scss +1 -1
- package/styles/file-manager/_bootstrap5-definition.scss +2 -1
- package/styles/file-manager/_bootstrap5.3-definition.scss +240 -0
- package/styles/file-manager/_fluent-definition.scss +1 -1
- package/styles/file-manager/_fluent2-definition.scss +249 -0
- package/styles/file-manager/_layout.scss +255 -396
- package/styles/file-manager/_material-dark-definition.scss +1 -0
- package/styles/file-manager/_material-definition.scss +1 -0
- package/styles/file-manager/_material3-definition.scss +1 -27
- package/styles/file-manager/_tailwind-definition.scss +1 -1
- package/styles/file-manager/_theme.scss +37 -85
- package/styles/file-manager/bootstrap-dark.css +116 -105
- package/styles/file-manager/bootstrap.css +117 -106
- package/styles/file-manager/bootstrap4.css +116 -105
- package/styles/file-manager/bootstrap5-dark.css +98 -98
- package/styles/file-manager/bootstrap5.css +98 -98
- package/styles/file-manager/fabric-dark.css +116 -105
- package/styles/file-manager/fabric.css +116 -105
- package/styles/file-manager/fluent-dark.css +107 -102
- package/styles/file-manager/fluent.css +107 -102
- package/styles/file-manager/fluent2.css +2872 -0
- package/styles/file-manager/fluent2.scss +16 -0
- package/styles/file-manager/highcontrast-light.css +116 -105
- package/styles/file-manager/highcontrast.css +116 -105
- package/styles/file-manager/icons/_bootstrap5.3.scss +235 -0
- package/styles/file-manager/icons/_fluent2.scss +235 -0
- package/styles/file-manager/material-dark.css +140 -108
- package/styles/file-manager/material.css +156 -112
- package/styles/file-manager/material3-dark.css +134 -109
- package/styles/file-manager/material3.css +134 -109
- package/styles/file-manager/tailwind-dark.css +93 -95
- package/styles/file-manager/tailwind.css +93 -95
- package/styles/fluent-dark.css +107 -102
- package/styles/fluent-dark.scss +16 -1
- package/styles/fluent.css +107 -102
- package/styles/fluent.scss +16 -1
- package/styles/fluent2.css +2872 -0
- package/styles/fluent2.scss +16 -0
- package/styles/highcontrast-light.css +116 -105
- package/styles/highcontrast-light.scss +16 -1
- package/styles/highcontrast.css +116 -105
- package/styles/highcontrast.scss +16 -1
- package/styles/material-dark.css +140 -108
- package/styles/material-dark.scss +16 -1
- package/styles/material.css +156 -112
- package/styles/material.scss +16 -1
- package/styles/material3-dark.css +134 -109
- package/styles/material3-dark.scss +16 -1
- package/styles/material3.css +134 -109
- package/styles/material3.scss +16 -1
- package/styles/tailwind-dark.css +93 -95
- package/styles/tailwind-dark.scss +16 -1
- package/styles/tailwind.css +93 -95
- package/styles/tailwind.scss +16 -1
- package/CHANGELOG.md +0 -467
@@ -63,12 +63,13 @@ var ContextMenu = /** @class */ (function () {
|
|
63
63
|
};
|
64
64
|
ContextMenu.prototype.onBeforeClose = function () {
|
65
65
|
this.menuTarget = null;
|
66
|
-
if (!this.isMenuItemClicked && this.parent.pathId.length > 1 && this.parent.activeModule
|
66
|
+
if (!this.isMenuItemClicked && this.parent.pathId.length > 1 && this.parent.activeModule === 'navigationpane') {
|
67
67
|
this.parent.pathId.pop();
|
68
68
|
var parentKey = [];
|
69
69
|
var itemKeys = Object.keys(this.parent.feParent);
|
70
70
|
for (var _i = 0, itemKeys_1 = itemKeys; _i < itemKeys_1.length; _i++) {
|
71
71
|
var item = itemKeys_1[_i];
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
72
73
|
var itemData = getValue(item, this.parent.feParent);
|
73
74
|
if (this.parent.pathNames.indexOf(itemData.name) !== -1) {
|
74
75
|
parentKey.push(itemData._fm_id);
|
@@ -84,7 +85,6 @@ var ContextMenu = /** @class */ (function () {
|
|
84
85
|
var _this = this;
|
85
86
|
var selected = false;
|
86
87
|
var uid;
|
87
|
-
// eslint-disable-next-line
|
88
88
|
var data;
|
89
89
|
var treeFolder = false;
|
90
90
|
var target = args.event.target;
|
@@ -96,7 +96,7 @@ var ContextMenu = /** @class */ (function () {
|
|
96
96
|
}
|
97
97
|
this.targetElement = this.parent.view === 'Details' ? closest(target, 'tr.e-row') : target;
|
98
98
|
if (this.parent.enableVirtualization && (target.classList.contains('e-virtual-bottom') || target.classList.contains('e-virtualtable'))) {
|
99
|
-
target = target.parentElement.closest(
|
99
|
+
target = target.parentElement.closest('div');
|
100
100
|
}
|
101
101
|
var view = this.getTargetView(target);
|
102
102
|
this.updateActiveModule();
|
@@ -105,7 +105,6 @@ var ContextMenu = /** @class */ (function () {
|
|
105
105
|
(closest(target, '#' + this.parent.element.id + CLS.BREADCRUMBBAR_ID)) ||
|
106
106
|
(closest(target, '#' + this.parent.element.id + CLS.TOOLBAR_ID))) {
|
107
107
|
args.cancel = true;
|
108
|
-
// eslint:disable-next-line
|
109
108
|
}
|
110
109
|
else if (!(this.parent.view === 'LargeIcons') && this.targetElement &&
|
111
110
|
this.targetElement.classList.contains('e-emptyrow')) {
|
@@ -114,24 +113,20 @@ var ContextMenu = /** @class */ (function () {
|
|
114
113
|
}
|
115
114
|
else if (closest(target, '.' + CLS.EMPTY)) {
|
116
115
|
this.setLayoutItem(target);
|
117
|
-
// eslint:disable-next-line
|
118
116
|
}
|
119
117
|
else if (!target.classList.contains(CLS.MENU_ITEM) &&
|
120
118
|
!target.classList.contains(CLS.MENU_ICON) && !target.classList.contains(CLS.SUBMENU_ICON)) {
|
121
119
|
/* istanbul ignore next */
|
122
|
-
// eslint:disable-next-line
|
123
120
|
if (this.parent.view === 'LargeIcons' && !isNOU(closest(target, 'li')) && !closest(target, '#' + this.parent.element.id + CLS.TREE_ID)) {
|
124
121
|
var eveArgs = { ctrlKey: true, shiftKey: true };
|
125
122
|
if (!closest(target, 'li').classList.contains('e-active')) {
|
126
123
|
this.parent.largeiconsviewModule.doSelection(target, eveArgs);
|
127
124
|
}
|
128
|
-
// eslint-disable-next-line
|
129
125
|
data = this.parent.visitedData;
|
130
126
|
selected = true;
|
131
127
|
}
|
132
128
|
else if (!isNOU(closest(target, 'tr.e-row'))) {
|
133
129
|
uid = this.targetElement.getAttribute('data-uid');
|
134
|
-
// eslint-disable-next-line
|
135
130
|
data = this.parent.detailsviewModule.gridObj.getRowObjectFromUID(uid).data;
|
136
131
|
if (isNOU(this.targetElement.getAttribute('aria-selected'))) {
|
137
132
|
/* istanbul ignore next */
|
@@ -160,7 +155,6 @@ var ContextMenu = /** @class */ (function () {
|
|
160
155
|
this.disabledItems.push('Delete', 'Rename', 'Cut', 'Copy');
|
161
156
|
}
|
162
157
|
/* istanbul ignore next */
|
163
|
-
// eslint:disable-next-line
|
164
158
|
}
|
165
159
|
else if (view === 'TreeView' || view === 'GridView' || view === 'LargeIcon') {
|
166
160
|
this.setLayoutItem(target);
|
@@ -271,16 +265,36 @@ var ContextMenu = /** @class */ (function () {
|
|
271
265
|
if (this.parent.pathNames[this.parent.pathNames.length - 1] === selectedTreeNode.querySelector('.e-list-text').innerHTML && this.parent.activeModule === 'navigationpane') {
|
272
266
|
this.disabledItems.push('Open');
|
273
267
|
}
|
268
|
+
if (this.parent.selectedItems.length === 0) {
|
269
|
+
var renameIndex = this.disabledItems.indexOf('Rename');
|
270
|
+
if (renameIndex !== -1) {
|
271
|
+
this.disabledItems.splice(renameIndex, 1);
|
272
|
+
}
|
273
|
+
}
|
274
274
|
}
|
275
|
-
else if (this.parent.
|
276
|
-
this.
|
275
|
+
else if (this.parent.activeModule !== 'navigationpane') {
|
276
|
+
if (this.parent.selectedItems.length === 1) {
|
277
|
+
var renameIndex = this.disabledItems.indexOf('Rename');
|
278
|
+
if (renameIndex !== -1) {
|
279
|
+
this.disabledItems.splice(renameIndex, 1);
|
280
|
+
}
|
281
|
+
}
|
282
|
+
else {
|
283
|
+
this.disabledItems.push('Rename', 'Paste');
|
284
|
+
}
|
277
285
|
}
|
278
286
|
};
|
279
287
|
ContextMenu.prototype.setFileItem = function () {
|
280
288
|
this.menuType = 'file';
|
281
289
|
this.contextMenu.items = this.getItemData(this.parent.contextMenuSettings.file.map(function (item) { return item.trim(); }));
|
282
290
|
this.contextMenu.dataBind();
|
283
|
-
if (this.parent.selectedItems.length
|
291
|
+
if (this.parent.selectedItems.length === 1) {
|
292
|
+
var renameIndex = this.disabledItems.indexOf('Rename');
|
293
|
+
if (renameIndex !== -1) {
|
294
|
+
this.disabledItems.splice(renameIndex, 1);
|
295
|
+
}
|
296
|
+
}
|
297
|
+
else {
|
284
298
|
this.disabledItems.push('Rename');
|
285
299
|
}
|
286
300
|
};
|
@@ -315,13 +329,11 @@ var ContextMenu = /** @class */ (function () {
|
|
315
329
|
return -1;
|
316
330
|
}
|
317
331
|
};
|
318
|
-
// eslint-disable-next-line
|
319
332
|
ContextMenu.prototype.getMenuItemData = function () {
|
320
333
|
if (this.menuType === 'layout') {
|
321
334
|
return getPathObject(this.parent);
|
322
335
|
}
|
323
336
|
else {
|
324
|
-
// eslint-disable-next-line
|
325
337
|
var args = { target: this.menuTarget };
|
326
338
|
this.parent.notify(events.menuItemData, args);
|
327
339
|
return this.parent.itemData[0];
|
@@ -334,7 +346,6 @@ var ContextMenu = /** @class */ (function () {
|
|
334
346
|
return;
|
335
347
|
}
|
336
348
|
var itemText = args.item.id.substr((this.parent.element.id + '_cm_').length);
|
337
|
-
// eslint-disable-next-line
|
338
349
|
var details;
|
339
350
|
if (itemText === 'refresh' || itemText === 'newfolder' || itemText === 'upload') {
|
340
351
|
details = [getPathObject(this.parent)];
|
@@ -359,7 +370,6 @@ var ContextMenu = /** @class */ (function () {
|
|
359
370
|
var sItems;
|
360
371
|
if (!menuClickArgs.cancel) {
|
361
372
|
_this.isMenuItemClicked = true;
|
362
|
-
// eslint:disable-next-line
|
363
373
|
switch (itemText) {
|
364
374
|
case 'cut':
|
365
375
|
cutFiles(_this.parent);
|
@@ -447,19 +457,10 @@ var ContextMenu = /** @class */ (function () {
|
|
447
457
|
case 'upload':
|
448
458
|
uploadItem(_this.parent);
|
449
459
|
break;
|
450
|
-
/* istanbul ignore next */
|
451
460
|
case 'name':
|
452
|
-
/* istanbul ignore next */
|
453
|
-
// eslint-disable-next-line no-fallthrough
|
454
461
|
case 'size':
|
455
|
-
/* istanbul ignore next */
|
456
|
-
// eslint-disable-next-line no-fallthrough
|
457
462
|
case 'date':
|
458
|
-
/* istanbul ignore next */
|
459
|
-
// eslint-disable-next-line no-fallthrough
|
460
463
|
case 'ascending':
|
461
|
-
/* istanbul ignore next */
|
462
|
-
// eslint-disable-next-line no-fallthrough
|
463
464
|
case 'descending':
|
464
465
|
/* istanbul ignore next */
|
465
466
|
sortbyClickHandler(_this.parent, args);
|
@@ -470,12 +471,10 @@ var ContextMenu = /** @class */ (function () {
|
|
470
471
|
sortbyClickHandler(_this.parent, args);
|
471
472
|
break;
|
472
473
|
/* istanbul ignore next */
|
473
|
-
// eslint:disable-next-line
|
474
474
|
case 'largeiconsview':
|
475
475
|
updateLayout(_this.parent, 'LargeIcons');
|
476
476
|
break;
|
477
477
|
/* istanbul ignore next */
|
478
|
-
// eslint:disable-next-line
|
479
478
|
case 'detailsview':
|
480
479
|
updateLayout(_this.parent, 'Details');
|
481
480
|
break;
|
@@ -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.
|
@@ -14,12 +14,11 @@ import { CheckBox } from '@syncfusion/ej2-buttons';
|
|
14
14
|
* @param {string} text - specifies the text string.
|
15
15
|
* @param {ReadArgs | SelectedEventArgs} e - specifies the type of event args.
|
16
16
|
* @param {FileDetails} details - specifies the file details.
|
17
|
-
* @param {string[]} replaceItems - specifies the replacement.
|
18
17
|
* @returns {void}
|
19
18
|
* @private
|
20
19
|
*/
|
21
|
-
export function createDialog(parent, text, e, details
|
22
|
-
var options = getOptions(parent, text, e, details
|
20
|
+
export function createDialog(parent, text, e, details) {
|
21
|
+
var options = getOptions(parent, text, e, details);
|
23
22
|
if (isNOU(parent.dialogObj)) {
|
24
23
|
parent.dialogObj = new Dialog({
|
25
24
|
beforeOpen: keydownAction.bind(this, parent, options.dialogName),
|
@@ -540,11 +539,10 @@ function createInput(ele, placeholder) {
|
|
540
539
|
* @param {string} text - specifies the text string.
|
541
540
|
* @param {ReadArgs | SelectedEventArgs} e - specifies the event arguements.
|
542
541
|
* @param {FileDetails} details - specifies the file details.
|
543
|
-
* @param {string[]} replaceItems - specifies the replacement items.
|
544
542
|
* @returns {DialogOptions} - specifies the dialog options.
|
545
543
|
* @private
|
546
544
|
*/
|
547
|
-
function getOptions(parent, text, e, details
|
545
|
+
function getOptions(parent, text, e, details) {
|
548
546
|
var options = {
|
549
547
|
header: '', content: '', buttons: [], dialogName: ''
|
550
548
|
};
|
@@ -557,6 +555,7 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
557
555
|
options.open = function () { triggerPopupOpen(parent, parent.dialogObj, options.dialogName); };
|
558
556
|
options.close = function () { triggerPopupClose(parent, parent.dialogObj, options.dialogName); };
|
559
557
|
text = (details && details.multipleFiles === true) ? 'MultipleFileDetails' : text;
|
558
|
+
var index;
|
560
559
|
switch (text) {
|
561
560
|
case 'NewFolder':
|
562
561
|
options.dialogName = 'Create Folder';
|
@@ -589,7 +588,7 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
589
588
|
options.buttons = [
|
590
589
|
{
|
591
590
|
buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Yes') },
|
592
|
-
click: function (
|
591
|
+
click: function () {
|
593
592
|
onDeleteSubmit(parent);
|
594
593
|
}
|
595
594
|
},
|
@@ -641,23 +640,22 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
641
640
|
options.buttons = [
|
642
641
|
{
|
643
642
|
buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Ok') },
|
644
|
-
click: function (
|
643
|
+
click: function () {
|
645
644
|
parent.dialogObj.hide();
|
646
645
|
}
|
647
646
|
}
|
648
647
|
];
|
649
648
|
break;
|
650
649
|
case 'MultipleFileDetails':
|
651
|
-
var index_1;
|
652
650
|
options.dialogName = 'File Details';
|
653
651
|
strArr = parent.itemData.map(function (val) {
|
654
|
-
|
655
|
-
return (
|
652
|
+
index = val.name.indexOf('.') + 1;
|
653
|
+
return (index === 0 && (!val.isFile)) ? 'Folder' : ((index !== 0) ? val.name.substr(index).replace(' ', '') : 'undetermined');
|
656
654
|
});
|
657
|
-
if (strArr[0]
|
655
|
+
if (strArr[0] === undefined) {
|
658
656
|
strArr = details.name.split(',').map(function (val) {
|
659
|
-
|
660
|
-
return (
|
657
|
+
index = val.indexOf('.') + 1;
|
658
|
+
return (index === 0) ? 'Folder' : val.substr(index).replace(' ', '');
|
661
659
|
});
|
662
660
|
}
|
663
661
|
fileType = strArr.every(function (val, i, arr) { return val === arr[0]; }) ?
|
@@ -697,7 +695,7 @@ function getOptions(parent, text, e, details, replaceItems) {
|
|
697
695
|
options.buttons = [
|
698
696
|
{
|
699
697
|
buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Ok') },
|
700
|
-
click: function (
|
698
|
+
click: function () {
|
701
699
|
parent.dialogObj.hide();
|
702
700
|
}
|
703
701
|
}
|
@@ -755,27 +753,6 @@ function preventKeydown(btnElement) {
|
|
755
753
|
_loop_1(btnCount);
|
756
754
|
}
|
757
755
|
}
|
758
|
-
/* istanbul ignore next */
|
759
|
-
/**
|
760
|
-
*
|
761
|
-
* @param {SelectedEventArgs} data - specifies the data.
|
762
|
-
* @returns {HTMLElement} - returns the HTML element.
|
763
|
-
* @private
|
764
|
-
*/
|
765
|
-
function getFilesName(data) {
|
766
|
-
var parent = createElement('div', { id: 'uploadDialog' });
|
767
|
-
var ulElement = createElement('ul');
|
768
|
-
var filesData = data.isModified ? data.modifiedFilesData : data.filesData;
|
769
|
-
for (var fileCount = 0; fileCount < filesData.length; fileCount++) {
|
770
|
-
var liElement = createElement('li', { className: 'dialogFiles' });
|
771
|
-
liElement.innerHTML = filesData[fileCount].name;
|
772
|
-
ulElement.appendChild(liElement);
|
773
|
-
}
|
774
|
-
parent.appendChild(ulElement);
|
775
|
-
var errorTag = createElement('div', { className: 'e-fe-error' });
|
776
|
-
parent.appendChild(errorTag);
|
777
|
-
return parent;
|
778
|
-
}
|
779
756
|
/**
|
780
757
|
*
|
781
758
|
* @param {IFileManager} parent - specifies the parent element.
|