@gingkoo/pandora-explorer 0.0.1-alpha.96 → 0.0.1-alpha.98
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/lib/es/components/menu/index.d.ts +1 -1
- package/lib/es/components/menu/menulist.d.ts +2 -0
- package/lib/es/index.d.ts +1 -1
- package/lib/es/index.js +75 -19
- package/lib/es/index.js.map +1 -1
- package/lib/es/layout/index.d.ts +2 -0
- package/lib/es/store.d.ts +1 -1
- package/lib/es/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { ReactNode } from 'react';
|
|
|
3
3
|
interface MenuProps {
|
|
4
4
|
menu?: MenuItem[];
|
|
5
5
|
onChange?: (key: string, parent?: MenuItem) => any;
|
|
6
|
-
loadMenu?: (item: MenuItem) => MenuItem;
|
|
6
|
+
loadMenu?: (item: MenuItem) => MenuItem | MenuItem[];
|
|
7
7
|
store?: any;
|
|
8
8
|
}
|
|
9
9
|
export interface MenuItem {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare function getMenu(key: string): import("react").ComponentType<{}>;
|
|
3
3
|
export declare function registerMenu(key: string, component: any): void;
|
|
4
|
+
export declare function addMenuItem(key: string | string[], menu: any[]): void;
|
|
5
|
+
export declare function removeMenuItem(key: string | string[], menuItem: string[]): void;
|
package/lib/es/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Explorer from './explorer';
|
|
2
2
|
import ExplorerMenu from './components/menu';
|
|
3
|
-
export { registerMenu } from './components/menu/menulist';
|
|
3
|
+
export { registerMenu, addMenuItem, removeMenuItem } from './components/menu/menulist';
|
|
4
4
|
export { Icons } from './explorer';
|
|
5
5
|
export * from './types';
|
|
6
6
|
export * from './enum';
|
package/lib/es/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @gingkoo/pandora-explorer v0.0.1-alpha.
|
|
2
|
+
* @gingkoo/pandora-explorer v0.0.1-alpha.98
|
|
3
3
|
*/
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import cx$1 from 'classnames';
|
|
@@ -1603,6 +1603,32 @@ function getMenu(key) {
|
|
|
1603
1603
|
function registerMenu(key, component) {
|
|
1604
1604
|
iconFactory[key] = component;
|
|
1605
1605
|
}
|
|
1606
|
+
function addMenuItem(key, menu) {
|
|
1607
|
+
let keys = [];
|
|
1608
|
+
if (Array.isArray(key)) {
|
|
1609
|
+
keys = key;
|
|
1610
|
+
} else {
|
|
1611
|
+
keys = [key];
|
|
1612
|
+
}
|
|
1613
|
+
keys.map(v => {
|
|
1614
|
+
let component = getMenu(v);
|
|
1615
|
+
let arr = [...component, ...menu];
|
|
1616
|
+
registerMenu(v, arr);
|
|
1617
|
+
});
|
|
1618
|
+
}
|
|
1619
|
+
function removeMenuItem(key, menuItem) {
|
|
1620
|
+
let keys = [];
|
|
1621
|
+
if (Array.isArray(key)) {
|
|
1622
|
+
keys = key;
|
|
1623
|
+
} else {
|
|
1624
|
+
keys = [key];
|
|
1625
|
+
}
|
|
1626
|
+
keys.map(v => {
|
|
1627
|
+
let component = getMenu(v);
|
|
1628
|
+
let arr = component.filter(item => !menuItem.includes(item.key));
|
|
1629
|
+
registerMenu(v, arr);
|
|
1630
|
+
});
|
|
1631
|
+
}
|
|
1606
1632
|
//
|
|
1607
1633
|
registerMenu('basis', [{
|
|
1608
1634
|
key: 'open',
|
|
@@ -1892,12 +1918,17 @@ function Menu(props) {
|
|
|
1892
1918
|
let upload = ['file-upload'];
|
|
1893
1919
|
let delect = ['remove'];
|
|
1894
1920
|
let arr = [];
|
|
1895
|
-
let _menu =
|
|
1921
|
+
let _menu = [];
|
|
1922
|
+
menu.map(v => {
|
|
1896
1923
|
let data = v;
|
|
1897
1924
|
if (loadMenu) {
|
|
1898
1925
|
data = loadMenu(v);
|
|
1899
1926
|
}
|
|
1900
|
-
|
|
1927
|
+
if (Array.isArray(data)) {
|
|
1928
|
+
_menu = [..._menu, ...data];
|
|
1929
|
+
} else {
|
|
1930
|
+
_menu.push(data);
|
|
1931
|
+
}
|
|
1901
1932
|
});
|
|
1902
1933
|
_menu.map(v => {
|
|
1903
1934
|
if (!store?.isEdit && edit.includes(v?.key)) {
|
|
@@ -5532,6 +5563,7 @@ function TableItem(props) {
|
|
|
5532
5563
|
ischeck,
|
|
5533
5564
|
onCheck,
|
|
5534
5565
|
onMenuClick,
|
|
5566
|
+
isdrag,
|
|
5535
5567
|
rename,
|
|
5536
5568
|
onRename,
|
|
5537
5569
|
onSelect,
|
|
@@ -5549,6 +5581,7 @@ function TableItem(props) {
|
|
|
5549
5581
|
}),
|
|
5550
5582
|
"data-id": !disable ? id : null,
|
|
5551
5583
|
"data-type": !disable ? props.type : null,
|
|
5584
|
+
"data-isdrag": isdrag === false ? false : true,
|
|
5552
5585
|
onContextMenu: e => {
|
|
5553
5586
|
e.stopPropagation();
|
|
5554
5587
|
e.preventDefault();
|
|
@@ -5951,7 +5984,7 @@ var Tree = /*#__PURE__*/forwardRef((props, _ref) => {
|
|
|
5951
5984
|
return size > w ? size : Math.ceil(w);
|
|
5952
5985
|
}, [width, _widht]);
|
|
5953
5986
|
useEffect(() => {
|
|
5954
|
-
let arr = cloneDeep(treeData);
|
|
5987
|
+
let arr = cloneDeep(treeData) || [];
|
|
5955
5988
|
arr = addLevel(arr, 0, type, filterData);
|
|
5956
5989
|
setData(arr);
|
|
5957
5990
|
}, [treeData, type, filterData]);
|
|
@@ -6843,7 +6876,7 @@ const SelectBox = props => {
|
|
|
6843
6876
|
* @param isregion//是否过滤区域
|
|
6844
6877
|
* @returns
|
|
6845
6878
|
*/
|
|
6846
|
-
function isSelectTarget(e, checkType, status, isregion) {
|
|
6879
|
+
function isSelectTarget(e, checkType, status, isregion, drag = true) {
|
|
6847
6880
|
let idx = [];
|
|
6848
6881
|
Array.from(document.querySelectorAll(selectClass)).filter(v => {
|
|
6849
6882
|
if (v.contains(e.target)) {
|
|
@@ -6852,6 +6885,10 @@ const SelectBox = props => {
|
|
|
6852
6885
|
dataDom = v.querySelector(dataClass);
|
|
6853
6886
|
}
|
|
6854
6887
|
let id = dataDom?.getAttribute('data-id');
|
|
6888
|
+
if (drag) {
|
|
6889
|
+
let isdrag = dataDom?.getAttribute('data-isdrag');
|
|
6890
|
+
if (isdrag == 'false') return;
|
|
6891
|
+
}
|
|
6855
6892
|
if (checkType) {
|
|
6856
6893
|
let type = dataDom?.getAttribute('data-type');
|
|
6857
6894
|
if (type !== checkType) return;
|
|
@@ -6943,7 +6980,7 @@ const SelectBox = props => {
|
|
|
6943
6980
|
});
|
|
6944
6981
|
onMouseup?.(e);
|
|
6945
6982
|
if (cur.current?.length) {
|
|
6946
|
-
let target = isSelectTarget(e, 'folder', '', true);
|
|
6983
|
+
let target = isSelectTarget(e, 'folder', '', true, false);
|
|
6947
6984
|
if (target?.[0] && !checks?.includes(target?.[0])) {
|
|
6948
6985
|
if (target?.[0] !== stageClickInfo.startkey) {
|
|
6949
6986
|
props.onMoveFile(checks, target?.[0]);
|
|
@@ -6971,7 +7008,7 @@ const SelectBox = props => {
|
|
|
6971
7008
|
}
|
|
6972
7009
|
}
|
|
6973
7010
|
/***************** 拖动 *****************/
|
|
6974
|
-
//拖动文件
|
|
7011
|
+
//拖动文件 (外部文件上传)
|
|
6975
7012
|
const handleDragOver = e => {
|
|
6976
7013
|
e?.preventDefault();
|
|
6977
7014
|
const {
|
|
@@ -7092,7 +7129,7 @@ const SelectBox = props => {
|
|
|
7092
7129
|
}
|
|
7093
7130
|
});
|
|
7094
7131
|
await Promise.all(promises);
|
|
7095
|
-
let data = isSelectTarget(e, 'folder', '', true);
|
|
7132
|
+
let data = isSelectTarget(e, 'folder', '', true, false);
|
|
7096
7133
|
handleDragLeave();
|
|
7097
7134
|
let key = null;
|
|
7098
7135
|
if (typeof data?.[0] == 'string' && store?.dataMap?.[data?.[0]]) {
|
|
@@ -7142,7 +7179,7 @@ const SelectBox = props => {
|
|
|
7142
7179
|
}
|
|
7143
7180
|
setIsDragUpload(true);
|
|
7144
7181
|
}
|
|
7145
|
-
/*********** 创建绘制页面
|
|
7182
|
+
/*********** 创建绘制页面 (拖动是执行样式) *************/
|
|
7146
7183
|
//创建文案
|
|
7147
7184
|
function createText() {
|
|
7148
7185
|
let _box = null;
|
|
@@ -7319,6 +7356,8 @@ const SelectBox = props => {
|
|
|
7319
7356
|
let type = dataDom?.getAttribute('data-type');
|
|
7320
7357
|
if (type !== checkType) return;
|
|
7321
7358
|
}
|
|
7359
|
+
let isdrag = dataDom?.getAttribute('data-isdrag');
|
|
7360
|
+
if (isdrag == 'false') return;
|
|
7322
7361
|
let id = dataDom?.getAttribute('data-id');
|
|
7323
7362
|
if (id && !idx.includes(id)) {
|
|
7324
7363
|
idx.push(id);
|
|
@@ -7910,7 +7949,7 @@ const SelectBox = props => {
|
|
|
7910
7949
|
store: store,
|
|
7911
7950
|
menu: menudata,
|
|
7912
7951
|
loadMenu: v => {
|
|
7913
|
-
let menu = loadMenu(v);
|
|
7952
|
+
let menu = loadMenu?.(v);
|
|
7914
7953
|
if (menu?.key == 'rename') return undefined;
|
|
7915
7954
|
if (menu?.key == 'copy') return undefined;
|
|
7916
7955
|
return menu;
|
|
@@ -9071,9 +9110,9 @@ const Layout = props => {
|
|
|
9071
9110
|
poi: isNavtab ? [200] : [0, 'max'],
|
|
9072
9111
|
fix: [true, false],
|
|
9073
9112
|
rang: [10, 350],
|
|
9074
|
-
children: [jsx(ExplorerMenu, {
|
|
9113
|
+
children: [isNavtab ? jsx(ExplorerMenu, {
|
|
9075
9114
|
...props
|
|
9076
|
-
}), jsxs("div", {
|
|
9115
|
+
}) : jsx(Fragment, {}), jsxs("div", {
|
|
9077
9116
|
className: 'frame-right',
|
|
9078
9117
|
children: [isHeader && jsx("div", {
|
|
9079
9118
|
className: 'frame-header',
|
|
@@ -9257,6 +9296,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9257
9296
|
accept,
|
|
9258
9297
|
selectedSuffix,
|
|
9259
9298
|
multiple = true,
|
|
9299
|
+
filelist,
|
|
9260
9300
|
expandkey: _expandkey,
|
|
9261
9301
|
createFile,
|
|
9262
9302
|
onCopy,
|
|
@@ -9268,6 +9308,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9268
9308
|
onExpand,
|
|
9269
9309
|
loadData: _loadData,
|
|
9270
9310
|
onRename: _onRename,
|
|
9311
|
+
onSelectFile,
|
|
9271
9312
|
onMenuClick: _onMenuClick,
|
|
9272
9313
|
onMoveFile: _onMoveFile
|
|
9273
9314
|
} = props;
|
|
@@ -9322,6 +9363,11 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9322
9363
|
},
|
|
9323
9364
|
createFolder: createFolder
|
|
9324
9365
|
}));
|
|
9366
|
+
useEffect(() => {
|
|
9367
|
+
if (Array.isArray(filelist)) {
|
|
9368
|
+
setCurList(filelist);
|
|
9369
|
+
}
|
|
9370
|
+
}, [filelist]);
|
|
9325
9371
|
/* ************ 挂载监听 **************** */
|
|
9326
9372
|
useEffect(() => {
|
|
9327
9373
|
window.addEventListener('click', closeMenu);
|
|
@@ -9424,7 +9470,9 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9424
9470
|
}, [curlist, curSelectFile, curInfo]);
|
|
9425
9471
|
//切换当前 文件目录时 需要清空的内容
|
|
9426
9472
|
useEffect(() => {
|
|
9473
|
+
if (!curInfo?.key) return;
|
|
9427
9474
|
setExpandkey([]);
|
|
9475
|
+
onExpand?.([]);
|
|
9428
9476
|
setCurSelect(null);
|
|
9429
9477
|
props?.onCheck?.([]);
|
|
9430
9478
|
}, [curInfo?.key]);
|
|
@@ -9446,6 +9494,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9446
9494
|
}, [dataMap]);
|
|
9447
9495
|
/* ************ 加载更新数据 **************** */
|
|
9448
9496
|
async function loadData(key, param, closeload = true) {
|
|
9497
|
+
if (!props?.loadData) return;
|
|
9449
9498
|
closeload && setLoading(ApiStatusEnum.LOADING);
|
|
9450
9499
|
let data = (await props.loadData?.(key, param)) || {};
|
|
9451
9500
|
if (data.status == 'Err') {
|
|
@@ -9657,7 +9706,8 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9657
9706
|
type: _type,
|
|
9658
9707
|
title: _type == 'folder' ? '新建文件夹' : `新建文件.${suffix}`,
|
|
9659
9708
|
create_file: true,
|
|
9660
|
-
suffix: suffix
|
|
9709
|
+
suffix: suffix,
|
|
9710
|
+
parent: params
|
|
9661
9711
|
});
|
|
9662
9712
|
setCurList(list);
|
|
9663
9713
|
}
|
|
@@ -9824,8 +9874,8 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9824
9874
|
if (curInfo || !isNavtab) {
|
|
9825
9875
|
setLoading(ApiStatusEnum.LOADING);
|
|
9826
9876
|
await createFile?.(value, param, info);
|
|
9827
|
-
await loadData(curInfo?.key || '', null, false);
|
|
9828
|
-
reloadNode(curInfo?.key || '', param);
|
|
9877
|
+
await loadData?.(curInfo?.key || '', null, false);
|
|
9878
|
+
// data && reloadNode(curInfo?.key || '', param);
|
|
9829
9879
|
setLoading(ApiStatusEnum.READY);
|
|
9830
9880
|
}
|
|
9831
9881
|
} else {
|
|
@@ -9843,7 +9893,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9843
9893
|
});
|
|
9844
9894
|
}
|
|
9845
9895
|
} else {
|
|
9846
|
-
|
|
9896
|
+
loadData(curInfo?.key || '');
|
|
9847
9897
|
updata(key, {
|
|
9848
9898
|
title: value
|
|
9849
9899
|
});
|
|
@@ -9911,7 +9961,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9911
9961
|
totalNum,
|
|
9912
9962
|
//icon
|
|
9913
9963
|
getIcons: Icons,
|
|
9914
|
-
loadMenu: props
|
|
9964
|
+
loadMenu: props?.loadMenu,
|
|
9915
9965
|
uploadFile,
|
|
9916
9966
|
createFolder,
|
|
9917
9967
|
reloadNode,
|
|
@@ -9930,7 +9980,13 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9930
9980
|
setLoading,
|
|
9931
9981
|
setReName: setRename,
|
|
9932
9982
|
setMenuRename,
|
|
9933
|
-
setCurSelect
|
|
9983
|
+
setCurSelect: v => {
|
|
9984
|
+
if (v == '_ending') {
|
|
9985
|
+
v = null;
|
|
9986
|
+
}
|
|
9987
|
+
setCurSelect(v);
|
|
9988
|
+
onSelectFile?.(v, dataMap?.[v || '']);
|
|
9989
|
+
},
|
|
9934
9990
|
setCurSelectFile,
|
|
9935
9991
|
setLoadKey,
|
|
9936
9992
|
setNavLoadKey,
|
|
@@ -9955,5 +10011,5 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9955
10011
|
});
|
|
9956
10012
|
});
|
|
9957
10013
|
|
|
9958
|
-
export { ApiStatusEnum, Explorer, Menu as ExplorerMenu, Icons, ImgSuffix, Explorer as default, registerMenu };
|
|
10014
|
+
export { ApiStatusEnum, Explorer, Menu as ExplorerMenu, Icons, ImgSuffix, addMenuItem, Explorer as default, registerMenu, removeMenuItem };
|
|
9959
10015
|
//# sourceMappingURL=index.js.map
|