@gingkoo/pandora-explorer 0.0.1-alpha.69 → 0.0.1-alpha.70

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.
@@ -2,5 +2,6 @@ import './index.less';
2
2
  import './components/tree/css/index.less';
3
3
  import { FC } from 'react';
4
4
  import { ExplorerProps } from './types';
5
+ export declare const Icons: (v: any, className: string, style?: any) => import("react/jsx-runtime").JSX.Element;
5
6
  declare const Explorer: FC<ExplorerProps>;
6
7
  export default Explorer;
package/lib/es/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import Explorer from './explorer';
2
2
  export { registerMenu } from './components/menu/menulist';
3
+ export { Icons } from './explorer';
3
4
  export * from './types';
4
5
  export * from './enum';
5
6
  export default Explorer;
package/lib/es/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @gingkoo/pandora-explorer v0.0.1-alpha.69
2
+ * @gingkoo/pandora-explorer v0.0.1-alpha.70
3
3
  */
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import cx$1 from 'classnames';
@@ -1468,7 +1468,7 @@ const ExplorerHead = props => {
1468
1468
  className: 'tools',
1469
1469
  children: [jsxs("div", {
1470
1470
  className: 'tools-left',
1471
- children: [jsx("div", {
1471
+ children: [!isEdit && jsx("div", {
1472
1472
  className: cx('btn', {
1473
1473
  hidden: !isEdit
1474
1474
  }),
@@ -1478,7 +1478,7 @@ const ExplorerHead = props => {
1478
1478
  children: jsx("span", {
1479
1479
  children: "\u65B0\u5EFA\u6587\u4EF6\u5939"
1480
1480
  })
1481
- }), jsx("div", {
1481
+ }), !isUpload && jsx("div", {
1482
1482
  className: cx('btn', {
1483
1483
  hidden: !isUpload
1484
1484
  }),
@@ -5514,6 +5514,7 @@ var TreeItem = (props => {
5514
5514
  onRename?.(title);
5515
5515
  }
5516
5516
  if (e.key === 'Escape') {
5517
+ setTitle(props.title);
5517
5518
  onRename?.(false);
5518
5519
  }
5519
5520
  },
@@ -5588,7 +5589,7 @@ function NotData() {
5588
5589
  }
5589
5590
 
5590
5591
  //添加层级
5591
- const addLevel = (data, levelIndex = 0, filedata) => {
5592
+ const addLevel = (data, levelIndex = 0, type, filedata) => {
5592
5593
  let arr = data;
5593
5594
  if (filedata) {
5594
5595
  arr = arr.filter(v => filedata?.(v));
@@ -5597,14 +5598,20 @@ const addLevel = (data, levelIndex = 0, filedata) => {
5597
5598
  while (i < arr.length) {
5598
5599
  let item = arr[i];
5599
5600
  item['level'] = levelIndex;
5601
+ if (type == 'tree' && item?.hasFolder == 0) {
5602
+ item['isLeaf'] = true;
5603
+ }
5604
+ if (item?.hasFolder == 0 && item?.hasFile == 0) {
5605
+ item['isLeaf'] = true;
5606
+ }
5600
5607
  if (!item?.api && !item?.children) {
5601
5608
  item['isLeaf'] = true;
5602
5609
  }
5603
5610
  if (Array.isArray(item.children) && item.children.length > 0) {
5604
5611
  if (filedata) {
5605
- item.children = addLevel(item.children, levelIndex + 1, filedata);
5612
+ item.children = addLevel(item.children, levelIndex + 1, type, filedata);
5606
5613
  } else {
5607
- addLevel(item.children, levelIndex + 1, filedata);
5614
+ addLevel(item.children, levelIndex + 1, type, filedata);
5608
5615
  }
5609
5616
  }
5610
5617
  i++;
@@ -5639,6 +5646,7 @@ var Tree = (props => {
5639
5646
  expandedKeys,
5640
5647
  width: _widht,
5641
5648
  columns,
5649
+ rename,
5642
5650
  isload = false,
5643
5651
  ischeck = false,
5644
5652
  showLine = true,
@@ -5656,12 +5664,12 @@ var Tree = (props => {
5656
5664
  loadData,
5657
5665
  filterData,
5658
5666
  onExpand,
5667
+ setRename,
5659
5668
  onLoad
5660
5669
  } = props;
5661
5670
  const ref = useRef(null);
5662
5671
  const tree = useRef(null);
5663
5672
  const header = useRef(null);
5664
- const [rename, setRename] = useState(null);
5665
5673
  const [data, setData] = useState(treeData);
5666
5674
  const [motionshow, seTmotionShow] = useState(animation);
5667
5675
  const [width, setWidth] = useState([]);
@@ -5677,7 +5685,7 @@ var Tree = (props => {
5677
5685
  }, [width, _widht]);
5678
5686
  useEffect(() => {
5679
5687
  let arr = cloneDeep(treeData);
5680
- arr = addLevel(arr, 0, filterData);
5688
+ arr = addLevel(arr, 0, type, filterData);
5681
5689
  setData(arr);
5682
5690
  }, [treeData, type, filterData]);
5683
5691
  useEffect(() => {
@@ -5878,6 +5886,7 @@ var Tree = (props => {
5878
5886
  onExpand?.(v);
5879
5887
  },
5880
5888
  onDoubleClick: (v, node) => {
5889
+ if (rename) return;
5881
5890
  v.stopPropagation();
5882
5891
  onDblclick && onDblclick?.(node.key, node);
5883
5892
  },
@@ -6107,6 +6116,7 @@ const ExplorerMenu = props => {
6107
6116
  isload: true,
6108
6117
  treeData: data,
6109
6118
  height: height,
6119
+ rename: store.menuRename,
6110
6120
  loadedKeys: store.nav_loadKey,
6111
6121
  expandedKeys: eventKey,
6112
6122
  selectedKeys: [select],
@@ -6148,7 +6158,8 @@ const ExplorerMenu = props => {
6148
6158
  },
6149
6159
  onExpand: v => {
6150
6160
  setEventKey(v);
6151
- }
6161
+ },
6162
+ setRename: store.setMenuRename
6152
6163
  })
6153
6164
  });
6154
6165
  };
@@ -6208,6 +6219,7 @@ function Tile(props) {
6208
6219
  const ref = useRef(null);
6209
6220
  const {
6210
6221
  store,
6222
+ rename,
6211
6223
  className,
6212
6224
  height,
6213
6225
  width,
@@ -6220,9 +6232,9 @@ function Tile(props) {
6220
6232
  onSelect,
6221
6233
  onDblclick,
6222
6234
  onMenuClick,
6223
- onRename
6235
+ onRename,
6236
+ setRename
6224
6237
  } = props;
6225
- const [rekey, setRekey] = useState(null);
6226
6238
  const [itemSize, setSize] = useState(0);
6227
6239
  const [list, setList] = useState([]);
6228
6240
  const [col, setCol] = useState(9);
@@ -6281,7 +6293,7 @@ function Tile(props) {
6281
6293
  } else {
6282
6294
  menudata = getMenu('');
6283
6295
  }
6284
- let isname = rekey == v.key || v?.create_file;
6296
+ let isname = rename == v.key || v?.create_file;
6285
6297
  return jsxs("div", {
6286
6298
  "data-id": v.key,
6287
6299
  "data-type": v.type,
@@ -6321,7 +6333,7 @@ function Tile(props) {
6321
6333
  loadMenu: loadMenu,
6322
6334
  onChange: key => {
6323
6335
  if (key == 'rename') {
6324
- setRekey(v.key);
6336
+ setRename(v.key);
6325
6337
  return;
6326
6338
  }
6327
6339
  onMenuClick?.(key, v);
@@ -6381,11 +6393,11 @@ function Tile(props) {
6381
6393
  return;
6382
6394
  }
6383
6395
  if (e.target?.value === v.title) {
6384
- setRekey(null);
6396
+ setRename(null);
6385
6397
  return;
6386
6398
  }
6387
6399
  onRename?.(v.key, e.target.value, v);
6388
- setRekey(null);
6400
+ setRename(null);
6389
6401
  },
6390
6402
  onMouseDown: e => {
6391
6403
  e.stopPropagation();
@@ -6591,6 +6603,7 @@ const SelectBox = props => {
6591
6603
  }, 300);
6592
6604
  }
6593
6605
  }
6606
+ /*** 拖动 ***/
6594
6607
  //拖动文件
6595
6608
  const handleDragOver = e => {
6596
6609
  e.preventDefault();
@@ -6631,10 +6644,10 @@ const SelectBox = props => {
6631
6644
  setIsDragFile(false);
6632
6645
  e.preventDefault();
6633
6646
  e.stopPropagation();
6634
- const items = e.dataTransfer.items;
6647
+ const items = Array.from(e.dataTransfer.items);
6635
6648
  let files = [];
6636
6649
  let empty = [];
6637
- const getFile = (item, path) => new Promise((resolve, reject) => {
6650
+ const getFile = async (item, path) => new Promise((resolve, reject) => {
6638
6651
  item.file(file => {
6639
6652
  resolve({
6640
6653
  file,
@@ -6670,12 +6683,13 @@ const SelectBox = props => {
6670
6683
  }
6671
6684
  } catch (error) {}
6672
6685
  };
6673
- for (let i = 0; i < items.length; i++) {
6674
- const item = items[i].webkitGetAsEntry();
6686
+ const promises = items.map(async entry => {
6687
+ const item = entry.webkitGetAsEntry();
6675
6688
  if (item) {
6676
- await traverseFileTree(item, '');
6689
+ return traverseFileTree(item, '');
6677
6690
  }
6678
- }
6691
+ });
6692
+ await Promise.all(promises);
6679
6693
  let data = isSelectTarget(e, 'folder', 'remove');
6680
6694
  let key = null;
6681
6695
  if (ref.current.contains(e.target)) {
@@ -6712,6 +6726,7 @@ const SelectBox = props => {
6712
6726
  }
6713
6727
  setIsDragFile(true);
6714
6728
  }
6729
+ /****** 创建绘制页面 *******/
6715
6730
  //创建文案
6716
6731
  function createText() {
6717
6732
  let _box = null;
@@ -7324,6 +7339,9 @@ const Layout$1 = props => {
7324
7339
  function onRename(key, value, info) {
7325
7340
  _onRename(key, value, info, 'main');
7326
7341
  }
7342
+ function setRename(key) {
7343
+ store.setReName(key);
7344
+ }
7327
7345
  return jsxs("div", {
7328
7346
  className: 'file-continer-main',
7329
7347
  onClick: () => {
@@ -7376,6 +7394,7 @@ const Layout$1 = props => {
7376
7394
  }), store?.menutype == 'table' && jsx(Tree, {
7377
7395
  type: 'table',
7378
7396
  checks: checks,
7397
+ rename: store.reamekey,
7379
7398
  selectedKeys: [store.curSelect],
7380
7399
  expandedKeys: store.expandkey,
7381
7400
  loadedKeys: store.loadkey,
@@ -7417,6 +7436,9 @@ const Layout$1 = props => {
7417
7436
  onDblclick: _onDblclick,
7418
7437
  loadData: loadNode,
7419
7438
  loadMenu: loadMenu,
7439
+ setRename: v => {
7440
+ setRename(v);
7441
+ },
7420
7442
  onLoad: v => {
7421
7443
  store.setLoadKey(v);
7422
7444
  },
@@ -7430,6 +7452,7 @@ const Layout$1 = props => {
7430
7452
  width: width,
7431
7453
  store: store,
7432
7454
  height: isNavtab ? height - 85 : height,
7455
+ rename: store.reamekey,
7433
7456
  select: store.curSelect,
7434
7457
  size: store.menuSize,
7435
7458
  data: store.curlist,
@@ -7443,6 +7466,9 @@ const Layout$1 = props => {
7443
7466
  onDblclick: _onDblclick,
7444
7467
  onRename: onRename,
7445
7468
  onMenuClick: onMenuClick,
7469
+ setRename: v => {
7470
+ setRename(v);
7471
+ },
7446
7472
  loadData: loadData,
7447
7473
  loadMenu: loadMenu
7448
7474
  })]
@@ -7739,6 +7765,59 @@ Object.defineProperty(Array.prototype, 'myforeach', {
7739
7765
  },
7740
7766
  enumerable: false
7741
7767
  });
7768
+ const Icons = (v, className, style) => {
7769
+ const IconMap = new Map([['favorite', jsx(FavoriteSvg, {})], ['space', jsx(SpaceSvg, {})], ['netdisk', jsx(NetdiskSvg, {})], ['album', jsx(AlbumSvg, {})], ['recycle', jsx(RecycleSvg, {})], ['recently', jsx(RecentlySvg, {})], ['coordination', jsx(LinkSvg, {})], ['text', jsx(TextSvg, {})], ['share', jsx(ShareLinkSvg, {})]]);
7770
+ if (v?.label) {
7771
+ return jsx("span", {
7772
+ className: cx$1(`explorer-label-icon ${className || ''}`),
7773
+ style: {
7774
+ ...(style || {})
7775
+ },
7776
+ children: jsx("div", {
7777
+ style: {
7778
+ background: 'red'
7779
+ }
7780
+ })
7781
+ });
7782
+ }
7783
+ if (v?.key && IconMap.has(v?.key)) {
7784
+ return jsx("span", {
7785
+ className: cx$1(`${className || ''}`),
7786
+ style: {
7787
+ ...(style || {})
7788
+ },
7789
+ children: IconMap.get(v.key)
7790
+ });
7791
+ }
7792
+ if (v?.pic && typeof v?.pic == 'string') {
7793
+ return jsxs("span", {
7794
+ className: cx$1('explorer_icon', {
7795
+ [className || '']: className
7796
+ }),
7797
+ children: [jsx("img", {
7798
+ draggable: 'false',
7799
+ style: {
7800
+ ...(style || {})
7801
+ },
7802
+ src: v.pic
7803
+ }), v?.status && jsx("span", {
7804
+ className: cx$1(`explorer_icon-state ${v?.status} `)
7805
+ })]
7806
+ });
7807
+ }
7808
+ if (v?.type == 'folder') {
7809
+ return jsx(SuffixIcon, {
7810
+ className: cx$1(`${className || ''}`),
7811
+ status: v?.status,
7812
+ suffix: 'folder'
7813
+ });
7814
+ }
7815
+ return jsx(SuffixIcon, {
7816
+ className: cx$1(`${className || ''}`),
7817
+ status: v?.status,
7818
+ suffix: v?.suffix || 'unknown'
7819
+ });
7820
+ };
7742
7821
  const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
7743
7822
  const {
7744
7823
  data,
@@ -7750,6 +7829,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
7750
7829
  isEdit = true,
7751
7830
  isDownload = true,
7752
7831
  isNavtab = true,
7832
+ checks,
7753
7833
  createFile,
7754
7834
  onCopy,
7755
7835
  onShear,
@@ -7769,7 +7849,9 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
7769
7849
  const [curSelect, setCurSelect] = useState(null); //当前选中信息
7770
7850
  const [curSelectFile, setCurSelectFile] = useState(''); //当前选中的文件
7771
7851
  const [menuSize, setMenuSize] = useState(80);
7772
- const [reamekey, setReName] = useState(null);
7852
+ //重命名 reamekey 内容 menuRename 导航
7853
+ const [reamekey, setRename] = useState(null);
7854
+ const [menuRename, setMenuRename] = useState(null);
7773
7855
  const [logindex, setLogIndex] = useState(0); //前进
7774
7856
  const [log, setLog] = useState([]); //后退
7775
7857
  const [expandkey, setExpandkey] = useState([]);
@@ -7818,7 +7900,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
7818
7900
  return () => {
7819
7901
  window.removeEventListener('keydown', handleKeyDown);
7820
7902
  };
7821
- }, [curSelect, dataMap, isDelect, isEdit]);
7903
+ }, [curSelect, dataMap, isDelect, isEdit, reamekey]);
7822
7904
  const handleKeyDown = e => {
7823
7905
  if (e.altKey && e.key === '3') {
7824
7906
  setMenutype('column');
@@ -7846,7 +7928,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
7846
7928
  }
7847
7929
  }
7848
7930
  if ((e.ctrlKey || e.metaKey) && e.key === 'v') {
7849
- if (!isEdit) return;
7931
+ if (!isEdit || reamekey || menuRename) return;
7850
7932
  curInfo && onPaste?.(curInfo);
7851
7933
  curInfo && reloadNode(curInfo.key);
7852
7934
  }
@@ -7856,59 +7938,6 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
7856
7938
  boxMenu.current = null;
7857
7939
  menu.current = null;
7858
7940
  };
7859
- const Icons = (v, className, style) => {
7860
- const IconMap = new Map([['favorite', jsx(FavoriteSvg, {})], ['space', jsx(SpaceSvg, {})], ['netdisk', jsx(NetdiskSvg, {})], ['album', jsx(AlbumSvg, {})], ['recycle', jsx(RecycleSvg, {})], ['recently', jsx(RecentlySvg, {})], ['coordination', jsx(LinkSvg, {})], ['text', jsx(TextSvg, {})], ['share', jsx(ShareLinkSvg, {})]]);
7861
- if (v?.label) {
7862
- return jsx("span", {
7863
- className: cx$1(`explorer-label-icon ${className || ''}`),
7864
- style: {
7865
- ...(style || {})
7866
- },
7867
- children: jsx("div", {
7868
- style: {
7869
- background: 'red'
7870
- }
7871
- })
7872
- });
7873
- }
7874
- if (v?.key && IconMap.has(v?.key)) {
7875
- return jsx("span", {
7876
- className: cx$1(`${className || ''}`),
7877
- style: {
7878
- ...(style || {})
7879
- },
7880
- children: IconMap.get(v.key)
7881
- });
7882
- }
7883
- if (v?.pic && typeof v?.pic == 'string') {
7884
- return jsxs("span", {
7885
- className: cx$1('explorer_icon', {
7886
- [className || '']: className
7887
- }),
7888
- children: [jsx("img", {
7889
- draggable: 'false',
7890
- style: {
7891
- ...(style || {})
7892
- },
7893
- src: v.pic
7894
- }), v?.status && jsx("span", {
7895
- className: cx$1(`explorer_icon-state ${v?.status} `)
7896
- })]
7897
- });
7898
- }
7899
- if (v?.type == 'folder') {
7900
- return jsx(SuffixIcon, {
7901
- className: cx$1(`${className || ''}`),
7902
- status: v?.status,
7903
- suffix: 'folder'
7904
- });
7905
- }
7906
- return jsx(SuffixIcon, {
7907
- className: cx$1(`${className || ''}`),
7908
- status: v?.status,
7909
- suffix: v?.suffix || 'unknown'
7910
- });
7911
- };
7912
7941
  useEffect(() => {
7913
7942
  if (!isNavtab) return;
7914
7943
  if (!curInfo) {
@@ -7935,6 +7964,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
7935
7964
  useEffect(() => {
7936
7965
  setExpandkey([]);
7937
7966
  setCurSelect(null);
7967
+ props?.onCheck?.([]);
7938
7968
  }, [curInfo?.key]);
7939
7969
  useEffect(() => {
7940
7970
  if (isNavtab) return;
@@ -8177,7 +8207,11 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
8177
8207
  }
8178
8208
  async function onMenuClick(key, param, type) {
8179
8209
  if (key == 'remove') {
8180
- await onDelect?.(param);
8210
+ if (type == 'menu') {
8211
+ await onDelect?.([param.key], param);
8212
+ } else {
8213
+ await onDelect?.(checks || [], param);
8214
+ }
8181
8215
  if (param.key == curInfo?.key) {
8182
8216
  data?.[0]?.key && loadData(data?.[0]?.key);
8183
8217
  } else {
@@ -8296,6 +8330,7 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
8296
8330
  checkType,
8297
8331
  checkMode,
8298
8332
  reamekey,
8333
+ menuRename,
8299
8334
  curSelect,
8300
8335
  curSelectFile,
8301
8336
  loadkey,
@@ -8319,7 +8354,8 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
8319
8354
  setMenutype,
8320
8355
  setPathDisplay,
8321
8356
  setLoading,
8322
- setReName,
8357
+ setReName: setRename,
8358
+ setMenuRename,
8323
8359
  setCurSelect,
8324
8360
  setCurSelectFile,
8325
8361
  setLoadKey,
@@ -8340,5 +8376,5 @@ const Explorer = /*#__PURE__*/forwardRef((props, ref) => {
8340
8376
  });
8341
8377
  });
8342
8378
 
8343
- export { ApiStatusEnum, Explorer as default, registerMenu };
8379
+ export { ApiStatusEnum, Icons, Explorer as default, registerMenu };
8344
8380
  //# sourceMappingURL=index.js.map