@syncfusion/ej2-filemanager 23.2.6 → 24.1.43
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 +74 -120
- 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 +45 -5
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +45 -5
- 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/common/utility.d.ts +12 -0
- package/src/file-manager/common/utility.js +31 -0
- package/src/file-manager/layout/details-view.js +1 -1
- package/src/file-manager/layout/large-icons-view.js +3 -1
- package/src/file-manager/layout/navigation-pane.js +2 -3
- package/src/file-manager/pop-up/context-menu.d.ts +1 -0
- package/src/file-manager/pop-up/context-menu.js +8 -0
- package/styles/bootstrap-dark.css +1 -1
- package/styles/bootstrap.css +1 -1
- package/styles/bootstrap4.css +1 -1
- package/styles/bootstrap5-dark.css +1 -1
- package/styles/bootstrap5.css +1 -1
- package/styles/fabric-dark.css +1 -1
- package/styles/fabric.css +1 -1
- 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/_bootstrap5-definition.scss +1 -1
- package/styles/file-manager/_fabric-dark-definition.scss +1 -1
- package/styles/file-manager/_fabric-definition.scss +1 -1
- package/styles/file-manager/_fluent-definition.scss +1 -1
- package/styles/file-manager/_fusionnew-definition.scss +1 -1
- package/styles/file-manager/_highcontrast-definition.scss +1 -1
- package/styles/file-manager/_highcontrast-light-definition.scss +1 -1
- package/styles/file-manager/_layout.scss +5 -3
- package/styles/file-manager/_material-dark-definition.scss +1 -1
- package/styles/file-manager/_material-definition.scss +1 -1
- package/styles/file-manager/_material3-definition.scss +6 -6
- package/styles/file-manager/_tailwind-definition.scss +1 -1
- package/styles/file-manager/bootstrap-dark.css +1 -1
- package/styles/file-manager/bootstrap.css +1 -1
- package/styles/file-manager/bootstrap4.css +1 -1
- package/styles/file-manager/bootstrap5-dark.css +1 -1
- package/styles/file-manager/bootstrap5.css +1 -1
- package/styles/file-manager/fabric-dark.css +1 -1
- package/styles/file-manager/fabric.css +1 -1
- package/styles/file-manager/fluent-dark.css +1 -1
- package/styles/file-manager/fluent.css +1 -1
- package/styles/file-manager/highcontrast-light.css +1 -1
- package/styles/file-manager/highcontrast.css +1 -1
- package/styles/file-manager/material-dark.css +1 -1
- package/styles/file-manager/material.css +1 -1
- package/styles/file-manager/material3-dark.css +5 -6
- package/styles/file-manager/material3.css +5 -6
- package/styles/file-manager/tailwind-dark.css +1 -1
- package/styles/file-manager/tailwind.css +1 -1
- package/styles/fluent-dark.css +1 -1
- package/styles/fluent.css +1 -1
- package/styles/highcontrast-light.css +1 -1
- package/styles/highcontrast.css +1 -1
- package/styles/material-dark.css +1 -1
- package/styles/material.css +1 -1
- package/styles/material3-dark.css +5 -6
- package/styles/material3.css +5 -6
- package/styles/tailwind-dark.css +1 -1
- package/styles/tailwind.css +1 -1
@@ -1914,6 +1914,30 @@ function removeItemClass(parent, value) {
|
|
1914
1914
|
ele[i].classList.remove(value);
|
1915
1915
|
}
|
1916
1916
|
}
|
1917
|
+
/**
|
1918
|
+
* Remove item class handler
|
1919
|
+
*
|
1920
|
+
* @param {Element} scrollParent - specifies the scrolling target.
|
1921
|
+
* @param {IFileManager} parent - specifies the parent.
|
1922
|
+
* @param {string} nodeClass - specifies the node class.
|
1923
|
+
* @param {number} screenY - specifies the vertical (Y) coordinate of the mouse cursor position relative to the entire screen.
|
1924
|
+
* @param {number} clientY - specifies the vertical (Y) coordinate of the mouse cursor position relative to the target element.
|
1925
|
+
* @returns {void}
|
1926
|
+
* @private
|
1927
|
+
*/
|
1928
|
+
function scrollHandler(scrollParent, parent, nodeClass, screenY, clientY) {
|
1929
|
+
let position;
|
1930
|
+
let elementData = scrollParent.getBoundingClientRect();
|
1931
|
+
const node = select("." + nodeClass, scrollParent);
|
1932
|
+
if ((screenY >= (elementData.top + scrollParent.clientHeight - 30)) && !isNullOrUndefined(node)) {
|
1933
|
+
position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
|
1934
|
+
scrollParent.scrollBy(0, position);
|
1935
|
+
}
|
1936
|
+
if (!isNullOrUndefined(node) && (clientY <= (elementData.top + 30))) {
|
1937
|
+
position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
|
1938
|
+
scrollParent.scrollBy(0, -position);
|
1939
|
+
}
|
1940
|
+
}
|
1917
1941
|
/**
|
1918
1942
|
* Dragging handler
|
1919
1943
|
*
|
@@ -1934,12 +1958,15 @@ function draggingHandler(parent, args) {
|
|
1934
1958
|
}
|
1935
1959
|
removeBlur(parent, 'hover');
|
1936
1960
|
let node = null;
|
1961
|
+
let scrollParent;
|
1937
1962
|
if (parent.targetModule === 'navigationpane') {
|
1938
1963
|
node = closest(args.target, 'li');
|
1939
1964
|
node.classList.add(HOVER, DROP_FOLDER);
|
1940
1965
|
canDrop = true;
|
1941
1966
|
/* istanbul ignore next */
|
1942
1967
|
parent.treeExpandTimer = window.setTimeout(() => { parent.notify(dragging, args); }, 800);
|
1968
|
+
scrollParent = parent.navigationpaneModule.treeObj.element.parentElement;
|
1969
|
+
scrollHandler(scrollParent, parent, 'e-level-2', args.event.screenY, args.event.y);
|
1943
1970
|
}
|
1944
1971
|
else if (parent.targetModule === 'detailsview') {
|
1945
1972
|
node = closest(args.target, 'tr');
|
@@ -1950,6 +1977,8 @@ function draggingHandler(parent, args) {
|
|
1950
1977
|
node.classList.add(DROP_FILE);
|
1951
1978
|
}
|
1952
1979
|
canDrop = true;
|
1980
|
+
scrollParent = parent.detailsviewModule.gridObj.element.querySelector('.e-content');
|
1981
|
+
scrollHandler(scrollParent, parent, 'e-row', args.event.screenY, args.event.y);
|
1953
1982
|
}
|
1954
1983
|
else if (parent.targetModule === 'largeiconsview') {
|
1955
1984
|
node = closest(args.target, 'li');
|
@@ -1957,6 +1986,8 @@ function draggingHandler(parent, args) {
|
|
1957
1986
|
node.classList.add(HOVER, DROP_FOLDER);
|
1958
1987
|
}
|
1959
1988
|
canDrop = true;
|
1989
|
+
scrollParent = parent.largeiconsviewModule.element.firstElementChild;
|
1990
|
+
scrollHandler(scrollParent, parent, 'e-large-icon', args.event.screenY, args.event.y);
|
1960
1991
|
/* istanbul ignore next */
|
1961
1992
|
}
|
1962
1993
|
else if (parent.targetModule === 'breadcrumbbar') {
|
@@ -3968,6 +3999,7 @@ class LargeIconsView {
|
|
3968
3999
|
this.listElements = ListBase.createListFromJson(createElement, this.items, this.listObj);
|
3969
4000
|
this.itemList = Array.prototype.slice.call(selectAll('.' + LIST_ITEM, this.listElements));
|
3970
4001
|
this.element.appendChild(this.listElements);
|
4002
|
+
this.listElements.setAttribute("aria-label", "listbox");
|
3971
4003
|
this.preventImgDrag();
|
3972
4004
|
this.createDragObj();
|
3973
4005
|
if (this.itemList.length === 0) {
|
@@ -4034,7 +4066,7 @@ class LargeIconsView {
|
|
4034
4066
|
this.dragObj = new Draggable(this.listElements, {
|
4035
4067
|
enableTailMode: true,
|
4036
4068
|
distance: 5,
|
4037
|
-
enableAutoScroll:
|
4069
|
+
enableAutoScroll: false,
|
4038
4070
|
dragTarget: '.' + LARGE_ICON,
|
4039
4071
|
helper: this.dragHelper.bind(this),
|
4040
4072
|
cursorAt: this.parent.dragCursorPosition,
|
@@ -4131,6 +4163,7 @@ class LargeIconsView {
|
|
4131
4163
|
});
|
4132
4164
|
checkElement.setAttribute('role', 'checkbox');
|
4133
4165
|
checkElement.setAttribute('aria-checked', 'false');
|
4166
|
+
checkElement.setAttribute('aria-label', 'checkbox');
|
4134
4167
|
args.item.firstElementChild.insertBefore(checkElement, args.item.firstElementChild.childNodes[0]);
|
4135
4168
|
}
|
4136
4169
|
onLayoutChange(args) {
|
@@ -5870,6 +5903,7 @@ class ContextMenu$2 {
|
|
5870
5903
|
* @hidden
|
5871
5904
|
*/
|
5872
5905
|
constructor(parent) {
|
5906
|
+
this.isMenuItemClicked = false;
|
5873
5907
|
this.currentItems = [];
|
5874
5908
|
this.currentElement = null;
|
5875
5909
|
this.disabledItems = [];
|
@@ -5913,6 +5947,12 @@ class ContextMenu$2 {
|
|
5913
5947
|
}
|
5914
5948
|
onBeforeClose() {
|
5915
5949
|
this.menuTarget = null;
|
5950
|
+
if (!this.isMenuItemClicked && this.parent.pathId.length > 1) {
|
5951
|
+
this.parent.pathId.pop();
|
5952
|
+
this.parent.pathId.push(Object.keys(this.parent.feParent)[Object.keys.length]);
|
5953
|
+
this.parent.navigationpaneModule.treeObj.selectedNodes = [this.parent.pathId[this.parent.pathId.length - 1]];
|
5954
|
+
}
|
5955
|
+
this.isMenuItemClicked = false;
|
5916
5956
|
}
|
5917
5957
|
/* istanbul ignore next */
|
5918
5958
|
onBeforeOpen(args) {
|
@@ -6179,6 +6219,7 @@ class ContextMenu$2 {
|
|
6179
6219
|
this.parent.trigger('menuClick', eventArgs, (menuClickArgs) => {
|
6180
6220
|
let sItems;
|
6181
6221
|
if (!menuClickArgs.cancel) {
|
6222
|
+
this.isMenuItemClicked = true;
|
6182
6223
|
// eslint:disable-next-line
|
6183
6224
|
switch (itemText) {
|
6184
6225
|
case 'cut':
|
@@ -8769,7 +8810,7 @@ class NavigationPane {
|
|
8769
8810
|
},
|
8770
8811
|
dragStop: dragStopHandler.bind(this, this.parent),
|
8771
8812
|
enableTailMode: true,
|
8772
|
-
enableAutoScroll:
|
8813
|
+
enableAutoScroll: false,
|
8773
8814
|
helper: this.dragHelper.bind(this)
|
8774
8815
|
});
|
8775
8816
|
}
|
@@ -8923,7 +8964,7 @@ class NavigationPane {
|
|
8923
8964
|
this.parent.itemData = nodeData;
|
8924
8965
|
const previousPath = this.parent.path;
|
8925
8966
|
const sNode = select('[data-uid="' + this.treeObj.selectedNodes[0] + '"]', this.treeObj.element);
|
8926
|
-
if (!this.isRightClick && this.isSameNodeClicked
|
8967
|
+
if (!this.isRightClick && this.isSameNodeClicked) {
|
8927
8968
|
updatePath(args.node, this.parent.itemData[0], this.parent);
|
8928
8969
|
}
|
8929
8970
|
else {
|
@@ -9062,7 +9103,6 @@ class NavigationPane {
|
|
9062
9103
|
onFinalizeEnd(args) {
|
9063
9104
|
this.onInit();
|
9064
9105
|
const id = getValue('_fm_id', args.cwd);
|
9065
|
-
this.removeChildNodes(id);
|
9066
9106
|
this.addChild(args.files, id, false);
|
9067
9107
|
this.treeObj.selectedNodes = [this.parent.pathId[this.parent.pathId.length - 1]];
|
9068
9108
|
}
|
@@ -10585,7 +10625,7 @@ class DetailsView {
|
|
10585
10625
|
dragStartHandler(this.parent, args, this.dragObj);
|
10586
10626
|
},
|
10587
10627
|
dragStop: dragStopHandler.bind(this, this.parent),
|
10588
|
-
enableAutoScroll:
|
10628
|
+
enableAutoScroll: false,
|
10589
10629
|
helper: this.dragHelper.bind(this)
|
10590
10630
|
});
|
10591
10631
|
}
|