@gingkoo/pandora-explorer 0.1.0 → 0.1.2
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/icons/index.d.ts +1 -1
- package/lib/es/index.js +14 -5
- package/lib/es/index.js.map +1 -1
- package/lib/es/types.d.ts +4 -4
- package/package.json +1 -1
package/lib/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../node_modules/style-inject/dist/style-inject.es.js","../../src/enum.ts","../../src/utils/helper.tsx","../../src/store.tsx","../../src/components/icons/index.tsx","../../src/css.ts","../../src/components/Draggable/index.tsx","../../src/components/Dropdown/index.tsx","../../src/components/menu/menulist.tsx","../../src/components/menu/index.tsx","../../src/layout/components/explorer-head/index.tsx","../../src/components/tree/components/contextTypes.ts","../../src/components/tree/components/DropIndicator.tsx","../../src/components/tree/components/Indent.tsx","../../src/components/tree/components/utils/keyUtil.ts","../../src/components/tree/components/utils/treeUtil.ts","../../src/components/tree/components/TreeNode.tsx","../../src/components/tree/components/useUnmount.ts","../../src/components/tree/components/MotionTreeNode.tsx","../../src/components/tree/components/utils/diffUtil.ts","../../src/components/tree/components/NodeList.tsx","../../src/components/tree/components/util.tsx","../../src/components/tree/components/utils/conductUtil.ts","../../src/components/tree/components/Tree.tsx","../../src/components/tree/tree-item-table.tsx","../../src/components/tree/tree-item.tsx","../../src/components/notdata/index.tsx","../../src/components/tree/index.tsx","../../src/layout/components/explorer-menu/index.tsx","../../src/components/virtualScroll/index.tsx","../../src/components/tile/index.tsx","../../src/components/select-box/index.tsx","../../src/components/columns/index.tsx","../../src/layout/components/explorer-main/index.tsx","../../src/components/details/index.tsx","../../src/layout/components/explorer-info/index.tsx","../../src/layout/index.tsx","../../src/explorer.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","export const enum fileType {\n 'folder' = 'folder',\n 'file' = 'file',\n}\n\n// 接口状态\nexport enum ApiStatusEnum {\n READY = 1,\n LOADING,\n ERROR,\n EMPTY,\n SUCCESS,\n}\n\nexport const ImgSuffix = ['png', 'jpg', 'jpge', 'jpeg'];\n","export const getKey = (randomLength: number = 3) => {\n let str = Number(Math.random().toString().substr(2, randomLength) + Date.now()).toString(36);\n return str.toUpperCase();\n};\nexport const convertBytesToSize = (bytes: number = 2) => {\n const thresh = 1024;\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let u = -1;\n do {\n bytes /= thresh;\n ++u;\n } while (Math.abs(bytes) >= thresh && u < units.length - 1);\n return bytes.toFixed(1) + ' ' + units[u];\n};\n\nexport const DateFormat = (date?: number | string) => {\n return typeof date == 'number' ? new Date(date).toISOString().slice(0, 10) : date || '';\n};\n","import React, { createContext } from 'react';\nimport { ApiStatusEnum } from './enum';\nimport { ExplorerItem, ExplorerProps, ColumnsProps } from './types';\n\ninterface ExampleContextProps extends ExplorerProps {\n pathDisplay: string;\n menutype: 'tile' | 'table' | 'column';\n menuSize: number;\n infoshow: boolean;\n curlist: ExplorerItem[];\n log?: string[];\n logindex: number;\n\n loading?: ApiStatusEnum;\n curInfo?: ExplorerItem | null;\n dataMap: { [key: string]: ExplorerItem } | null;\n reamekey: string | null;\n menuRename: string | null;\n curSelect: string | null;\n curSelectFile: string | null;\n loadkey: string[];\n nav_loadKey: string[];\n expand?: string[];\n expandkey: string[];\n nav_expandkey: string[];\n shift: Boolean;\n control: Boolean;\n totalNum: number;\n createState: Boolean;\n\n columns?: ColumnsProps[];\n\n getIcons: (v: ExplorerItem, className: string, style?: any) => JSX.Element;\n uploadFile: any;\n createFolder: any;\n reloadNode: (key: string) => void;\n openMenu: (props: any, param?: ExplorerItem | null) => void;\n closeMenu: () => void;\n\n setTotalNum: React.Dispatch<React.SetStateAction<number>>;\n setLog: React.Dispatch<React.SetStateAction<string[]>>;\n setLogIndex: React.Dispatch<React.SetStateAction<number>>;\n setCurInfo: React.Dispatch<React.SetStateAction<ExplorerItem | null>>;\n setMenuSize: React.Dispatch<React.SetStateAction<number>>;\n setCurList: React.Dispatch<React.SetStateAction<ExplorerItem[]>>;\n setInfoShow: React.Dispatch<React.SetStateAction<boolean>>;\n setLoading: React.Dispatch<React.SetStateAction<ApiStatusEnum>>;\n setPathDisplay: React.Dispatch<React.SetStateAction<string>>;\n setMenutype: React.Dispatch<React.SetStateAction<'tile' | 'table' | 'column'>>;\n setReName: React.Dispatch<React.SetStateAction<string | null>>;\n setMenuRename: React.Dispatch<React.SetStateAction<string | null>>;\n setCurSelect: (v: string | null) => void;\n setCurSelectFile: React.Dispatch<React.SetStateAction<string | null>>;\n setLoadKey: React.Dispatch<React.SetStateAction<string[]>>;\n setNavLoadKey: React.Dispatch<React.SetStateAction<string[]>>;\n setExpandkey: React.Dispatch<React.SetStateAction<string[]>>;\n setExpandNavKey: React.Dispatch<React.SetStateAction<string[]>>;\n setDataMap: React.Dispatch<React.SetStateAction<{ [key: string]: ExplorerItem } | null>>;\n}\n\nexport const ExampleContext: React.Context<ExampleContextProps> = createContext<any>(null);\n","import './index.less';\nimport cx from 'classnames';\n\nexport const IconsMap = new Map([\n ['favorite', <FavoriteSvg />],\n ['space', <SpaceSvg />],\n ['netdisk', <NetdiskSvg />],\n ['album', <AlbumSvg />],\n ['recycle', <RecycleSvg />],\n ['recently', <RecentlySvg />],\n ['coordination', <LinkSvg />],\n ['text', <TextSvg />],\n ['share', <ShareLinkSvg />],\n]);\n\n//文件\nexport function FavoriteSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M640 211.2l41.6 89.6 249.6 38.4c25.6 6.4 48 22.4 54.4 44.8 9.6 25.6 3.2 54.4-16 70.4l-182.4 188.8 44.8 262.4c3.2 25.6-6.4 54.4-28.8 67.2-12.8 6.4-25.6 12.8-38.4 12.8-12.8 0-22.4-3.2-35.2-9.6L512 857.6l-108.8 60.8c-76.8-121.6-96-284.8-60.8-409.6 41.6-153.6 147.2-262.4 297.6-297.6z'\n fill='#FFECB3'\n ></path>\n <path\n d='M531.2 112l105.6 227.2c3.2 12.8 16 19.2 28.8 22.4l243.2 35.2c9.6 0 19.2 3.2 22.4 9.6 3.2 6.4-3.2 19.2-9.6 25.6L742.4 608c-9.6 9.6-12.8 22.4-12.8 35.2l44.8 256c3.2 6.4 3.2 19.2-6.4 28.8-9.6 6.4-25.6 0-28.8-3.2l-208-118.4c-9.6-3.2-12.8-6.4-19.2-6.4-6.4 0-12.8 3.2-19.2 6.4l-211.2 118.4c-3.2 3.2-19.2 9.6-28.8 3.2-9.6-9.6-6.4-16-6.4-25.6l41.6-256c6.4-16 0-32-9.6-38.4L96 432c-3.2-6.4-12.8-16-9.6-25.6 3.2-9.6 12.8-12.8 22.4-16l246.4-38.4c12.8-3.2 25.6-9.6 32-22.4l105.6-220.8c3.2-6.4 9.6-22.4 19.2-22.4 6.4 6.4 12.8 9.6 19.2 25.6zM512 28.8c-28.8 0-51.2 16-60.8 41.6l-108.8 233.6-249.6 38.4c-25.6 6.4-48 22.4-54.4 44.8-9.6 25.6-3.2 54.4 16 70.4l182.4 188.8L192 908.8c-3.2 25.6 6.4 54.4 28.8 67.2 12.8 6.4 25.6 12.8 38.4 12.8 12.8 0 22.4-3.2 35.2-9.6l217.6-121.6 217.6 121.6c12.8 6.4 22.4 9.6 35.2 9.6 12.8 0 28.8-6.4 38.4-12.8 19.2-16 32-41.6 28.8-67.2l-44.8-262.4 182.4-188.8c19.2-19.2 25.6-44.8 16-70.4-9.6-25.6-28.8-44.8-54.4-44.8l-249.6-38.4-108.8-233.6c-19.2-25.6-32-41.6-60.8-41.6z'\n fill='#FFC107'\n ></path>\n </svg>\n );\n}\n//个人空间\nexport function SpaceSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M155.75222656 382.06612461V849.50070312a37.49976563 37.49976563 0 0 0 37.49976563 37.49976563h637.49601562a37.49976563 37.49976563 0 0 0 37.49976563-37.49976563V382.06612461L512 144.58010908 155.75222656 382.06612461z m-58.31213554-51.26217979l393.74753906-262.49835937a37.49976563 37.49976563 0 0 1 41.62473984 0l393.74753906 262.49835937A37.49976563 37.49976563 0 0 1 943.24730469 362.00375v487.49695313a112.49929687 112.49929687 0 0 1-112.49929688 112.49929687H193.25199219a112.49929687 112.49929687 0 0 1-112.49929688-112.49929687V362.00375a37.49976563 37.49976563 0 0 1 16.68739571-31.19980518z'\n fill='#ffac33'\n ></path>\n <path\n d='M736.99859375 718.25152344m-224.99859375 0a224.99859375 224.99859375 0 1 0 449.9971875 0 224.99859375 224.99859375 0 1 0-449.9971875 0Z'\n fill='#ffdcb3'\n ></path>\n <path\n d='M437.00046875 924.50023437a37.49976563 37.49976563 0 1 1-74.99953125 1e-8V708.87658203c0-78.43076016 67.85582607-140.62412109 149.9990625-140.62412109s149.9990625 62.19336094 149.9990625 140.62412109V924.50023437a37.49976563 37.49976563 0 1 1-74.99953125 1e-8V708.87658203c0-35.47477793-32.88729463-65.62458984-74.99953125-65.62458984s-74.99953125 30.14981192-74.99953125 65.62458984V924.50023437z'\n fill='#ffac33'\n ></path>\n </svg>\n );\n}\n//网盘\nexport function NetdiskSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M950.66666667 263C941.66666667 254 930.41666667 249.5 919.16666667 249.5H476.66666667L377.66666667 150.5c-3.75-3.75-9-7.5-14.25-9.75-6-2.25-11.25-3.75-17.25-3.75H109.16666667c-11.25 0-23.25 4.5-31.5 13.5S64.16666667 170.75 64.16666667 182v262.5h900V294.5c0-11.25-4.5-23.25-13.5-31.5z'\n fill='#FFD766'\n ></path>\n <path\n d='M919.16666667 894.5H109.16666667c-24.75 0-45-20.25-45-45V369.5h900v480c0 24.75-20.25 45-45 45z'\n fill='#FFAC33'\n ></path>\n <path\n d='M709.16666667 790.25c0 9.75-7.5 17.25-17.25 17.25H351.41666667c-9.75 0-17.25-7.5-17.25-17.25 0 0 0-63.75 46.5-87 30-15 18-3 54.75-18 36-15 45-20.25 45-20.25v-34.5s-13.5-10.5-18-42.75c-8.25 2.25-11.25-9.75-12-18-0.75-7.5-5.25-31.5 5.25-29.25-2.25-15.75-3.75-30.75-3-38.25 2.25-27 28.5-54.75 68.25-57 46.5 2.25 65.25 30 68.25 57 0.75 7.5-0.75 21.75-3 38.25 10.5-2.25 6 21.75 5.25 29.25-0.75 8.25-3 20.25-12 18-4.5 33-18 42.75-18 42.75v34.5s8.25 5.25 45 20.25c36 15 24.75 3.75 54.75 18.75 48 21.75 48 86.25 48 86.25z'\n fill='#FFDCB3'\n ></path>\n </svg>\n );\n}\n\n//相册\nexport function AlbumSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M892.5344 179.0336H131.46666667a47.568 47.568 0 0 0-47.56906667 47.568v459.80586667h856.20053333V226.60266667a47.568 47.568 0 0 0-47.56266666-47.568z'\n fill='#98DCF0'\n ></path>\n <path\n d='M616.4096 495.9872l-165.27573333 190.42133333h330.5248l-165.248-190.42133333z'\n fill='#699B54'\n ></path>\n <path\n d='M587.80373333 686.4128L367.49866667 432.57066667 147.18933333 686.4128h-63.2928v110.98026667a47.568 47.568 0 0 0 47.56906667 47.57333333h761.06346667c26.2688 0 47.568-21.2992 47.568-47.57333333V686.40746667l-352.29333334 0.00533333z'\n fill='#80BB67'\n ></path>\n <path\n d='M718.11626667 337.5872c-0.016 35.02293333 28.36586667 63.4272 63.3952 63.44426667 35.02293333 0.01066667 63.42826667-28.37226667 63.44426666-63.40053334v-0.04373333c0.01066667-35.02933333-28.3712-63.43466667-63.3952-63.44533333-35.02933333-0.01066667-63.4336 28.37226667-63.44533333 63.39626666v0.04906667z'\n fill='#FFE68E'\n ></path>\n </svg>\n );\n}\n\n//回收站\nexport function RecycleSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path d='M314.2 128h418.5v115.6H314.2z' fill='#92C4FF'></path>\n <path\n d='M608.4 767.7c-17.7 0-32-14.3-32-31.9V384c0-17.7 14.3-32 32-32s32 14.3 32 32v351.7c0 17.7-14.3 32-32 32 0.1 0 0 0 0 0z m-191.9 0c-17.6 0-31.9-14.3-31.9-31.9V384c0-17.6 14.3-32 31.9-32 17.6 0 32 14.3 32 31.9v351.8c0.1 17.7-14.2 32-32 32 0.1 0 0.1 0 0 0z m511.7-543.6H768.3v-63.9c0-52.9-42.7-95.9-95.2-95.9H352.6c-53 0.1-95.9 43-95.9 95.9v64H96.8c-17.6 0-31.9 14.3-31.9 32s14.3 31.9 31.9 31.9h831.4c17.7 0 32-14.3 32-32s-14.3-32-32-32z m-607.6-63.9c0-17.6 14.4-32 32-32h320.5c17.5 0 31.3 14.1 31.3 32v64H320.6v-64z'\n fill='#4383DB'\n ></path>\n <path\n d='M736.5 959.6H288.7c-52.9-0.1-95.9-43-95.9-95.9V383.5c-0.6-17.7 13.2-32.5 30.8-33.1 17.7-0.6 32.5 13.2 33.1 30.8V863.6c0 17.6 14.3 31.9 32 31.9h447.7c17.6 0 31.9-14.3 31.9-31.9V384.8c-0.6-17.7 13.2-32.5 30.8-33.1 17.7-0.6 32.5 13.2 33.1 30.8v481.1c0.1 53-42.8 95.9-95.7 96z'\n fill='#4383DB'\n ></path>\n </svg>\n );\n}\n\n//最近访问\nexport function RecentlySvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M512 512m-469.333333 0a469.333333 469.333333 0 1 0 938.666666 0 469.333333 469.333333 0 1 0-938.666666 0Z'\n fill='#2070E5'\n ></path>\n <path\n d='M512 133.333333c-212.074667 0-384 171.925333-384 384s171.925333 384 384 384 384-171.925333 384-384-171.925333-384-384-384z m39.616 496.042667h-89.152c-11.733333 0-21.333333-9.6-21.333333-21.333333v-51.114667-235.413333c0-11.733333 9.6-21.333333 21.333333-21.333334h12.224c11.733333 0 21.333333 9.6 21.333333 21.333334v231.616c0 11.733333 9.6 21.333333 21.333334 21.333333h231.594666c11.733333 0 21.333333 9.6 21.333334 21.333333v12.224c0 11.733333-9.6 21.333333-21.333334 21.333334h-197.333333z'\n fill='#FFFFFF'\n ></path>\n </svg>\n );\n}\n\n//我的协作\nexport function LinkSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M832.85333333 675.84L407.3244448 512l425.52888853-163.84c34.13333333-13.65333333 52.33777813-52.33777813 38.6844448-88.74666667-13.65333333-34.13333333-52.33777813-52.33777813-88.74666666-38.6844448l-591.6444448 227.55555627C166.1155552 457.38666667 147.91111147 484.69333333 147.91111147 512s18.2044448 54.61333333 43.2355552 63.7155552l591.6444448 227.55555627c9.10222187 2.2755552 15.92888853 4.55111147 25.0311104 4.5511104 27.30666667 0 52.33777813-15.92888853 63.71555626-43.2355552 13.65333333-36.40888853-4.55111147-75.09333333-38.6844448-88.74666667z'\n fill='#92c4ff'\n ></path>\n <path\n d='M216.17777813 512m-159.2888896 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n <path\n d='M807.82222187 284.4444448m-159.28888854 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n <path\n d='M807.82222187 739.5555552m-159.28888854 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n </svg>\n );\n}\n\n//\nexport function TextSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M725.333 375.467H298.667a17.067 17.067 0 1 0 0 34.133h426.666a17.067 17.067 0 1 0 0-34.133z m-426.666-102.4h170.666a17.067 17.067 0 1 0 0-34.134H298.667a17.067 17.067 0 1 0 0 34.134zM725.333 512H298.667a17.067 17.067 0 1 0 0 34.133h426.666a17.067 17.067 0 1 0 0-34.133z m0 136.533H298.667a17.067 17.067 0 1 0 0 34.134h426.666a17.067 17.067 0 1 0 0-34.134z m0 136.534H298.667a17.067 17.067 0 1 0 0 34.133h426.666a17.067 17.067 0 1 0 0-34.133z'\n fill='#92c4ff'\n ></path>\n <path\n d='M664.132 0H110.933v1024h802.134V248.934L664.132 0z m10.001 58.266l180.668 180.667H674.133V58.266z m-529.066 931.6V34.134H640v238.934h238.933v716.8H145.067z'\n fill='#bfbfbf'\n ></path>\n </svg>\n );\n}\n\n//属性\nexport function InfoSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M512 64C264.576 64 64 264.576 64 512c0 247.424 200.576 448 448 448s448-200.576 448-448C960 264.576 759.424 64 512 64zM512 848c-185.536 0-336-150.464-336-336S326.464 176 512 176 848 326.464 848 512 697.536 848 512 848zM512 400c-30.912 0-56 25.088-56 56l0 224C456 710.912 481.088 736 512 736s56-25.088 56-56l0-224C568 425.088 542.912 400 512 400zM512 232c-30.912 0-56 25.088-56 56S481.088 344 512 344 568 318.912 568 288 542.912 232 512 232z'></path>\n </svg>\n );\n}\n\n//放大\nexport function ZoomUpSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M448.2 184c70.6 0 136.9 27.5 186.8 77.4s77.4 116.2 77.4 186.8S684.9 585.1 635 635s-116.2 77.4-186.8 77.4-136.9-27.5-186.8-77.4S184 518.7 184 448.2c0-70.6 27.5-136.9 77.4-186.8S377.6 184 448.2 184m0-88c-90.1 0-180.3 34.4-249 103.2-137.5 137.5-137.5 360.5 0 498.1 68.8 68.8 158.9 103.2 249 103.2s180.3-34.4 249-103.2c137.5-137.5 137.5-360.5 0-498.1C628.4 130.4 538.3 96 448.2 96z'></path>\n <path d='M697.2 653.2c-11.3 0-22.5 4.3-31.1 12.9-17.2 17.2-17.2 45.1 0 62.3l186.8 186.8c8.6 8.6 19.9 12.9 31.1 12.9 11.3 0 22.5-4.3 31.1-12.9 17.2-17.2 17.2-45.1 0-62.3L728.3 666.1c-8.6-8.6-19.8-12.9-31.1-12.9zM567.3 417.1c-8-8-19-12.9-31.1-12.9h-176c-24.3 0-44.1 19.7-44.1 44.1 0 12.2 4.9 23.2 12.9 31.1 8 8 19 12.9 31.1 12.9h176.1c24.3 0 44.1-19.7 44.1-44.1 0-12.1-5-23.2-13-31.1z'></path>\n <path d='M479.3 329c-8-8-19-12.9-31.1-12.9-24.3 0-44.1 19.7-44.1 44.1v176.1c0 12.2 4.9 23.2 12.9 31.1 8 8 19 12.9 31.1 12.9 24.3 0 44.1-19.7 44.1-44.1l0.1-176c-0.1-12.2-5-23.2-13-31.2z'></path>\n </svg>\n );\n}\n\n//收藏文件夹\nexport function FavSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'>\n <path d='M928.891803 415.759306c-4.862772-14.704022-18.294016-25.021413-35.998232-27.56697L655.722604 354.079209 549.658066 141.429964c-7.909044-15.885669-21.976165-25.384918-37.634515-25.384918s-29.737759 9.499249-37.634515 25.362391L368.313235 354.079209 131.141244 388.192336c-17.726743 2.545557-31.180514 12.862948-36.009496 27.589497-4.841269 14.726549-0.057342 30.908142 12.738025 43.247848L279.510565 624.578952l-40.52105 233.762214c-2.420634 13.95551 0.670692 26.818458 8.693395 36.226574 7.260879 8.545945 18.055434 13.409741 29.6241 13.409741 7.499461 0 15.090054-1.95371 22.578252-5.864202L512.023551 791.754266l212.127027 110.359013c19.022049 9.907808 40.226151 6.500079 52.202352-7.545539 8.043182-9.408117 11.089454-22.271065 8.682131-36.226574l-40.498523-233.762214L916.165041 459.029681C928.982935 446.643897 933.710544 430.485856 928.891803 415.759306zM690.719406 592.580296c-7.13698 6.909662-10.409547 16.81747-8.726162 26.591139l36.77132 212.263213-192.607334-100.221839c-8.861324-4.635453-19.408081-4.635453-28.270429 0l-192.627814 100.221839 36.793847-212.263213c1.692601-9.77367-1.568702-19.681477-8.726162-26.591139l-155.846254-150.32303 215.365803-30.975723c9.885281-1.431492 18.431226-7.568066 22.862912-16.431438l96.314419-193.104978 96.315443 193.104978c4.430662 8.863372 12.976607 14.998922 22.861888 16.431438l215.37809 30.975723L690.719406 592.580296z'></path>\n </svg>\n );\n}\n\n//分享\nexport function ShareSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'>\n <path\n d='M506.8 107.1C286 107.1 107.1 286 107.1 506.8S286 906.5 506.8 906.5s399.7-178.9 399.7-399.7c0.1-220.7-178.9-399.7-399.7-399.7z m243.7 404.2L538.9 668.9c-3.7 2.9-8.4 4.6-13.5 4.6-11.8 0-21.4-9.1-22.2-20.6v-77.7h-59c-73.3 0-139.6 28.4-188.9 74.8-1.6 1.2-3.5 2-5.7 2-5.1 0-9.3-4.1-9.3-9.2 0-0.5 0.1-1 0.1-1.5 24.7-121.4 134.2-213.5 262.8-218.6v-78.4c0.9-11.5 10.4-20.6 22.2-20.6 4.8 0 9.4 1.6 13 4.3l212.3 158.1c3.5 3.1 5.8 7.6 5.8 12.5 0.1 5.1-2.3 9.6-6 12.7z'\n fill='#31dc48'\n ></path>\n </svg>\n );\n}\n//收藏标签\nexport function FavTagSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M768 42.666667a128 128 0 0 1 128 128v768a42.666667 42.666667 0 0 1-57.642667 39.936l-326.4-122.368-326.314666 122.368a42.666667 42.666667 0 0 1-57.386667-35.072L128 938.666667V170.666667a128 128 0 0 1 128-128z m0 85.333333H256a42.666667 42.666667 0 0 0-42.666667 42.666667v706.389333l283.690667-106.325333a42.666667 42.666667 0 0 1 24.064-1.749334l5.888 1.706667L810.666667 877.098667V170.666667a42.666667 42.666667 0 0 0-37.674667-42.368L768 128z m-235.178667 119.765333a36.693333 36.693333 0 0 1 9.386667 9.386667l21.632 31.36a42.666667 42.666667 0 0 0 22.954667 16.682667l36.522666 10.88a36.693333 36.693333 0 0 1 18.688 57.429333l-23.210666 30.293333a42.666667 42.666667 0 0 0-8.746667 26.965334l0.938667 38.144a36.693333 36.693333 0 0 1-48.810667 35.456l-35.968-12.672a42.666667 42.666667 0 0 0-28.416 0l-35.968 12.672a36.693333 36.693333 0 0 1-48.810667-35.456l0.938667-38.144a42.666667 42.666667 0 0 0-8.746667-26.965334l-23.210666-30.293333a36.693333 36.693333 0 0 1 18.688-57.429333l36.522666-10.88a42.666667 42.666667 0 0 0 22.954667-16.64l21.674667-31.445334a36.693333 36.693333 0 0 1 50.986666-9.386666z'></path>\n </svg>\n );\n}\n\nexport function ArrowDown() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M862.485 481.154H234.126l203.3-203.3c12.497-12.497 12.497-32.758 0-45.255s-32.758-12.497-45.255 0L135.397 489.373c-12.497 12.497-12.497 32.758 0 45.254l256.774 256.775c6.249 6.248 14.438 9.372 22.627 9.372s16.379-3.124 22.627-9.372c12.497-12.497 12.497-32.759 0-45.255l-203.3-203.301h628.36c17.036 0 30.846-13.81 30.846-30.846s-13.81-30.846-30.846-30.846z'></path>\n </svg>\n );\n}\n\nexport function LoadingSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'>\n <path\n d='M512 42.666667c-25.6 0-42.666667 17.066667-42.666667 42.666666v170.666667c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V85.333333c0-25.6-17.066667-42.666667-42.666667-42.666666z m0 682.666666c-25.6 0-42.666667 17.066667-42.666667 42.666667v170.666667c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666667-42.666666v-170.666667c0-25.6-17.066667-42.666667-42.666667-42.666667zM238.933333 179.2c-17.066667-17.066667-42.666667-12.8-59.733333 4.266667-17.066667 17.066667-17.066667 42.666667 0 59.733333L298.666667 362.666667c17.066667 17.066667 42.666667 17.066667 59.733333 4.266666 17.066667-17.066667 17.066667-42.666667 4.266667-59.733333l-4.266667-4.266667-119.466667-123.733333zM725.333333 661.333333c-17.066667-17.066667-42.666667-12.8-59.733333 4.266667-17.066667 17.066667-17.066667 42.666667 0 59.733333l119.466667 119.466667c17.066667 17.066667 42.666667 17.066667 59.733333 4.266667s17.066667-42.666667 4.266667-59.733334l-4.266667-4.266666-119.466667-123.733334zM298.666667 512c0-25.6-17.066667-42.666667-42.666667-42.666667H85.333333c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666667h170.666667c25.6 0 42.666667-17.066667 42.666667-42.666667z m640-42.666667h-170.666667c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h170.666667c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666667zM302.933333 661.333333l-119.466666 119.466667c-17.066667 17.066667-17.066667 42.666667-4.266667 59.733333s42.666667 17.066667 59.733333 4.266667l4.266667-4.266667 119.466667-119.466666c17.066667-17.066667 17.066667-42.666667 4.266666-59.733334s-46.933333-17.066667-64 0z m388.266667-285.866666c12.8 0 21.333333-4.266667 29.866667-12.8l119.466666-119.466667c17.066667-17.066667 17.066667-42.666667 4.266667-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333-4.266667l-4.266667 4.266667-119.466667 119.466666c-17.066667 17.066667-17.066667 42.666667 0 59.733334 8.533333 8.533333 21.333333 12.8 29.866667 12.8z'\n p-id='22183'\n ></path>\n </svg>\n );\n}\n//箭头向左\nexport function ArrowLeftSvg() {\n return (\n <svg viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M206.7 547.6c-0.3-0.3-0.5-0.6-0.8-0.9-0.3-0.3-0.6-0.6-0.8-1l-0.9-1.2c-0.2-0.2-0.4-0.5-0.6-0.7-0.3-0.4-0.6-0.9-1-1.3-0.2-0.2-0.3-0.4-0.5-0.7-0.3-0.5-0.6-0.9-0.9-1.4-0.1-0.2-0.3-0.5-0.4-0.7-0.3-0.5-0.5-0.9-0.8-1.4-0.1-0.3-0.3-0.5-0.4-0.8-0.2-0.4-0.5-0.9-0.7-1.3-0.1-0.3-0.3-0.6-0.4-0.9l-0.6-1.2c-0.2-0.4-0.3-0.7-0.5-1.1-0.2-0.4-0.3-0.7-0.4-1.1-0.2-0.4-0.3-0.8-0.5-1.2-0.1-0.3-0.2-0.7-0.3-1-0.2-0.5-0.3-0.9-0.5-1.4l-0.3-0.9c-0.1-0.5-0.3-1-0.4-1.5-0.1-0.3-0.1-0.6-0.2-0.8-0.1-0.5-0.2-1.1-0.3-1.6-0.1-0.3-0.1-0.6-0.2-0.9-0.1-0.5-0.2-1-0.3-1.6 0-0.3-0.1-0.7-0.1-1-0.1-0.5-0.1-1-0.2-1.5 0-0.5-0.1-0.9-0.1-1.4 0-0.4-0.1-0.7-0.1-1.1-0.1-1.7-0.1-3.4 0-5.1 0-0.4 0.1-0.8 0.1-1.1 0-0.5 0.1-0.9 0.1-1.4s0.1-1 0.2-1.5c0-0.3 0.1-0.7 0.1-1 0.1-0.5 0.2-1.1 0.3-1.6 0.1-0.3 0.1-0.6 0.2-0.9 0.1-0.5 0.2-1.1 0.3-1.6 0.1-0.3 0.1-0.6 0.2-0.8 0.1-0.5 0.3-1 0.4-1.5l0.3-0.9c0.1-0.5 0.3-0.9 0.5-1.4 0.1-0.3 0.2-0.7 0.3-1 0.1-0.4 0.3-0.8 0.5-1.2 0.1-0.4 0.3-0.8 0.4-1.1 0.1-0.4 0.3-0.7 0.5-1.1l0.6-1.2c0.1-0.3 0.3-0.6 0.4-0.9 0.2-0.5 0.5-0.9 0.7-1.3 0.1-0.3 0.3-0.5 0.4-0.8 0.3-0.5 0.5-0.9 0.8-1.4 0.1-0.2 0.3-0.5 0.4-0.7 0.3-0.5 0.6-0.9 0.9-1.4 0.2-0.2 0.3-0.5 0.5-0.7 0.3-0.5 0.6-0.9 1-1.3 0.2-0.3 0.4-0.5 0.6-0.7l0.9-1.2c0.3-0.3 0.5-0.6 0.8-1 0.3-0.3 0.5-0.6 0.8-0.9 0.5-0.6 1.1-1.2 1.7-1.7l0.1-0.1 204.6-204.6c19.9-19.9 52.2-19.9 72.1 0s19.9 52.2 0 72.1L367.6 462.4h415.1c28.2 0 51 22.8 51 51s-22.8 51-51 51H367.6L485.2 682c19.9 19.9 19.9 52.2 0 72.1-10 10-23 14.9-36.1 14.9-13 0-26.1-5-36.1-14.9L208.5 549.4l-0.1-0.1c-0.6-0.5-1.1-1.1-1.7-1.7z'></path>\n </svg>\n );\n}\n\n//搜索\nexport function SearchSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M909.824 837.12l-209.408-208.896a333.824 333.824 0 1 0-72.192 72.192l208.896 209.408a51.2 51.2 0 1 0 72.704-72.704z m-477.696-174.592a230.4 230.4 0 1 1 230.4-230.4 230.4 230.4 0 0 1-230.4 230.4z'></path>\n </svg>\n );\n}\n\nexport function ArrowRightSvg() {\n return (\n <svg viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M818.9 547.6c0.3-0.3 0.5-0.6 0.8-0.9 0.3-0.3 0.6-0.6 0.8-1l0.9-1.2c0.2-0.2 0.4-0.5 0.6-0.7 0.3-0.4 0.6-0.9 1-1.3 0.2-0.2 0.3-0.4 0.5-0.7 0.3-0.5 0.6-0.9 0.9-1.4 0.1-0.2 0.3-0.5 0.4-0.7 0.3-0.5 0.5-0.9 0.8-1.4 0.1-0.3 0.3-0.5 0.4-0.8 0.2-0.4 0.5-0.9 0.7-1.3 0.1-0.3 0.3-0.6 0.4-0.9l0.6-1.2c0.2-0.4 0.3-0.7 0.5-1.1 0.2-0.4 0.3-0.7 0.4-1.1 0.2-0.4 0.3-0.8 0.5-1.2 0.1-0.3 0.2-0.7 0.3-1 0.2-0.5 0.3-0.9 0.5-1.4l0.3-0.9c0.1-0.5 0.3-1 0.4-1.5 0.1-0.3 0.1-0.6 0.2-0.8 0.1-0.5 0.2-1.1 0.3-1.6 0.1-0.3 0.1-0.6 0.2-0.9 0.1-0.5 0.2-1 0.3-1.6 0-0.3 0.1-0.7 0.1-1 0.1-0.5 0.1-1 0.2-1.5 0-0.5 0.1-0.9 0.1-1.4 0-0.4 0.1-0.7 0.1-1.1 0.1-1.7 0.1-3.4 0-5.1 0-0.4-0.1-0.8-0.1-1.1 0-0.5-0.1-0.9-0.1-1.4 0-0.5-0.1-1-0.2-1.5 0-0.3-0.1-0.7-0.1-1-0.1-0.5-0.2-1.1-0.3-1.6-0.1-0.3-0.1-0.6-0.2-0.9-0.1-0.5-0.2-1.1-0.3-1.6-0.1-0.3-0.1-0.6-0.2-0.8-0.1-0.5-0.3-1-0.4-1.5l-0.3-0.9c-0.1-0.5-0.3-0.9-0.5-1.4-0.1-0.3-0.2-0.7-0.3-1-0.1-0.4-0.3-0.8-0.5-1.2-0.1-0.4-0.3-0.8-0.4-1.1-0.1-0.4-0.3-0.7-0.5-1.1l-0.6-1.2c-0.1-0.3-0.3-0.6-0.4-0.9-0.2-0.5-0.5-0.9-0.7-1.3-0.1-0.3-0.3-0.5-0.4-0.8-0.3-0.5-0.5-0.9-0.8-1.4-0.1-0.2-0.3-0.5-0.4-0.7-0.3-0.5-0.6-0.9-0.9-1.4-0.2-0.2-0.3-0.5-0.5-0.7-0.3-0.5-0.6-0.9-1-1.3-0.2-0.3-0.4-0.5-0.6-0.7l-0.9-1.2c-0.3-0.3-0.5-0.6-0.8-1-0.3-0.3-0.5-0.6-0.8-0.9-0.5-0.6-1.1-1.2-1.7-1.7l-0.1-0.1-204.5-204.8c-19.9-19.9-52.2-19.9-72.1 0-19.9 19.9-19.9 52.2 0 72.1L658 462.4H243c-28.2 0-51 22.8-51 51s22.8 51 51 51h415L540.5 681.9c-19.9 19.9-19.9 52.2 0 72.1 10 10 23 14.9 36.1 14.9s26.1-5 36.1-14.9l204.6-204.6 0.1-0.1c0.4-0.5 1-1.1 1.5-1.7z'></path>\n </svg>\n );\n}\n\nexport function ArrowTopSvg() {\n return (\n <svg className='icon' viewBox='0 0 1000 1000' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M796.014 439.312l-257.492-257.492c-20.11-20.11-52.709-20.11-72.819 0l-257.492 257.492c-20.11 20.11-20.11 52.709 0 72.819s52.709 20.11 72.819 0l169.585-169.585v493.664c0 28.453 23.046 51.499 51.499 51.499s51.499-23.046 51.499-51.499v-493.664l169.585 169.585c10.042 10.043 23.226 15.089 36.41 15.089s26.367-5.021 36.41-15.089c20.11-20.11 20.11-52.709 0-72.819z'></path>\n </svg>\n );\n}\n\nexport function AngleRightSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M761.055557 532.128047c0.512619-0.992555 1.343475-1.823411 1.792447-2.848649 8.800538-18.304636 5.919204-40.703346-9.664077-55.424808L399.935923 139.743798c-19.264507-18.208305-49.631179-17.344765-67.872168 1.888778-18.208305 19.264507-17.375729 49.631179 1.888778 67.872168l316.960409 299.839269L335.199677 813.631716c-19.071845 18.399247-19.648112 48.767639-1.247144 67.872168 9.407768 9.791372 21.984142 14.688778 34.560516 14.688778 12.000108 0 24.000215-4.479398 33.311652-13.439914l350.048434-337.375729c0.672598-0.672598 0.927187-1.599785 1.599785-2.303346 0.512619-0.479935 1.056202-0.832576 1.567101-1.343475C757.759656 538.879828 759.199462 535.391265 761.055557 532.128047z'></path>\n </svg>\n );\n}\n\nexport function OutdentSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M64 128c0-35.4 28.6-64 64-64h768c35.4 0 64 28.6 64 64s-28.6 64-64 64H128C92.6 192 64 163.4 64 128z m384 256c0-35.4 28.6-64 64-64h384c35.4 0 64 28.6 64 64s-28.6 64-64 64H512c-35.4 0-64-28.6-64-64z m64 192h384c35.4 0 64 28.6 64 64s-28.6 64-64 64H512c-35.4 0-64-28.6-64-64s28.6-64 64-64zM64 896c0-35.4 28.6-64 64-64h768c35.4 0 64 28.6 64 64s-28.6 64-64 64H128c-35.4 0-64-28.6-64-64z m0.4-358.8c-16.4-12.8-16.4-37.8 0-50.6L268.2 328c21-16.4 51.6-1.4 51.6 25.2v317.4c0 26.6-30.6 41.6-51.6 25.2L64.4 537.2z'></path>\n </svg>\n );\n}\n\nexport function CaretRight() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M159.24 128.8v766.4c0 80.38 92.44 125.62 156 76.3l512.18-398.12a96.62 96.62 0 0 0-2.88-154.74L312.28 50.34C248.36 4.38 159.24 50 159.24 128.8z'></path>\n </svg>\n );\n}\n\nexport function CircleCheckSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M512 981.333333C252.8 981.333333 42.666667 771.2 42.666667 512S252.8 42.666667 512 42.666667s469.333333 210.133333 469.333333 469.333333-210.133333 469.333333-469.333333 469.333333z m0-85.333333a384 384 0 1 0 0-768 384 384 0 0 0 0 768z m-85.333333-316.330667l225.834666-225.834666 60.330667 60.330666L426.666667 700.330667l-158.165334-158.165334 60.330667-60.330666L426.666667 579.669333z'></path>\n </svg>\n );\n}\nexport function DoneSvg() {\n return (\n <svg\n viewBox='0 0 1024 1024'\n version='1.1'\n width='16px'\n height='16px'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M512 1024q218-5 362.5-149.5T1024 512q-5-218-149.5-362.5T512 0Q294 5 149.5 149.5T0 512q5 218 149.5 362.5T512 1024z m169-684q13-13 30-13t30 13q13 13 13 30t-12 30L484 659q-13 12-30.5 12T424 659L283 518q-13-13-13-30t13-30q13-13 30-13t30 13l111 110 227-228z'\n fill='#3dbd7d'\n ></path>\n </svg>\n );\n}\n\nexport function ProcessingSvg() {\n return (\n <svg\n width='18px'\n height='18px'\n viewBox='0 0 1024 1024'\n version='1.1'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M512 950.848c-242.368 0-438.848-196.48-438.848-438.848C73.152 269.632 269.632 73.152 512 73.152c242.368 0 438.848 196.48 438.848 438.848 0 242.368-196.48 438.848-438.848 438.848z m219.872-428.032h-183.296V229.888a36.576 36.576 0 1 0-73.152 0v366.08h256.448a36.576 36.576 0 1 0 0-73.152z'\n fill='#0277fb'\n ></path>\n </svg>\n );\n}\n\n//分享链接\nexport function ShareLinkSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M832.85333333 675.84L407.3244448 512l425.52888853-163.84c34.13333333-13.65333333 52.33777813-52.33777813 38.6844448-88.74666667-13.65333333-34.13333333-52.33777813-52.33777813-88.74666666-38.6844448l-591.6444448 227.55555627C166.1155552 457.38666667 147.91111147 484.69333333 147.91111147 512s18.2044448 54.61333333 43.2355552 63.7155552l591.6444448 227.55555627c9.10222187 2.2755552 15.92888853 4.55111147 25.0311104 4.5511104 27.30666667 0 52.33777813-15.92888853 63.71555626-43.2355552 13.65333333-36.40888853-4.55111147-75.09333333-38.6844448-88.74666667z'\n fill='#92c4ff'\n ></path>\n <path\n d='M216.17777813 512m-159.2888896 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n <path\n d='M807.82222187 284.4444448m-159.28888854 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n <path\n d='M807.82222187 739.5555552m-159.28888854 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n </svg>\n );\n}\n\nexport function UpdateSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M512 919.552c-224.768 0-407.552-182.784-407.552-407.552 0-8.704 0.512-17.408 1.024-26.112l71.68 4.608c-0.512 7.168-0.512 14.336-0.512 21.504 0 185.344 150.528 335.872 335.872 335.872 86.528 0 168.448-32.768 230.912-92.16l49.152 52.224C716.288 880.128 616.96 919.552 512 919.552zM919.552 512h-71.68c0-11.776-0.512-23.552-2.048-35.328-17.92-171.52-161.28-300.544-334.336-300.544-67.584 0-132.096 19.968-187.904 57.344L284.16 174.08c67.072-45.568 145.92-69.632 227.84-69.632 209.408 0 384 156.672 405.504 365.056 1.536 13.824 2.048 28.16 2.048 42.496z'></path>\n <path d='M140.288 290.816L28.16 491.52c-3.072 5.12 1.024 11.776 6.656 11.776H258.56c6.144 0 9.728-6.144 6.656-11.776L153.6 290.816c-3.072-5.632-10.752-5.632-13.312 0zM870.4 675.84L758.272 475.136c-3.072-5.12 1.024-11.776 6.656-11.776h223.744c6.144 0 9.728 6.144 6.656 11.776L883.712 675.84c-2.56 5.12-10.24 5.12-13.312 0zM270.336 202.24a35.84 35.84 0 1 0 71.68 0 35.84 35.84 0 1 0-71.68 0zM728.576 784.896a35.84 35.84 0 1 0 71.68 0 35.84 35.84 0 1 0-71.68 0z'></path>\n </svg>\n );\n}\n\n//空数据\nexport function NullDataSvg() {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n xmlnsXlink='http://www.w3.org/1999/xlink'\n viewBox='0 0 512 512'\n >\n <defs>\n <linearGradient\n gradientUnits='userSpaceOnUse'\n y2='181.12'\n x2='1'\n y1='91.35'\n x1='1'\n id='color_line_26'\n >\n <stop stopColor='#81cfff' offset='0' />\n <stop stopOpacity='0' stopColor='#5ecfff' offset='1' />\n </linearGradient>\n <linearGradient\n xlinkHref='#color_line_26'\n y2='161.88'\n x2='455.01'\n y1='72.11'\n x1='455.01'\n id='color_line_26-2'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='199.51'\n x2='40.9'\n y1='143.88'\n x1='40.9'\n id='color_line_26-3'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='123.17'\n x2='64.97'\n y1='95.36'\n x1='64.97'\n id='color_line_26-4'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='132.02'\n x2='397.23'\n y1='104.2'\n x1='397.23'\n id='color_line_26-5'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='189.13'\n x2='424.75'\n y1='133.49'\n x1='424.75'\n id='color_line_26-6'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='262.12'\n x2='232.75'\n y1='224.43'\n x1='232.75'\n id='color_line_26-7'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='204.03'\n x2='349.36'\n y1='26.68'\n x1='349.36'\n id='color_line_26-8'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='204.03'\n x2='201.45'\n y1='55.61'\n x1='201.45'\n id='color_line_26-9'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='204.03'\n x2='122.98'\n y1='26.68'\n x1='122.98'\n id='color_line_26-10'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='209.54'\n x2='273.51'\n y1='0'\n x1='273.51'\n id='color_line_26-11'\n />\n </defs>\n <title>暂无历史数据</title>\n <g>\n <path\n id='svg_7'\n fill='url(#color_line_26-7)'\n opacity='0.4'\n d='m412.28,262.12c-23,-23 -61,-37.69 -179.53,-37.69s-156.51,14.67 -179.54,37.69l359.07,0z'\n className='cls-7'\n />\n <g id='svg_57'>\n <line\n id='svg_1'\n stroke='url(#color_line_26)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='167.12'\n x2='1'\n y1='77.35'\n x1='1'\n className='cls-1'\n />\n <line\n id='svg_2'\n stroke='url(#color_line_26-2)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='147.88'\n x2='455.01'\n y1='58.11'\n x1='455.01'\n className='cls-2'\n />\n <line\n id='svg_3'\n stroke='url(#color_line_26-3)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='185.51'\n x2='40.9'\n y1='129.88'\n x1='40.9'\n className='cls-3'\n />\n <line\n id='svg_4'\n stroke='url(#color_line_26-4)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='109.17'\n x2='64.97'\n y1='81.36'\n x1='64.97'\n className='cls-4'\n />\n <line\n id='svg_5'\n stroke='url(#color_line_26-5)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='118.02'\n x2='397.23'\n y1='90.2'\n x1='397.23'\n className='cls-5'\n />\n <line\n id='svg_6'\n stroke='url(#color_line_26-6)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='175.13'\n x2='424.75'\n y1='119.49'\n x1='424.75'\n className='cls-6'\n />\n <g id='svg_8' opacity='0.7' className='cls-8'>\n <path\n id='svg_9'\n fill='url(#color_line_26-8)'\n opacity='0.4'\n d='m381.66,33.68l-62.59,0a2.71,2.71 0 0 0 -2.82,2.59l0,172.17a2.71,2.71 0 0 0 2.82,2.59l62.59,0a2.72,2.72 0 0 0 2.82,-2.59l0,-172.17a2.72,2.72 0 0 0 -2.82,-2.59zm-52.36,120.32a0.9,0.9 0 0 1 -0.95,0.87l-3.6,0a0.9,0.9 0 0 1 -0.95,-0.87l0,-19.73a0.91,0.91 0 0 1 0.95,-0.87l3.6,0a0.91,0.91 0 0 1 0.95,0.87l0,19.73zm0,-30.23a0.91,0.91 0 0 1 -0.95,0.87l-3.6,0a0.91,0.91 0 0 1 -0.95,-0.87l0,-19.77a0.91,0.91 0 0 1 0.95,-0.87l3.6,0a0.91,0.91 0 0 1 0.95,0.87l0,19.77zm0,-30.24a0.91,0.91 0 0 1 -0.95,0.87l-3.6,0a0.91,0.91 0 0 1 -0.95,-0.87l0,-19.73a0.91,0.91 0 0 1 0.95,-0.87l3.6,0a0.91,0.91 0 0 1 0.95,0.87l0,19.73zm0,-30.24a0.91,0.91 0 0 1 -0.95,0.87l-3.6,0a0.91,0.91 0 0 1 -0.95,-0.87l0,-19.73a0.91,0.91 0 0 1 0.95,-0.87l3.6,0a0.91,0.91 0 0 1 0.95,0.87l0,19.73zm11.7,90.71a0.9,0.9 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.95,-0.87l0,-19.73a0.92,0.92 0 0 1 0.95,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.23a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.92,0.92 0 0 1 -0.95,-0.87l0,-19.77a0.92,0.92 0 0 1 0.95,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.77zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.92,0.92 0 0 1 -0.95,-0.87l0,-19.73a0.92,0.92 0 0 1 0.95,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.92,0.92 0 0 1 -0.95,-0.87l0,-19.73a0.92,0.92 0 0 1 0.95,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm11.7,90.71a0.9,0.9 0 0 1 -0.94,0.87l-3.61,0a0.9,0.9 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.23a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.77a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.77zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm11.7,90.71a0.9,0.9 0 0 1 -0.94,0.87l-3.61,0a0.9,0.9 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.23a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.77a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.77zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm11.71,90.71a0.91,0.91 0 0 1 -0.95,0.87l-3.61,0a0.9,0.9 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.92,0.92 0 0 1 0.95,0.87l0,19.73zm0,-30.23a0.92,0.92 0 0 1 -0.95,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.77a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.92,0.92 0 0 1 0.95,0.87l0,19.77zm0,-30.24a0.92,0.92 0 0 1 -0.95,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.92,0.92 0 0 1 0.95,0.87l0,19.73zm0,-30.24a0.92,0.92 0 0 1 -0.95,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.92,0.92 0 0 1 0.95,0.87l0,19.73z'\n className='cls-9'\n />\n <path\n id='svg_10'\n fill='url(#color_line_26-9)'\n opacity='0.4'\n d='m232.1,62.61l-59.3,0a2.71,2.71 0 0 0 -2.8,2.59l0,143.24a2.71,2.71 0 0 0 2.8,2.56l59.3,0a2.71,2.71 0 0 0 2.82,-2.59l0,-143.21a2.71,2.71 0 0 0 -2.82,-2.59zm-48.63,103.76a1.16,1.16 0 0 1 -1.2,1.11l-5.4,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l5.4,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.4,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.4,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l5.4,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.4,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.4,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l5.4,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.4,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.4,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l5.4,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.4,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.18a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l0,5.18zm10.08,90.19a1.16,1.16 0 0 1 -1.2,1.11l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.22a1.16,1.16 0 0 1 1.21,-1.1l5.4,0a1.15,1.15 0 0 1 1.2,1.1l-0.05,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.22a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l-0.05,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.22a1.16,1.16 0 0 1 1.21,-1.1l5.4,0a1.15,1.15 0 0 1 1.2,1.1l-0.05,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.22a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l-0.05,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.21a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.15,1.15 0 0 1 1.2,1.11l-0.05,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.22a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l-0.05,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.21a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.15,1.15 0 0 1 1.2,1.11l-0.05,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.18a1.16,1.16 0 0 1 1.21,-1.15l5.4,0a1.16,1.16 0 0 1 1.2,1.11l-0.05,5.22zm10.08,90.19a1.16,1.16 0 0 1 -1.21,1.11l-5.42,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l5.4,0a1.16,1.16 0 0 1 1.21,1.1l0.02,5.22zm0,-12.88a1.16,1.16 0 0 1 -1.21,1.1l-5.42,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.21,1.11l-5.42,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l5.4,0a1.16,1.16 0 0 1 1.21,1.1l0.02,5.22zm0,-12.88a1.16,1.16 0 0 1 -1.21,1.1l-5.42,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.21,1.11l-5.42,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.21zm0,-12.88a1.16,1.16 0 0 1 -1.21,1.1l-5.42,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.21,1.11l-5.42,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.21zm0,-12.88a1.16,1.16 0 0 1 -1.21,1.1l-5.42,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.18a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.23,1.11l0,5.18zm25.21,90.19a1.16,1.16 0 0 1 -1.2,1.11l-20.54,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l20.54,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-20.54,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l20.54,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-20.54,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l20.54,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-20.54,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l20.54,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-20.54,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l20.54,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-20.54,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l20.54,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-20.54,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l20.54,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-20.54,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.18a1.16,1.16 0 0 1 1.2,-1.11l20.54,0a1.16,1.16 0 0 1 1.2,1.11l0,5.18z'\n className='cls-10'\n />\n <path\n id='svg_11'\n fill='url(#color_line_26-10)'\n opacity='0.4'\n d='m162.13,33.68l-76.3,0a2.71,2.71 0 0 0 -2.83,2.59l0,172.17a2.71,2.71 0 0 0 2.83,2.56l76.3,0a2.71,2.71 0 0 0 2.82,-2.59l0,-172.14a2.71,2.71 0 0 0 -2.82,-2.59zm-6.79,134.32a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.21a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-14.67a1.15,1.15 0 0 1 -1.2,1.1l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.22a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.22a1.16,1.16 0 0 1 1.21,-1.1l60.31,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.21a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-14.67a1.15,1.15 0 0 1 -1.2,1.1l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.3a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.16,1.16 0 0 1 1.2,1.11l0,5.3zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.27a1.16,1.16 0 0 1 1.21,-1.1l60.31,0a1.15,1.15 0 0 1 1.2,1.1l0,5.27zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.26a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.15,1.15 0 0 1 1.2,1.11l0,5.26zm0,-14.67a1.15,1.15 0 0 1 -1.2,1.1l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.27a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.16,1.16 0 0 1 1.2,1.11l0,5.27zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.27a1.16,1.16 0 0 1 1.21,-1.1l60.31,0a1.15,1.15 0 0 1 1.2,1.1l0,5.27z'\n className='cls-11'\n />\n <path\n id='svg_12'\n fill='url(#color_line_26-11)'\n opacity='0.4'\n d='m307.21,7l-65.39,0a2.51,2.51 0 0 0 -2.42,2.59l0,204.35a2.51,2.51 0 0 0 2.42,2.6l65.39,0a2.51,2.51 0 0 0 2.41,-2.6l0,-204.35a2.51,2.51 0 0 0 -2.41,-2.59zm-5.82,134.28a1.06,1.06 0 0 1 -1,1.1l-51.72,0a1.06,1.06 0 0 1 -1,-1.1l0,-5.22a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.22a1.06,1.06 0 0 1 1,-1.1l51.69,0a1.06,1.06 0 0 1 1,1.1l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.21a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.21zm0,-14.67a1.06,1.06 0 0 1 -1,1.1l-51.72,0a1.06,1.06 0 0 1 -1,-1.1l0,-5.25a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.25zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.22a1.06,1.06 0 0 1 1,-1.1l51.69,0a1.06,1.06 0 0 1 1,1.1l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.21a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.21zm0,-14.67a1.06,1.06 0 0 1 -1,1.1l-51.72,0a1.06,1.06 0 0 1 -1,-1.1l0,-5.22a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.22a1.06,1.06 0 0 1 1,-1.1l51.69,0a1.06,1.06 0 0 1 1,1.1l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.21a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.21z'\n className='cls-12'\n />\n </g>\n </g>\n <g transform='rotate(-12 333.085 213.426)' id='svg_58'>\n <polygon\n id='svg_22'\n fill='#57b3f5'\n points='339.3399963378906,228.0500030517578 339.3399963378906,228.0399932861328 340.7200012207031,228.82000732421875 340.7200012207031,228.8300018310547 327.71002197265625,243.99000549316406 327.6399841308594,241.6699981689453 327.7699890136719,241.52000427246094 339.3399963378906,228.0500030517578 '\n className='cls-15'\n />\n <polygon\n id='svg_23'\n fill='#4899e3'\n points='337.3999938964844,226.9499969482422 339.3399963378906,228.0399932861328 339.3399963378906,228.0500030517578 327.7699890136719,241.52000427246094 326.010009765625,240.14999389648438 337.3999938964844,226.9499969482422 '\n className='cls-17'\n />\n <polygon\n id='svg_24'\n fill='#4888e3'\n points='336.010009765625,226.1699981689453 337.3999938964844,226.9499969482422 326.010009765625,240.14999389648438 325.94000244140625,237.8300018310547 336.010009765625,226.1699981689453 '\n className='cls-18'\n />\n <polygon\n id='svg_25'\n fill='#57b3f5'\n points='313.6399841308594,212.77999877929688 301.54998779296875,225.8300018310547 300.3999938964844,224.10000610351562 312.3900146484375,211.0399932861328 313.6399841308594,212.77999877929688 '\n className='cls-15'\n />\n <polygon\n id='svg_26'\n fill='#69bff5'\n points='314.55999755859375,214.07000732421875 300.9900207519531,228.8300018310547 300.91998291015625,226.50999450683594 301.54998779296875,225.8300018310547 313.6399841308594,212.77999877929688 314.55999755859375,214.05999755859375 314.55999755859375,214.07000732421875 '\n className='cls-14'\n />\n <polygon\n id='svg_27'\n fill='#69bff5'\n points='317.97998046875,210.16000366210938 314.57000732421875,214.0800018310547 314.55999755859375,214.07000732421875 314.55999755859375,214.05999755859375 313.6399841308594,212.77999877929688 312.3900146484375,211.0399932861328 315.83001708984375,207.02000427246094 317.97998046875,210.16000366210938 '\n className='cls-14'\n />\n <polygon\n id='svg_28'\n fill='#7dccf5'\n points='366.510009765625,189.3300018310547 372.25,198.19000244140625 368.04998779296875,195.8300018310547 364.0799865722656,190.27999877929688 366.510009765625,189.3300018310547 '\n className='cls-13'\n />\n <polygon\n id='svg_29'\n fill='#57b3f5'\n points='364.0799865722656,190.27999877929688 368.04998779296875,195.8300018310547 347.95001220703125,219 362.3399963378906,190.9600067138672 364.0799865722656,190.27999877929688 '\n className='cls-15'\n />\n <polygon\n id='svg_30'\n fill='#57b3f5'\n points='315.83001708984375,207.02000427246094 319.9700012207031,207.61000061035156 343.2799987792969,217.55999755859375 347.95001220703125,219 343.4100036621094,224.24000549316406 317.97998046875,210.16000366210938 315.83001708984375,207.02000427246094 '\n className='cls-15'\n />\n <polygon\n id='svg_31'\n fill='#8cd7ff'\n points='372.25,198.19000244140625 344.02001953125,230.67999267578125 340.7200012207031,228.82000732421875 339.3399963378906,228.0399932861328 337.3999938964844,226.9499969482422 336.010009765625,226.1699981689453 317.8399963378906,215.92999267578125 314.57000732421875,214.0800018310547 317.97998046875,210.16000366210938 343.4100036621094,224.24000549316406 347.95001220703125,219 368.04998779296875,195.8300018310547 372.25,198.19000244140625 '\n className='cls-16'\n />\n <polygon\n id='svg_32'\n fill='#8cd7ff'\n points='314.57000732421875,214.0800018310547 317.8399963378906,215.92999267578125 304.1099853515625,231.25999450683594 300.9900207519531,228.8300018310547 314.55999755859375,214.07000732421875 314.57000732421875,214.0800018310547 '\n className='cls-16'\n />\n <polygon\n id='svg_33'\n fill='#8cd7ff'\n points='344.02001953125,230.67999267578125 330.83001708984375,246.4199981689453 327.71002197265625,243.99000549316406 340.7200012207031,228.8300018310547 340.7200012207031,228.82000732421875 344.02001953125,230.67999267578125 '\n className='cls-16'\n />\n <path\n id='svg_34'\n fill='#ebfcff'\n d='m293.92,189.8c0.14,-0.42 0.87,-0.52 1.23,-0.31c-0.22,-0.08 -0.37,0.1 -0.32,0.41a18.89,18.89 0 0 0 2.57,8.21c0.26,0.72 0.42,2.62 0.72,3.6a1.28,1.28 0 0 0 1.17,1.07a1.28,1.28 0 0 1 -1.66,0.41c-0.73,-0.32 -1.24,-2.83 -1.35,-3.31s-1.24,-5.35 -1.58,-6a13.51,13.51 0 0 1 -0.78,-4.08z'\n className='cls-19'\n />\n <path\n id='svg_35'\n fill='#e49056'\n d='m301.27,201.87a11.25,11.25 0 0 1 -1.73,0.89l-0.25,0a1.28,1.28 0 0 1 -1.17,-1.07c-0.3,-1 -0.46,-2.88 -0.72,-3.6a18.89,18.89 0 0 1 -2.57,-8.21c-0.05,-0.31 0.1,-0.49 0.32,-0.41a21.68,21.68 0 0 1 2.71,3.15a9.11,9.11 0 0 0 3.8,3.88a1.67,1.67 0 0 1 0.14,0.53c0.07,0.63 -0.18,1.21 -0.54,1.26s-0.93,-0.19 -0.87,0.48a2,2 0 0 0 1,1.57c0.44,0.17 0.76,0.12 0.76,0.64a3.28,3.28 0 0 0 0,0.34c0,0.27 0.08,0.41 0,0.51s-0.54,-0.15 -0.88,0.04z'\n className='cls-20'\n />\n <path\n id='svg_36'\n strokeWidth='0.09px'\n stroke='#4986d9'\n strokeMiterlimit='10'\n fill='none'\n d='m295.15,189.49c-0.36,-0.21 -1.09,-0.11 -1.23,0.31a13.51,13.51 0 0 0 0.78,4c0.34,0.68 1.48,5.55 1.58,6s0.62,3 1.35,3.31a1.28,1.28 0 0 0 1.66,-0.41l0,0'\n className='cls-21'\n />\n <path\n id='svg_37'\n fill='#a4e5ff'\n d='m359,190.06a0.56,0.56 0 0 0 0.08,0.54a1.72,1.72 0 0 1 -0.61,-0.13l0.53,-0.41z'\n className='cls-22'\n />\n <path\n id='svg_38'\n d='m360.72,187.15c0.83,-2.68 -0.21,-5.38 -2.33,-6a4.15,4.15 0 0 0 -4.53,2a1.78,1.78 0 0 1 -0.78,-1.71c0.08,0.57 1,1.11 1.43,0.43a2.71,2.71 0 0 1 0.87,-0.68c1.11,-0.59 3,-1 4.28,0.11a5.06,5.06 0 0 1 1.49,2.27a6.1,6.1 0 0 1 0.11,3.45a1.8,1.8 0 0 1 -0.18,0.65a6.73,6.73 0 0 1 -1.56,1.71a6.18,6.18 0 0 0 1.2,-2.23z'\n />\n <path\n id='svg_39'\n fill='#257fba'\n d='m339.52,208.84c0,0.23 0,0.46 0.08,0.68l0,0l-1.69,1l-16.33,-9a3.33,3.33 0 0 0 -1,-0.33l-15.58,-2.4l19.33,-1.38a2.59,2.59 0 0 1 1.85,0.59l13.38,10.84l-0.04,0z'\n className='cls-23'\n />\n <path\n id='svg_40'\n fill='#398eed'\n d='m343.27,217.56l-3.69,2.24a3.64,3.64 0 0 1 -4.11,-0.23l-15.51,-12l-18.42,-2.57l0.39,-2.11l0.72,-3.9l0.1,-0.52l2.2,0.34l0,0l15.65,2.4a3.33,3.33 0 0 1 1,0.33l16.33,9l1.69,-1l0,0a13.71,13.71 0 0 0 3.65,8.02z'\n className='cls-24'\n />\n <path\n id='svg_41'\n fill='#ffb056'\n d='m351.69,185l0,0a2.9,2.9 0 0 1 1.36,-0.26a5.06,5.06 0 0 0 1.31,5.51a4.22,4.22 0 0 1 0,1.34c-0.45,0 -1.47,0 -1.22,1.35s3,1 3.53,0a2.49,2.49 0 0 1 0.91,-1.85l0.81,-0.62a1.72,1.72 0 0 0 0.61,0.13a0.56,0.56 0 0 1 -0.08,-0.54l2.46,-1.9a15.75,15.75 0 0 1 2.2,4a8.34,8.34 0 0 1 0.83,4.4a17,17 0 0 0 -7.27,6.42c-2.09,3.48 -7.29,14 -8.05,15.85c-1.56,0.18 -3.29,0.42 -3.29,0.42a7.42,7.42 0 0 1 -2.57,-1.72a13.71,13.71 0 0 1 -3.67,-8c0,-0.22 -0.06,-0.45 -0.08,-0.68s0,-0.28 0,-0.41c-0.2,-2.18 0.87,-1.09 1.56,-1.39s8.25,-12.5 8.61,-13.49a16.58,16.58 0 0 0 0.34,-7.44a4.11,4.11 0 0 1 1.7,-1.12z'\n className='cls-25'\n />\n <path\n id='svg_42'\n fill='#fae6d2'\n d='m353.08,181.4a1.78,1.78 0 0 0 0.78,1.71a6.3,6.3 0 0 0 -0.8,1.67a2.9,2.9 0 0 0 -1.36,0.26c0.23,-1 0.12,-3 1,-3.77s2.67,-0.12 2.67,-0.12a2.71,2.71 0 0 0 -0.87,0.68c-0.44,0.68 -1.34,0.17 -1.42,-0.43z'\n className='cls-26'\n />\n <path\n id='svg_43'\n fill='#ffeed2'\n d='m361.68,188l0,0l-0.6,-0.32a1.8,1.8 0 0 0 0.18,-0.65a6.1,6.1 0 0 0 -0.11,-3.45l6.33,2.76a1.08,1.08 0 0 1 0.32,1.76l-4.18,4.14a15.75,15.75 0 0 0 -2.2,-4l0.26,-0.24z'\n className='cls-27'\n />\n <path\n id='svg_44'\n fill='#ffeed2'\n d='m355.39,190.82a3.52,3.52 0 0 0 2.88,-0.42l0.16,0.07l-0.81,0.62a2.49,2.49 0 0 0 -0.91,1.85c-0.56,1 -3.27,1.43 -3.53,0s0.77,-1.31 1.22,-1.35a4.22,4.22 0 0 0 0,-1.34a3.3,3.3 0 0 0 0.99,0.57z'\n className='cls-27'\n />\n <path\n id='svg_45'\n fill='#ffeed2'\n d='m357.64,183.61a3.81,3.81 0 0 1 0.23,4.74c-0.89,1.12 -0.23,1.76 0.4,2.05a3.52,3.52 0 0 1 -2.88,0.42a3.3,3.3 0 0 1 -1,-0.53a5.06,5.06 0 0 1 -1.31,-5.51a6.3,6.3 0 0 1 0.8,-1.67a0.62,0.62 0 0 0 0.23,0.07c0.73,0.09 2.74,-0.35 3.53,0.43z'\n className='cls-27'\n />\n <polygon\n id='svg_46'\n fill='#ffeed2'\n points='302.6499938964844,198.97000122070312 301.92999267578125,202.8699951171875 300.1600036621094,202.16000366210938 300.54998779296875,198.39999389648438 302.6499938964844,198.97000122070312 '\n className='cls-27'\n />\n <path\n id='svg_47'\n strokeWidth='0.23px'\n stroke='#000'\n strokeMiterlimit='10'\n fill='none'\n d='m359.51,189.36c-0.11,0.13 -0.24,0.25 -0.36,0.37'\n className='cls-28'\n />\n <path\n id='svg_48'\n d='m361.27,183.49a5.25,5.25 0 0 0 -1.53,-2.31a3.91,3.91 0 0 0 -4.41,-0.13l0,0a2.86,2.86 0 0 0 -0.92,0.71a0.52,0.52 0 0 1 -0.59,0.25a0.8,0.8 0 0 1 -0.62,-0.62l-0.11,-0.77l-0.13,0.77a1.93,1.93 0 0 0 0.85,1.83a0.77,0.77 0 0 0 0.27,0.08a7.1,7.1 0 0 0 0.91,0c0.86,0 2,-0.12 2.57,0.41a3.72,3.72 0 0 1 0.22,4.58a1.58,1.58 0 0 0 -0.43,1.32a1.45,1.45 0 0 0 0.88,0.91a0.15,0.15 0 0 0 0.11,0l0,0l0.06,0a2.56,2.56 0 0 1 0.25,-0.16a0.78,0.78 0 0 0 0.35,-0.36s0,0 0.07,-0.08a0.79,0.79 0 0 0 0.14,-0.13a2.79,2.79 0 0 1 0.35,-0.37l0.31,-0.29a4.94,4.94 0 0 0 1.27,-1.46a1.9,1.9 0 0 0 0.2,-0.67a6.3,6.3 0 0 0 -0.07,-3.51z'\n />\n <path\n id='svg_49'\n opacity='0.2'\n stroke='#e55c5c'\n strokeWidth='0.23px'\n strokeMiterlimit='10'\n fill='none'\n d='m354.4,191.63c-0.05,0.28 -0.16,0.49 -0.35,0.51'\n className='cls-29'\n />\n <path\n id='svg_50'\n opacity='0.2'\n stroke='#e55c5c'\n strokeWidth='0.23px'\n strokeMiterlimit='10'\n fill='none'\n d='m361.42,188.16l0.26,-0.21l1.58,-1.22'\n className='cls-29'\n />\n <ellipse\n transform='rotate(-74.08 123.85 385)'\n id='svg_51'\n fill='#ffeed2'\n ry='0.8'\n rx='1.17'\n cy='556.35'\n cx='378.24'\n className='cls-27'\n />\n <ellipse\n id='svg_52'\n fill='#e55c5c'\n opacity='0.2'\n transform='matrix(0.27 -0.96 0.96 0.27 19.85 369)'\n ry='0.47'\n rx='0.68'\n cy='276.08604'\n cx='267.18035'\n className='cls-30'\n />\n <path\n id='svg_53'\n fill='#ebfcff'\n d='m300.56,188.35c0.34,-0.28 1,0 1.2,0.41c-0.14,-0.19 -0.37,-0.12 -0.49,0.16a19,19 0 0 0 -2.25,8.31c-0.17,0.75 -1.05,2.43 -1.34,3.42a1.28,1.28 0 0 0 0.42,1.53a1.27,1.27 0 0 1 -1.62,-0.54c-0.45,-0.67 0.47,-3.07 0.64,-3.52s1.83,-5.18 1.91,-5.94a13.54,13.54 0 0 1 1.53,-3.83z'\n className='cls-19'\n />\n <path\n id='svg_54'\n fill='#ffb056'\n d='m300.25,202.48a10.84,10.84 0 0 1 -1.93,-0.18a1.19,1.19 0 0 1 -0.22,-0.12a1.28,1.28 0 0 1 -0.42,-1.53c0.29,-1 1.17,-2.67 1.34,-3.42a19,19 0 0 1 2.25,-8.31c0.12,-0.28 0.35,-0.35 0.49,-0.16a21,21 0 0 1 0.59,4.1a9.09,9.09 0 0 0 1.12,5.32a1.83,1.83 0 0 1 -0.17,0.53c-0.28,0.56 -0.81,0.92 -1.13,0.76s-0.68,-0.66 -1,-0.06a2.05,2.05 0 0 0 0,1.86c0.28,0.38 0.57,0.51 0.3,0.95a2.25,2.25 0 0 0 -0.16,0.3c-0.13,0.25 -0.16,0.38 -0.33,0.4s-0.34,-0.42 -0.73,-0.44z'\n className='cls-25'\n />\n <path\n id='svg_55'\n strokeWidth='0.09px'\n stroke='#4986d9'\n strokeMiterlimit='10'\n fill='none'\n d='m301.76,188.76c-0.19,-0.38 -0.86,-0.69 -1.2,-0.41a13.54,13.54 0 0 0 -1.53,3.83c-0.08,0.76 -1.74,5.48 -1.91,5.94s-1.09,2.85 -0.64,3.52a1.27,1.27 0 0 0 1.62,0.54l0,0'\n className='cls-21'\n />\n </g>\n <g transform='rotate(-180 196.395 199.245)' opacity='0.88' id='svg_56'>\n <polygon\n id='svg_13'\n fill='#7dccf5'\n points='137.75,247.66000366210938 175.89999389648438,224.32000732421875 223.51998901367188,224.76998901367188 223.29000854492188,248.47000122070312 137.75,247.66000366210938 '\n className='cls-13'\n />\n <polygon\n id='svg_14'\n fill='#69bff5'\n points='223.29000854492188,248.47000122070312 223.51998901367188,224.76998901367188 261.44000244140625,225.13999938964844 223.29000854492188,248.47000122070312 '\n className='cls-14'\n />\n <polygon\n id='svg_15'\n fill='#57b3f5'\n points='261.44000244140625,225.13999938964844 268.75,198.07000732421875 286.5799865722656,187.16000366210938 261.44000244140625,225.13999938964844 '\n className='cls-15'\n />\n <polygon\n id='svg_16'\n fill='#8cd7ff'\n points='106.21000671386719,216.97000122070312 138.22000122070312,197.3699951171875 144.35000610351562,193.62998962402344 175.77999877929688,224.20999145507812 175.77999877929688,224.32000732421875 137.75,247.66000366210938 106.21000671386719,216.97000122070312 '\n className='cls-16'\n />\n <polygon\n id='svg_17'\n fill='#8cd7ff'\n points='268.75,198.07000732421875 261.44000244140625,225.13999938964844 223.51998901367188,224.76998901367188 175.89999389648438,224.32000732421875 184.4499969482422,192.58999633789062 261.739990234375,193.3300018310547 270,193.41000366210938 268.75,198.07000732421875 '\n className='cls-16'\n />\n <polygon\n id='svg_18'\n fill='#69bff5'\n points='138.22000122070312,197.3699951171875 138.4600067138672,173.36000061035156 176.49000549316406,150.02000427246094 175.77999877929688,224.20999145507812 144.35000610351562,193.62998962402344 138.22000122070312,197.3699951171875 '\n className='cls-14'\n />\n <polygon\n id='svg_19'\n fill='#7dccf5'\n points='175.77999877929688,224.20999145507812 176.49000549316406,150.02000427246094 176.61000061035156,150.02000427246094 262.1499938964844,150.83999633789062 261.739990234375,193.3300018310547 184.4499969482422,192.58999633789062 175.89999389648438,224.32000732421875 175.77999877929688,224.20999145507812 '\n className='cls-13'\n />\n <polygon\n id='svg_20'\n fill='#69bff5'\n points='261.7799987792969,189.30999755859375 182.7899932861328,189.30999755859375 175.89999389648438,224.32000732421875 184.4499969482422,192.58999633789062 261.739990234375,193.3300018310547 261.7799987792969,189.30999755859375 '\n className='cls-14'\n />\n <polygon\n id='svg_21'\n fill='#57b3f5'\n points='175.89999389648438,224.32000732421875 151.02999877929688,192.58999633789062 146.1300048828125,195.36000061035156 175.89999389648438,224.32000732421875 '\n className='cls-15'\n />\n </g>\n </g>\n </svg>\n );\n}\n\n//后缀\nexport function SuffixIcon({\n className,\n suffix,\n status,\n}: {\n className: string;\n suffix: string;\n status?: 'done' | 'processing';\n}) {\n let _file = [\n 'folder',\n 'xls',\n 'xlsx',\n 'doc',\n 'docx',\n 'pptx',\n 'md',\n 'txt',\n 'js',\n 'css',\n 'pdf',\n 'html',\n 'json',\n '3dm',\n '3ds',\n '7z',\n 'accdb',\n 'ai',\n 'air',\n 'apk',\n 'arj',\n 'as',\n 'asax',\n 'ascx',\n 'ashx',\n 'asm',\n 'asmx',\n 'aspx',\n 'autodesk',\n 'avi',\n 'bin',\n 'bmp',\n 'bz2',\n 'c',\n 'cab',\n 'cdr',\n 'cer',\n 'chm',\n 'class',\n 'cmd',\n 'code',\n 'cpp',\n 'cs',\n 'cshtml',\n 'csproj',\n 'css',\n 'csv',\n 'dae',\n 'djvu',\n 'dll',\n 'dmg',\n 'dng',\n 'doc',\n 'docm',\n 'docx',\n 'dot',\n 'dotm',\n 'dotx',\n 'dtd',\n 'dwf',\n 'dwg',\n 'dxf',\n 'eml',\n 'eps',\n 'epub',\n 'exe',\n 'f',\n 'fbx',\n 'fla',\n 'flv',\n 'font',\n 'framework',\n 'gif',\n 'graph',\n 'gz',\n 'h',\n 'hdr',\n 'hlp',\n 'iam',\n 'ico',\n 'ifc',\n 'indd',\n 'ini',\n 'ipa',\n 'iso',\n 'jar',\n 'java',\n 'js',\n 'json',\n 'key',\n 'ldf',\n 'lnk',\n 'makefile',\n 'mdb',\n 'mdf',\n 'mht',\n 'mhtml',\n 'midi',\n 'mkv',\n 'mov',\n 'movie',\n 'map4',\n 'mpp',\n 'mpt',\n 'msg',\n 'msi',\n 'music',\n 'numbers',\n 'o',\n 'odp',\n 'ods',\n 'odt',\n 'oexe',\n 'office',\n 'ogg',\n 'pages',\n 'pdb',\n 'php',\n 'pkg',\n 'pi',\n 'pot',\n 'potx',\n 'pps',\n 'ppsx',\n 'prproj',\n 'psd',\n 'pspimage',\n 'pst',\n 'put',\n 'py',\n 'rar',\n 'rd',\n 'reg',\n 'resx',\n 'rmvb',\n 'rtf',\n 'rvt',\n 's',\n 'sitx',\n 'skp',\n 'sln',\n 'sql',\n 'stl',\n 'suo',\n 'svg',\n 'swf',\n 'swift',\n 'tar',\n 'tga',\n 'tgz',\n 'utorrent',\n 'vb',\n 'vbproj',\n 'vbs',\n 'vcf',\n 'vcproj',\n 'vcxproj',\n 'vdw',\n 'vdx',\n 'vsd',\n 'vsdx',\n 'vss',\n 'vst',\n 'vsx',\n 'vtx',\n 'wasm',\n 'xaml',\n 'xap',\n 'xlsb',\n 'xlsm',\n 'xlt',\n 'xltx',\n 'xps',\n 'xsd',\n 'xsl',\n 'y',\n 'zip',\n //非文件类型特色icon\n 'open',\n 'download',\n 'upload',\n 'copy',\n 'shear',\n 'rename',\n 'remove',\n 'update',\n 'file-line',\n 'paste',\n ];\n\n let statuslist = ['done', 'processing'];\n\n let is = _file.includes(suffix);\n return (\n <span\n className={cx(`explorer_icon x-${is ? suffix : 'unknown'}`, {\n [className || '']: className,\n })}\n >\n {status && <StatusIcon status={status} />}\n </span>\n );\n}\n\nexport function StatusIcon({ status = '' }: { status: string | React.ReactNode }) {\n let _localimg = ['done', 'processing'];\n\n if (typeof status === 'string' && status) {\n let is = _localimg.includes(status);\n return is ? (\n <span className={cx(`explorer_icon-state ${status} `)}></span>\n ) : (\n <img className='explorer_icon-stateimg' src={status}></img>\n );\n }\n return status ? <span className={cx(`explorer_icon-state`)}>{status}</span> : null;\n}\n\nexport function UnknownSvg() {\n return (\n <svg viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path\n d='M160 0h512l256 256v704c0 35.3472-28.6528 64-64 64H160c-35.3472 0-64-28.6528-64-64V64c0-35.3472 28.6528-64 64-64z'\n fill='#CCCCCC'\n ></path>\n <path d='M672 0l256 256h-192c-35.3472 0-64-28.6528-64-64V0z' fill='#EAEAEA'></path>\n <path\n d='M384 499.2c0-25.6 5.12-46.08 10.24-58.88 5.12-12.8 15.36-25.6 28.16-35.84 12.8-12.8 25.6-20.48 43.52-25.6 15.36-5.12 30.72-7.68 48.64-7.68 35.84 0 64 10.24 89.6 30.72C627.2 422.4 640 448 640 481.28c0 15.36-5.12 28.16-10.24 40.96s-17.92 28.16-38.4 46.08-28.16 30.72-35.84 38.4c-7.68 7.68-10.24 17.92-15.36 28.16-5.12 10.24-2.56 17.92-2.56 43.52h-51.2c0-25.6 2.56-38.4 5.12-51.2s7.68-23.04 15.36-33.28 15.36-23.04 33.28-40.96c17.92-17.92 30.72-30.72 35.84-38.4 5.12-7.68 10.24-20.48 10.24-38.4s-7.68-30.72-20.48-43.52-30.72-20.48-53.76-20.48c-51.2 0-76.8 35.84-76.8 87.04h-51.2z m153.6 281.6h-51.2v-51.2h51.2v51.2z'\n fill='#FFFFFF'\n ></path>\n </svg>\n );\n}\n\nexport function UploadSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M768 640v128H256V640h-85.333v128c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333V640H768zM298.667 384l60.16 60.16 110.506-110.08v348.587h85.334V334.08l110.506 110.08 60.16-60.16L512 170.667 298.667 384z'></path>\n </svg>\n );\n}\n","import createEmotion from '@emotion/css/create-instance';\n\nexport const {\n flush,\n hydrate,\n cx,\n merge,\n getRegisteredStyles,\n injectGlobal,\n keyframes,\n css,\n sheet,\n cache,\n} = createEmotion({ key: 'explorer' });\n","import './index.less';\nimport React, {\n useState,\n useRef,\n useEffect,\n useMemo,\n CSSProperties,\n useImperativeHandle,\n} from 'react';\nimport { cx } from '@emotion/css';\n\n/**\n * TODO.\n * - 嵌套使用\n * - 最多支持两个子元素 和无数个固定元素 固定元素不能在中间\n * - 目前子元素必须是两个\n */\n\nexport interface DraggableProps {\n ref?: any;\n style?: React.CSSProperties;\n className?: string;\n placement?: 'horizontal' | 'vertical'; // 布局方式 默认 horizontal\n poi?: Array<number | 'max'>; // 线的位置\n fix?: boolean[]; // 默认全不固定\n rang?: number[]; // 每个子元素最小宽度/最小高度 默认不填是 0\n children: React.ReactNode;\n}\n\nconst Draggable: React.FC<DraggableProps> = React.forwardRef(\n (\n {\n className,\n style,\n placement = 'horizontal',\n poi: _poi,\n fix = [false, false],\n rang = [0, 0],\n children,\n },\n ref,\n ) => {\n const boxRef = useRef<HTMLDivElement | null>(null);\n const clickInfoRef = useRef<{ x: number; i: number; w: number }>({ x: 0, i: 0, w: 0 });\n const sashPlacement = placement === 'horizontal' ? 'vertical' : 'horizontal';\n const [sashClicked, setSashClicked] = useState(-1); // 不等于 -1 代表点击了\n const [minimum, setMinimum] = useState(false);\n const [maximum, setMaximum] = useState(false);\n const [poi, setPoi] = useState<Array<number | 'max'>>(_poi || []);\n const [pSize, setParentSize] = useState({\n width: 0,\n height: 0,\n });\n\n useImperativeHandle(ref, () => {\n return {\n // 父组件宽高\n parentSize: pSize,\n\n // 组件是否最大化\n isMaximize: (index: number) => {\n let ps = placement === 'horizontal' ? pSize.width : pSize.height;\n\n if (index) {\n return poi[0] === 0;\n }\n\n return calcMax(poi[0]) === ps;\n },\n\n // 组件是否最小化\n isMinimize: (index: number) => {\n let ps = placement === 'horizontal' ? pSize.width : pSize.height;\n\n if (index) {\n return calcMax(poi[0]) === ps;\n }\n\n return poi[0] === 0;\n },\n\n // 组件最大化\n onMaximize,\n\n // 组件最小化\n onMinimize,\n // 设置组件大小\n setSize,\n };\n });\n\n useEffect(() => {\n // 监听元素大小改变\n const ob = resizeObserver();\n document.addEventListener('mouseleave', cancelDrag);\n\n return () => {\n ob && boxRef.current && ob.unobserve(boxRef.current!);\n document.removeEventListener('mouseleave', cancelDrag);\n };\n }, []);\n\n function resizeObserver() {\n const targetElement = boxRef.current!;\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setParentSize({ width, height });\n }\n });\n\n resizeObserver.observe(targetElement);\n\n return resizeObserver;\n }\n\n function handleMouseMove(e: any) {\n if (~sashClicked) {\n let x = placement === 'horizontal' ? e.clientX || e.pageX : e.clientY || e.pageY;\n\n let $_width = x - clickInfoRef.current.x + clickInfoRef.current.w;\n let index = clickInfoRef.current.i;\n let min = rang[index];\n let max = (placement === 'horizontal' ? pSize.width : pSize.height) - rang.slice(-1)[0];\n\n setMinimum(false);\n setMaximum(false);\n\n if ($_width <= min) {\n $_width = min;\n setMinimum(true);\n } else if ($_width >= max) {\n $_width = max;\n setMaximum(true);\n }\n let $_w2 = placement === 'horizontal' ? pSize.width - $_width : pSize.height - $_width; //第二个模块宽或高\n setPoi([$_width, $_w2]); // TODO.先这么写\n }\n }\n\n function getElementRect(index: number) {\n let curPoi = !index ? 0 : calcMax(poi[index - 1]);\n\n let w = 0;\n if (placement === 'horizontal') {\n curPoi = Math.min(curPoi, pSize.width);\n\n if (index == poi.length - 1 && poi.length > 1) {\n if (fix[index] && poi.length > 1) {\n w = calcMax(poi[index] || 0);\n curPoi = Math.min(pSize.width - w, pSize.width);\n } else {\n w = pSize.width - curPoi;\n }\n } else if (poi[index] === void 0) {\n w = pSize.width - curPoi;\n } else {\n if (fix[index] && poi.length > 1) {\n w = Math.min(calcMax(poi[index] || 0), pSize.width);\n } else {\n if (poi.length > 1) {\n w = pSize.width - calcMax(poi[index + 1] || 0);\n } else {\n w = Math.min(calcMax(poi[index]), pSize.width) - curPoi;\n }\n }\n }\n }\n\n if (placement === 'vertical') {\n if (index == poi.length - 1 && poi.length > 1) {\n if (fix[index] && poi.length > 1) {\n w = calcMax(poi[index] || 0);\n curPoi = Math.min(pSize.height - w, pSize.height);\n } else {\n w = pSize.height - curPoi;\n }\n } else if (poi[index] === void 0) {\n w = pSize.height - curPoi;\n } else {\n if (fix[index] && poi.length > 1) {\n w = Math.min(calcMax(poi[index] || 0), pSize.height);\n } else {\n if (poi.length > 1) {\n w = pSize.height - calcMax(poi[index + 1] || 0);\n } else {\n w = Math.min(calcMax(poi[index]), pSize.height) - curPoi;\n }\n }\n }\n // curPoi = Math.min(curPoi, pSize.height);\n // if (poi[index] === void 0) {\n // // 最后一个\n // w = pSize.height - curPoi;\n // } else {\n // w = Math.min(calcMax(poi[index]), pSize.height) - curPoi;\n // }\n }\n return {\n p: curPoi,\n w,\n };\n }\n\n function handleMouseDown(e: any, index: number) {\n let x = placement === 'horizontal' ? e.clientX || e.pageX : e.clientY || e.pageY;\n clickInfoRef.current = {\n x,\n i: index,\n w: getElementRect(index).w,\n };\n setSashClicked(index);\n }\n\n function cancelDrag() {\n setSashClicked(-1);\n }\n\n function onMaximize(index: number) {\n // 最大化\n if (index) {\n setPoi([0]);\n } else {\n setPoi(['max']);\n }\n }\n\n function onMinimize(index: number) {\n // 最小化\n if (index) {\n setPoi(['max']);\n } else {\n setPoi([0]);\n }\n }\n\n function setSize(index: number, size: number) {\n // 设置大小\n let ps = placement === 'horizontal' ? pSize.width : pSize.height;\n\n let s = Math.min(size, ps);\n setPoi([index ? ps - s : s, index ? s : ps - s]);\n return s;\n }\n\n const childrenDom = useMemo(() => {\n return React.Children.map(children, (child: any, index) => {\n let style: CSSProperties = {};\n let { p, w } = getElementRect(index);\n\n let ps = pSize.height;\n let viewWidth = pSize.width;\n let viewHeight = pSize.height;\n if (placement === 'horizontal') {\n ps = pSize.width;\n style.left = p;\n style.height = '100%';\n style.width = viewWidth = w;\n }\n\n if (placement === 'vertical') {\n style.top = p;\n style.width = '100%';\n style.height = viewHeight = w;\n }\n let isMinimize = !w;\n let isMaximize = w === ps;\n if (!pSize.height || !pSize.width) return null;\n return (\n <div\n className={cx('split-view-view', { visible: !isMinimize })}\n key={index}\n style={style}\n >\n {typeof child?.type === 'string' || typeof child === 'string'\n ? child\n : React.cloneElement(child, {\n viewWidth,\n viewHeight,\n parentSize: pSize,\n isMaximize,\n isMinimize,\n onMaximize: () => {\n onMaximize(index);\n },\n onMinimize: () => {\n onMinimize(index);\n },\n setSize: (size: number) => {\n setSize(index, size);\n },\n })}\n </div>\n );\n });\n }, [placement, children, poi, pSize]);\n\n function calcMax(size: number | 'max'): number {\n return size === 'max' ? (placement === 'horizontal' ? pSize.width : pSize.height) : size;\n }\n\n const sashDom = useMemo(() => {\n // poi只有一个或有一个为0时\n let hasZero = poi.filter((v) => {\n return v === 0 || v === 'max';\n });\n if (hasZero.length > 0) return null;\n\n // poi需要配合固定时;\n if (poi.length > 1) {\n let style: CSSProperties = {};\n let it = calcMax(poi[0]);\n if (fix[1]) {\n it = calcMax(poi[1]);\n\n if (placement === 'horizontal') {\n it = pSize.width - it;\n style.left = it - 2.5;\n }\n if (placement === 'vertical') {\n it = pSize.height - it;\n style.top = it - 2.5;\n }\n } else {\n if (placement === 'horizontal') {\n it = Math.min(it, pSize.width);\n style.left = it - 2.5;\n }\n if (placement === 'vertical') {\n it = Math.min(it, pSize.height);\n style.top = it - 2.5;\n }\n }\n\n return (\n <div\n // key={index}\n className={cx('code-sash', sashPlacement, { active: sashClicked === 0 })}\n style={style}\n onMouseDown={(e) => handleMouseDown(e, 0)}\n onMouseUp={cancelDrag}\n ></div>\n );\n }\n\n return poi.map((it, index) => {\n it = calcMax(it);\n\n let style: CSSProperties = {};\n if (placement === 'horizontal') {\n it = Math.min(it, pSize.width);\n style.left = it - 2.5;\n }\n if (placement === 'vertical') {\n it = Math.min(it, pSize.height);\n style.top = it - 2.5;\n }\n return (\n <div\n key={index}\n className={cx('code-sash', sashPlacement, { active: sashClicked === index })}\n style={style}\n onMouseDown={(e) => handleMouseDown(e, index)}\n onMouseUp={cancelDrag}\n ></div>\n );\n });\n }, [placement, poi, pSize, sashClicked]);\n\n return (\n <div className={cx('Draggable', className, placement)} style={style}>\n <div className={cx('sash-container')}>\n <div\n className={cx('code-sash-mask', sashPlacement, {\n active: Boolean(~sashClicked),\n minimum,\n maximum,\n })}\n onMouseMove={handleMouseMove}\n onMouseUp={cancelDrag}\n ></div>\n {sashDom}\n </div>\n <div ref={boxRef} className={cx('split-view-container')}>\n {childrenDom}\n </div>\n </div>\n );\n },\n);\n\nexport default Draggable;\n","import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport './index.less';\nimport cx from 'classnames';\ninterface DropdownProps {\n id?: string;\n children: any;\n trigger?: 'click' | 'hover' | 'contextMenu';\n placement?:\n | 'left'\n | 'top'\n | 'right'\n | 'bottom'\n | 'topLeft'\n | 'topRight'\n | 'bottomLeft'\n | 'bottomContent';\n dropdownRender?: any;\n zIndex?: number;\n className?: string;\n onExpand?: (val: boolean) => void;\n destroyPopupOnHide?: boolean; //关闭后是否销毁\n capture?: boolean;\n position?: { x?: number; y?: number };\n style?: any;\n onContextMenu?: any;\n}\n\nfunction returnDocument(element?: any): Document {\n if (element) {\n return element.ownerDocument;\n }\n return window.document;\n}\n\nexport default function Dropdown(props: DropdownProps) {\n let {\n children,\n dropdownRender,\n trigger = 'click',\n placement = 'left',\n className,\n id,\n zIndex,\n onExpand,\n destroyPopupOnHide = false,\n capture,\n position,\n style,\n onContextMenu,\n } = props;\n const [expand, setExpand] = useState(false);\n const [newDiv, setNewDiv] = useState<any>(null);\n const menu = useRef<any>(null);\n const [mouse, setMouse] = useState<any>(null);\n const [root, setRoot] = useState<any>(null);\n const ref: any = useRef();\n const time: any = useRef(null);\n\n let [windowSize, setWindowSize] = useState(getSize());\n let [menuSize, setMenuSize] = useState({\n width: 0,\n height: 0,\n });\n\n useLayoutEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n useLayoutEffect(() => {\n addEvent();\n return () => {\n delEvent();\n };\n }, []);\n\n function handleResize() {\n setWindowSize(getSize());\n }\n\n function getSize() {\n return {\n width: window?.innerWidth || 0,\n height: window?.innerHeight || 0,\n };\n }\n\n useEffect(() => {\n if (id) {\n let ids: any = document.querySelector(`._dropdown_${id}`);\n if (ids) {\n ids.onclick = () => {\n ids.remove();\n };\n }\n }\n }, []);\n\n //初始化创建弹框\n useEffect(() => {\n let content: any = null;\n let newDivs: any = null;\n if ((!newDiv && expand) || (destroyPopupOnHide && expand)) {\n let body = document.querySelector('body');\n newDivs = document.createElement('div');\n if (id) {\n newDivs.className = `_dropdown_${id}`;\n }\n content = document.createElement('div');\n setNewDiv(newDivs);\n menu.current = content;\n content.className = '_dropdown';\n content.style.position = 'absolute';\n content.onclick = onClick;\n newDivs.style.position = 'absolute';\n newDivs.style.top = '0px';\n newDivs.style.left = '0px';\n // newDivs.style.bottom = '0px';\n newDivs.style.width = '100%';\n newDivs.style.zIndex = zIndex ? zIndex + '' : '1002';\n newDivs.onclick = onClone;\n if (trigger == 'hover') {\n newDivs.onmouseleave = (e: any) => {\n time.current = setTimeout(() => {\n onClone();\n }, 300);\n };\n newDivs.onmouseenter = () => {\n if (time.current) clearTimeout(time.current);\n };\n }\n newDivs?.appendChild(content);\n body?.appendChild(newDivs);\n let root = createRoot(content);\n content?.setAttribute('class', `_dropdown_menu _dropdown-hidden`);\n root.render(\n typeof dropdownRender == 'function'\n ? dropdownRender({ onClone })\n : React.cloneElement(dropdownRender, { onClone }),\n );\n setTimeout(() => {\n content?.setAttribute('class', `_dropdown_menu _dropdown-${placement}`);\n lie(content, newDivs);\n }, 100);\n setRoot(root);\n }\n onExpand?.(expand);\n\n return () => {};\n }, [expand]);\n\n useEffect(() => {\n if (!newDiv || !menu) return;\n expand\n ? menu?.current?.setAttribute('class', `_dropdown_menu _dropdown-${placement}`)\n : menu?.current?.setAttribute('class', '_dropdown_menu _dropdown-hidden');\n if (!expand) {\n } else {\n returnDocument().removeEventListener('click', onClone);\n }\n if (!expand) {\n newDiv?.remove();\n setNewDiv(null);\n setMenuSize({\n width: 0,\n height: 0,\n });\n }\n\n expand ? lie(menu?.current, newDiv) : null;\n }, [expand, mouse, placement]);\n\n useEffect(() => {\n if (menu?.current && root) {\n root.render(\n typeof dropdownRender == 'function'\n ? dropdownRender({ onClone })\n : React.cloneElement(dropdownRender, { onClone }),\n );\n }\n }, [dropdownRender, root]);\n\n function lie(content: any, newDiv: any) {\n if (!content || !newDiv) {\n return;\n }\n let curX = mouse?.x;\n let curY = mouse?.y;\n let shiftX = position?.x || 0;\n let shiftY = position?.y || 0;\n let size = content.getBoundingClientRect();\n let box = ref.current.getBoundingClientRect();\n\n if (placement == 'left' && trigger != 'contextMenu') {\n curX = box?.left - size?.width - 5 + shiftX;\n curY = box?.top + 5;\n }\n\n if (placement == 'top') {\n curY = box?.top - size?.height - 10;\n }\n\n if (placement == 'topLeft') {\n curY = box?.top - size?.height - 10;\n curX = box?.left;\n }\n\n if (placement == 'topRight') {\n curY = box?.top - size?.height - 10;\n curX = box?.right - size.width + 10;\n }\n if (placement == 'bottom') {\n curY = box?.bottom + 10;\n }\n if (placement == 'bottomLeft') {\n curY = box?.bottom + 10;\n curX = box?.left;\n }\n if (placement == 'right') {\n curX = box?.right + 10 + shiftX;\n curY = box?.top;\n }\n\n if (placement == 'bottomContent') {\n curY = box?.bottom + 10;\n curX = box?.left - (size?.width || 0) / 2 + (box.width || 0) / 2;\n }\n\n if (windowSize.width - (curX || 0) - (size?.width || 0) < 0) {\n curX = Math.trunc(mouse?.x - size?.width) - 5;\n }\n if (windowSize.height - (curY || 0) - (size?.height || 0) < 0) {\n curY = Math.trunc(mouse?.y - size?.height) - 5;\n }\n content.style.top = `${curY || 0}px`;\n content.style.left = `${curX || 0}px`;\n }\n\n //处理点击和点击嵌套问题\n const addEvent = () => {\n returnDocument().body.addEventListener('click', onClone, false);\n returnDocument().body.addEventListener('click', documentClose, true);\n returnDocument().body.addEventListener('contextmenu', documentMenu, false);\n };\n\n const delEvent = () => {\n returnDocument().body.removeEventListener('click', onClone, false);\n returnDocument().body.removeEventListener('click', documentClose, true);\n returnDocument().body.removeEventListener('contextmenu', documentMenu, true);\n };\n\n function documentMenu(e: any) {\n if (!ref.current?.contains(e.target)) {\n onClone();\n }\n }\n\n function documentClose(e: any) {\n var container = document.querySelector('._dropdown_menu');\n if (container?.contains(e.target)) {\n if (menu.current !== container) {\n onClone();\n }\n } else {\n if (!ref.current?.contains(e.target)) {\n onClone();\n }\n }\n }\n\n useEffect(() => {\n if (!menu?.current) return;\n const resizeObserver = new ResizeObserver(() => {\n if (menu.current.offsetWidth !== menuSize.width) {\n }\n if (menu.current.offsetHeight) {\n setMenuSize({\n ...menuSize,\n height: menu.current.offsetHeight,\n });\n }\n });\n resizeObserver.observe(menu.current);\n return function cleanup() {\n resizeObserver.disconnect();\n };\n }, [menu?.current]);\n\n //如果内部组件,宽高发生变化从新计算高度\n useEffect(() => {\n if (menu?.current && root) {\n lie(menu?.current, newDiv);\n }\n }, [menuSize.height, menuSize.width]);\n\n function onClone() {\n setExpand(false);\n }\n\n function onClick(e: any) {\n e.stopPropagation();\n }\n\n return (\n <div\n ref={ref}\n className={cx('_dropdown', {\n [className || '']: className,\n })}\n style={{\n ...style,\n }}\n onMouseEnter={(e) => {\n e.preventDefault();\n if (trigger == 'hover') {\n setTimeout(() => {\n if (time.current) clearTimeout(time.current);\n });\n let x = 0 + (position?.x || 0);\n let y = 0 + (position?.y || 0);\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n setMouse({ x, y });\n setExpand(true);\n }\n }}\n onMouseLeave={(e: any) => {\n if (trigger == 'hover') {\n time.current = setTimeout(() => {\n onClone();\n }, 300);\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault();\n onContextMenu?.(e);\n if (trigger == 'contextMenu') {\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n setMouse({ x, y });\n setExpand(true);\n }\n }}\n onClick={(e) => {\n if (trigger == 'click') {\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n setMouse({ x, y });\n setExpand(!expand);\n } else {\n setExpand(false);\n }\n }}\n >\n {children}\n </div>\n );\n}\n","import { MenuItem } from '.';\nimport { FavSvg, InfoSvg, ShareSvg, FavTagSvg, UpdateSvg } from '../icons';\n\nconst iconFactory: {\n [propName: string]: React.ComponentType<{}>;\n} = {};\n\nexport function getMenu(key: string) {\n return iconFactory[key];\n}\n\nexport function registerMenu(key: string, component: any) {\n iconFactory[key] = component;\n}\n\nexport function addMenuItem(key: string | string[], menu: any[]) {\n let keys: string[] = [];\n if (Array.isArray(key)) {\n keys = key;\n } else {\n keys = [key];\n }\n keys.map((v: string) => {\n let component: any = getMenu(v);\n let arr = [...component, ...menu];\n registerMenu(v, arr);\n });\n}\n\nexport function removeMenuItem(key: string | string[], menuItem: string[]) {\n let keys: string[] = [];\n if (Array.isArray(key)) {\n keys = key;\n } else {\n keys = [key];\n }\n keys.map((v: string) => {\n let component: any = getMenu(v);\n let arr = component.filter((item: MenuItem) => !menuItem.includes(item.key));\n registerMenu(v, arr);\n });\n}\n\n//\nregisterMenu('basis', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n },\n { type: 'line' },\n {\n key: 'fav-add',\n icon: <FavSvg></FavSvg>,\n title: '添加到收藏文件夹',\n },\n {\n key: 'create-link-home',\n icon: 'app-link',\n title: '发送到桌面快捷方式',\n },\n]);\n//收藏夹\nregisterMenu('favorite', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n },\n { type: 'line' },\n {\n key: 'fav-add',\n icon: <FavSvg></FavSvg>,\n title: '添加到收藏文件夹',\n suffix: '',\n },\n {\n key: 'create-link-home',\n icon: 'app-link',\n title: '发送到桌面快捷方式',\n },\n]);\n//个人中心\nregisterMenu('self', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n },\n {\n type: 'line',\n },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n },\n]);\n//文件夹\nregisterMenu('folder', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n suffix: '',\n },\n { type: 'line' },\n {\n key: 'download',\n icon: 'download',\n title: '下载',\n istoolbar: true,\n },\n { type: 'line' },\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n desc: 'ctrl + c',\n istoolbar: true,\n },\n {\n key: 'shear',\n icon: 'shear',\n title: '剪切',\n desc: 'ctrl + x',\n istoolbar: true,\n },\n {\n key: 'rename',\n icon: 'rename',\n title: '重命名',\n istoolbar: true,\n },\n {\n key: 'remove',\n icon: 'remove',\n title: '删除',\n istoolbar: true,\n },\n { type: 'line' },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n },\n]);\n\n//当前文件夹\nregisterMenu('cur-folder', [\n {\n key: 'update',\n icon: <UpdateSvg></UpdateSvg>,\n title: '刷新',\n },\n { type: 'line' },\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n desc: 'ctrl + c',\n },\n {\n key: 'file-upload',\n icon: 'upload',\n title: '文件上传',\n },\n {\n key: 'create',\n icon: 'folder',\n title: '新建文件夹',\n },\n {\n key: 'create-file',\n icon: 'file-line',\n title: '新建文件',\n children: 'create-file',\n },\n { type: 'line' },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n },\n]);\n\n//文件夹\nregisterMenu('nav-folder', [\n {\n key: 'update',\n icon: <UpdateSvg></UpdateSvg>,\n title: '刷新',\n },\n { type: 'line' },\n {\n key: 'download',\n icon: 'download',\n title: '下载',\n },\n { type: 'line' },\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n },\n {\n key: 'shear',\n icon: 'shear',\n title: '剪切',\n },\n {\n key: 'rename',\n icon: 'rename',\n title: '重命名',\n },\n {\n key: 'remove',\n icon: 'remove',\n title: '删除',\n },\n { type: 'line' },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n },\n]);\n\n//文件\nregisterMenu('file', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n suffix: '',\n },\n { type: 'line' },\n {\n key: 'download',\n icon: 'download',\n title: '下载',\n istoolbar: true,\n },\n { type: 'line' },\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n istoolbar: true,\n },\n {\n key: 'shear',\n icon: 'shear',\n title: '剪切',\n istoolbar: true,\n },\n {\n key: 'rename',\n icon: 'rename',\n title: '重命名',\n istoolbar: true,\n },\n {\n key: 'remove',\n icon: 'remove',\n title: '删除',\n istoolbar: true,\n },\n { type: 'line' },\n {\n key: 'user-file-tag',\n icon: <FavTagSvg />,\n title: '个人标签',\n },\n { type: 'line' },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n istoolbar: true,\n },\n]);\n\n//创建文件\nregisterMenu('create-file', [\n {\n key: 'txt',\n icon: 'txt',\n title: 'txt 文件',\n },\n {\n key: 'md',\n icon: 'md',\n title: 'md 文件',\n },\n {\n key: 'html',\n icon: 'html',\n title: 'htm 文件',\n },\n {\n key: 'xlsx',\n icon: 'xlsx',\n title: 'xlsx 文件',\n },\n]);\n\n//创建文件\nregisterMenu('Batch-Selection', [\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n istoolbar: true,\n },\n {\n key: 'shear',\n icon: 'shear',\n title: '剪切',\n istoolbar: true,\n },\n {\n key: 'download',\n icon: 'download',\n title: '下载',\n istoolbar: true,\n },\n {\n key: 'remove',\n icon: 'remove',\n title: '删除',\n istoolbar: true,\n },\n]);\n","import './index.less';\nimport cx from 'classnames';\nimport React, { ReactNode, useContext, useMemo } from 'react';\n\nimport { AngleRightSvg } from '../icons';\n\nimport Dropdown from '../Dropdown';\nimport { Icons } from '../../explorer';\nimport { getMenu } from './menulist';\n\ninterface MenuProps {\n menu?: MenuItem[];\n info?: any;\n onChange?: (key: string, parent?: MenuItem) => any;\n loadMenu?: (item: MenuItem) => MenuItem | MenuItem[];\n store?: any;\n}\nexport interface MenuItem {\n key: string;\n title: string;\n type?: string;\n icon?: string | ReactNode;\n children: MenuItem | null;\n [key: string]: any;\n}\n\nexport function menuIcon(icon: any) {\n if (typeof icon == 'string') {\n if (/\\.(jpg|jpeg|png|gif|bmp)$/.test(icon)) {\n return;\n }\n return Icons({ suffix: icon }, 'explorer-menu-icon');\n }\n\n if (React.isValidElement(icon)) {\n return <span className='explorer-menu-icon x-icon'>{icon}</span>;\n }\n return <></>;\n}\n\nexport default function Menu(props: MenuProps) {\n const { menu, onChange, loadMenu, store, info = {} } = props;\n\n if (!menu) return <></>;\n\n let data = useMemo(() => {\n let edit = ['remove', 'copy', 'create', 'shear', 'paste', 'rename'];\n let download = ['download'];\n let upload = ['file-upload'];\n let delect = ['remove'];\n\n let arr: any[] = [];\n\n let _menu: MenuItem[] = [];\n menu.map((v: any) => {\n let data = v;\n\n if (typeof v === 'function') {\n data = v?.(info);\n } else if (loadMenu) {\n data = loadMenu(v);\n }\n if (Array.isArray(data)) {\n _menu = [..._menu, ...data];\n } else {\n _menu.push(data);\n }\n });\n\n _menu.map((v) => {\n if (!store?.isEdit && edit.includes(v?.key)) {\n arr.push({\n ...v,\n disabled: true,\n });\n return;\n }\n if (!store?.isDelect && delect.includes(v?.key)) {\n arr.push({\n ...v,\n disabled: true,\n });\n return;\n }\n if (!store?.isDownload && download.includes(v?.key)) {\n arr.push({\n ...v,\n disabled: true,\n });\n return;\n }\n if (!store?.isUpload && upload.includes(v?.key)) {\n arr.push({\n ...v,\n disabled: true,\n });\n return;\n }\n arr.push(v);\n });\n\n return arr;\n }, [menu, props, store?.isEdit, store?.isDownload, store?.isUpload]);\n\n const menus = useMemo(() => {\n return data.map((v: any, index: number) => {\n //排除空数据\n if (!v) {\n return <React.Fragment key={index}></React.Fragment>;\n }\n //横线\n if (v?.type == 'line') {\n return <div key={index} className='explorer-menu-line'></div>;\n }\n\n //用来处理 子级\n let child: any | null = null;\n if (Array.isArray(v?.children) && v?.children.length) {\n child = v?.children;\n } else if (typeof v?.children === 'string') {\n let menudata = getMenu(v.children);\n if (menudata) {\n child = menudata;\n }\n }\n\n //默认内容\n let dom = (\n <div\n className={cx('explorer-menu-item', {\n disabled: v.disabled,\n })}\n key={index}\n onClick={(e) => {\n if (!v?.disabled) {\n onChange && onChange(v.key);\n } else {\n e.stopPropagation();\n }\n }}\n >\n <span className='item-icon'>{menuIcon(v?.icon)} </span>\n <span className='item-title'>{v?.title}</span>\n {v?.desc && <span className='item-tool'>{v?.desc}</span>}\n {child && (\n <span className='item-tool'>\n <span className='explorer-menu-icon x-icon'>\n <AngleRightSvg></AngleRightSvg>\n </span>\n </span>\n )}\n </div>\n );\n\n if (!child) {\n return dom;\n }\n\n return (\n <Dropdown\n key={index}\n trigger='hover'\n placement='right'\n position={{ x: -20 }}\n dropdownRender={({ onClone }: any) => {\n return (\n <Menu\n store={store}\n menu={child}\n onChange={(item) => {\n onChange && onChange(item, v);\n onClone();\n }}\n ></Menu>\n );\n }}\n >\n {dom}\n </Dropdown>\n );\n });\n }, [data]);\n\n return <div className='explorer-menu'>{menus}</div>;\n}\n","import './index.less';\nimport { cx, css } from '../../../css';\nimport classname from 'classnames';\nimport { CaretRight, CircleCheckSvg } from '../../../components/icons';\n\nimport { useState, useRef, useEffect, useLayoutEffect, useMemo, useContext } from 'react';\nimport { ExampleContext } from '../../../store';\nimport {\n ArrowLeftSvg,\n FavSvg,\n SearchSvg,\n UpdateSvg,\n ZoomUpSvg,\n ArrowTopSvg,\n OutdentSvg,\n ArrowRightSvg,\n} from '../../../components/icons';\nimport { Icons } from '../../../explorer';\nimport Menu, { menuIcon } from '../../../components/menu/index';\nimport { getMenu } from '../../../components/menu/menulist';\nimport React from 'react';\nimport { Ellipsis } from '@gingkoo/pandora-icons';\n\nconst menu = [\n {\n key: 'tile',\n title: '图标排列 (Alt+1)',\n icon: <i className='font-icon list-type-icon'></i>,\n },\n {\n key: 'table',\n title: '图标排列 (Alt+2)',\n icon: <i className='font-icon list-type-list'></i>,\n },\n {\n key: 'column',\n title: '图标排列 (Alt+3)',\n icon: <i className='font-icon list-type-split'></i>,\n },\n];\n\nconst ExplorerHead = (props: any) => {\n const { loadData, isEdit = true, isUpload = true } = props;\n\n const store = useContext(ExampleContext);\n const pathInputRef = useRef<any>(null);\n const [path, setPath] = useState('');\n const [pathFocus, setFocus] = useState(false);\n\n useEffect(() => {\n setPath(store?.curInfo?.pathDisplay || '');\n }, [store?.curInfo?.pathDisplay]);\n\n const Breadcrumb = useMemo(() => {\n let arr: any[] = [];\n let path = store?.curInfo?.pathDisplay || '';\n arr = path.split('/');\n arr = arr.filter((v) => v);\n\n return arr.map((v, i) => {\n if (!v) return <></>;\n let info = store?.dataMap?.[v];\n\n return (\n <li\n key={i}\n className={cx('header-address-item', {\n first: i == 0,\n last: i == arr.length - 1,\n })}\n >\n <a\n title={v}\n className={css`\n z-index: ${arr.length + 1 - i};\n `}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <span className='title-icon'>\n {info ? Icons({ ...info, status: null }, '') : Icons({ type: 'folder' }, '')}\n </span>\n <span className='title-name'>{v}</span>\n </a>\n </li>\n );\n });\n }, [store?.curInfo?.pathDisplay, store.dataMap]);\n\n function exit() {\n if (store.logindex) {\n if (Array.isArray(store.log)) {\n let index: number = store.logindex - 2;\n let key = store?.log[index];\n loadData?.(key || '');\n store.setLogIndex(index + 1);\n }\n }\n }\n\n function forward() {\n if (Array.isArray(store.log) && store.log.length - 1 >= store.logindex) {\n let key = store?.log[store.logindex];\n loadData?.(key);\n store.setLogIndex(store.logindex + 1);\n }\n }\n\n const addData = (data: any[], key: string, child: any) => {\n let arr: any[] = data;\n if (key) {\n let i = 0;\n while (i < arr.length) {\n let item = arr[i];\n if (item.key == key) {\n if (Array.isArray(item.children)) {\n item.children.unshift(child);\n } else {\n item.children = [child];\n }\n i = arr.length;\n break;\n }\n\n if (Array.isArray(item.children)) {\n item.children = addData(item.children, key, child);\n }\n i++;\n }\n } else {\n arr.unshift(child);\n }\n\n return arr || [];\n };\n\n const toolbar = useMemo(() => {\n let empty: any[] = [];\n if (!store.curSelect && props.checks?.length < 1) return empty;\n\n let info = null;\n if (store.curSelect) {\n info = store.dataMap?.[store.curSelect];\n }\n\n let menudata: any = [];\n\n if (props.checks?.length > 1) {\n menudata = getMenu('Batch-Selection');\n } else if (info && getMenu(info.key)) {\n menudata = getMenu(info.key);\n } else if (info && info.type && getMenu(info.type)) {\n menudata = getMenu(info.type);\n } else {\n menudata = getMenu('');\n }\n\n let tool: any[] = [],\n more: any[] = [];\n\n menudata?.map((v: any) => {\n if (v?.istoolbar) {\n if (tool.length > 3) {\n more.push(v);\n } else {\n tool.push(v);\n }\n }\n });\n\n if (more.length) {\n tool = [\n ...tool,\n {\n key: 'more',\n title: '更多',\n icon: <Ellipsis />,\n children: more,\n },\n ];\n }\n\n return tool;\n }, [\n store.curSelectFile,\n store.curSelect,\n store.dataMap,\n store.isEdit,\n store.isDelect,\n store.curInfo,\n props.checks,\n ]);\n\n function toolBtn(param: any) {\n let hidden = false;\n\n if (param.key == 'download' && store.isDownload == false) {\n }\n\n if (param.key == 'remove' && store.isDelect == false) {\n hidden = true;\n }\n\n if (['copy', 'shear', 'rename'].includes(param.key) && store.isEdit == false) {\n hidden = true;\n }\n\n return (\n <div className={cx('toolbar-btn', { hidden: hidden })} onClick={() => {}}>\n <span\n className='title'\n onClick={(e) => {\n let curinfo: any = store.curInfo;\n if (store.menutype == 'column' && store.curSelectFile) {\n curinfo = store.dataMap?.[store.curSelectFile];\n } else if (store.curSelect) {\n curinfo = store.dataMap?.[store.curSelect];\n }\n\n if (props.checks?.length > 1) {\n curinfo = {};\n }\n\n if (param.children) {\n e.stopPropagation();\n e.preventDefault();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n store.openMenu({\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={param.children}\n loadMenu={props?.loadMenu}\n onChange={async (key: any) => {\n if (key == 'rename') {\n store?.setReName(curinfo.key);\n return;\n }\n props?.onMenuClick?.(key, curinfo);\n store?.closeMenu();\n }}\n ></Menu>\n ),\n });\n return;\n }\n\n if (hidden) return;\n\n if (curinfo) {\n props?.onMenuClick?.(param.key, curinfo, 'main');\n }\n }}\n >\n {menuIcon(param.icon)}\n <span>{param.title}</span>\n </span>\n </div>\n );\n }\n\n return (\n <>\n <div className='header-content'>\n <div className='header-left'>\n <div className='btn-group'>\n <button\n className={cx('btn history-back', { disable: !store.log?.length || !store.logindex })}\n title='后退 (Alt+Left / Backspace)'\n onClick={() => {\n exit();\n }}\n >\n <ArrowLeftSvg />\n </button>\n <button\n className={cx('btn history-next', {\n disable: !store.log?.length || store.log?.length == store.logindex,\n })}\n title='前进 (Alt+Right / Ctrl+Backspace)'\n onClick={() => {\n forward();\n }}\n >\n <ArrowRightSvg />\n </button>\n </div>\n </div>\n <div className='header-middle'>\n <button\n className={cx('btn', { disable: !store.curInfo?.parentPath })}\n onClick={async () => {\n if (store.curInfo?.parentPath && store.curInfo?.key) {\n await loadData(store.curInfo?.parentPath);\n let arr = [...(store.log || [])];\n if (arr.length !== store.logindex) {\n arr = arr.slice(0, store.logindex - 1);\n }\n arr = [...arr, store.curInfo?.key];\n store.setLog(arr);\n store.setLogIndex(arr.length);\n }\n }}\n >\n <ArrowTopSvg />\n </button>\n <div\n className={cx('header-address', { hidden: pathFocus })}\n title='点击进入编辑状态'\n onClick={() => {\n setFocus(true);\n setTimeout(() => {\n pathInputRef.current.focus();\n }, 100);\n }}\n >\n <ul className={'header-address-content'}>\n {Breadcrumb}\n <li className='clear'></li>\n </ul>\n </div>\n\n <div className={cx('header-address-input', { hidden: !pathFocus })}>\n <input\n ref={pathInputRef}\n type='text'\n name='path'\n value={path}\n onInput={(e: any) => {\n setPath(e.target.value);\n }}\n className='path'\n spellCheck='false'\n onKeyDown={(e) => {\n if (pathFocus && (e.key === 'Enter' || e.keyCode === 13)) {\n loadData?.(path);\n setFocus(false);\n }\n }}\n onBlur={(v: any) => {\n loadData?.(v.target.value);\n setFocus(false);\n }}\n />\n </div>\n <button\n className={cx('btn', { disable: !store.curInfo?.key })}\n onClick={() => {\n if (store.curInfo?.key) {\n loadData(store.curInfo?.key);\n }\n }}\n >\n <UpdateSvg></UpdateSvg>\n </button>\n </div>\n <div className='header-right'>\n <div className='search-box'>\n <input placeholder='请输入'></input>\n <button>\n <SearchSvg></SearchSvg>\n </button>\n </div>\n </div>\n </div>\n <div className='frame-right-main'>\n <div className='toolbar'>\n <div className='toolbar-left'>\n {isEdit && (\n <div className={cx('toolbar-btn', { hidden: !isEdit })} onClick={() => {}}>\n <span\n className='title'\n onClick={() => {\n isEdit && store.createFolder();\n }}\n >\n {Icons({ type: 'folder' }, '')}\n <span>新建文件夹</span>\n </span>\n <span\n className='more'\n onClick={(e) => {\n if (!store.curInfo?.key) return;\n e.preventDefault();\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n let menudata: any = [];\n\n menudata = getMenu('create-file');\n store?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n onChange={async (v: any) => {\n store.createFolder(v);\n props?.closeMenu?.();\n }}\n ></Menu>\n ),\n },\n store.curInfo,\n );\n }}\n >\n <CaretRight></CaretRight>\n </span>\n </div>\n )}\n\n {isUpload && (\n <div className={cx('toolbar-btn', { hidden: !isEdit })} onClick={() => {}}>\n <span\n className='title'\n onClick={() => {\n let curinfo = store.curInfo;\n if (store.menutype == 'column' && store.curSelectFile) {\n curinfo = store.dataMap?.[store.curSelectFile];\n }\n store.uploadFile(curinfo);\n }}\n >\n {menuIcon('upload')}\n <span>文件上传</span>\n </span>\n </div>\n )}\n </div>\n <div className='toolbar-list'>\n {toolbar.map((v: any, index) => {\n return <React.Fragment key={index}>{toolBtn(v)}</React.Fragment>;\n })}\n </div>\n <div className='toolbar-right'>\n <div className='btn-group'>\n {store?.menutype == 'tile' && (\n <div\n className='tool'\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX - 18;\n y = e.nativeEvent.clientY + 20;\n\n store.openMenu({\n x: x,\n y: y,\n content: (\n <Slider\n value={store.menuSize}\n max={360}\n min={40}\n onChange={(v: number) => {\n store.setMenuSize(v);\n }}\n ></Slider>\n ),\n });\n }}\n >\n <ZoomUpSvg></ZoomUpSvg>\n </div>\n )}\n\n {menu.map((v) => {\n return (\n <button\n key={v.key}\n title={v.title}\n className={classname('btn', {\n active: store?.menutype == v.key,\n })}\n onClick={() => {\n store?.setMenutype(v.key as any);\n props?.onViewType?.(v.key);\n }}\n >\n {v.icon}\n </button>\n );\n })}\n\n <button\n className={classname('btn panel-toggle', {\n active: store?.infoshow,\n })}\n title='属性信息 <code>]</code>'\n onClick={() => {\n store?.setInfoShow(!store?.infoshow);\n }}\n >\n <OutdentSvg />\n </button>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default ExplorerHead;\n\nfunction Slider(props: any) {\n const { value, max, min, onChange } = props;\n const ref = useRef<any>(null);\n const [isdarg, setDarg] = useState(false);\n const [size, setSize] = useState<number | null>(null);\n\n useEffect(() => {\n document.addEventListener('mousemove', handleBodyMousemove);\n document.addEventListener('mouseup', handleBodyMouseup);\n\n return () => {\n document.removeEventListener('mousemove', handleBodyMousemove);\n document.removeEventListener('mouseup', handleBodyMouseup);\n };\n }, [isdarg, ref.current]);\n\n useEffect(() => {\n if (!size) return;\n let d_value = max - min;\n let per = d_value / 100;\n onChange && onChange(Math.round(per * size) + min);\n }, [size]);\n\n useEffect(() => {\n let d_value = max - min;\n let data = value - min;\n setSize((data / d_value) * 100);\n }, [value]);\n\n function handleBodyMousemove(e: any) {\n if (!isdarg) return;\n if (!ref.current) return;\n e.preventDefault();\n\n let dom = ref.current.getBoundingClientRect();\n let cur = dom.top + 15;\n let num = e.clientY - cur;\n num > 100 ? (num = 100) : null;\n num < 0 ? (num = 0) : null;\n setSize(num);\n }\n\n function handleBodyMouseup(e: any) {\n e.preventDefault();\n e.stopPropagation();\n setDarg(false);\n }\n\n return (\n <div\n className='_slider'\n ref={ref}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <div\n className='_slider-link'\n onClick={(e: any) => {\n let dom = ref.current.getBoundingClientRect();\n let cur = dom.top + 15;\n let num = e.clientY - cur;\n num > 100 ? (num = 100) : null;\n num < 0 ? (num = 0) : null;\n setSize(num);\n }}\n >\n <div\n style={{ top: size + 'px' }}\n className='_slider-drop'\n onMouseDown={(e) => {\n setDarg(true);\n }}\n ></div>\n </div>\n </div>\n );\n}\n","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nimport {\n BasicDataNode,\n DataNode,\n Direction,\n EventDataNode,\n IconType,\n Key,\n KeyEntities,\n NodeInstance,\n} from './interface';\nimport { DraggableConfig } from './Tree';\n\nexport type NodeMouseEventParams<\n TreeDataType extends BasicDataNode = DataNode,\n T = HTMLSpanElement,\n> = {\n event: React.MouseEvent<T>;\n node: EventDataNode<TreeDataType>;\n};\nexport type NodeDragEventParams<\n TreeDataType extends BasicDataNode = DataNode,\n T = HTMLDivElement,\n> = {\n event: React.DragEvent<T>;\n node: EventDataNode<TreeDataType>;\n};\n\nexport type NodeMouseEventHandler<\n TreeDataType extends BasicDataNode = DataNode,\n T = HTMLSpanElement,\n> = (e: React.MouseEvent<T>, node: EventDataNode<TreeDataType>) => void;\nexport type NodeDragEventHandler<\n TreeDataType extends BasicDataNode = DataNode,\n T = HTMLDivElement,\n> = (e: React.DragEvent<T>, node: NodeInstance<TreeDataType>, outsideTree?: boolean) => void;\n\nexport interface TreeContextProps<TreeDataType extends BasicDataNode = DataNode> {\n prefixCls: string;\n selectable?: boolean;\n showIcon?: boolean;\n icon: IconType;\n switcherIcon: IconType;\n draggable?: DraggableConfig;\n draggingNodeKey?: Key;\n checkable: boolean | React.ReactNode;\n checkStrictly: boolean;\n disabled: boolean;\n keyEntities: KeyEntities;\n // for details see comment in Tree.state (Tree.tsx)\n dropLevelOffset?: number;\n dropContainerKey: Key | null;\n dropTargetKey: Key | null;\n dropPosition: -1 | 0 | 1 | null;\n indent: number | null;\n indentWidth?: number;\n dropIndicatorRender: (props: {\n dropPosition: -1 | 0 | 1;\n dropLevelOffset: number;\n indent: any;\n prefixCls: string;\n direction: Direction;\n }) => React.ReactNode;\n dragOverNodeKey: Key | null;\n direction: Direction;\n\n loadData: (treeNode: EventDataNode<TreeDataType>) => Promise<void>;\n filterTreeNode: (treeNode: EventDataNode<TreeDataType>) => boolean;\n titleRender?: (node: any) => React.ReactNode;\n\n onNodeClick: NodeMouseEventHandler<TreeDataType>;\n onNodeDoubleClick: NodeMouseEventHandler<TreeDataType>;\n onNodeExpand: NodeMouseEventHandler<TreeDataType>;\n onNodeSelect: NodeMouseEventHandler<TreeDataType>;\n onNodeCheck: (\n e: React.MouseEvent<HTMLSpanElement>,\n treeNode: EventDataNode<TreeDataType>,\n checked: boolean,\n ) => void;\n onNodeLoad: (treeNode: EventDataNode<TreeDataType>) => void;\n onNodeMouseEnter: NodeMouseEventHandler<TreeDataType>;\n onNodeMouseLeave: NodeMouseEventHandler<TreeDataType>;\n onNodeContextMenu: NodeMouseEventHandler<TreeDataType>;\n onNodeDragStart: NodeDragEventHandler<any, any>;\n onNodeDragEnter: NodeDragEventHandler<any, any>;\n onNodeDragOver: NodeDragEventHandler<any, any>;\n onNodeDragLeave: NodeDragEventHandler<any, any>;\n onNodeDragEnd: NodeDragEventHandler<any, any>;\n onNodeDrop: NodeDragEventHandler<any, any>;\n}\n\nexport const TreeContext: React.Context<any> = React.createContext(null);\n","import * as React from 'react'\n\nexport default function DropIndicator ({\n dropPosition,\n dropLevelOffset,\n indent,\n}: {\n dropPosition: -1 | 0 | 1,\n dropLevelOffset: number,\n indent: number,\n}) {\n const style: React.CSSProperties = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2,\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return <div style={style} />;\n}\n","import * as React from 'react';\nimport classNames from 'classnames';\n\ninterface IndentProps {\n prefixCls: string;\n level: number;\n isStart: boolean[];\n isEnd: boolean[];\n width?: number;\n}\n\nconst Indent: React.FC<any> = ({ prefixCls, level, isStart, isEnd, width }) => {\n const widthStyle: React.CSSProperties =\n width >= 0\n ? {\n width: width,\n }\n : {};\n\n const baseClassName = `${prefixCls}-indent-unit`;\n const list: React.ReactElement[] = [];\n for (let i = 0; i < level; i += 1) {\n list.push(\n <span\n key={i}\n className={classNames(baseClassName, {\n [`${baseClassName}-start`]: isStart[i],\n [`${baseClassName}-end`]: isEnd[i],\n })}\n style={widthStyle}\n />,\n );\n }\n\n return (\n <span aria-hidden='true' className={`${prefixCls}-indent`}>\n {list}\n </span>\n );\n};\n\nexport default React.memo(Indent);\n","import type { Key, KeyEntities, SafeKey } from '../interface';\n\nexport default function getEntity<T = any>(keyEntities: any, key: any) {\n return keyEntities[key as SafeKey];\n}\n","import toArray from 'rc-util/lib/Children/toArray';\nimport omit from 'rc-util/lib/omit';\nimport warning from 'rc-util/lib/warning';\nimport * as React from 'react';\nimport {\n BasicDataNode,\n DataEntity,\n DataNode,\n EventDataNode,\n FieldNames,\n FlattenNode,\n GetKey,\n Key,\n KeyEntities,\n NodeElement,\n SafeKey,\n TreeNodeProps,\n} from '../interface';\nimport getEntity from './keyUtil';\n\nexport function getPosition(level: string | number, index: number) {\n return `${level}-${index}`;\n}\n\nexport function isTreeNode(node: NodeElement) {\n return node && node.type && node.type.isTreeNode;\n}\n\nexport function getKey(key: Key, pos: string) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\n\nexport function fillFieldNames(fieldNames?: FieldNames): Required<FieldNames> {\n const { title, _title, key, children } = fieldNames || {};\n const mergedTitle = title || 'title';\n\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children',\n };\n}\n\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData: DataNode[], fieldNames: any) {\n const keys: Map<string, boolean> = new Map();\n\n function dig(list: DataNode[], path: string = '') {\n (list || []).forEach((treeNode: any) => {\n const key = treeNode[fieldNames.key];\n const children = treeNode[fieldNames.children];\n warning(\n key !== null && key !== undefined,\n `Tree node must have a certain key: [${path}${key}]`,\n );\n\n const recordKey = String(key);\n warning(\n !keys.has(recordKey) || key === null || key === undefined,\n `Same 'key' exist in the Tree: ${recordKey}`,\n );\n keys.set(recordKey, true);\n\n dig(children, `${path}${recordKey} > `);\n });\n }\n\n dig(treeData);\n}\n\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes: React.ReactNode): any[] {\n function dig(node: React.ReactNode): DataNode[] {\n const treeNodes: any = toArray(node) as NodeElement[];\n return treeNodes\n .map((treeNode: any) => {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n\n const { key } = treeNode;\n const { children, ...rest } = treeNode.props;\n\n const dataNode: DataNode = {\n key: key as Key,\n ...rest,\n };\n\n const parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n\n return dataNode;\n })\n .filter((dataNode: any) => dataNode);\n }\n\n return dig(rootNodes);\n}\n\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData<TreeDataType extends BasicDataNode = DataNode>(\n treeNodeList: TreeDataType[],\n expandedKeys: Key[] | true,\n fieldNames: FieldNames,\n): FlattenNode<TreeDataType>[] {\n const {\n _title: fieldTitles,\n key: fieldKey,\n children: fieldChildren,\n } = fillFieldNames(fieldNames);\n\n const expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n const flattenList: FlattenNode<TreeDataType>[] = [];\n\n function dig(list: TreeDataType[], parent: any = null): FlattenNode<TreeDataType>[] {\n return list.map((treeNode: any, index) => {\n const pos: string = getPosition(parent ? parent.pos : '0', index);\n const mergedKey = getKey(treeNode[fieldKey], pos);\n\n // Pick matched title in field title list\n let mergedTitle: React.ReactNode;\n for (let i = 0; i < fieldTitles.length; i += 1) {\n const fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n\n // Add FlattenDataNode into list\n const flattenNode: any = {\n ...omit(treeNode, [...fieldTitles, fieldKey, fieldChildren] as any),\n title: mergedTitle,\n key: mergedKey,\n parent,\n pos,\n children: null,\n data: treeNode,\n isStart: [...(parent ? parent.isStart : []), index === 0],\n isEnd: [...(parent ? parent.isEnd : []), index === list.length - 1],\n };\n\n flattenList.push(flattenNode);\n\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n\n return flattenNode;\n });\n }\n\n dig(treeNodeList);\n\n return flattenList;\n}\n\ntype ExternalGetKey = GetKey<DataNode> | string;\n\ninterface TraverseDataNodesConfig {\n childrenPropName?: string;\n externalGetKey?: ExternalGetKey;\n fieldNames?: FieldNames;\n}\n\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(\n dataNodes: DataNode[],\n callback: (data: {\n node: DataNode;\n index: number;\n pos: string;\n key: Key;\n parentPos: string | number;\n level: number;\n nodes: DataNode[];\n }) => void,\n // To avoid too many params, let use config instead of origin param\n config?: TraverseDataNodesConfig | string,\n) {\n let mergedConfig: TraverseDataNodesConfig = {};\n if (typeof config === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = { externalGetKey: config };\n }\n mergedConfig = mergedConfig || {};\n\n // Init config\n const { childrenPropName, externalGetKey, fieldNames } = mergedConfig;\n\n const { key: fieldKey, children: fieldChildren } = fillFieldNames(fieldNames);\n\n const mergeChildrenPropName = childrenPropName || fieldChildren;\n\n // Get keys\n let syntheticGetKey: (node: DataNode | any, pos?: any) => Key;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = (node: DataNode) => (node as any)[externalGetKey as string];\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = (node: DataNode) => (externalGetKey as GetKey<DataNode>)(node);\n }\n } else {\n syntheticGetKey = (node, pos) => getKey(node[fieldKey], pos);\n }\n\n // Process\n function processNode(node: any, index?: number, parent?: any, pathNodes?: any[]) {\n const children = node ? node[mergeChildrenPropName] : dataNodes;\n const pos = node ? getPosition(parent.pos, index as number) : '0';\n const connectNodes = node ? [...(pathNodes || []), node] : [];\n\n // Process node if is not root\n if (node) {\n const key: Key = syntheticGetKey(node, pos);\n const data: any = {\n node,\n index,\n pos,\n key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes,\n };\n\n callback(data);\n }\n\n // Process children node\n if (children) {\n children.forEach((subNode: any, subIndex: any) => {\n processNode(\n subNode,\n subIndex,\n {\n node,\n pos,\n level: parent ? parent.level + 1 : -1,\n },\n connectNodes,\n );\n });\n }\n }\n\n processNode(null);\n}\n\ninterface Wrapper {\n posEntities: Record<string, DataEntity>;\n keyEntities: KeyEntities;\n}\n\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(\n dataNodes: DataNode[],\n {\n initWrapper,\n processEntity,\n onProcessFinished,\n externalGetKey,\n childrenPropName,\n fieldNames,\n }: {\n initWrapper?: (wrapper: Wrapper) => Wrapper;\n processEntity?: (entity: DataEntity, wrapper: Wrapper) => void;\n onProcessFinished?: (wrapper: Wrapper) => void;\n externalGetKey?: ExternalGetKey;\n childrenPropName?: string;\n fieldNames?: FieldNames;\n } = {},\n /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey?: ExternalGetKey,\n) {\n // Init config\n const mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n\n const posEntities: any = {};\n const keyEntities: any = {};\n let wrapper: Wrapper = {\n posEntities,\n keyEntities,\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseDataNodes(\n dataNodes,\n (item) => {\n const { node, index, pos, key, parentPos, level, nodes } = item;\n const entity: DataEntity = { node, nodes, index, key, pos, level };\n\n const mergedKey = getKey(key, pos);\n\n posEntities[pos] = entity;\n keyEntities[mergedKey as SafeKey] = entity;\n\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n },\n { externalGetKey: mergedExternalGetKey, childrenPropName, fieldNames },\n );\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n\nexport interface TreeNodeRequiredProps<TreeDataType extends BasicDataNode = DataNode> {\n expandedKeys: Key[];\n selectedKeys: Key[];\n loadedKeys: Key[];\n loadingKeys: Key[];\n checkedKeys: Key[];\n halfCheckedKeys: Key[];\n dragOverNodeKey: Key;\n dropPosition: number;\n keyEntities: KeyEntities<TreeDataType>;\n}\n\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps<TreeDataType extends BasicDataNode = DataNode>(\n key: Key,\n {\n expandedKeys,\n selectedKeys,\n loadedKeys,\n loadingKeys,\n checkedKeys,\n halfCheckedKeys,\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n }: TreeNodeRequiredProps<TreeDataType>,\n) {\n const entity = getEntity(keyEntities, key);\n\n const treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1,\n };\n\n return treeNodeProps;\n}\n\nexport function convertNodePropsToEventData<TreeDataType extends BasicDataNode = DataNode>(\n props: TreeNodeProps<TreeDataType>,\n): EventDataNode<any> {\n const {\n data,\n expanded,\n selected,\n checked,\n loaded,\n loading,\n halfChecked,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n pos,\n active,\n eventKey,\n } = props;\n\n const eventData = {\n ...data,\n expanded,\n selected,\n checked,\n loaded,\n loading,\n halfChecked,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n pos,\n active,\n key: eventKey,\n };\n\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get() {\n warning(\n false,\n 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.',\n );\n return props;\n },\n });\n }\n\n return eventData;\n}\n","import classNames from 'classnames';\nimport pickAttrs from 'rc-util/lib/pickAttrs';\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext, TreeContextProps } from './contextTypes';\nimport Indent from './Indent';\nimport { TreeNodeProps } from './interface';\nimport getEntity from './utils/keyUtil';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\n\nconst ICON_OPEN = 'open';\nconst ICON_CLOSE = 'close';\n\nconst defaultTitle = '---';\n\nexport type { TreeNodeProps } from './interface';\n\nexport interface InternalTreeNodeProps extends TreeNodeProps {\n context?: TreeContextProps | null;\n}\n\nexport interface TreeNodeState {\n dragNodeHighlight: boolean;\n}\n\nclass InternalTreeNode extends React.Component<any, TreeNodeState> {\n public state = {\n dragNodeHighlight: false,\n };\n\n public selectHandle: HTMLSpanElement;\n\n cacheIndent: number;\n\n // Isomorphic needn't load data in server side\n componentDidMount() {\n this.syncLoadData(this.props);\n }\n\n componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n\n onSelectorClick = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n // Click trigger before select/check operation\n const {\n context: { onNodeClick },\n } = this.props;\n onNodeClick(e, convertNodePropsToEventData(this.props));\n\n if (this.isSelectable()) {\n this.onSelect(e);\n } else {\n this.onCheck(e);\n }\n };\n\n onSelectorDoubleClick = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const {\n context: { onNodeDoubleClick },\n } = this.props;\n onNodeDoubleClick(e, convertNodePropsToEventData(this.props));\n };\n\n onSelect = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n if (this.isDisabled()) return;\n\n const {\n context: { onNodeSelect },\n } = this.props;\n onNodeSelect(e, convertNodePropsToEventData(this.props));\n };\n\n onCheck = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n if (this.isDisabled()) return;\n\n const { disableCheckbox, checked } = this.props;\n const {\n context: { onNodeCheck },\n } = this.props;\n\n if (!this.isCheckable() || disableCheckbox) return;\n\n const targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(this.props), targetChecked);\n };\n\n onMouseEnter = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const {\n context: { onNodeMouseEnter },\n } = this.props;\n onNodeMouseEnter(e, convertNodePropsToEventData(this.props));\n };\n\n onMouseLeave = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const {\n context: { onNodeMouseLeave },\n } = this.props;\n onNodeMouseLeave(e, convertNodePropsToEventData(this.props));\n };\n\n onContextMenu = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const {\n context: { onNodeContextMenu },\n } = this.props;\n onNodeContextMenu(e, convertNodePropsToEventData(this.props));\n };\n\n onDragStart = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragStart },\n } = this.props;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true,\n });\n onNodeDragStart(e, this);\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n\n onDragEnter = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragEnter },\n } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n };\n\n onDragOver = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragOver },\n } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n };\n\n onDragLeave = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragLeave },\n } = this.props;\n\n e.stopPropagation();\n onNodeDragLeave(e, this);\n };\n\n onDragEnd = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragEnd },\n } = this.props;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDragEnd(e, this);\n };\n\n onDrop = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDrop },\n } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDrop(e, this);\n };\n\n // Disabled item still can be switch\n onExpand: React.MouseEventHandler<HTMLDivElement> = (e) => {\n const {\n loading,\n context: { onNodeExpand },\n } = this.props;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(this.props));\n };\n\n // Drag usage\n setSelectHandle = (node: any) => {\n this.selectHandle = node;\n };\n\n getNodeState = () => {\n const { expanded } = this.props;\n\n if (this.isLeaf()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n\n hasChildren = () => {\n const { eventKey } = this.props;\n const {\n context: { keyEntities },\n } = this.props;\n const { children } = getEntity(keyEntities, eventKey) || {};\n\n return !!(children || []).length;\n };\n\n isLeaf = () => {\n const { isLeaf, loaded } = this.props;\n const {\n context: { loadData },\n } = this.props;\n\n const hasChildren = this.hasChildren();\n\n if (isLeaf === false) {\n return false;\n }\n\n return isLeaf || (!loadData && !hasChildren) || (loadData && loaded && !hasChildren);\n };\n\n isDisabled = () => {\n const { disabled } = this.props;\n const {\n context: { disabled: treeDisabled },\n } = this.props;\n\n return !!(treeDisabled || disabled);\n };\n\n isCheckable = () => {\n const { checkable } = this.props;\n const {\n context: { checkable: treeCheckable },\n } = this.props;\n\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n\n // Load data to avoid default expanded tree without data\n syncLoadData = (props: any) => {\n const { expanded, loading, loaded } = props;\n const {\n context: { loadData, onNodeLoad },\n } = this.props;\n\n if (loading) {\n return;\n }\n\n // read from state to avoid loadData at same time\n if (loadData && expanded && !this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(this.props));\n }\n }\n };\n\n isSelectable() {\n const { selectable } = this.props;\n const {\n context: { selectable: treeSelectable },\n } = this.props;\n\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n }\n\n isDraggable = () => {\n const {\n data,\n context: { draggable },\n } = this.props;\n\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n\n // ==================== Render: Drag Handler ====================\n renderDragHandler = () => {\n const {\n context: { draggable, prefixCls },\n } = this.props;\n\n return draggable?.icon ? (\n <span className={`${prefixCls}-draggable-icon`}>{draggable.icon}</span>\n ) : null;\n };\n\n // ====================== Render: Switcher ======================\n renderSwitcherIconDom = (isLeaf: boolean) => {\n const { switcherIcon: switcherIconFromProps } = this.props;\n const {\n context: { switcherIcon: switcherIconFromCtx },\n } = this.props;\n\n const switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon({ ...this.props, isLeaf });\n }\n return switcherIcon;\n };\n\n // Switcher\n renderSwitcher = () => {\n const { expanded } = this.props;\n const {\n context: { prefixCls },\n } = this.props;\n\n if (this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n const switcherIconDom = this.renderSwitcherIconDom(true);\n\n return switcherIconDom !== false ? (\n <span className={classNames(`${prefixCls}-switcher`, `${prefixCls}-switcher-noop`)}>\n {switcherIconDom}\n </span>\n ) : null;\n }\n\n const switcherCls = classNames(\n `${prefixCls}-switcher`,\n `${prefixCls}-switcher_${expanded ? ICON_OPEN : ICON_CLOSE}`,\n );\n\n const switcherIconDom = this.renderSwitcherIconDom(false);\n\n return switcherIconDom !== false ? (\n <span onClick={this.onExpand} className={switcherCls}>\n {switcherIconDom}\n </span>\n ) : null;\n };\n\n // ====================== Render: Checkbox ======================\n // Checkbox\n renderCheckbox = () => {\n const { checked, halfChecked, disableCheckbox } = this.props;\n const {\n context: { prefixCls },\n } = this.props;\n const disabled = this.isDisabled();\n const checkable = this.isCheckable();\n\n if (!checkable) return null;\n\n // [Legacy] Custom element should be separate with `checkable` in future\n const $custom = typeof checkable !== 'boolean' ? checkable : null;\n\n return (\n <span\n className={classNames(\n `${prefixCls}-checkbox`,\n checked && `${prefixCls}-checkbox-checked`,\n !checked && halfChecked && `${prefixCls}-checkbox-indeterminate`,\n (disabled || disableCheckbox) && `${prefixCls}-checkbox-disabled`,\n )}\n onClick={this.onCheck}\n >\n {$custom}\n </span>\n );\n };\n\n // ==================== Render: Title + Icon ====================\n renderIcon = () => {\n const { loading } = this.props;\n const {\n context: { prefixCls },\n } = this.props;\n\n return (\n <span\n className={classNames(\n `${prefixCls}-iconEle`,\n `${prefixCls}-icon__${this.getNodeState() || 'docu'}`,\n loading && `${prefixCls}-icon_loading`,\n )}\n />\n );\n };\n\n // Icon + Title\n renderSelector = () => {\n const { dragNodeHighlight } = this.state;\n const { title = defaultTitle, selected, icon, loading, data, index } = this.props;\n const {\n context: { prefixCls, showIcon, icon: treeIcon, loadData, titleRender },\n } = this.props;\n const disabled = this.isDisabled();\n\n const wrapClass = `${prefixCls}-node-content-wrapper`;\n\n // Icon - Still show loading icon when loading without showIcon\n let $icon;\n\n if (showIcon) {\n const currentIcon = icon || treeIcon;\n\n $icon = currentIcon ? (\n <span className={classNames(`${prefixCls}-iconEle`, `${prefixCls}-icon__customize`)}>\n {typeof currentIcon === 'function' ? currentIcon(this.props) : currentIcon}\n </span>\n ) : (\n this.renderIcon()\n );\n } else if (loadData && loading) {\n $icon = this.renderIcon();\n }\n\n // Title\n let titleNode: React.ReactNode;\n if (typeof title === 'function') {\n titleNode = title(data, index);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n\n const $title = <span className={`${prefixCls}-title`}>{titleNode}</span>;\n\n return (\n <span\n ref={this.setSelectHandle}\n title={typeof title === 'string' ? title : ''}\n className={classNames(\n `${wrapClass}`,\n `${wrapClass}-${this.getNodeState() || 'normal'}`,\n !disabled && (selected || dragNodeHighlight) && `${prefixCls}-node-selected`,\n )}\n onMouseEnter={this.onMouseEnter}\n onMouseLeave={this.onMouseLeave}\n onContextMenu={this.onContextMenu}\n onClick={this.onSelectorClick}\n onDoubleClick={this.onSelectorDoubleClick}\n >\n {$icon}\n {$title}\n {this.renderDropIndicator()}\n </span>\n );\n };\n\n // =================== Render: Drop Indicator ===================\n renderDropIndicator = () => {\n const { disabled, eventKey } = this.props;\n const {\n context: {\n draggable,\n dropLevelOffset,\n dropPosition,\n prefixCls,\n indent,\n dropIndicatorRender,\n dragOverNodeKey,\n direction,\n },\n } = this.props;\n const rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n const showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n\n // This is a hot fix which is already fixed in\n // https://github.com/react-component/tree/pull/743/files\n // But some case need break point so we hack on this\n // ref https://github.com/ant-design/ant-design/issues/43493\n const mergedIndent = indent ?? this.cacheIndent;\n this.cacheIndent = indent;\n\n return showIndicator\n ? dropIndicatorRender({\n dropPosition,\n dropLevelOffset,\n indent: mergedIndent,\n prefixCls,\n direction,\n })\n : null;\n };\n\n // =========================== Render ===========================\n render() {\n const {\n eventKey,\n className,\n style,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n isLeaf,\n isStart,\n isEnd,\n expanded,\n selected,\n checked,\n halfChecked,\n loading,\n domRef,\n active,\n data,\n onMouseMove,\n selectable,\n indentWidth,\n index,\n ...otherProps\n } = this.props;\n const {\n context: {\n prefixCls,\n filterTreeNode,\n keyEntities,\n dropContainerKey,\n dropTargetKey,\n draggingNodeKey,\n },\n } = this.props;\n const disabled = this.isDisabled();\n const dataOrAriaAttributeProps = pickAttrs(otherProps, { aria: true, data: true });\n const { level } = getEntity(keyEntities, eventKey) || {};\n const isEndNode = isEnd[isEnd.length - 1];\n\n const mergedDraggable = this.isDraggable();\n const draggableWithoutDisabled = !disabled && mergedDraggable;\n\n const dragging = draggingNodeKey === eventKey;\n const ariaSelected = selectable !== undefined ? { 'aria-selected': !!selectable } : undefined;\n\n return (\n <div\n ref={domRef}\n className={classNames(className, `${prefixCls}-treenode`, {\n [`${prefixCls}-treenode-disabled`]: disabled,\n [`${prefixCls}-treenode-switcher-${expanded ? 'open' : 'close'}`]: !isLeaf,\n [`${prefixCls}-treenode-checkbox-checked`]: checked,\n [`${prefixCls}-treenode-checkbox-indeterminate`]: halfChecked,\n [`${prefixCls}-treenode-selected`]: selected,\n [`${prefixCls}-treenode-loading`]: loading,\n [`${prefixCls}-treenode-active`]: active,\n [`${prefixCls}-treenode-leaf-last`]: isEndNode,\n [`${prefixCls}-treenode-draggable`]: mergedDraggable,\n ['odd']: typeof index === 'number' ? (index % 2 == 0 ? true : false) : false,\n\n dragging,\n 'drop-target': dropTargetKey === eventKey,\n 'drop-container': dropContainerKey === eventKey,\n 'drag-over': !disabled && dragOver,\n 'drag-over-gap-top': !disabled && dragOverGapTop,\n 'drag-over-gap-bottom': !disabled && dragOverGapBottom,\n 'filter-node': filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props)),\n })}\n style={style}\n // Draggable config\n draggable={draggableWithoutDisabled}\n aria-grabbed={dragging}\n onDragStart={draggableWithoutDisabled ? this.onDragStart : undefined}\n // Drop config\n onDragEnter={mergedDraggable ? this.onDragEnter : undefined}\n onDragOver={mergedDraggable ? this.onDragOver : undefined}\n onDragLeave={mergedDraggable ? this.onDragLeave : undefined}\n onDrop={mergedDraggable ? this.onDrop : undefined}\n onDragEnd={mergedDraggable ? this.onDragEnd : undefined}\n onMouseMove={onMouseMove}\n {...ariaSelected}\n {...dataOrAriaAttributeProps}\n >\n <Indent\n prefixCls={prefixCls}\n level={level}\n isStart={isStart}\n isEnd={isEnd}\n width={indentWidth}\n />\n {this.renderDragHandler()}\n {this.renderSwitcher()}\n {this.renderCheckbox()}\n {this.renderSelector()}\n </div>\n );\n }\n}\n\nconst ContextTreeNode: React.FC<TreeNodeProps> = (props) => (\n <TreeContext.Consumer>\n {(context: TreeContextProps | null) => <InternalTreeNode {...props} context={context} />}\n </TreeContext.Consumer>\n);\n\nContextTreeNode.displayName = 'TreeNode';\n\n(ContextTreeNode as any).isTreeNode = 1;\n\nexport default ContextTreeNode;\n","import * as React from 'react';\nimport useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';\n\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart: VoidFunction, triggerEnd: VoidFunction) {\n const [firstMount, setFirstMount] = React.useState(false);\n\n useLayoutEffect(() => {\n if (firstMount) {\n triggerStart();\n\n return () => {\n triggerEnd();\n };\n }\n }, [firstMount]);\n\n useLayoutEffect(() => {\n setFirstMount(true);\n\n return () => {\n setFirstMount(false);\n };\n }, []);\n}\n","import classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport { FlattenNode, TreeNodeProps } from './interface';\nimport TreeNode from './TreeNode';\nimport useUnmount from './useUnmount';\nimport { getTreeNodeProps, TreeNodeRequiredProps } from './utils/treeUtil';\n\ninterface MotionTreeNodeProps extends Omit<TreeNodeProps, 'domRef'> {\n active: boolean;\n motion?: any;\n motionNodes?: FlattenNode[];\n onMotionStart: () => void;\n onMotionEnd: () => void;\n motionType?: 'show' | 'hide';\n treeNodeRequiredProps: TreeNodeRequiredProps;\n [key: string]: any;\n}\n\nconst MotionTreeNode: React.ForwardRefRenderFunction<HTMLDivElement, MotionTreeNodeProps> = (\n {\n className,\n style,\n motion,\n motionNodes,\n motionType,\n onMotionStart: onOriginMotionStart,\n onMotionEnd: onOriginMotionEnd,\n active,\n treeNodeRequiredProps,\n index,\n ...props\n },\n ref,\n) => {\n const [visible, setVisible] = React.useState(true);\n const { prefixCls } = React.useContext(TreeContext);\n\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n const targetVisible: any = motionNodes && motionType !== 'hide';\n\n useLayoutEffect(() => {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n\n const triggerMotionStart = () => {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n\n // Should only trigger once\n const triggerMotionEndRef = React.useRef(false);\n const triggerMotionEnd = () => {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n\n // Motion end event\n const onVisibleChanged = (nextVisible: boolean) => {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n\n if (motionNodes) {\n return (\n <CSSMotion\n ref={ref}\n visible={visible}\n {...motion}\n motionAppear={motionType === 'show'}\n onVisibleChanged={onVisibleChanged}\n >\n {({ className: motionClassName, style: motionStyle }, motionRef) => (\n <div\n ref={motionRef}\n className={classNames(`${prefixCls}-treenode-motion`, motionClassName)}\n style={motionStyle}\n >\n {motionNodes.map((treeNode: FlattenNode) => {\n const {\n data: { ...restProps },\n title,\n key,\n isStart,\n isEnd,\n } = treeNode;\n delete restProps.children;\n\n const treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n\n return (\n <TreeNode\n {...(restProps as Omit<typeof restProps, 'children'>)}\n {...treeNodeProps}\n title={title}\n active={active}\n data={treeNode.data}\n key={key}\n index={index}\n isStart={isStart}\n isEnd={isEnd}\n />\n );\n })}\n </div>\n )}\n </CSSMotion>\n );\n }\n return (\n <TreeNode\n index={index}\n domRef={ref}\n className={className}\n style={style}\n {...props}\n active={active}\n />\n );\n};\n\nMotionTreeNode.displayName = 'MotionTreeNode';\n\nconst RefMotionTreeNode = React.forwardRef(MotionTreeNode);\n\nexport default RefMotionTreeNode;\n","import { Key, FlattenNode } from '../interface';\n\nexport function findExpandedKeys(prev: Key[] = [], next: Key[] = []) {\n const prevLen = prev.length;\n const nextLen = next.length;\n\n if (Math.abs(prevLen - nextLen) !== 1) {\n return { add: false, key: null };\n }\n\n function find(shorter: Key[], longer: Key[]) {\n const cache: Map<Key, boolean> = new Map();\n shorter.forEach(key => {\n cache.set(key, true);\n });\n\n const keys = longer.filter(key => !cache.has(key));\n\n return keys.length === 1 ? keys[0] : null;\n }\n\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next),\n };\n }\n\n return {\n add: false,\n key: find(next, prev),\n };\n}\n\nexport function getExpandRange(shorter: FlattenNode[], longer: FlattenNode[], key: Key) {\n const shorterStartIndex = shorter.findIndex(data => data.key === key);\n const shorterEndNode = shorter[shorterStartIndex + 1];\n const longerStartIndex = longer.findIndex(data => data.key === key);\n\n if (shorterEndNode) {\n const longerEndIndex = longer.findIndex(data => data.key === shorterEndNode.key);\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}\n","/**\n * Handle virtual list of the TreeNodes.\n */\nimport useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';\nimport VirtualList, { ListRef } from 'rc-virtual-list';\nimport * as React from 'react';\nimport {\n BasicDataNode,\n DataEntity,\n DataNode,\n FlattenNode,\n Key,\n KeyEntities,\n ScrollTo,\n} from './interface';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\n\nconst HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0,\n};\n\nconst noop = () => {};\n\nexport const MOTION_KEY = `RC_TREE_MOTION_${Math.random()}`;\n\nconst MotionNode: DataNode = {\n key: MOTION_KEY,\n};\n\nexport const MotionEntity: DataEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode],\n};\n\nconst MotionFlattenData: FlattenNode = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: [],\n};\n\nexport interface NodeListRef {\n scrollTo: ScrollTo;\n getIndentWidth: () => number;\n}\n\ninterface NodeListProps<TreeDataType extends BasicDataNode> {\n prefixCls: string;\n style: React.CSSProperties;\n data: FlattenNode<TreeDataType>[];\n motion: any;\n focusable?: boolean;\n activeItem: FlattenNode<TreeDataType>;\n focused?: boolean;\n tabIndex: number;\n checkable?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n indentWidth?: number;\n\n expandedKeys: Key[];\n selectedKeys: Key[];\n checkedKeys: Key[];\n loadedKeys: Key[];\n loadingKeys: Key[];\n halfCheckedKeys: Key[];\n keyEntities: KeyEntities;\n\n dragging: boolean;\n dragOverNodeKey: Key;\n dropPosition: number;\n\n // Virtual list\n height: number;\n itemHeight: number;\n scrollWidth?: number;\n virtual?: boolean;\n\n onVirtualScroll?: (info: any) => void;\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\n onFocus?: React.FocusEventHandler<HTMLDivElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement>;\n onActiveChange: (key: Key) => void;\n\n onListChangeStart: () => void;\n onListChangeEnd: () => void;\n}\n\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(\n list: FlattenNode[],\n virtual: boolean,\n height: number,\n itemHeight: number,\n) {\n if (virtual === false || !height) {\n return list;\n }\n\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\n\nfunction itemKey(item: FlattenNode) {\n const { key, pos } = item;\n return getKey(key, pos);\n}\n\nfunction getAccessibilityPath(item: FlattenNode): string {\n let path = String(item.data.key);\n let current = item;\n\n while (current.parent) {\n current = current.parent;\n path = `${current.data.key} > ${path}`;\n }\n\n return path;\n}\n\nconst NodeList = React.forwardRef<NodeListRef, any>((props, ref) => {\n const {\n prefixCls,\n data,\n selectable,\n checkable,\n expandedKeys,\n selectedKeys,\n checkedKeys,\n loadedKeys,\n loadingKeys,\n halfCheckedKeys,\n keyEntities,\n disabled,\n indentWidth,\n\n dragging,\n dragOverNodeKey,\n dropPosition,\n motion,\n\n height,\n itemHeight,\n virtual,\n onVirtualScroll,\n\n focusable,\n activeItem,\n focused,\n tabIndex,\n\n onKeyDown,\n onFocus,\n onBlur,\n onActiveChange,\n\n onListChangeStart,\n onListChangeEnd,\n\n ...domProps\n } = props;\n\n // =============================== Ref ================================\n const listRef = React.useRef<ListRef>(null);\n const indentMeasurerRef = React.useRef<any>(null);\n React.useImperativeHandle(ref, () => ({\n scrollTo: (scroll) => {\n if (listRef.current) {\n listRef.current.scrollTo(scroll);\n }\n },\n getIndentWidth: () => indentMeasurerRef.current.offsetWidth,\n }));\n\n // ============================== Motion ==============================\n const [prevExpandedKeys, setPrevExpandedKeys] = React.useState(expandedKeys);\n const [prevData, setPrevData] = React.useState(data);\n const [transitionData, setTransitionData] = React.useState(data);\n const [transitionRange, setTransitionRange] = React.useState([]);\n const [motionType, setMotionType] = React.useState<'show' | 'hide' | null>(null);\n\n // When motion end but data change, this will makes data back to previous one\n const dataRef = React.useRef(data);\n dataRef.current = data;\n\n function onMotionEnd() {\n const latestData = dataRef.current;\n\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n\n onListChangeEnd();\n }\n\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(() => {\n setPrevExpandedKeys(expandedKeys);\n\n const diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n const keyIndex = prevData.findIndex(({ key }: any) => key === diffExpanded.key);\n\n const rangeNodes: any = getMinimumRangeTransitionRange(\n getExpandRange(prevData, data, diffExpanded.key),\n virtual,\n height,\n itemHeight,\n );\n\n const newTransitionData: FlattenNode[] = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n const keyIndex = data.findIndex(({ key }: any) => key === diffExpanded.key);\n\n const rangeNodes: any = getMinimumRangeTransitionRange(\n getExpandRange(data, prevData, diffExpanded.key),\n virtual,\n height,\n itemHeight,\n );\n\n const newTransitionData: FlattenNode[] = data.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n\n // We should clean up motion if is changed by dragging\n React.useEffect(() => {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n\n const mergedData = motion ? transitionData : data;\n\n const treeNodeRequiredProps = {\n expandedKeys,\n selectedKeys,\n loadedKeys,\n loadingKeys,\n checkedKeys,\n halfCheckedKeys,\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n };\n\n return (\n <>\n {focused && activeItem && (\n <span style={HIDDEN_STYLE} aria-live='assertive'>\n {getAccessibilityPath(activeItem)}\n </span>\n )}\n <div>\n <input\n style={HIDDEN_STYLE}\n disabled={focusable === false || disabled}\n tabIndex={focusable !== false ? tabIndex : null}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onBlur={onBlur}\n value=''\n onChange={noop}\n aria-label='for screen reader'\n />\n </div>\n <div\n className={`${prefixCls}-treenode`}\n aria-hidden\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0,\n }}\n >\n <div className={`${prefixCls}-indent`}>\n <div ref={indentMeasurerRef} className={`${prefixCls}-indent-unit`} />\n </div>\n </div>\n <VirtualList<FlattenNode>\n {...domProps}\n data={mergedData}\n onVirtualScroll={onVirtualScroll}\n itemKey={itemKey}\n height={height}\n fullHeight={false}\n virtual={virtual}\n itemHeight={itemHeight}\n prefixCls={`${prefixCls}-list`}\n ref={listRef}\n onVisibleChange={(originList, fullList) => {\n const originSet = new Set(originList);\n const restList = fullList.filter((item) => !originSet.has(item));\n\n // Motion node is not render. Skip motion\n if (restList.some((item) => itemKey(item) === MOTION_KEY)) {\n onMotionEnd();\n }\n }}\n >\n {(treeNode: any, index) => {\n const {\n pos,\n data: { ...restProps },\n title,\n key,\n isStart,\n isEnd,\n } = treeNode;\n const mergedKey = getKey(key, pos);\n\n delete restProps.key;\n delete restProps.children;\n\n const treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n\n return (\n <MotionTreeNode\n {...(restProps as Omit<typeof restProps, 'children'>)}\n {...treeNodeProps}\n title={title}\n active={!!activeItem && key === activeItem.key}\n pos={pos}\n data={treeNode.data}\n isStart={isStart}\n isEnd={isEnd}\n motion={motion}\n indentWidth={indentWidth}\n motionNodes={key === MOTION_KEY ? transitionRange : null}\n motionType={motionType}\n onMotionStart={onListChangeStart}\n onMotionEnd={onMotionEnd}\n treeNodeRequiredProps={treeNodeRequiredProps}\n index={index}\n onMouseMove={() => {\n onActiveChange(null);\n }}\n />\n );\n }}\n </VirtualList>\n </>\n );\n});\n\nNodeList.displayName = 'NodeList';\n\nexport default NodeList;\n","/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\n\nimport warning from 'rc-util/lib/warning';\nimport React from 'react';\nimport {\n BasicDataNode,\n DataEntity,\n DataNode,\n Direction,\n FlattenNode,\n Key,\n KeyEntities,\n NodeElement,\n NodeInstance,\n} from './interface';\nimport { AllowDrop, TreeProps } from './Tree';\nimport TreeNode from './TreeNode';\nimport getEntity from './utils/keyUtil';\n\nexport { getPosition, isTreeNode } from './utils/treeUtil';\n\nexport function arrDel(list: Key[], value: any) {\n if (!list) return [];\n const clone = list.slice();\n const index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list: Key[], value: any) {\n const clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos: string) {\n return pos.split('-');\n}\n\nexport function getDragChildrenKeys<TreeDataType extends BasicDataNode = DataNode>(\n dragNodeKey: any,\n keyEntities: KeyEntities<TreeDataType>,\n): Key[] {\n // not contains self\n // self for left or right drag\n const dragChildrenKeys: React.Key[] = [];\n\n const entity = getEntity(keyEntities, dragNodeKey);\n function dig(list: DataEntity<TreeDataType>[] = []) {\n list.forEach(({ key, children }) => {\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n\n dig(entity.children);\n\n return dragChildrenKeys;\n}\n\nexport function isLastChild<TreeDataType extends BasicDataNode = DataNode>(treeNodeEntity: any) {\n if (treeNodeEntity.parent) {\n const posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\n\nexport function isFirstChild<TreeDataType extends BasicDataNode = DataNode>(\n treeNodeEntity: DataEntity<TreeDataType>,\n) {\n const posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n\n// Only used when drag, not affect SSR.\nexport function calcDropPosition<TreeDataType extends BasicDataNode = DataNode>(\n event: React.MouseEvent,\n dragNode: NodeInstance<TreeDataType>,\n targetNode: NodeInstance<TreeDataType>,\n indent: number,\n startMousePosition: {\n x: number;\n y: number;\n },\n allowDrop: AllowDrop<any>,\n flattenedNodes: FlattenNode<TreeDataType>[],\n keyEntities: KeyEntities<TreeDataType>,\n expandKeys: Key[],\n direction: Direction,\n): {\n dropPosition: -1 | 0 | 1;\n dropLevelOffset: number;\n dropTargetKey: Key;\n dropTargetPos: string;\n dropContainerKey: Key;\n dragOverNodeKey: Key;\n dropAllowed: boolean;\n} {\n const { clientX, clientY } = event;\n const { top, height } = (event.target as HTMLElement).getBoundingClientRect();\n // optional chain for testing\n const horizontalMouseOffset =\n (direction === 'rtl' ? -1 : 1) * ((startMousePosition?.x || 0) - clientX);\n const rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n\n // Filter the expanded keys to exclude the node that not has children currently (like async nodes).\n const filteredExpandKeys = expandKeys.filter((key: any) => keyEntities[key]?.children?.length);\n\n // find abstract drop node by horizontal offset\n let abstractDropNodeEntity: any = getEntity(keyEntities, targetNode.props.eventKey);\n\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n const nodeIndex = flattenedNodes.findIndex(\n (flattenedNode) => flattenedNode.key === abstractDropNodeEntity.key,\n );\n const prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n const prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = getEntity(keyEntities, prevNodeKey);\n }\n\n const initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n\n const abstractDragOverEntity = abstractDropNodeEntity;\n const dragOverNodeKey = abstractDropNodeEntity.key;\n\n let dropPosition: -1 | 0 | 1 = 0;\n let dropLevelOffset = 0;\n\n // Only allow cross level drop when dragging on a non-expanded node\n if (!filteredExpandKeys.includes(initialAbstractDropNodeKey)) {\n for (let i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n\n const abstractDragDataNode = dragNode.props.data;\n const abstractDropDataNode = abstractDropNodeEntity.node;\n let dropAllowed = true;\n if (\n isFirstChild(abstractDropNodeEntity) &&\n abstractDropNodeEntity.level === 0 &&\n clientY < top + height / 2 &&\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1,\n }) &&\n abstractDropNodeEntity.key === targetNode.props.eventKey\n ) {\n // first half of first node in first level\n dropPosition = -1;\n } else if (\n (abstractDragOverEntity.children || []).length &&\n filteredExpandKeys.includes(dragOverNodeKey)\n ) {\n // drop on expanded node\n // only allow drop inside\n if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0,\n })\n ) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })\n ) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0,\n })\n ) {\n dropPosition = 0;\n } else if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })\n ) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })\n ) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n\n return {\n dropPosition,\n dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : abstractDropNodeEntity.parent?.key || null,\n dropAllowed,\n };\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys: Key[], props: TreeProps) {\n if (!selectedKeys) return undefined;\n\n const { multiple } = props;\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\nconst internalProcessProps = (props: DataNode): any => props;\nexport function convertDataToTree(\n treeData: DataNode[] | any,\n processor?: { processProps: (prop: DataNode) => any },\n): NodeElement[] {\n if (!treeData) return [];\n\n const { processProps = internalProcessProps } = processor || {};\n const list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(({ children, ...props }): NodeElement => {\n const childrenNodes = convertDataToTree(children, processor);\n\n return (\n <TreeNode key={props.key} {...processProps(props)}>\n {childrenNodes}\n </TreeNode>\n );\n });\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys: Key[] | { checked: Key[]; halfChecked: Key[] }) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n let keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined,\n };\n } else if (typeof keys === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined,\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n return keyProps;\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList: any[], keyEntities: KeyEntities): Key[] {\n const expandedKeys = new Set<Key>();\n\n function conductUp(key: Key) {\n if (expandedKeys.has(key)) return;\n\n const entity = getEntity(keyEntities, key);\n if (!entity) return;\n\n expandedKeys.add(key);\n\n const { parent, node } = entity;\n\n if (node.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach((key) => {\n conductUp(key);\n });\n\n return [...expandedKeys];\n}\n","import warning from 'rc-util/lib/warning';\nimport {\n BasicDataNode,\n DataEntity,\n DataNode,\n GetCheckDisabled,\n Key,\n KeyEntities,\n} from '../interface';\nimport getEntity from './keyUtil';\n\ninterface ConductReturnType {\n checkedKeys: Key[];\n halfCheckedKeys: Key[];\n}\n\nfunction removeFromCheckedKeys(halfCheckedKeys: Set<Key>, checkedKeys: Set<Key>) {\n const filteredKeys = new Set<Key>();\n halfCheckedKeys.forEach((key) => {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\n\nexport function isCheckDisabled<TreeDataType>(node: TreeDataType) {\n const { disabled, disableCheckbox, checkable } = (node || {}) as DataNode;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n\n// Fill miss keys\nfunction fillConductCheck<TreeDataType extends BasicDataNode = DataNode>(\n keys: Set<Key>,\n levelEntities: Map<number, Set<DataEntity<TreeDataType>>>,\n maxLevel: number,\n syntheticGetCheckDisabled: GetCheckDisabled<TreeDataType>,\n): ConductReturnType {\n const checkedKeys = new Set<Key>(keys);\n const halfCheckedKeys = new Set<Key>();\n\n // Add checked keys top to bottom\n for (let level = 0; level <= maxLevel; level += 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach((entity) => {\n const { key, node, children = [] } = entity;\n\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children\n .filter((childEntity) => !syntheticGetCheckDisabled(childEntity.node))\n .forEach((childEntity) => {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n\n // Add checked keys from bottom to top\n const visitedKeys = new Set<Key>();\n for (let level = maxLevel; level >= 0; level -= 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach((entity: any) => {\n const { parent, node } = entity;\n\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n\n let allChecked = true;\n let partialChecked = false;\n\n (parent.children || [])\n .filter((childEntity: any) => !syntheticGetCheckDisabled(childEntity.node))\n .forEach(({ key }: any) => {\n const checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n\n visitedKeys.add(parent.key);\n });\n }\n\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys)),\n };\n}\n\n// Remove useless key\nfunction cleanConductCheck<TreeDataType extends BasicDataNode = DataNode>(\n keys: Set<Key>,\n halfKeys: Key[],\n levelEntities: Map<number, Set<DataEntity<TreeDataType>>>,\n maxLevel: number,\n syntheticGetCheckDisabled: GetCheckDisabled<TreeDataType>,\n): ConductReturnType {\n const checkedKeys = new Set<Key>(keys);\n let halfCheckedKeys = new Set<Key>(halfKeys);\n\n // Remove checked keys from top to bottom\n for (let level = 0; level <= maxLevel; level += 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach((entity) => {\n const { key, node, children = [] } = entity;\n\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children\n .filter((childEntity) => !syntheticGetCheckDisabled(childEntity.node))\n .forEach((childEntity) => {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set<Key>();\n const visitedKeys = new Set<Key>();\n for (let level = maxLevel; level >= 0; level -= 1) {\n const entities = levelEntities.get(level) || new Set();\n\n entities.forEach((entity: any) => {\n const { parent, node } = entity;\n\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n\n let allChecked = true;\n let partialChecked = false;\n\n (parent.children || [])\n .filter((childEntity: any) => !syntheticGetCheckDisabled(childEntity.node))\n .forEach(({ key }: any) => {\n const checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n\n visitedKeys.add(parent.key);\n });\n }\n\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys)),\n };\n}\n\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck<TreeDataType extends BasicDataNode = DataNode>(\n keyList: Key[],\n checked: true | { checked: false; halfCheckedKeys: Key[] },\n keyEntities: KeyEntities<TreeDataType>,\n getCheckDisabled?: GetCheckDisabled<TreeDataType>,\n): ConductReturnType {\n const warningMissKeys: Key[] = [];\n\n let syntheticGetCheckDisabled: GetCheckDisabled<TreeDataType>;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n\n // We only handle exist keys\n const keys = new Set<Key>(\n keyList.filter((key) => {\n const hasEntity = !!getEntity(keyEntities, key);\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n\n return hasEntity;\n }),\n );\n const levelEntities = new Map<number, Set<DataEntity<TreeDataType>>>();\n let maxLevel = 0;\n\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach((key) => {\n const entity = keyEntities[key];\n const { level } = entity;\n\n let levelSet: any = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n\n levelSet.add(entity);\n\n maxLevel = Math.max(maxLevel, level);\n });\n\n warning(\n !warningMissKeys.length,\n `Tree missing follow keys: ${warningMissKeys\n .slice(0, 100)\n .map((key) => `'${key}'`)\n .join(', ')}`,\n );\n\n let result: ConductReturnType;\n if (checked === true) {\n result = fillConductCheck<TreeDataType>(\n keys,\n levelEntities,\n maxLevel,\n syntheticGetCheckDisabled,\n );\n } else {\n result = cleanConductCheck(\n keys,\n checked.halfCheckedKeys,\n levelEntities,\n maxLevel,\n syntheticGetCheckDisabled,\n );\n }\n\n return result;\n}\n","// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\n\nimport classNames from 'classnames';\nimport KeyCode from 'rc-util/lib/KeyCode';\nimport pickAttrs from 'rc-util/lib/pickAttrs';\nimport warning from 'rc-util/lib/warning';\nimport * as React from 'react';\n\nimport {\n NodeDragEventHandler,\n NodeDragEventParams,\n NodeMouseEventHandler,\n NodeMouseEventParams,\n TreeContext,\n} from './contextTypes';\nimport DropIndicator from './DropIndicator';\nimport {\n BasicDataNode,\n DataNode,\n Direction,\n EventDataNode,\n FieldNames,\n FlattenNode,\n IconType,\n Key,\n KeyEntities,\n NodeInstance,\n SafeKey,\n ScrollTo,\n} from './interface';\nimport NodeList, { MotionEntity, MOTION_KEY, NodeListRef } from './NodeList';\nimport TreeNode from './TreeNode';\nimport {\n arrAdd,\n arrDel,\n calcDropPosition,\n calcSelectedKeys,\n conductExpandParent,\n getDragChildrenKeys,\n parseCheckedKeys,\n posToArr,\n} from './util';\nimport { conductCheck } from './utils/conductUtil';\nimport getEntity from './utils/keyUtil';\nimport {\n convertDataToEntities,\n convertNodePropsToEventData,\n convertTreeToData,\n fillFieldNames,\n flattenTreeData,\n getTreeNodeProps,\n warningWithoutKey,\n} from './utils/treeUtil';\n\nconst MAX_RETRY_TIMES = 10;\n\nexport interface CheckInfo<TreeDataType extends BasicDataNode = DataNode> {\n event: 'check';\n node: EventDataNode<TreeDataType>;\n checked: boolean;\n nativeEvent: MouseEvent;\n checkedNodes: TreeDataType[];\n checkedNodesPositions?: { node: TreeDataType; pos: string }[];\n halfCheckedKeys?: Key[];\n}\n\nexport interface AllowDropOptions<TreeDataType extends BasicDataNode = DataNode> {\n dragNode: TreeDataType;\n dropNode: TreeDataType;\n dropPosition: -1 | 0 | 1;\n}\nexport type AllowDrop<TreeDataType extends BasicDataNode = DataNode> = (\n options: AllowDropOptions<TreeDataType>,\n) => boolean;\n\nexport type DraggableFn = (node: DataNode) => boolean;\nexport type DraggableConfig = {\n icon?: React.ReactNode | false;\n nodeDraggable?: DraggableFn;\n};\n\nexport type ExpandAction = false | 'click' | 'doubleClick';\n\nexport interface TreeProps<TreeDataType extends BasicDataNode = DataNode> {\n prefixCls: string;\n className?: string;\n style?: React.CSSProperties;\n focusable?: boolean;\n activeKey?: Key | null;\n tabIndex?: number;\n children?: React.ReactNode;\n treeData?: TreeDataType[]; // Generate treeNode by children\n fieldNames?: FieldNames;\n showLine?: boolean;\n showIcon?: boolean;\n icon?: IconType;\n indentWidth?: number;\n selectable?: boolean;\n expandAction?: ExpandAction;\n disabled?: boolean;\n multiple?: boolean;\n checkable?: boolean | React.ReactNode;\n checkStrictly?: boolean;\n draggable?: DraggableFn | boolean | DraggableConfig;\n defaultExpandParent?: boolean;\n autoExpandParent?: boolean;\n defaultExpandAll?: boolean;\n defaultExpandedKeys?: Key[];\n expandedKeys?: Key[];\n defaultCheckedKeys?: Key[];\n checkedKeys?: Key[] | { checked: Key[]; halfChecked: Key[] };\n defaultSelectedKeys?: Key[];\n selectedKeys?: Key[];\n allowDrop?: any;\n titleRender?: (node: TreeDataType) => React.ReactNode;\n dropIndicatorRender?: (props: {\n dropPosition: -1 | 0 | 1;\n dropLevelOffset: number;\n indent: number;\n prefixCls: string;\n direction: Direction;\n }) => React.ReactNode;\n onFocus?: React.FocusEventHandler<HTMLDivElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement>;\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\n onContextMenu?: React.MouseEventHandler<HTMLDivElement>;\n onClick?: NodeMouseEventHandler<TreeDataType>;\n onDoubleClick?: NodeMouseEventHandler<TreeDataType>;\n onScroll?: React.UIEventHandler<HTMLElement>;\n onExpand?: (\n expandedKeys: Key[],\n info: {\n node: EventDataNode<TreeDataType>;\n expanded: boolean;\n nativeEvent: MouseEvent;\n },\n ) => void;\n onCheck?: (\n checked: { checked: Key[]; halfChecked: Key[] } | Key[],\n info: CheckInfo<TreeDataType>,\n ) => void;\n onSelect?: (\n selectedKeys: Key[],\n info: {\n event: 'select';\n selected: boolean;\n node: EventDataNode<TreeDataType>;\n selectedNodes: TreeDataType[];\n nativeEvent: MouseEvent;\n },\n ) => void;\n onLoad?: (\n loadedKeys: Key[],\n info: {\n event: 'load';\n node: EventDataNode<TreeDataType>;\n },\n ) => void;\n loadData?: (treeNode: EventDataNode<TreeDataType>) => Promise<any>;\n loadedKeys?: Key[];\n onMouseEnter?: (info: NodeMouseEventParams<TreeDataType>) => void;\n onMouseLeave?: (info: NodeMouseEventParams<TreeDataType>) => void;\n onRightClick?: (info: { event: React.MouseEvent; node: EventDataNode<TreeDataType> }) => void;\n onDragStart?: (info: NodeDragEventParams<TreeDataType>) => void;\n onDragEnter?: (info: NodeDragEventParams<TreeDataType> & { expandedKeys: Key[] }) => void;\n onDragOver?: (info: NodeDragEventParams<TreeDataType>) => void;\n onDragLeave?: (info: NodeDragEventParams<TreeDataType>) => void;\n onDragEnd?: (info: NodeDragEventParams<TreeDataType>) => void;\n onDrop?: (\n info: NodeDragEventParams<TreeDataType> & {\n dragNode: EventDataNode<TreeDataType>;\n dragNodesKeys: Key[];\n dropPosition: number;\n dropToGap: boolean;\n },\n ) => void;\n /**\n * Used for `rc-tree-select` only.\n * Do not use in your production code directly since this will be refactor.\n */\n onActiveChange?: (key: Key) => void;\n filterTreeNode?: (treeNode: EventDataNode<TreeDataType>) => boolean;\n motion?: any;\n switcherIcon?: IconType;\n\n // Virtual List\n height?: number;\n itemHeight?: number;\n scrollWidth?: number;\n onVirtualScroll?: (info: any) => any;\n itemScrollOffset?: number;\n virtual?: boolean;\n\n // direction for drag logic\n direction?: Direction;\n\n rootClassName?: string;\n rootStyle?: React.CSSProperties;\n}\n\ninterface TreeState<TreeDataType extends BasicDataNode = DataNode> {\n keyEntities: KeyEntities<TreeDataType>;\n\n indent: number | null;\n\n selectedKeys: Key[];\n checkedKeys: Key[];\n halfCheckedKeys: Key[];\n loadedKeys: Key[];\n loadingKeys: Key[];\n expandedKeys: Key[];\n\n draggingNodeKey: any;\n dragChildrenKeys: Key[];\n\n // for details see comment in Tree.state\n dropPosition: -1 | 0 | 1 | null;\n dropLevelOffset: number | null;\n dropContainerKey: Key | null;\n dropTargetKey: Key | null;\n dropTargetPos: string | null;\n dropAllowed: boolean;\n dragOverNodeKey: Key | null;\n\n treeData: TreeDataType[];\n flattenNodes: FlattenNode<TreeDataType>[];\n\n focused: boolean;\n activeKey: Key | null;\n\n // Record if list is changing\n listChanging: boolean;\n\n prevProps: TreeProps;\n\n fieldNames: FieldNames;\n}\n\nclass Tree<TreeDataType extends DataNode | BasicDataNode = DataNode> extends React.Component<\n TreeProps<any>,\n TreeState<any>\n> {\n static defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: () => true,\n expandAction: false,\n };\n\n static TreeNode = TreeNode;\n\n destroyed: boolean = false;\n\n delayedDragEnterLogic: Record<any, number>;\n\n loadingRetryTimes: Record<any, number> = {};\n\n state: any = {\n keyEntities: {},\n\n indent: null,\n\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n\n draggingNodeKey: null,\n dragChildrenKeys: [],\n\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null, // the drop position of abstract-drop-node, inside 0, top -1, bottom 1\n dropContainerKey: null, // the container key of abstract-drop-node if dropPosition is -1 or 1\n dropLevelOffset: null, // the drop level offset of abstract-drag-over-node\n dropTargetPos: null, // the pos of abstract-drop-node\n dropAllowed: true, // if drop to abstract-drop-node is allowed\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n\n treeData: [],\n flattenNodes: [],\n\n focused: false,\n activeKey: null,\n\n listChanging: false,\n\n prevProps: null,\n\n fieldNames: fillFieldNames(),\n };\n\n dragStartMousePosition: any = null;\n\n dragNode: any;\n\n currentMouseOverDroppableNodeKey: any = null;\n\n listRef = React.createRef<NodeListRef>();\n\n componentDidMount(): void {\n this.destroyed = false;\n this.onUpdated();\n }\n\n componentDidUpdate(): void {\n this.onUpdated();\n }\n\n onUpdated() {\n const { activeKey, itemScrollOffset = 0 } = this.props;\n\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({ activeKey });\n\n if (activeKey !== null) {\n this.scrollTo({ key: activeKey, offset: itemScrollOffset });\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n\n static getDerivedStateFromProps(props: any, prevState: any) {\n const { prevProps } = prevState;\n const newState: Partial<TreeState> = {\n prevProps: props,\n };\n\n function needSync(name: string) {\n return (!prevProps && name in props) || (prevProps && prevProps[name] !== props[name]);\n }\n\n // ================== Tree Node ==================\n let treeData: any;\n\n // fieldNames\n let { fieldNames } = prevState;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n ({ treeData } = props);\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n const entitiesMap = convertDataToEntities(treeData, { fieldNames });\n newState.keyEntities = {\n [MOTION_KEY]: MotionEntity,\n ...entitiesMap.keyEntities,\n };\n\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n\n const keyEntities = newState.keyEntities || prevState.keyEntities;\n\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || (prevProps && needSync('autoExpandParent'))) {\n newState.expandedKeys =\n props.autoExpandParent || (!prevProps && props.defaultExpandParent)\n ? conductExpandParent(props.expandedKeys, keyEntities)\n : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n const cloneKeyEntities = { ...keyEntities };\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map((key) => cloneKeyEntities[key].key);\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys =\n props.autoExpandParent || props.defaultExpandParent\n ? conductExpandParent(props.defaultExpandedKeys, keyEntities)\n : props.defaultExpandedKeys;\n }\n\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n const flattenNodes: FlattenNode[] = flattenTreeData(\n treeData || prevState.treeData,\n newState.expandedKeys || prevState.expandedKeys,\n fieldNames,\n );\n newState.flattenNodes = flattenNodes;\n }\n\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n\n // ================= checkedKeys =================\n if (props.checkable) {\n let checkedKeyEntity;\n\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys,\n };\n }\n\n if (checkedKeyEntity) {\n let { checkedKeys = [], halfCheckedKeys = [] } = checkedKeyEntity;\n\n if (!props.checkStrictly) {\n const conductKeys = conductCheck(checkedKeys, true, keyEntities);\n ({ checkedKeys, halfCheckedKeys } = conductKeys);\n }\n\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n\n return newState;\n }\n\n onNodeDragStart: NodeDragEventHandler<any, HTMLDivElement> = (event, node) => {\n const { expandedKeys, keyEntities } = this.state;\n const { onDragStart } = this.props;\n const { eventKey } = node.props;\n\n this.dragNode = node;\n this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY,\n };\n\n const newExpandedKeys = arrDel(expandedKeys, eventKey);\n\n this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: this.listRef.current?.getIndentWidth?.(),\n } as TreeState<TreeDataType>);\n\n this.setExpandedKeys(newExpandedKeys);\n\n window.addEventListener('dragend', this.onWindowDragEnd);\n\n onDragStart?.({ event, node: convertNodePropsToEventData<TreeDataType>(node.props) });\n };\n\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n onNodeDragEnter = (event: React.DragEvent<HTMLDivElement>, node: any) => {\n const { expandedKeys, keyEntities, dragChildrenKeys, flattenNodes, indent } = this.state;\n const { onDragEnter, onExpand, allowDrop, direction } = this.props;\n const { pos, eventKey } = node.props;\n const { dragNode } = this;\n\n // record the key of node which is latest entered, used in dragleave event.\n if (this.currentMouseOverDroppableNodeKey !== eventKey) {\n this.currentMouseOverDroppableNodeKey = eventKey;\n }\n\n if (!dragNode) {\n this.resetDragState();\n return;\n }\n\n const {\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropTargetPos,\n dropAllowed,\n dragOverNodeKey,\n } = calcDropPosition<TreeDataType>(\n event,\n dragNode,\n node,\n indent,\n this.dragStartMousePosition,\n allowDrop,\n flattenNodes,\n keyEntities,\n expandedKeys,\n direction,\n );\n\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed\n ) {\n this.resetDragState();\n return;\n }\n\n // Side effect for delay drag\n if (!this.delayedDragEnterLogic) {\n this.delayedDragEnterLogic = {};\n }\n Object.keys(this.delayedDragEnterLogic).forEach((key) => {\n clearTimeout(this.delayedDragEnterLogic[key]);\n });\n\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n this.delayedDragEnterLogic[pos] = window.setTimeout(() => {\n if (this.state.draggingNodeKey === null) return;\n\n let newExpandedKeys = [...expandedKeys];\n const entity = getEntity(keyEntities, node.props.eventKey);\n\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n\n if (!('expandedKeys' in this.props)) {\n this.setExpandedKeys(newExpandedKeys);\n }\n\n onExpand?.(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent,\n });\n }, 800);\n }\n\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n this.resetDragState();\n return;\n }\n\n // Update drag over node and drag state\n this.setState({\n dragOverNodeKey,\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropTargetPos,\n dropAllowed,\n });\n\n onDragEnter?.({\n event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys,\n });\n };\n\n onNodeDragOver = (event: React.DragEvent<HTMLDivElement>, node: NodeInstance<TreeDataType>) => {\n const { dragChildrenKeys, flattenNodes, keyEntities, expandedKeys, indent } = this.state;\n const { onDragOver, allowDrop, direction } = this.props;\n const { dragNode } = this;\n\n if (!dragNode) {\n return;\n }\n\n const {\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropAllowed,\n dropTargetPos,\n dragOverNodeKey,\n } = calcDropPosition(\n event,\n dragNode,\n node,\n indent,\n this.dragStartMousePosition,\n allowDrop,\n flattenNodes,\n keyEntities,\n expandedKeys,\n direction,\n );\n\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed calculated by calcDropPosition\n return;\n }\n\n // Update drag position\n\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (\n !(\n this.state.dropPosition === null &&\n this.state.dropLevelOffset === null &&\n this.state.dropTargetKey === null &&\n this.state.dropContainerKey === null &&\n this.state.dropTargetPos === null &&\n this.state.dropAllowed === false &&\n this.state.dragOverNodeKey === null\n )\n ) {\n this.resetDragState();\n }\n } else if (\n !(\n dropPosition === this.state.dropPosition &&\n dropLevelOffset === this.state.dropLevelOffset &&\n dropTargetKey === this.state.dropTargetKey &&\n dropContainerKey === this.state.dropContainerKey &&\n dropTargetPos === this.state.dropTargetPos &&\n dropAllowed === this.state.dropAllowed &&\n dragOverNodeKey === this.state.dragOverNodeKey\n )\n ) {\n this.setState({\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropTargetPos,\n dropAllowed,\n dragOverNodeKey,\n });\n }\n\n onDragOver?.({ event, node: convertNodePropsToEventData(node.props) });\n };\n\n onNodeDragLeave: NodeDragEventHandler<TreeDataType> = (event, node) => {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (\n this.currentMouseOverDroppableNodeKey === node.props.eventKey &&\n !event.currentTarget.contains(event.relatedTarget as Node)\n ) {\n this.resetDragState();\n this.currentMouseOverDroppableNodeKey = null;\n }\n\n const { onDragLeave } = this.props;\n\n onDragLeave?.({ event, node: convertNodePropsToEventData<TreeDataType>(node.props) });\n };\n\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n onWindowDragEnd = (event: any) => {\n this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', this.onWindowDragEnd);\n };\n\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n onNodeDragEnd: any = (event: any, node: any) => {\n const { onDragEnd } = this.props;\n this.setState({\n dragOverNodeKey: null,\n });\n\n this.cleanDragState();\n\n onDragEnd?.({ event, node: convertNodePropsToEventData<TreeDataType>(node.props) });\n\n this.dragNode = null;\n\n window.removeEventListener('dragend', this.onWindowDragEnd);\n };\n\n onNodeDrop = (\n event: React.DragEvent<HTMLDivElement>,\n node: any,\n outsideTree: boolean = false,\n ) => {\n const { dragChildrenKeys, dropPosition, dropTargetKey, dropTargetPos, dropAllowed } =\n this.state;\n\n if (!dropAllowed) return;\n\n const { onDrop } = this.props;\n\n this.setState({\n dragOverNodeKey: null,\n });\n this.cleanDragState();\n\n if (dropTargetKey === null) return;\n\n const abstractDropNodeProps = {\n ...getTreeNodeProps(dropTargetKey, this.getTreeNodeRequiredProps()),\n active: this.getActiveItem()?.key === dropTargetKey,\n data: getEntity(this.state.keyEntities, dropTargetKey).node,\n };\n const dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n\n warning(\n !dropToChild,\n \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\",\n );\n\n const posArr = posToArr(dropTargetPos);\n\n const dropResult = {\n event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: this.dragNode ? convertNodePropsToEventData(this.dragNode.props) : null,\n dragNodesKeys: [this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1]),\n };\n\n if (!outsideTree) {\n onDrop?.(dropResult);\n }\n\n this.dragNode = null;\n };\n\n resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false,\n });\n }\n\n cleanDragState = () => {\n const { draggingNodeKey } = this.state;\n if (draggingNodeKey !== null) {\n this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null,\n });\n }\n this.dragStartMousePosition = null;\n this.currentMouseOverDroppableNodeKey = null;\n };\n\n triggerExpandActionExpand: NodeMouseEventHandler = (e, treeNode) => {\n const { expandedKeys, flattenNodes } = this.state;\n const { expanded, key, isLeaf } = treeNode;\n\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n\n const node = flattenNodes.filter((nodeItem: any) => nodeItem.key === key)[0];\n const eventNode = convertNodePropsToEventData<TreeDataType>({\n ...getTreeNodeProps(key, this.getTreeNodeRequiredProps()),\n data: node.data,\n });\n\n this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n this.onNodeExpand(e as React.MouseEvent<HTMLDivElement>, eventNode);\n };\n\n onNodeClick: NodeMouseEventHandler<TreeDataType> = (e, treeNode) => {\n const { onClick, expandAction } = this.props;\n\n if (expandAction === 'click') {\n this.triggerExpandActionExpand(e, treeNode);\n }\n\n onClick?.(e, treeNode);\n };\n\n onNodeDoubleClick: NodeMouseEventHandler<TreeDataType> = (e, treeNode) => {\n const { onDoubleClick, expandAction } = this.props;\n\n if (expandAction === 'doubleClick') {\n this.triggerExpandActionExpand(e, treeNode);\n }\n\n onDoubleClick?.(e, treeNode);\n };\n\n onNodeSelect: NodeMouseEventHandler<any> = (e, treeNode) => {\n let { selectedKeys } = this.state;\n const { keyEntities, fieldNames } = this.state;\n const { onSelect, multiple } = this.props;\n const { selected } = treeNode;\n const key = treeNode[fieldNames.key];\n const targetSelected = !selected;\n\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n const selectedNodes = selectedKeys\n .map((selectedKey: any) => {\n const entity = getEntity(keyEntities, selectedKey);\n if (!entity) return null;\n\n return entity.node;\n })\n .filter((node: any) => node);\n\n this.setUncontrolledState({ selectedKeys });\n\n onSelect?.(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes,\n nativeEvent: e.nativeEvent,\n });\n };\n\n onNodeCheck = (\n e: React.MouseEvent<HTMLSpanElement>,\n treeNode: EventDataNode<TreeDataType>,\n checked: boolean,\n ) => {\n const {\n keyEntities,\n checkedKeys: oriCheckedKeys,\n halfCheckedKeys: oriHalfCheckedKeys,\n } = this.state;\n const { checkStrictly, onCheck } = this.props;\n const { key } = treeNode;\n\n // Prepare trigger arguments\n let checkedObj;\n const eventObj: any = {\n event: 'check',\n node: treeNode,\n checked,\n nativeEvent: e.nativeEvent,\n };\n\n if (checkStrictly) {\n const checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n const halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };\n\n eventObj.checkedNodes = checkedKeys\n .map((checkedKey) => getEntity(keyEntities, checkedKey))\n .filter((entity) => entity)\n .map((entity) => entity.node);\n\n this.setUncontrolledState({ checkedKeys });\n } else {\n // Always fill first\n let { checkedKeys, halfCheckedKeys } = conductCheck(\n [...oriCheckedKeys, key],\n true,\n keyEntities,\n );\n\n // If remove, we do it again to correction\n if (!checked) {\n const keySet = new Set(checkedKeys);\n keySet.delete(key);\n ({ checkedKeys, halfCheckedKeys } = conductCheck(\n Array.from(keySet),\n { checked: false, halfCheckedKeys },\n keyEntities,\n ));\n }\n\n checkedObj = checkedKeys;\n\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = halfCheckedKeys;\n\n checkedKeys.forEach((checkedKey) => {\n const entity = getEntity(keyEntities, checkedKey);\n if (!entity) return;\n\n const { node, pos } = entity;\n\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({ node, pos });\n });\n\n this.setUncontrolledState(\n {\n checkedKeys,\n },\n false,\n {\n halfCheckedKeys,\n },\n );\n }\n\n onCheck?.(checkedObj, eventObj as CheckInfo<TreeDataType>);\n };\n\n onNodeLoad = (treeNode: EventDataNode<TreeDataType>) => {\n const { key } = treeNode;\n\n const loadPromise = new Promise<void>((resolve, reject) => {\n // We need to get the latest state of loading/loaded keys\n this.setState(({ loadedKeys = [], loadingKeys = [] }): any => {\n const { loadData, onLoad } = this.props;\n\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n\n // Process load data\n const promise = loadData(treeNode);\n promise\n .then(() => {\n const { loadedKeys: currentLoadedKeys } = this.state;\n const newLoadedKeys = arrAdd(currentLoadedKeys, key);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad?.(newLoadedKeys, {\n event: 'load',\n node: treeNode,\n });\n\n this.setUncontrolledState({\n loadedKeys: newLoadedKeys,\n });\n this.setState((prevState) => ({\n loadingKeys: arrDel(prevState.loadingKeys, key),\n }));\n\n resolve();\n })\n .catch((e) => {\n this.setState((prevState) => ({\n loadingKeys: arrDel(prevState.loadingKeys, key),\n }));\n\n // If exceed max retry times, we give up retry\n this.loadingRetryTimes[key as SafeKey] =\n (this.loadingRetryTimes[key as SafeKey] || 0) + 1;\n if (this.loadingRetryTimes[key as SafeKey] >= MAX_RETRY_TIMES) {\n const { loadedKeys: currentLoadedKeys } = this.state;\n\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n\n this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key),\n });\n resolve();\n }\n\n reject(e);\n });\n\n return {\n loadingKeys: arrAdd(loadingKeys, key),\n };\n });\n });\n\n // Not care warning if we ignore this\n loadPromise.catch(() => {});\n\n return loadPromise;\n };\n\n onNodeMouseEnter: NodeMouseEventHandler<TreeDataType> = (event, node) => {\n const { onMouseEnter } = this.props;\n\n onMouseEnter?.({ event, node });\n };\n\n onNodeMouseLeave: NodeMouseEventHandler<TreeDataType> = (event, node) => {\n const { onMouseLeave } = this.props;\n\n onMouseLeave?.({ event, node });\n };\n\n onNodeContextMenu: NodeMouseEventHandler<TreeDataType> = (event, node) => {\n const { onRightClick } = this.props;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({ event, node });\n }\n };\n\n onFocus: React.FocusEventHandler<HTMLDivElement> = (...args) => {\n const { onFocus } = this.props;\n this.setState({ focused: true });\n\n onFocus?.(...args);\n };\n\n onBlur: React.FocusEventHandler<HTMLDivElement> = (...args) => {\n const { onBlur } = this.props;\n this.setState({ focused: false });\n this.onActiveChange(null);\n\n onBlur?.(...args);\n };\n\n getTreeNodeRequiredProps = () => {\n const {\n expandedKeys,\n selectedKeys,\n loadedKeys,\n loadingKeys,\n checkedKeys,\n halfCheckedKeys,\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n } = this.state;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey,\n dropPosition,\n keyEntities: keyEntities,\n };\n };\n\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n setExpandedKeys = (expandedKeys: Key[]) => {\n const { treeData, fieldNames } = this.state;\n\n const flattenNodes: FlattenNode<TreeDataType>[] = flattenTreeData<TreeDataType>(\n treeData,\n expandedKeys,\n fieldNames,\n );\n this.setUncontrolledState(\n {\n expandedKeys,\n flattenNodes,\n },\n true,\n );\n };\n\n onNodeExpand = (e: React.MouseEvent<HTMLDivElement>, treeNode: any) => {\n let { expandedKeys } = this.state;\n const { listChanging, fieldNames } = this.state;\n const { onExpand, loadData } = this.props;\n const { expanded } = treeNode;\n const key = treeNode[fieldNames.key];\n\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n\n // Update selected keys\n const index = expandedKeys.indexOf(key);\n const targetExpanded = !expanded;\n\n warning(\n (expanded && index !== -1) || (!expanded && index === -1),\n 'Expand state not sync with index check',\n );\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n\n this.setExpandedKeys(expandedKeys);\n\n onExpand?.(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent,\n });\n\n // Async Load data\n if (targetExpanded && loadData) {\n const loadPromise = this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise\n .then(() => {\n // [Legacy] Refresh logic\n const newFlattenTreeData = flattenTreeData<TreeDataType>(\n this.state.treeData,\n expandedKeys,\n fieldNames,\n );\n this.setUncontrolledState({ flattenNodes: newFlattenTreeData });\n })\n .catch(() => {\n const { expandedKeys: currentExpandedKeys } = this.state;\n const expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n\n onListChangeStart = () => {\n this.setUncontrolledState({\n listChanging: true,\n });\n };\n\n onListChangeEnd = () => {\n setTimeout(() => {\n this.setUncontrolledState({\n listChanging: false,\n });\n });\n };\n\n // =========================== Keyboard ===========================\n onActiveChange = (newActiveKey: any) => {\n const { activeKey } = this.state;\n const { onActiveChange, itemScrollOffset = 0 } = this.props;\n\n if (activeKey === newActiveKey) {\n return;\n }\n\n this.setState({ activeKey: newActiveKey });\n if (newActiveKey !== null) {\n this.scrollTo({ key: newActiveKey, offset: itemScrollOffset });\n }\n\n onActiveChange?.(newActiveKey);\n };\n\n getActiveItem = () => {\n const { activeKey, flattenNodes } = this.state;\n if (activeKey === null) {\n return null;\n }\n\n return flattenNodes.find(({ key }: any) => key === activeKey) || null;\n };\n\n offsetActiveKey = (offset: number) => {\n const { flattenNodes, activeKey } = this.state;\n\n let index = flattenNodes.findIndex(({ key }: any) => key === activeKey);\n\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n\n const item = flattenNodes[index];\n if (item) {\n const { key } = item;\n this.onActiveChange(key);\n } else {\n this.onActiveChange(null);\n }\n };\n\n onKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (event) => {\n const { activeKey, expandedKeys, checkedKeys, fieldNames } = this.state;\n const { onKeyDown, checkable, selectable } = this.props;\n\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP: {\n this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN: {\n this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n\n // >>>>>>>>>> Expand & Selection\n const activeItem = this.getActiveItem();\n if (activeItem && activeItem.data) {\n const treeNodeRequiredProps = this.getTreeNodeRequiredProps();\n\n const expandable =\n activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n const eventNode = convertNodePropsToEventData<TreeDataType>({\n ...getTreeNodeProps(activeKey, treeNodeRequiredProps),\n data: activeItem.data,\n active: true,\n });\n\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT: {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n this.onNodeExpand({} as React.MouseEvent<HTMLDivElement>, eventNode);\n } else if (activeItem.parent) {\n this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT: {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n this.onNodeExpand({} as React.MouseEvent<HTMLDivElement>, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE: {\n if (\n checkable &&\n !eventNode.disabled &&\n eventNode.checkable !== false &&\n !eventNode.disableCheckbox\n ) {\n this.onNodeCheck(\n {} as React.MouseEvent<HTMLDivElement>,\n eventNode,\n !checkedKeys.includes(activeKey),\n );\n } else if (\n !checkable &&\n selectable &&\n !eventNode.disabled &&\n eventNode.selectable !== false\n ) {\n this.onNodeSelect({} as React.MouseEvent<HTMLDivElement>, eventNode);\n }\n break;\n }\n }\n }\n\n onKeyDown?.(event);\n };\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState = (\n state: any,\n atomic: boolean = false,\n forceState: Partial<TreeState<TreeDataType>> | null = null,\n ) => {\n if (!this.destroyed) {\n let needSync = false;\n let allPassed = true;\n const newState: any = {};\n\n Object.keys(state).forEach((name) => {\n if (name in this.props) {\n allPassed = false;\n return;\n }\n\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync && (!atomic || allPassed)) {\n this.setState({\n ...newState,\n ...forceState,\n } as TreeState<TreeDataType>);\n }\n }\n };\n\n scrollTo: ScrollTo = (scroll) => {\n this.listRef.current?.scrollTo(scroll);\n };\n\n render() {\n const {\n focused,\n flattenNodes,\n keyEntities,\n draggingNodeKey,\n activeKey,\n dropLevelOffset,\n dropContainerKey,\n dropTargetKey,\n dropPosition,\n dragOverNodeKey,\n indent,\n } = this.state;\n const {\n prefixCls,\n className,\n style,\n showLine,\n focusable,\n tabIndex = 0,\n selectable,\n showIcon,\n icon,\n indentWidth,\n switcherIcon,\n draggable,\n checkable,\n checkStrictly,\n disabled,\n motion,\n loadData,\n filterTreeNode,\n height,\n itemHeight,\n virtual,\n titleRender,\n dropIndicatorRender,\n onContextMenu,\n onScroll,\n onVirtualScroll,\n direction,\n rootClassName,\n rootStyle,\n scrollWidth,\n } = this.props;\n\n const domProps: React.HTMLAttributes<HTMLDivElement> = pickAttrs(this.props, {\n aria: true,\n data: true,\n });\n\n // It's better move to hooks but we just simply keep here\n let draggableConfig: any;\n if (draggable) {\n if (typeof draggable === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable,\n };\n } else {\n draggableConfig = {};\n }\n }\n\n return (\n <TreeContext.Provider\n value={{\n prefixCls,\n selectable,\n showIcon,\n icon,\n switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey,\n checkable,\n checkStrictly,\n disabled,\n keyEntities,\n dropLevelOffset,\n dropContainerKey,\n dropTargetKey,\n dropPosition,\n dragOverNodeKey,\n indent,\n indentWidth,\n direction,\n dropIndicatorRender,\n\n loadData,\n filterTreeNode,\n\n titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop,\n }}\n >\n <div\n role='tree'\n className={classNames(prefixCls, className, rootClassName, {\n [`${prefixCls}-show-line`]: showLine,\n [`${prefixCls}-focused`]: focused,\n [`${prefixCls}-active-focused`]: activeKey !== null,\n })}\n style={rootStyle}\n >\n <NodeList\n ref={this.listRef}\n prefixCls={prefixCls}\n style={style}\n data={flattenNodes}\n disabled={disabled}\n selectable={selectable}\n checkable={!!checkable}\n indentWidth={indentWidth}\n scrollWidth={scrollWidth}\n motion={motion}\n dragging={draggingNodeKey !== null}\n height={height}\n itemHeight={itemHeight}\n virtual={virtual}\n focusable={focusable}\n focused={focused}\n tabIndex={tabIndex}\n activeItem={this.getActiveItem()}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.onKeyDown}\n onActiveChange={this.onActiveChange}\n onListChangeStart={this.onListChangeStart}\n onListChangeEnd={this.onListChangeEnd}\n onContextMenu={onContextMenu}\n onScroll={onScroll}\n onVirtualScroll={onVirtualScroll}\n {...this.getTreeNodeRequiredProps()}\n {...domProps}\n />\n </div>\n </TreeContext.Provider>\n );\n }\n}\n\nexport default Tree;\n","import cx from 'classnames';\n\nimport { getMenu } from '../menu/menulist';\n\nimport { CircleCheckSvg } from '../icons';\nimport Menu from '../menu';\n\nexport default function TableItem(props: any) {\n const {\n columns,\n width,\n id,\n active,\n ischeck,\n onCheck,\n onMenuClick,\n isdrag,\n isUpload,\n rename,\n onRename,\n onSelect,\n loadMenu,\n closeMenu,\n checks,\n ...param\n } = props;\n\n let disable = props?.disable || false;\n\n if (!disable && Array.isArray(props.selectedSuffix)) {\n disable =\n !props.selectedSuffix.includes(props.suffix) && !props.selectedSuffix?.includes(props?.type);\n }\n\n return (\n <div\n className={cx('explorer-tree-row', {\n disable,\n 'menu-drag-move': active,\n })}\n data-id={!disable ? id : null}\n data-type={!disable ? props.type : null}\n data-isdrag={isdrag === false ? false : true}\n data-upload={isUpload === false ? false : true}\n onContextMenu={(e) => {\n e.stopPropagation();\n e.preventDefault();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n if (!props.isOpenMenu) return;\n let menudata: any = [];\n if (getMenu(props.id)) {\n menudata = getMenu(props.id);\n } else if (props.type && getMenu(props.type)) {\n menudata = getMenu(props.type);\n } else {\n menudata = getMenu('');\n }\n\n props?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={props}\n menu={menudata}\n info={{ key: id, ...param }}\n loadMenu={loadMenu}\n onChange={async (v: any) => {\n onMenuClick && onMenuClick(v);\n props?.closeMenu?.();\n }}\n ></Menu>\n ),\n },\n { key: props.id },\n );\n }}\n >\n {columns.map((v: any, i: number) => {\n let x = width[i] - (i ? 0 : 58 + 8) + (i ? 10 : 0);\n if (i == 0 && typeof param.level === 'number') {\n x = x - param.level * 16;\n }\n\n if (typeof v?.render === 'function') {\n return (\n <div\n className={cx('row-item')}\n key={i}\n style={\n width[i]\n ? {\n flex: `0 0 ${x}px`,\n width: x + 'px',\n }\n : {}\n }\n >\n <div className='row-item-content'> {v.render?.({ id, ...param }, v.key)}</div>\n <div className='row-item-tool'>\n {v?.renderTool\n ? v?.renderTool({ id, ...param }, v.key)\n : !i && (\n <div\n className={cx('row-item-check', {\n active: active,\n })}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n onClick={(e) => {\n if (disable) return;\n e.stopPropagation();\n e.preventDefault();\n onCheck?.();\n }}\n >\n <span className='btn-check'>\n <CircleCheckSvg />\n </span>\n </div>\n )}\n </div>\n </div>\n );\n }\n\n if (rename && v.key == 'title') {\n return (\n <div\n className={cx('row-item')}\n key={i}\n style={\n width[i]\n ? {\n flex: `0 0 ${x}px`,\n width: x + 'px',\n }\n : {}\n }\n >\n <div className='row-item-content'>\n <input\n className='node-input'\n autoFocus\n defaultValue={param[v?.key]}\n placeholder='请输入'\n onKeyDown={(e: any) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n if (props.create_file) {\n onRename?.(e.target?.value);\n return;\n }\n onRename?.(e.target?.value);\n }\n\n if (e.key === 'Escape') {\n onRename?.(false);\n return;\n }\n }}\n onFocus={(e) => {\n let i: number = param[v?.key]?.lastIndexOf('.');\n if (props?.suffix == 'folder') {\n e.target.setSelectionRange(0, param[v?.key]?.length);\n } else if (i !== -1) {\n e.target.setSelectionRange(0, i);\n }\n }}\n onBlur={(e) => {\n if (props.create_file) {\n onRename?.(e.target.value);\n return;\n }\n\n if (e.target.value === param[v?.key]) {\n onRename?.(false);\n return;\n }\n onRename?.(e.target.value);\n }}\n ></input>\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={cx('row-item')}\n key={i}\n style={\n width[i]\n ? {\n flex: `0 0 ${x}px`,\n width: x + 'px',\n }\n : {}\n }\n >\n <div className='row-item-content'>{param[v?.key] || ''}</div>\n <div className='row-item-tool'>\n {v?.renderTool\n ? v?.renderTool({ id, ...param }, v.key)\n : !i && (\n <div\n className={cx('row-item-check', {\n active: active,\n })}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n onClick={(e) => {\n if (disable) return;\n e.stopPropagation();\n e.preventDefault();\n onCheck?.();\n }}\n >\n <span className='btn-check'>\n <CircleCheckSvg />\n </span>\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\n\nimport { TreeItem } from '.';\nimport { getMenu } from '../menu/menulist';\n\nimport { CaretRight } from '../icons';\nimport Menu from '../menu';\n\nexport default (props: any) => {\n const { onRename, onMenuClick, loadMenu, info } = props;\n\n const [title, setTitle] = useState('');\n\n useEffect(() => {\n setTitle(info.title);\n }, [info.title]);\n\n let menudata: any = [];\n if (getMenu(props.id)) {\n menudata = getMenu(props.id);\n } else if (info.type && getMenu(info.type)) {\n menudata = getMenu('nav-folder');\n } else {\n menudata = getMenu('');\n }\n\n return (\n <div\n style={{ height: '100%' }}\n onContextMenu={(e) => {\n e.preventDefault();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n if (info?.menu == false) return;\n\n props?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={props}\n menu={menudata}\n info={info}\n loadMenu={loadMenu}\n onChange={async (v: any) => {\n onMenuClick && onMenuClick(v);\n props?.closeMenu?.();\n }}\n ></Menu>\n ),\n },\n { key: props.id },\n );\n }}\n >\n {props.rename ? (\n <div className='explorer-tree-node'>\n <input\n className='node-input'\n autoFocus\n value={title}\n placeholder='请输入'\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n onRename?.(title);\n }\n if (e.key === 'Escape') {\n setTitle(info.title);\n onRename?.(false);\n }\n }}\n onFocus={(e) => {\n let i: number = title.lastIndexOf('.');\n if (info?.suffix == 'folder') {\n e.target.setSelectionRange(0, title.length);\n } else if (i !== -1) {\n e.target.setSelectionRange(0, i);\n }\n }}\n onChange={(v) => {\n setTitle?.(v.target.value);\n }}\n onBlur={() => {\n onRename?.(title);\n }}\n ></input>\n </div>\n ) : (\n <div className='explorer-tree-node'>\n <div className='node-title'>{title || ''}</div>\n <div className='node-menu'>\n {info?.menu !== false && (\n <div\n className='node-menu-icon'\n onClick={(e) => {\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n props?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n menu={menudata}\n loadMenu={loadMenu}\n info={info}\n onChange={async (v: any) => {\n onMenuClick && onMenuClick(v);\n props?.closeMenu?.();\n }}\n ></Menu>\n ),\n },\n { key: props.id },\n );\n }}\n >\n <CaretRight />\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n","import './index.less';\nimport React from 'react';\nimport { NullDataSvg } from '../icons';\n\nexport default function NotData() {\n return (\n <div className='explorer-notdata'>\n <div className='tree-empty'>\n <div className='empty-svg'>\n <NullDataSvg></NullDataSvg>\n </div>\n <span>文件夹为空</span>\n </div>\n </div>\n );\n}\n","import './index.less';\nimport cx from 'classnames';\n\nimport React, {\n forwardRef,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { cloneDeep } from 'lodash';\n\nimport Tree from './components';\nimport { Provider } from 'rc-motion';\nimport { AngleRightSvg, CaretRight, LoadingSvg, NullDataSvg } from '../icons';\n\nimport TableItem from './tree-item-table';\nimport TreeItem from './tree-item';\nimport NotData from '../notdata';\n\nexport interface TreeItem {\n key?: string;\n title?: string;\n icon?: boolean;\n suffix?: string;\n api?: boolean;\n level?: string;\n menu?: any;\n children?: TreeItem[];\n isLeaf?: boolean;\n [key: string]: any;\n}\n\nexport interface TreeProps {\n type?: 'tree' | 'table';\n treeData: TreeItem[];\n showLine?: boolean; //未实现\n height?: number | null;\n isload?: boolean;\n animation?: boolean;\n defaultmenu?: 'basis' | 'file';\n defaultExpandedKeys?: string[];\n expandedKeys?: string[];\n autoExpandParent?: boolean;\n columns?: any[];\n checks?: string[];\n\n loadedKeys?: string[];\n\n icon?: (v: any, className: string) => ReactNode;\n onChecks?: (checks: string[], param?: TreeItem[]) => void;\n onSelect?: (key: string) => any;\n onChange?: (data: TreeItem[]) => void;\n titleRender?: (props: any) => any;\n onMenuClick?: (key: string, props: any, type?: string) => 'update' | void;\n onDblclick?: (key: string, props: any) => void;\n loadData?: (key: string) => Promise<TreeItem[]> | TreeItem[];\n onRename?: (key: string, value: string, props?: TreeItem) => boolean | void;\n filterData?: (node: any) => boolean;\n onExpand?: (data: string[]) => void;\n [key: string]: any;\n}\n\n//添加层级\nconst addLevel = (data: any, levelIndex = 0, type: string, filedata?: (node: any) => boolean) => {\n let arr = data;\n if (filedata) {\n arr = arr.filter((v: any) => filedata?.(v));\n }\n let i = 0;\n while (i < arr.length) {\n let item = arr[i];\n\n item['level'] = levelIndex;\n\n if (type == 'tree' && item?.hasFolder == 0) {\n item['isLeaf'] = true;\n }\n if (type == 'table' && item?.hasFolder == 0 && item?.hasFile == 0) {\n item['isLeaf'] = true;\n }\n if (!item?.api && !item?.children) {\n item['isLeaf'] = true;\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n if (filedata) {\n item.children = addLevel(item.children, levelIndex + 1, type, filedata);\n } else {\n addLevel(item.children, levelIndex + 1, type, filedata);\n }\n }\n i++;\n }\n return arr;\n};\n\n//下拉动画\nconst motion = {\n motionName: 'node-motion',\n motionAppear: false,\n onAppearStart: () => ({ height: 0 }),\n onAppearActive: (node: any) => ({ height: node.scrollHeight }),\n onLeaveStart: (node: any) => ({ height: node.offsetHeight }),\n onLeaveActive: () => ({ height: 0 }),\n};\n\nexport default forwardRef((props: TreeProps, _ref) => {\n const {\n type = 'tree',\n autoExpandParent,\n defaultExpandedKeys,\n activeKey,\n treeData,\n checks,\n height,\n expandedKeys,\n width: _widht,\n columns,\n rename,\n isload = false,\n ischeck = false,\n showLine = true,\n animation = true,\n loadedKeys = undefined,\n selectedKeys,\n\n icon,\n titleRender,\n onChecks,\n onChange,\n onSelect,\n onDblclick,\n onMenuClick,\n onRename,\n loadData,\n filterData,\n onExpand,\n onScroll,\n setRename,\n onLoad,\n } = props;\n\n const ref = useRef<any>(null);\n const tree = useRef<any>(null);\n const header = useRef<any>(null);\n\n const [data, setData] = useState(treeData);\n const [motionshow, seTmotionShow] = useState(animation);\n const [width, setWidth] = useState<(number | null)[]>([]);\n\n useImperativeHandle(_ref, () => ({\n toScroll: ({ x, y }: any) => {\n tree.current.scrollTo({ top: x });\n },\n }));\n\n const scrollWidth = useMemo(() => {\n let w = (_widht || 100) - 6;\n let size = width?.reduce((x: number, y: number | null) => {\n if (typeof y == 'number') {\n return x + y;\n }\n return x;\n }, 0);\n\n return size > w ? size : Math.ceil(w);\n }, [width, _widht]);\n\n useEffect(() => {\n let arr = cloneDeep(treeData) || [];\n arr = addLevel(arr, 0, type, filterData);\n setData(arr);\n }, [treeData, type, filterData]);\n\n useEffect(() => {\n if (!Array.isArray(columns)) return;\n\n let data = ref.current?.getBoundingClientRect();\n let w = 80;\n if (data) {\n w = Math.floor((data.width - 8) / columns.length);\n }\n\n let arr = columns.map((v: any) => {\n if (typeof v?.width === 'number') {\n return v.width;\n } else {\n return w;\n }\n });\n\n setWidth(arr);\n }, [columns]);\n\n //展开按钮\n const s_icon = (v: any) => {\n if (v.isLeaf) {\n return <></>;\n }\n if (v.loading) {\n return (\n <div className={cx('explorer-tree-switch loading')}>\n <LoadingSvg />\n </div>\n );\n }\n return (\n <div\n className={cx('explorer-tree-switch', {\n open: v.expanded,\n })}\n >\n <AngleRightSvg />\n </div>\n );\n };\n\n const s_table_icon = (v: any) => {\n if (v.eventKey == '_ending') {\n return <></>;\n }\n if (v.isLeaf) {\n return <></>;\n }\n if (v.loading) {\n return (\n <div className={cx('explorer-tree-switch loading')}>\n <LoadingSvg />\n </div>\n );\n }\n return (\n <div\n className={cx('explorer-tree-switch', {\n open: v.expanded,\n })}\n style={{ fontSize: '7px' }}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n >\n <CaretRight />\n </div>\n );\n };\n\n //树的懒加载\n const setLeaf = (treeData: any, curKey: any, level: any) => {\n const loopLeaf = (data: any, lev: any) => {\n const l = lev - 1;\n data.forEach((item: any) => {\n if (\n item.key.length > curKey.length\n ? item.key.indexOf(curKey) !== 0\n : curKey.indexOf(item.key) !== 0\n ) {\n return;\n }\n if (item.children) {\n loopLeaf(item.children, l);\n } else if (l < 1 && treeData.api) {\n item.isLeaf = true;\n }\n });\n };\n loopLeaf(treeData, level + 1);\n };\n\n //树s的懒加载\n const getNewTreeData = (treeData: any, curKey: any, child: any, level: any) => {\n const loop = (data: any, levelkey: string) => {\n if (level < 1 || curKey.length - 3 > level * 2) return;\n data.forEach((item: any, index: number) => {\n let l = levelkey + `-${index}`;\n if (curKey.indexOf(l) === 0) {\n if (item.children && item.children.length) {\n loop(item.children, l);\n } else {\n item.children = child;\n }\n }\n });\n };\n loop(treeData, '0');\n setLeaf(treeData, curKey, level);\n };\n\n //树的懒加载\n const onLoadData = (treeNode: any) => {\n onChange ? null : seTmotionShow(false);\n\n if (!treeNode.api) {\n if (!treeNode?.children) {\n return new Promise((resolve: any) => {\n if (animation) {\n setTimeout(() => {\n seTmotionShow(true);\n resolve();\n }, 100);\n }\n });\n } else {\n return new Promise((resolve: any) => {\n animation && seTmotionShow(true);\n resolve();\n });\n }\n }\n\n return new Promise(async (resolve: any) => {\n const tree = [...treeData];\n\n let child = await loadData?.(treeNode?.key);\n\n if (typeof treeNode.level === 'number') {\n child = child?.map((v) => {\n return { ...v, level: treeNode.level + 1 };\n });\n }\n getNewTreeData(tree, treeNode.pos, child, 10);\n onChange?.(tree);\n setTimeout(() => {\n resolve();\n }, 300);\n });\n };\n\n if (type == 'table' && !treeData.length) {\n return <NotData />;\n }\n\n return (\n <div\n ref={ref}\n onClick={() => {}}\n onScroll={(e) => {}}\n className={cx('explorer-tree', {\n showLine: showLine,\n table: type == 'table',\n ['explorer-checks']: ischeck,\n })}\n >\n <Provider motion={motionshow}>\n {type == 'table' && (\n <div\n ref={header}\n className='tree-scroll-x'\n onScroll={(e: any) => {\n if (typeof e.target?.scrollLeft === 'number') {\n tree.current.scrollTo({ left: e.target?.scrollLeft });\n }\n }}\n >\n <Header\n width={width}\n columns={columns || []}\n onWidhtChange={(v: any) => {\n setWidth(v);\n }}\n ></Header>\n </div>\n )}\n <Tree\n ref={tree}\n checkStrictly={true}\n expandedKeys={expandedKeys}\n loadedKeys={loadedKeys}\n checkable={type == 'table' ? true : false}\n selectedKeys={selectedKeys ? selectedKeys : undefined}\n autoExpandParent={autoExpandParent}\n defaultExpandedKeys={defaultExpandedKeys || []}\n motion={motionshow ? motion : undefined}\n onVirtualScroll={(props: any) => {\n onScroll?.({ x: props.x, y: props.y });\n header.current?.scrollTo?.({ left: props.x });\n }}\n icon={(e) => {\n if (e.eventKey == '_ending') {\n return <></>;\n }\n return icon?.({ key: e.eventKey, ...e }, 'explorer-tree-icon');\n }}\n itemHeight={40}\n checkedKeys={checks}\n height={height ? height : undefined}\n scrollWidth={type == 'table' ? scrollWidth || _widht : undefined}\n onContextMenu={(e) => {\n e.preventDefault();\n }}\n onExpand={(v: any) => {\n onExpand?.(v);\n }}\n onDoubleClick={(v, node) => {\n if (rename) return;\n v.stopPropagation();\n onDblclick && onDblclick?.(node.key, node);\n }}\n titleRender={(v: any) => {\n if (v.key == '_ending') {\n return (\n <div\n style={{\n height: v.height + 'px',\n opacity: 0,\n }}\n ></div>\n );\n }\n if (titleRender) {\n return titleRender(v);\n }\n if (type == 'table') {\n let { key, ...item } = v;\n\n return (\n <React.Fragment key={v.key}>\n <TableItem\n {...props}\n {...item}\n id={key}\n ischeck={ischeck}\n active={checks?.includes(v.key)}\n width={width}\n rename={v.key == rename || v.create_file}\n onRename={(value: any) => {\n if (typeof value === 'boolean' && !v.create_file) {\n setRename(null);\n return;\n }\n onRename && onRename(v.key, value, v);\n setRename(null);\n }}\n onMenuClick={(menu: any) => {\n //选判断 是不是 命名\n if (menu == 'rename') {\n setTimeout(() => {\n setRename(v.key);\n });\n return;\n }\n /***\n * 右键 三种情况\n * 有多选 没在选中内\n * 有多选 在选中内\n * 没有多选\n */\n if (checks?.length && checks.includes(v.key)) {\n onMenuClick && onMenuClick(menu, v);\n } else {\n onMenuClick && onMenuClick(menu, v, 'menu'); //带menu 是对当前数据进操作 没有是 对选中内容进行操作\n }\n }}\n onCheck={() => {\n let arr: any[] | undefined = cloneDeep(checks);\n\n if (props.checkType && props.checkType !== v.type) return;\n\n if (checks?.includes(v.key)) {\n arr = checks.filter((key) => key !== v.key);\n } else {\n arr = [...(arr || []), v.key];\n }\n onChecks && onChecks?.(arr);\n }}\n columns={columns}\n ></TableItem>\n </React.Fragment>\n );\n }\n let { key, ...item } = v;\n return (\n <React.Fragment key={v.key}>\n <TreeItem\n {...props}\n info={v}\n defaultmenu\n id={key}\n rename={v.key == rename}\n onRename={(value: any) => {\n if (typeof value === 'boolean' && !v.create_file) return setRename(null);\n onRename && onRename(v.key, value, v);\n setRename(null);\n }}\n loadMenu={props.loadMenu}\n onMenuClick={(menu: any) => {\n if (menu == 'rename') {\n setTimeout(() => {\n setRename(v.key);\n });\n return;\n }\n onMenuClick && onMenuClick(menu, v);\n }}\n ></TreeItem>\n </React.Fragment>\n );\n }}\n onSelect={(v, info: any) => {\n if (v[0] || info?.node?.key) {\n onSelect?.({ key: v[0], ...(info?.node || {}) });\n }\n }}\n onClick={(e) => {\n e.stopPropagation();\n props?.closeMenu();\n }}\n onLoad={(v) => {\n if (v.length == loadedKeys?.length) return;\n onLoad?.(v);\n }}\n loadData={isload ? (onLoadData as any) : null}\n treeData={type == 'table' ? [...data, { key: '_ending', title: '', height: 200 }] : data}\n switcherIcon={type == 'table' ? s_table_icon : s_icon}\n />\n </Provider>\n </div>\n );\n});\n\nfunction Header(props: any) {\n const { width, onWidhtChange, columns } = props;\n const [isdarg, setIsDrag] = useState(false);\n const [dragindex, setDargIndex] = useState<number | null>(null);\n const ref = useRef<any>(null);\n useLayoutEffect(() => {\n window.addEventListener('mousemove', lie);\n window.addEventListener('mouseup', up);\n return () => {\n window.removeEventListener('mousemove', lie);\n window.removeEventListener('mouseup', up);\n };\n }, [isdarg]);\n\n function up() {\n if (!isdarg) return;\n setIsDrag(false);\n setDargIndex(null);\n }\n\n function lie(e: any) {\n if (!isdarg) return;\n if (typeof dragindex !== 'number') return;\n e.preventDefault();\n let dom = ref.current.querySelector('.item-resize');\n let a = dom?.getBoundingClientRect();\n let x = e.clientX - a.left;\n let arr = cloneDeep(width);\n let diff = 150 - dragindex * 16;\n arr[dragindex] = x > diff ? x : diff;\n onWidhtChange(arr);\n }\n\n return (\n <div ref={ref} className='explorer-table-header' onMouseUp={() => {}} onClick={() => {}}>\n {columns.map((v: any, i: number) => {\n let x = width[i];\n return (\n <React.Fragment key={v.key}>\n <div\n className={cx('item', {\n 'item-resize': dragindex == i,\n })}\n style={\n width[i]\n ? {\n flex: `0 0 ${x}px`,\n width: x + 'px',\n }\n : {}\n }\n >\n {v.title}\n </div>\n <div\n className={cx('resize', {\n 'resize-focus': dragindex == i,\n })}\n onMouseDown={(e) => {\n e.stopPropagation();\n setDargIndex(i);\n setIsDrag(true);\n }}\n onMouseUp={() => {\n setIsDrag(false);\n setDargIndex(null);\n }}\n ></div>\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n","import './index.less';\nimport { useContext, useEffect, useState } from 'react';\n\nimport { ExampleContext } from '../../../store';\n\nimport Tree from '../../../components/tree';\nimport { cloneDeep } from 'lodash';\n\nconst ExplorerMenu = (props: any) => {\n const {\n viewHeight: height,\n data,\n loadData,\n loadNode,\n onMenuClick: _onMenuClick,\n onChange,\n loadMenu,\n onRename: _onRename,\n } = props;\n const store = useContext(ExampleContext);\n const [select, setSelect] = useState<string>('');\n\n useEffect(() => {\n if (typeof store.curInfo?.key === 'string') {\n setSelect(store.curInfo?.key);\n }\n }, [store.curInfo?.key]);\n\n function onRename(key: string, value: string, info: any) {\n _onRename(key, value, info, 'menu');\n }\n\n function onMenuClick(key: any, data: any) {\n _onMenuClick(key, data, 'menu');\n }\n\n const openMenu = (props: any, param: any) => {\n setSelect(param.key);\n store.openMenu(props);\n };\n\n return (\n <div\n className='frame-left'\n onContextMenu={(e) => {\n e.preventDefault();\n }}\n >\n <Tree\n isload={true}\n treeData={data}\n height={height}\n rename={store.menuRename}\n loadedKeys={[...store.nav_loadKey]}\n expandedKeys={cloneDeep(store.nav_expandkey)}\n selectedKeys={[select]}\n icon={(v: any, className: any) => {\n if (v.icon == false) return <></>;\n return store.getIcons(v, className);\n }}\n onMenuClick={onMenuClick}\n loadData={loadNode}\n loadMenu={loadMenu}\n onChange={onChange}\n onRename={onRename}\n isEdit={store.isEdit}\n isDelect={store.isDelect}\n isDownload={store.isDownload}\n isUpload={store.isDownload}\n openMenu={openMenu}\n closeMenu={store.closeMenu}\n onSelect={(v: any) => {\n if (v.key === store.curInfo?.key) return;\n store.setPathDisplay(v?.pathDisplay);\n loadData(v.key);\n let arr = [...(store.log || [])];\n if (arr.length !== store.logindex) {\n arr = arr.slice(0, store.logindex - 1);\n }\n if (arr[arr.length - 1] !== v.key) {\n arr.push(v.key);\n }\n store.setLog(arr);\n store.setLogIndex(arr.length);\n }}\n filterData={(v: any) => {\n if (v.type == 'file') return false;\n return true;\n }}\n onLoad={(key: string[]) => {\n store.setNavLoadKey(key);\n }}\n onExpand={(v: any) => {\n store.setExpandNavKey(v);\n }}\n setRename={store.setMenuRename}\n ></Tree>\n </div>\n );\n};\n\nexport default ExplorerMenu;\n","import './index.less';\nimport { cx } from '@emotion/css';\nimport { FC, forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\ninterface VirtualProps {\n ref?: any;\n className: string;\n item: any[];\n itemHeight: number;\n renderItem: (v: any, i: number, end: boolean) => any;\n onScroll?: (v?: any) => any;\n}\n\nconst VirtualScroll: FC<VirtualProps> = forwardRef((props, ref) => {\n const { className, item, itemHeight, renderItem, onScroll } = props;\n\n useImperativeHandle(ref, () => ({\n toScroll: ({ x, y }: any) => {\n containerRef.current.scrollTop = x;\n },\n }));\n\n const [scrollTop, setScrollTop] = useState(0);\n const containerRef = useRef<any>(null);\n const [data, setdata] = useState<any[]>([]);\n const items = [];\n\n useEffect(() => {\n setdata(item || []);\n }, [item]);\n const handleScroll = () => {\n setScrollTop(containerRef.current.scrollTop);\n onScroll?.({ x: containerRef.current.scrollLeft, y: containerRef.current.scrollTop });\n };\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', handleScroll);\n return () => {\n containerRef.current?.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n const visibleCount = Math.ceil(containerRef.current?.clientHeight / itemHeight);\n const startIdx = Math.floor(scrollTop / itemHeight);\n const endIdx = Math.min(startIdx + visibleCount + 1, data.length);\n for (let i = startIdx; i < endIdx; i++) {\n items.push(renderItem(data[i], i, data.length - 1 == i));\n }\n\n return (\n <div\n className={cx(`explorer-virtualScroll ${className}`)}\n style={{ height: '100%', overflowY: 'auto' }}\n ref={containerRef}\n >\n <div\n style={{\n position: 'relative',\n height: `${data.length * itemHeight}px`,\n paddingTop: `${startIdx * itemHeight}px`,\n }}\n >\n {items}\n </div>\n </div>\n );\n});\nexport default VirtualScroll;\n","import cx from 'classnames';\nimport { css } from '../../css';\n\nimport React, { FC, forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { getMenu } from '../menu/menulist';\n\nimport VirtualScroll from '../virtualScroll';\nimport Menu from '../menu';\nimport NotData from '../notdata';\n\ninterface TileProps {\n className?: string;\n checks: any[];\n onMenuClick?: (key: string, param: any, type?: string) => void;\n onDblclick?: (key: string, param: any) => void;\n onSelect?: (key: string, param: any) => void;\n onRename?: (key: string, value: string | boolean, param: any) => void;\n [key: string]: any;\n}\n\nconst Tile: FC<TileProps> = forwardRef((props, ref) => {\n const _ref = useRef<any>(null);\n const scroll = useRef<any>(null);\n useImperativeHandle(ref, () => ({\n toScroll: (v: any) => {\n scroll.current.toScroll(v);\n },\n }));\n\n const {\n store,\n rename,\n className,\n height,\n width,\n icons,\n data,\n select,\n checks = [],\n size = 80,\n loadMenu,\n onSelect,\n onDblclick,\n onMenuClick,\n onRename,\n onScroll,\n setRename,\n } = props;\n\n const [itemSize, setSize] = useState(0);\n const [list, setList] = useState([]);\n const [col, setCol] = useState(9);\n const [focus, setFocus] = useState();\n\n useEffect(() => {\n setFocus(select);\n }, [select]);\n\n useEffect(() => {\n const originalArray = data;\n const chunkSize = col;\n const resultArray = originalArray?.reduce((acc: any, curr: any, index: number) => {\n const chunkIndex = Math.floor(index / chunkSize);\n if (!acc[chunkIndex]) {\n acc[chunkIndex] = [];\n }\n acc[chunkIndex].push(curr);\n return acc;\n }, []);\n\n setList(resultArray);\n }, [data, col]);\n\n useEffect(() => {\n if (!width) return;\n let w = (width || 0) - 10;\n let data = Math.round(w / (size + 5));\n let s = Math.floor(w / data);\n setCol(data);\n setSize(s);\n }, [width, size]);\n\n if (!list.length) {\n return <NotData />;\n }\n\n return (\n <div\n ref={_ref}\n className={cx('', {\n [className || '']: className,\n })}\n style={{\n height: height + 'px',\n }}\n onContextMenu={(e: any) => {\n e.preventDefault();\n }}\n >\n <VirtualScroll\n ref={scroll}\n className=''\n item={list}\n onScroll={(v: any) => {\n onScroll?.(v);\n }}\n itemHeight={itemSize + 65}\n renderItem={(row: any, index) => {\n return (\n <React.Fragment key={index}>\n {row?.map((v: any, i: number) => {\n const w = itemSize - 10;\n let menudata: any = [];\n if (getMenu(v.key)) {\n menudata = getMenu(v.key);\n } else if (v.type && getMenu(v.type)) {\n menudata = getMenu(v.type);\n } else {\n menudata = getMenu('');\n }\n\n let isname = rename == v.key || v?.create_file;\n\n let disable = v?.disable || false;\n\n //判断是否可以选中 选中的逻辑在 select-box 中 可以控制 data-id 进行编辑\n if (!disable && Array.isArray(store.selectedSuffix)) {\n disable =\n !store.selectedSuffix?.includes(v?.suffix) &&\n !store.selectedSuffix?.includes(v?.type);\n }\n\n return (\n <div\n key={v.key}\n data-id={!disable ? v.key : undefined}\n data-type={!disable ? v.type : undefined}\n className={cx(\n 'file',\n {\n 'file-folder': v.type === 'folder',\n 'menu-path-folder': v.type === 'folder',\n 'menu-path-file': v.type === 'file',\n select: !!~checks.indexOf(v.key) || isname,\n 'file-focus': focus === v.key,\n 'menu-drag-move': !!~checks.indexOf(v.key),\n disable,\n },\n css`\n top: ${(w + 65) * index + index * 10 + 10}px;\n left: ${w * i + i * 10 + 10}px;\n width: ${w || 0}px;\n max-height: ${w + 65}px;\n `,\n )}\n onClick={(e) => {\n if (disable) return;\n e.stopPropagation();\n if (select && focus == v.key) return;\n onSelect?.(v.key, v);\n }}\n onDoubleClick={() => {\n onDblclick?.(v.key, v);\n }}\n onContextMenu={(e) => {\n e.preventDefault();\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n props.openMenu(\n {\n x: x,\n y: y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={v}\n loadMenu={loadMenu}\n onChange={(key) => {\n if (key == 'rename') {\n setRename(v.key);\n return;\n }\n onMenuClick?.(key, v, props.checks?.length ? undefined : 'menu');\n props.closeMenu();\n }}\n ></Menu>\n ),\n },\n v,\n );\n }}\n >\n <i\n className={cx('path-ico')}\n style={{\n width: w + 'px',\n height: w - w / 10 + 'px',\n }}\n >\n {v.type === 'folder' || !v?.pic\n ? icons(v, 'x-item-icon', {\n width: w + 'px',\n height: w + 'px',\n lineHeight: w + 'px',\n })\n : icons(v, 'picture-show', {\n width: w + 'px',\n height: w + 'px',\n lineHeight: w + 'px',\n })}\n </i>\n <div\n className='title-type-name'\n style={{\n width: w + 'px',\n }}\n >\n {isname ? (\n <textarea\n autoFocus\n rows={3}\n defaultValue={v.title}\n onFocus={(e) => {\n let i: number = v.title.lastIndexOf('.');\n\n if (v?.suffix == 'folder') {\n e.target.setSelectionRange(0, v.title.length);\n } else if (i !== -1) {\n e.target.setSelectionRange(0, i);\n }\n }}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n if (v.create_file) {\n onRename?.(v.key, e.target?.value, v);\n return;\n }\n onRename?.(v.key, e.target?.value, v);\n }\n\n if (e.key === 'Escape') {\n if (v.create_file) {\n onRename?.(v.key, false, v);\n }\n setRename(null);\n return;\n }\n }}\n onBlur={(e) => {\n if (v.create_file) {\n onRename?.(v.key, e.target?.value, v);\n return;\n }\n if (e.target?.value === v.title) {\n setRename(null);\n return;\n }\n onRename?.(v.key, e.target.value, v);\n setRename(null);\n }}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n ></textarea>\n ) : (\n <span className='title'>{v.title}</span>\n )}\n </div>\n </div>\n );\n })}\n </React.Fragment>\n );\n }}\n ></VirtualScroll>\n </div>\n );\n});\n\nexport default Tile;\n","import './index.less';\n\nimport cx from 'classnames';\nimport { useState, useRef, useEffect, ReactNode, useContext, useMemo } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ReactDOM from 'react-dom';\n\nimport { chain, cloneDeep, concat } from 'lodash';\nimport { ExampleContext } from '../../store';\n\nimport { ArrowLeftSvg, UploadSvg } from '../icons';\nimport Menu from '../menu';\nimport { getMenu } from '../menu/menulist';\nimport { NodeElement } from '../tree/components/interface';\n\nvar time: any = null;\n\n/***\n * 功能拆封\n *\n */\n\ninterface SelectBoxProps {\n checks: string[];\n\n getContainer: string;\n dataClass?: string; //\n selectClass: string; //要选择的class\n className?: string;\n regionClass?: string; //选框区域\n\n isDrag: boolean;\n isSelectBoxes: boolean;\n\n action?: 'stack' | 'rotate';\n checkType?: 'file' | 'folder';\n\n startDrag: (key: string[]) => void;\n endDrag: () => void;\n onChange: (v: any) => any;\n children: ReactNode;\n onMouseup: (v: any) => void;\n [key: string]: any;\n}\n\nconst NotUpLoad = ['.DS_Store'];\n\nconst SelectBox = (props: SelectBoxProps) => {\n let {\n checks = [],\n\n className = '',\n dataClass,\n selectClass = '',\n regionClass,\n getContainer = '',\n\n isDrag = true,\n isSelectBoxes = true,\n checkType = '',\n checkMode,\n loadMenu,\n isUpload = true,\n\n startPosition,\n setScroll,\n\n action = 'stack',\n startDrag,\n endDrag,\n onChange,\n onMouseup,\n loadData,\n\n onMenuClick,\n onFileDarg,\n } = props;\n\n const store = useContext(ExampleContext);\n\n const selectionRef: any = useRef<any>(null);\n\n const clickRef = useRef(true);\n //选框\n const ref = useRef<any>(null);\n\n //盒子\n const box = useRef<any>(null);\n\n const showDragAnimation = useRef<boolean>(true);\n\n //当前\n const cur = useRef<any[] | null>(null);\n\n //文案\n const text = useRef<any>(null);\n const textBox = useRef<any>(null);\n\n //鼠标位置\n const mouse = useRef({ x: 0, y: 0 });\n\n //判断单机还双击\n const isDclick = useRef<any>(null);\n\n //是否可以多动文件\n const [isDragFiles, setIsDragFiles] = useState(false);\n //是否可以拖动上传\n const [isDragUpload, setIsDragUpload] = useState(false);\n\n const [dragging, setDragging] = useState(false);\n\n const [selects, setSelect] = useState<string[]>([]);\n\n const [stageClickInfo, setStageClickInfo] = useState<{\n show: boolean;\n x?: number;\n y?: number;\n scrollx?: number;\n scrolly?: number;\n startkey?: string | null;\n }>({ show: false });\n\n useEffect(() => {\n let lie = startPosition;\n if (stageClickInfo.show) {\n getSelectBox();\n }\n }, [startPosition, stageClickInfo, checks]);\n\n const menudata = useMemo(() => {\n let v = cloneDeep(store.curInfo);\n if (!v) return;\n let menudata: any = [];\n if (getMenu(v.key)) {\n menudata = getMenu(v.key);\n } else {\n menudata = getMenu('cur-folder');\n }\n\n return menudata;\n }, [store.curInfo, isUpload]);\n\n useEffect(() => {\n setSelect(checks);\n }, [checks]);\n\n useEffect(() => {\n if (isDragUpload) {\n createText();\n } else {\n textBox.current?.remove();\n textBox.current = null;\n text.current = null;\n box.current = null;\n }\n }, [isDragUpload]);\n\n useEffect(() => {\n if (!isUpload) return;\n // 在这里执行需要操作 DOM 的代码\n document.querySelector(getContainer)?.addEventListener('dragenter', bodyDragEnter);\n document.addEventListener('dragover', handleDragOver, false);\n document.addEventListener('dragleave', handleDragLeave, false);\n document?.addEventListener('dragenter', handleDragEnter);\n document?.addEventListener('drop', handleDrop);\n return () => {\n document.querySelector(getContainer)?.removeEventListener('dragenter', bodyDragEnter);\n document.removeEventListener('dragenter', bodyDragEnter);\n document.removeEventListener('dragover', handleDragOver);\n document.removeEventListener('mouseleave', handleDragLeave);\n document.removeEventListener('dragleave', handleDragLeave);\n document?.removeEventListener('drop', handleDrop);\n };\n }, [store.curInfo, store.dataMap, store.curInfo?.key, isUpload, store.menutype, selectClass]);\n\n useEffect(() => {\n document.addEventListener('mousemove', handleBodyMousemove);\n document.addEventListener('mouseup', handleBodyMouseup);\n return () => {\n document.removeEventListener('mousemove', handleBodyMousemove);\n document.removeEventListener('mouseup', handleBodyMouseup);\n };\n }, [stageClickInfo, checkMode, isDragFiles, action, checks, startPosition, store.curlist]);\n\n /***************** 方法 ******************/\n\n //判断鼠标点击位置 是否为目标区域\n /**\n * @param e 鼠标默认事件\n * @param checkType //判断文件类型\n * @param status//添加状态\n * @param isregion//是否过滤区域\n * @param drag 判断是否可以拖动\n * @param upload 判断是否可以上传\n * @returns\n */\n function isSelectTarget(\n e: any,\n checkType: string,\n status?: string,\n isregion?: boolean,\n drag = true,\n upload = false,\n ): null | string[] {\n let idx: string[] = [];\n\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n if (v.contains(e.target)) {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n\n let id: string | undefined = dataDom?.getAttribute('data-id');\n\n if (drag) {\n let isdrag = dataDom?.getAttribute('data-isdrag');\n if (isdrag == 'false') return;\n }\n\n if (upload) {\n let isupload = dataDom?.getAttribute('data-upload');\n if (isupload == 'false') {\n v.classList.add('notupload');\n return;\n }\n }\n\n if (checkType) {\n let type = dataDom?.getAttribute('data-type');\n if (type !== checkType) return;\n if (status == 'select') {\n v.classList.add('hover');\n }\n }\n if (id) {\n idx.push(id);\n }\n } else {\n if (status == 'select') {\n v.classList.remove('hover');\n }\n }\n if (status == 'remove') {\n v.classList.remove('hover');\n }\n });\n\n if (store.menutype == 'column' && isregion) {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n if (!idx.length && v.contains(e?.target)) {\n let dataDom: any = v;\n let id = dataDom?.getAttribute('data-id');\n idx.push(id);\n } else {\n v.classList.remove('drags');\n }\n });\n }\n\n if (idx.length) {\n return idx;\n }\n\n return null;\n }\n //清空\n function empty() {\n textBox.current?.remove();\n box.current?.remove();\n box.current = null;\n textBox.current = null;\n clickRef.current = false;\n\n showDragAnimation.current = true;\n cur.current?.forEach((v) => v.remove());\n cur.current = null;\n }\n //第一层数据\n const curList_keys = useMemo(() => {\n if (!Array.isArray(store.curlist)) return [];\n return store.curlist.map((v) => v?.key);\n }, [store.curlist]);\n\n /***************** 鼠标移动 ******************/\n //鼠标移动 (文件移动动画)\n function handleBodyMousemove(e: any) {\n /***\n * 一.判断 是创建选取 还是文件拖动\n * 二.创建选取\n * 1. createBox\n * 三.文件拖动\n * 1.判断 创建拖动 位置\n * 2.位置>10 进行拖动\n * 3.内容存在 执行动画 进行移动\n */\n const { clientX: x, clientY: y } = e;\n const { x: pX, y: pY } = stageClickInfo;\n\n //移动\n if (isDrag && isDragFiles && selects.length) {\n let sWidth = Math.abs(x - pX! || 0);\n let sHeight = Math.abs(y - pY! || 0);\n if (cur.current?.length || sWidth > 10 || sHeight > 10) {\n isDrag && createDragView(e);\n }\n } else {\n //选框\n mouse.current = { x, y };\n createBox(e);\n }\n }\n\n //鼠标松开 (文件移动事件)\n function handleBodyMouseup(e: any) {\n setDragging(false);\n setIsDragFiles(false);\n setStageClickInfo({ show: false });\n onMouseup?.(e);\n if (cur.current?.length) {\n let target = isSelectTarget(e, 'folder', '', true, false);\n\n if (target?.[0] && !checks?.includes(target?.[0])) {\n if (target?.[0] !== stageClickInfo.startkey) {\n let ismove = onFileDarg?.(target[0]) === false;\n\n props.onMoveFile(checks, !ismove ? target?.[0] : null);\n }\n } else {\n if (ref.current.contains(e?.target)) {\n if (store.curInfo?.key && !curList_keys.includes(checks[0])) {\n let ismove = onFileDarg?.(store.curInfo?.key) === false;\n props.onMoveFile(checks, !ismove ? store.curInfo?.key : null);\n }\n }\n }\n removeDragView();\n empty();\n } else {\n const selectionDom = selectionRef.current;\n if (selectionDom) {\n selectionDom.style.cssText = `\n position: absolute; \n opacity: 0;\n top:1px; \n left: 1px;\n width: 0px;\n height: 0px;\n pointer-events: none;\n z-index: -1;\n `;\n }\n setTimeout(() => {\n clickRef.current = true;\n }, 300);\n }\n }\n\n /***************** 拖动 *****************/\n\n //上传文件拖动中 (外部文件上传)\n const handleDragOver = (e: any) => {\n e?.preventDefault();\n const { clientX: x, clientY: y } = e || {};\n if (text.current) {\n let id: string | null = null;\n\n let is = false;\n let param: any = {};\n\n if (ref.current.contains(e?.target)) {\n param = store.curInfo;\n is = true;\n }\n\n let state = '';\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n if (v.contains(e?.target)) {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n let type = dataDom?.getAttribute('data-type');\n if (type !== 'folder') return;\n\n let isupload = dataDom?.getAttribute('data-upload');\n if (isupload == 'false') {\n v.classList.add('notupload');\n state = 'notupload';\n return;\n }\n\n id = dataDom?.getAttribute('data-id');\n is = false;\n\n v.classList.add('drags');\n } else {\n v.classList.remove('drags');\n v.classList.remove('notupload');\n }\n });\n\n if (store.menutype == 'column') {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n if (!id && v.contains(e?.target)) {\n let dataDom: any = v;\n id = dataDom?.getAttribute('data-id');\n if (id) {\n v.classList.add('drags');\n is = false;\n }\n } else {\n v.classList.remove('drags');\n }\n });\n }\n\n if (typeof id == 'string') {\n if (store.curInfo?.key === id) {\n param = store.curInfo;\n } else {\n param = store?.dataMap?.[id] || {};\n }\n }\n\n if (is) {\n ref.current.style.cssText = `\n border:2px solid #1677ff;\n `;\n } else {\n ref.current.style.cssText = `\n border:2px solid transparent;\n `;\n }\n let config: any = undefined;\n\n let element = renderDragtext({ x: x + 20, y: y + 20, ...param }, config);\n\n text.current.render(element);\n return [id];\n }\n return null;\n };\n\n //文件上传\n const handleDrop = async (e: any) => {\n setIsDragUpload(false);\n e.preventDefault();\n e.stopPropagation();\n const items = Array.from(e.dataTransfer.items);\n\n let files: any[] = [];\n let empty: any[] = [];\n\n const getFile = async (item: any, path?: string) =>\n new Promise<any>((resolve, reject) => {\n item.file((file: any) => {\n resolve({ file, path: path }); // 假设路径为空字符串或根据需要调整\n }, reject);\n });\n\n const traverseFileTree = async (item: any, path = '') => {\n try {\n if (item.isFile) {\n // 使用自定义的 getFile 函数来获取文件\n const fileInfo = await getFile(item, path);\n files.push(fileInfo);\n } else if (item.isDirectory) {\n const dirReader = item.createReader();\n const entries = await new Promise<any[]>((resolve, reject) => {\n dirReader.readEntries((entries: any) => {\n resolve(entries);\n }, reject);\n });\n\n let _entries = entries.filter((v: any) => {\n if (!NotUpLoad.includes(v.name)) {\n return v;\n }\n });\n\n if (_entries.length === 0) {\n empty.push(path + item.name + '/');\n } else {\n for (let i = 0; i < _entries.length; i++) {\n await traverseFileTree(_entries[i], path + item.name + '/');\n }\n }\n }\n } catch (error) {}\n };\n\n const promises = items.map(async (entry: any) => {\n const item = entry.webkitGetAsEntry();\n if (item) {\n return traverseFileTree(item, '');\n }\n });\n\n await Promise.all(promises);\n\n let data = isSelectTarget(e, 'folder', '', true, false, true);\n\n handleDragLeave();\n let key: any = null;\n\n if (typeof data?.[0] == 'string' && store?.dataMap?.[data?.[0]]) {\n if (data?.[0] == store.curInfo?.key) {\n key = store.curInfo;\n } else {\n key = store?.dataMap?.[data?.[0]];\n }\n } else {\n key = store.curInfo;\n }\n\n // if (!key) return;\n typeof props.onUpload === 'function' && props?.onUpload(files, key, empty);\n };\n\n function handleDragEnter(e: any) {\n e.preventDefault();\n e.stopPropagation();\n }\n //退出当前区域\n function handleDragLeave(e?: any) {\n let cont = document.querySelector(getContainer);\n e?.preventDefault();\n e?.stopPropagation();\n if (!cont?.contains(e?.target) || e?.clientX <= 0 || e?.clientY <= 0) {\n setIsDragUpload(false);\n }\n\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n v.classList.remove('drags');\n v.classList.remove('notupload');\n });\n if (store.menutype == 'column') {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n v.classList.remove('drags');\n v.classList.remove('notupload');\n });\n }\n if (ref.current) {\n ref.current.style.cssText = `\n border:2px solid transparent;\n `;\n }\n }\n //拖入div\n function bodyDragEnter(e?: any) {\n e?.preventDefault();\n e?.stopPropagation();\n if (e?.dataTransfer?.types && !e?.dataTransfer?.types.includes('Files')) {\n return;\n }\n setIsDragUpload(true);\n }\n\n /*********** 创建绘制页面 (拖动是执行样式) *************/\n\n //拖动到文件上方时 展示的字体\n function createText() {\n let _box = null;\n let body = null;\n let _text = null;\n\n _text = document.createElement('div');\n text.current = createRoot(_text);\n\n if (textBox.current && text.current) {\n textBox.current?.appendChild(text);\n } else {\n body = document.querySelector('body');\n _box = document.createElement('div');\n _box.className = `_selectbox ${className}`;\n _box.style.cssText = `\n position: absolute; \n top:1px; \n left: 1px;\n width: 0px;\n height: 0px;\n pointer-events: none;\n overflow: visible !important;\n z-index: 999;\n `;\n\n textBox.current = _box;\n _box?.appendChild(_text);\n body?.appendChild(_box);\n }\n }\n\n //创建选框 并过滤数据\n function createBox(e: any) {\n if (stageClickInfo.show) {\n let region = null;\n //指定了选区大小\n if (regionClass) {\n let dom = document.querySelector(regionClass);\n if (dom) {\n region = dom.getBoundingClientRect();\n }\n }\n\n if (region) {\n let { x: left, y: top, width, height } = region;\n let right = left + width;\n let bottom = top + height;\n let { clientX: x, clientY: y } = e;\n\n if (x > right || x < left || y > bottom || y < top) {\n return;\n }\n }\n\n const selectionDom = selectionRef.current;\n if (selectionDom) {\n let idx: string[] = [];\n if (checkMode == 'check') {\n idx = cloneDeep(checks);\n }\n\n let dom: any[] = [];\n // 终点\n const { clientX: x, clientY: y } = e;\n\n let { top, bottom } = ref.current?.getBoundingClientRect?.();\n // 起点\n const { x: pX, y: pY = 0, scrolly = 0 } = stageClickInfo;\n const { y: endy = 0 } = startPosition;\n\n let stop = endy - scrolly;\n\n if (!pX || !pY) {\n return null;\n }\n let direction = 'down';\n // 默认右下\n let sTop = pY;\n let sLeft = pX;\n let sWidth = x - pX!;\n let sHeight = y - pY!;\n\n // 左下\n if (x < pX! && y > pY!) {\n sLeft = x;\n sWidth = pX - x;\n }\n // 左上\n if (x < stageClickInfo.x! && y < pY!) {\n sLeft = x;\n sTop = y;\n sWidth = pX - x;\n sHeight = pY - y;\n direction = 'up';\n }\n\n // 右上\n if (x > stageClickInfo.x! && y < pY!) {\n sTop = y;\n sHeight = pY - y;\n direction = 'up';\n }\n\n //判断\n if (stop > 0) {\n if (stop > pY) {\n sTop = top;\n } else {\n }\n }\n\n if (bottom - y < 60) {\n idx = cloneDeep(checks);\n\n let shift = 60 - (bottom - y);\n setScroll?.(shift, 'down');\n let initTop = sTop - top;\n if (sTop == top) {\n sHeight = y - top;\n } else if (initTop < stop) {\n sTop = top;\n sHeight = initTop + sHeight;\n } else {\n sTop = sTop - stop;\n sHeight = stop + sHeight;\n }\n }\n\n if (y - top < 60) {\n idx = cloneDeep(checks);\n let shift = 60 - (y - top);\n setScroll?.(shift, 'up');\n\n let initButtom = bottom + top;\n let cur = sTop + sHeight;\n\n if (stop > 0) {\n if (sTop == top) {\n sHeight = y - top;\n }\n } else {\n if (initButtom - cur < -stop) {\n sHeight = initButtom;\n } else {\n sHeight = -stop + sHeight;\n }\n }\n }\n\n if (bottom - y > 60 && y - top > 60) {\n setScroll?.(-1, 'up');\n if (sTop == top) {\n sHeight = y - top;\n }\n }\n\n Array.from(document.querySelectorAll(selectClass)).forEach((v, i) => {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n\n let { top, right, bottom, left } = v.getBoundingClientRect();\n let sRight = sLeft + sWidth;\n let sBottom = sTop + sHeight;\n\n //判断是否在选择区\n let leftCover = sLeft <= left && left <= sRight;\n\n let cmidst = sLeft >= left && sRight <= right; //内\n\n let rightCover = sLeft <= right && right <= sRight;\n\n let topCover = sTop <= top && top <= sBottom;\n\n let midst = sTop >= top && sBottom <= bottom; //内\n\n let bottomCover = sTop <= bottom && bottom <= sBottom;\n\n if ((leftCover || cmidst || rightCover) && (topCover || midst || bottomCover)) {\n if (checkType) {\n let type = dataDom?.getAttribute('data-type');\n if (type !== checkType) return;\n }\n let isdrag = dataDom?.getAttribute('data-isdrag');\n if (isdrag == 'false') return;\n\n let id = dataDom?.getAttribute('data-id');\n if (id && !idx.includes(id)) {\n idx.push(id);\n dom.push(v);\n }\n }\n });\n\n selectionDom.style.cssText = `\n position: absolute;\n background-color: rgba(30, 175, 249, .2);\n border: 1px solid rgba(30, 175, 249, 1);\n top:${sTop}px;\n left: ${sLeft}px;\n width: ${sWidth}px;\n height: ${sHeight}px;\n pointer-events: none;\n z-index: 0;\n `;\n onChange(idx);\n }\n }\n }\n\n //鼠标不移动时筛选数据\n function getSelectBox() {\n const selectionDom = selectionRef.current;\n const { x, y } = mouse.current;\n\n let region = null;\n //指定了选区大小\n if (regionClass) {\n let dom = document.querySelector(regionClass);\n if (dom) {\n region = dom.getBoundingClientRect();\n }\n }\n\n if (region) {\n let { x: left, y: top, width, height } = region;\n let right = left + width;\n let bottom = top + height;\n if (x > right || x < left || y > bottom || y < top) {\n return;\n }\n }\n\n if (selectionDom && mouse.current) {\n let idx: string[] = [];\n if (checkMode == 'check') {\n idx = cloneDeep(checks);\n }\n\n let dom: any[] = [];\n // 终点\n\n let { top, bottom } = ref.current?.getBoundingClientRect?.();\n // 起点\n const { x: pX, y: pY = 0, scrolly = 0 } = stageClickInfo;\n const { y: endy = 0 } = startPosition;\n\n let stop = endy - scrolly;\n\n if (!pX || !pY) {\n return null;\n }\n let direction = 'down';\n // 默认右下\n let sTop = pY;\n let sLeft = pX;\n let sWidth = x - pX!;\n let sHeight = y - pY!;\n\n // 左下\n if (x < pX! && y > pY!) {\n sLeft = x;\n sWidth = pX - x;\n }\n // 左上\n if (x < stageClickInfo.x! && y < pY!) {\n sLeft = x;\n sTop = y;\n sWidth = pX - x;\n sHeight = pY - y;\n direction = 'up';\n }\n\n // 右上\n if (x > stageClickInfo.x! && y < pY!) {\n sTop = y;\n sHeight = pY - y;\n direction = 'up';\n }\n\n // console.log(pY);\n\n // //判断\n // if (stop > 0) {\n // if (stop > pY - top) {\n // sTop = top;\n // } else {\n // sTop = top + stop + (pY - top);\n // sHeight = 0;\n // console.log('顶', sTop, '高', sHeight, '差', stop);\n // }\n // }\n\n if (bottom - y < 60) {\n idx = cloneDeep(checks);\n let initTop = sTop - top;\n if (sTop == top) {\n sHeight = y - top;\n } else if (initTop < stop) {\n sTop = top;\n sHeight = initTop + sHeight;\n } else {\n sTop = sTop - stop;\n sHeight = stop + sHeight;\n }\n }\n\n if (y - top < 60) {\n idx = cloneDeep(checks);\n\n let initButtom = bottom + top;\n let cur = sTop + sHeight;\n\n if (stop > 0) {\n if (sTop == top) {\n sHeight = y - top;\n }\n } else {\n if (initButtom - cur < -stop) {\n sHeight = initButtom;\n } else {\n sHeight = -stop + sHeight;\n }\n }\n }\n\n if (bottom - y > 60 && y - top > 60) {\n setScroll?.(-1, 'up');\n if (sTop == top) {\n sHeight = y - top;\n }\n }\n\n Array.from(document.querySelectorAll(selectClass)).forEach((v, i) => {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n\n let { top, right, bottom, left } = v.getBoundingClientRect();\n let sRight = sLeft + sWidth;\n let sBottom = sTop + sHeight;\n\n //判断是否在选择区\n let leftCover = sLeft <= left && left <= sRight;\n\n let cmidst = sLeft >= left && sRight <= right; //内\n\n let rightCover = sLeft <= right && right <= sRight;\n\n let topCover = sTop <= top && top <= sBottom;\n\n let midst = sTop >= top && sBottom <= bottom; //内\n\n let bottomCover = sTop <= bottom && bottom <= sBottom;\n\n if ((leftCover || cmidst || rightCover) && (topCover || midst || bottomCover)) {\n if (checkType) {\n let type = dataDom?.getAttribute('data-type');\n if (type !== checkType) return;\n }\n let id = dataDom?.getAttribute('data-id');\n if (id && !idx.includes(id)) {\n idx.push(id);\n dom.push(v);\n }\n }\n });\n\n selectionDom.style.cssText = `\n position: absolute;\n background-color: rgba(30, 175, 249, .2);\n border: 1px solid rgba(30, 175, 249, 1);\n top:${sTop}px;\n left: ${sLeft}px;\n width: ${sWidth}px;\n height: ${sHeight}px;\n pointer-events: none;\n z-index: 10;\n `;\n\n // onChange(idx);\n }\n }\n\n //拖动选中 文件\n function createDragView(e: any) {\n const { clientX: x, clientY: y } = e;\n\n setDragging(true);\n let body = document.querySelector('body');\n let _box: any = null;\n\n //文件移动中\n if (cur.current?.length) {\n //文件移动时过度动画\n if (cur?.current?.length && isDrag) {\n cur.current?.map((v: any, i) => {\n let data = v.getBoundingClientRect();\n let is = store?.menutype == 'column';\n if (action == 'stack') {\n v.style.cssText = `\n position: absolute;\n transition: ${showDragAnimation.current ? '.2s' : 'none'} ;\n top:${y + 25 + i * 3}px;\n left:${x + i * 3 + 10}px;\n opacity:1;\n z-index:-${i};\n width:${is ? data.width : null}px;\n `;\n } else {\n v.style.cssText = `\n position: absolute;\n transition: ${showDragAnimation.current ? '.2s' : 'none'} ;\n top:${y + 25}px;\n left:${x + 10}px;\n z-index:-${i};\n opacity:1;\n transform: rotate(${4 * (i % 2 ? i * -1 : i)}deg);\n width:${is ? data.width : null}px;\n `;\n }\n });\n time = setTimeout(() => {\n showDragAnimation.current = false;\n }, 200);\n }\n let id: string | null = null;\n\n let is = false;\n let param: any = {};\n\n //第一层 不能拖动\n if (ref.current.contains(e?.target) && checks?.[0]) {\n if (!curList_keys.includes(checks[0])) {\n param = store.curInfo;\n is = true;\n }\n }\n\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n if (v.contains(e?.target)) {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n //判断 类型\n let type = dataDom?.getAttribute('data-type');\n if (type !== 'folder') return;\n\n //是否能检测到id\n let _id = dataDom?.getAttribute('data-id');\n if (checks?.includes(_id)) return;\n\n //暴露出去 让组件外判断是否可以 传入\n let isDarg = onFileDarg?.(_id);\n if (isDarg === false) return;\n\n id = _id;\n is = false;\n v.classList.add('drags');\n } else {\n v.classList.remove('drags');\n }\n });\n\n if (store.menutype == 'column') {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n if (!id && v.contains(e?.target)) {\n let dataDom: any = v;\n let curid = dataDom?.getAttribute('data-id');\n\n if (curid === stageClickInfo.startkey) return;\n\n id = curid;\n\n if (id) {\n v.classList.add('drags');\n is = false;\n }\n } else {\n v.classList.remove('drags');\n }\n });\n }\n\n if (typeof id == 'string') {\n if (store.curInfo?.key === id) {\n param = store.curInfo;\n } else {\n param = store?.dataMap?.[id] || {};\n }\n }\n\n if (is) {\n ref.current.style.cssText = `\n border:2px solid #1677ff;\n `;\n } else {\n ref.current.style.cssText = `\n border:2px solid transparent;\n `;\n }\n\n let element = renderDragtext(\n { x: x + 10, y: y - 10, ...param },\n {\n dragIcon: <ArrowLeftSvg />,\n dragDesc: '移动到:',\n desc: `${cur.current?.length || 0}项目`,\n },\n );\n text.current.render(element);\n } else {\n startDrag(checks);\n //创建 视图\n createText();\n _box = document.createElement('div');\n _box.className = `_selectbox ${className}`;\n _box.style.cssText = `\n position: absolute; \n top:1px; \n left: 1px;\n width: 0px;\n height: 0px;\n pointer-events: none;\n overflow: visible !important;\n z-index: 999;\n `;\n\n let list: any = [];\n Array.from(document.querySelectorAll(selectClass)).forEach((v, i) => {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n let id = dataDom?.getAttribute('data-id');\n if (checks.includes(id)) {\n list.push(v);\n v.classList.add('dragging');\n }\n });\n\n let arr: any[] = [];\n list.map((v: any, i: number) => {\n let _cur = v.cloneNode(true);\n\n let data = v.getBoundingClientRect();\n\n if (action == 'stack') {\n _cur.style.cssText = `\n position: absolute;\n width:${data.width}px;\n top:${data.top}px;\n left:${data.left}px;\n width:${data.width}px;\n transition: 0.3s;\n `;\n } else if (action == 'rotate') {\n _cur.style.cssText = `\n position: absolute;\n width:${data.width}px;\n top:${data.top}px;\n left:${data.left}px;\n transition: 0.3s;\n transform: rotate(${4 * (i % 2 ? i * -1 : i)}deg);\n `;\n }\n\n arr.push(_cur);\n _box?.appendChild(_cur);\n });\n\n cur.current = arr;\n body?.appendChild(_box);\n box.current = _box;\n }\n }\n\n function removeDragView() {\n endDrag();\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n v.classList.remove('drags');\n v.classList.remove('dragging');\n });\n ref.current.style.cssText = `\n border:2px solid transparent;`;\n\n if (store.menutype == 'column') {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n v.classList.remove('drags');\n });\n }\n }\n\n function renderDragtext(\n { x, y, ...props }: any,\n config?: { dragIcon?: NodeElement; dragDesc?: string; desc: string },\n ) {\n const { dragIcon, dragDesc = '', desc = '' } = config || {};\n return (\n <div\n className={cx('explorer-drop-tip', {\n select: props?.title,\n })}\n style={{ top: y, left: x }}\n >\n {props?.title ? (\n <>\n <span className='drop-tip-content'>\n <span className='content-icon'>{dragIcon || <UploadSvg></UploadSvg>}</span>\n <> {dragDesc || '上传至:'} </>\n </span>\n <span className='drop-tip-title'>{props?.title || <UploadSvg></UploadSvg>}</span>\n </>\n ) : (\n <>{desc || '拖到文件夹上传'} </>\n )}\n </div>\n );\n }\n\n /************* shift 选中 **************/\n\n //分栏模式下特殊处理\n function shiftSelectColumns(start: string, end: string) {\n let _start = store.dataMap?.[start]?.level || '';\n let _end = store.dataMap?.[end]?.level || '';\n\n if (!_end) return;\n\n let start_level = _start?.split('-');\n let end_level = _end?.split('-');\n\n let is = end_level.length == start_level.length;\n\n //开始位置\n let start_position = start_level[start_level.length - 1]\n ? start_level[start_level.length - 1] - 0\n : 0;\n\n // 结束位置\n let end_position = end_level[end_level.length - 1] ? end_level[end_level.length - 1] - 0 : 0;\n\n let max = start_position > end_position ? start_position : end_position;\n\n let min = start_position > end_position ? end_position : start_position;\n\n //判断是否是同一层\n if (!is) {\n min = 0;\n }\n\n let ids: string[] = [];\n const addLevel = (data: any) => {\n if (!data) return;\n let i = 0;\n while (i < data.length) {\n let item = data[i];\n\n if (typeof item.level === 'string') {\n let arr = item.level.split('-');\n let curIndex = arr[arr.length - 1];\n\n if (end_level.length == arr.length) {\n if (curIndex >= min && curIndex <= max) {\n ids.push(item.key);\n }\n }\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n addLevel(item.children);\n }\n i++;\n }\n };\n addLevel(store?.curlist || []);\n\n setSelect(ids);\n onChange(ids);\n }\n\n function shiftSelect(start: string, end: string) {\n if (!store?.dataMap) return;\n let _start = store.dataMap?.[start]?.index || 0;\n let _end = store.dataMap?.[end]?.index;\n\n if (typeof _end !== 'number') return;\n\n if (store?.menutype == 'column') {\n shiftSelectColumns(start, end);\n return;\n }\n\n let max = _start > _end ? _start : _end;\n\n let min = _start > _end ? _end : _start;\n\n let data = Object.values(store?.dataMap);\n\n let ids: string[] = [];\n\n data.map((v: any) => {\n if (v.index >= min && v.index <= max) {\n ids.push(v.key);\n }\n });\n setSelect(ids);\n onChange(ids);\n }\n\n /*************** control 选中 ******************* */\n\n function controlSelectColumns(key: string) {\n if (store?.menutype != 'column') return false;\n if (!store?.dataMap) return false;\n let _start = store.dataMap?.[key]?.level || '';\n\n let num = _start.split('-').length;\n\n let is = checks.some((v: string) => {\n let curlevel = store.dataMap?.[v]?.level || '';\n let curnum = curlevel.split('-').length;\n if (num != curnum) {\n return v;\n }\n });\n\n return is;\n }\n\n return (\n <div\n ref={ref}\n className={cx(`file-select-box ${className}`)}\n onDragLeave={(e) => {\n e.preventDefault();\n }}\n onDoubleClick={() => {\n clearTimeout(isDclick.current);\n }}\n onMouseDown={(e: any) => {\n let type: any = isSelectTarget(e, checkType);\n store.closeMenu();\n\n //按下shift建 切有 起始 选中文件\n if (store.shift && type?.[0]) {\n shiftSelect(checks[0], type[0]);\n return;\n }\n\n if (store.control && type?.[0]) {\n if (checks.includes(type?.[0])) {\n let arr: string[] = [];\n arr = checks.filter((v) => v !== type?.[0]);\n setSelect(arr);\n onChange(arr);\n } else {\n let arr: string[] = [];\n let is = controlSelectColumns(type[0]);\n if (is) {\n setSelect(type);\n onChange(type);\n return;\n }\n\n arr = [...selects, ...type];\n setSelect(arr);\n onChange(arr);\n return;\n }\n return;\n }\n\n //控制选中反选\n if (type?.[0]) {\n //右键不能今天拖动\n if (e.button === 2) return;\n setIsDragFiles(true);\n\n let curColumnkey = null;\n if (store.menutype == 'column') {\n //分栏模式下拖动文件 排除原有位置\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n if (v.contains(e?.target)) {\n let dataDom: any = v;\n curColumnkey = dataDom?.getAttribute('data-id');\n }\n });\n }\n setStageClickInfo({\n show: false,\n x: e.clientX,\n y: e.clientY,\n startkey: curColumnkey,\n });\n\n // if (checkMode == 'check') {\n // if (!checks.includes(type?.[0])) {\n // let arr = [...selects, ...type];\n // setSelect(arr);\n // onChange(arr);\n // } else {\n // let arr = checks.filter((v: string) => v !== type?.[0]);\n // setSelect(arr);\n // onChange(arr);\n // }\n // }\n time = null;\n if (checkMode == 'check' && checks?.length > 1) return;\n }\n\n //在区域未选中\n if (Array.isArray(type) && checkMode != 'check') {\n if (!checks.includes(type[0])) {\n setSelect(type);\n onChange(type);\n }\n }\n\n isDclick.current = null;\n\n if (type) return;\n if (selects.length) {\n if (checkMode !== 'check') {\n setSelect([]);\n onChange([]);\n empty();\n }\n }\n\n //创建选取\n clickRef.current = false;\n isSelectBoxes &&\n setStageClickInfo({\n show: true,\n x: e.clientX,\n y: e.clientY,\n scrollx: startPosition?.x || 0,\n scrolly: startPosition?.y || 0,\n });\n }}\n onMouseUp={(e) => {\n let type: any = isSelectTarget(e, checkType);\n //控制选中反选\n if (type?.[0] && !stageClickInfo.show && !dragging) {\n if (checkMode == 'check') {\n if (!checks.includes(type?.[0])) {\n let arr = [...selects, ...type];\n setSelect(arr);\n onChange(arr);\n } else {\n let arr = checks.filter((v: string) => v !== type?.[0]);\n setSelect(arr);\n onChange(arr);\n }\n }\n }\n }}\n onContextMenu={(e) => {\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n store.openMenu(\n {\n x: x,\n y: y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={store.curInfo}\n loadMenu={(v) => {\n let menu = loadMenu?.(v);\n if (menu?.key == 'rename') return undefined;\n if (menu?.key == 'copy') return undefined;\n return menu;\n }}\n onChange={(key, parent) => {\n if (key == 'update') {\n if (store?.curInfo) {\n loadData(store?.curInfo?.key);\n }\n store.closeMenu();\n return;\n }\n\n if (parent?.key == 'create-file') {\n store.createFolder(key);\n store.closeMenu();\n return;\n }\n onMenuClick?.(key, store.curInfo);\n store.closeMenu();\n }}\n ></Menu>\n ),\n },\n store?.curInfo,\n );\n }}\n >\n {props.children}\n {ReactDOM.createPortal(<div ref={selectionRef}></div>, document.body)}\n </div>\n );\n};\n\nexport default SelectBox;\n","import './index.less';\nimport cx from 'classnames';\nimport React, {\n FC,\n forwardRef,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { getMenu } from '../menu/menulist';\nimport { cloneDeep, concat, xor } from 'lodash';\n\nimport Menu, { MenuItem } from '../menu';\nimport { NullDataSvg } from '../icons';\nimport VirtualScroll from '../virtualScroll';\nimport NotData from '../notdata';\nimport { ExplorerItem } from 'src/types';\n\nfunction Item(props: any) {\n const { store, onClick, acitve, isedit, checks = false, icon, parent, onDblclick } = props;\n\n const [value, setValue] = useState('');\n useEffect(() => {\n setValue(props?.title);\n }, [props?.title]);\n\n let disable = props?.disable || false;\n\n if (!disable && Array.isArray(props.selectedSuffix)) {\n disable =\n !props.selectedSuffix.includes(props.suffix) && !props.selectedSuffix?.includes(props?.type);\n }\n\n return (\n <>\n <div\n className={cx('explorer-columns-list', {\n acitve: acitve,\n checks: checks,\n isedit: isedit,\n 'menu-drag-move': acitve,\n disable,\n })}\n data-id={!disable ? props.id : null}\n data-type={!disable ? props.type : null}\n onClick={onClick}\n onContextMenu={(e) => {\n e.preventDefault();\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n if (props?.menu == false) return;\n\n let menudata: any = [];\n if (getMenu(props.id)) {\n menudata = getMenu(props.id);\n } else if (props.type && getMenu(props.type)) {\n menudata = getMenu(props.type);\n } else {\n menudata = getMenu('');\n }\n store?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={{ key: props.id, ...props }}\n loadMenu={props?.loadMenu}\n onChange={async (key: any) => {\n if (key == 'rename') {\n store?.setReName(props.id);\n return;\n }\n props?.onMenuClick?.(key, { key: props.id, ...props });\n store?.closeMenu();\n }}\n ></Menu>\n ),\n },\n { key: props.id },\n );\n }}\n onDoubleClick={(e: any) => {\n onDblclick?.();\n }}\n >\n {icon?.({ key: props.id, ...props }, 'columns-list-icon')}\n {isedit ? (\n <input\n className='columns-list-input'\n autoFocus\n value={value}\n onFocus={(e) => {\n let i: number = props.title.lastIndexOf('.');\n if (props?.suffix == 'folder') {\n e.target.setSelectionRange(0, props.title.length);\n } else if (i !== -1) {\n e.target.setSelectionRange(0, i);\n }\n }}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n if (props?.create_file) {\n props?.onRename?.(props.id, e.target?.value, {\n ...props,\n // ...(parent || {}),\n create_file: true,\n });\n return;\n }\n props?.onRename?.(props.id, e.target?.value, props);\n }\n\n if (e.key === 'Escape') {\n if (props.create_file) {\n props?.onRename(props.id, false, props);\n }\n\n store?.setReName?.(null);\n return;\n }\n }}\n onBlur={(e) => {\n if (props?.create_file) {\n props?.onRename?.(props.id, e.target?.value, {\n create_file: true,\n ...props,\n // ...(parent || {}),\n });\n return;\n }\n if (e.target?.value === props.title) {\n store?.setReName?.(null);\n return;\n }\n props?.onRename?.(props.id, e.target.value, props);\n store?.setReName?.(null);\n }}\n onChange={(e) => {\n setValue(e.target.value);\n }}\n ></input>\n ) : (\n <>\n <div className='columns-list-title'>{props.title}</div>\n <div className='columns-list-tool'>\n <span className=''></span>\n </div>\n </>\n )}\n </div>\n {props?.end && <div className='explorer-columns-last'></div>}\n </>\n );\n}\n\ninterface ColumnsProps {\n data: any[];\n className?: string;\n icons?: (v: any, className: string) => ReactNode;\n onRename?: (key: any, value: string, param: any) => any;\n checks?: string[];\n onMenuClick: any;\n onLoadData?: any;\n onDblclick?: (key: string, param: any) => any;\n onClick?: (key: any, param: any) => any;\n [key: string]: any;\n}\n\nconst Columns: FC<ColumnsProps> = forwardRef((props, _ref) => {\n const {\n store,\n width: _w,\n data,\n className,\n checks = [],\n icons,\n onLoadData,\n onChange,\n onDblclick,\n onScroll,\n } = props;\n const ref = useRef<any>(null);\n\n const [scroll, setScroll] = useState({ x: 0, y: 0 });\n\n const [layer, setLayer] = useState(new Array(1).fill([])); //文件列表数据\n const [width, setWidth] = useState(new Array(1).fill(null)); //记录每行的宽度\n const [select_col, setSelectCol] = useState<number>(0); //选中栏\n const [isdrag, setIsdarg] = useState<boolean>(false);\n const [total_width, setTotalwidth] = useState<number>(0);\n\n let avg = useMemo(() => {\n if (!_w) return 0;\n let num = Math.ceil(_w / 5);\n return num < 200 ? 200 : num;\n }, []);\n\n useEffect(() => {\n let arr = new Array(1).fill('');\n //清空\n store.setExpandkey(arr);\n setScroll({ x: 0, y: 0 });\n setTotalwidth(0);\n }, [store.curInfo?.key]);\n\n useEffect(() => {\n initdata();\n }, [data, store.expandkey]);\n\n useEffect(() => {\n let level = select_col;\n store.setCurSelectFile(store.expandkey?.[level - 1] || null);\n }, [select_col, store?.expandkey]);\n\n useEffect(() => {\n if (!isdrag) return;\n let news = 0;\n width.map((v, index) => {\n news += v ? v : 0;\n });\n if (total_width < news) {\n setTotalwidth(news);\n }\n }, [width, avg, isdrag]);\n\n async function initdata() {\n let arr = new Array(1).fill([]);\n let { layer, isApi, child, mapping } = await getRowData(data, store.expandkey, 0);\n store.setDataMap(mapping);\n arr = layer;\n if (isApi) {\n onChange(child);\n }\n setLayer(arr);\n }\n\n async function getRowData(data: ExplorerItem[] | null, setSelectFile: string[], level: number) {\n // 1. 返回 没层用到的数据\n // 2. 返回 是否调用接口\n // 3. 如果掉调用借口 需要记录 数据给到 children 上\n let arr = new Array(1).fill([]);\n let api = false;\n let child: any[] = [];\n let mapping: any = {};\n\n if (Array.isArray(data)) {\n child = await Promise.all(\n data.map(async (v) => {\n if (v.key) {\n mapping = {\n ...mapping,\n [v.key]: v,\n };\n }\n if (setSelectFile?.[level] && v.key == setSelectFile[level]) {\n //有就用当前的\n if (Array.isArray(v?.children)) {\n let {\n layer,\n isApi,\n mapping: _map,\n } = await getRowData(\n v.children?.length ? v.children : null,\n setSelectFile,\n level + 1,\n );\n\n arr = layer;\n api = isApi;\n mapping = {\n ...mapping,\n ..._map,\n };\n\n return v;\n } else {\n //没有就重新拿一下\n let data = await onLoadData?.(v.key);\n let _child = [];\n if (Array.isArray(data) && data.length) {\n api = true;\n let {\n layer,\n child,\n mapping: _map,\n } = await getRowData(data, setSelectFile, level + 1);\n _child = child;\n arr = layer;\n mapping = {\n ...mapping,\n ..._map,\n };\n } else {\n arr[level + 1] = null;\n data = null;\n }\n return {\n ...v,\n children: _child,\n };\n }\n }\n return v;\n }),\n );\n }\n\n arr[level] = data;\n return {\n layer: arr,\n isApi: api,\n child,\n mapping,\n };\n }\n\n useEffect(() => {\n let w = cloneDeep(width);\n layer.forEach((v, i) => {\n if (v?.length && !w[i]) {\n w[i] = avg;\n }\n });\n\n setWidth(w);\n }, [layer, avg]);\n\n function handleMousemove(e: any) {\n if (!isdrag || !ref?.current) return;\n let dom = ref.current.getBoundingClientRect();\n let arr = cloneDeep(width);\n let data = arr.reduce((x, y, i) => {\n if (select_col > i) {\n return x + y;\n }\n return x + 0;\n }, 0);\n\n let num = scroll.y + e.nativeEvent.clientX - dom.left - data;\n\n arr[select_col] = num < 200 ? 200 : num;\n setWidth(arr);\n }\n\n function handleScroll(e: any) {\n setScroll({ x: e.target.scrollTop, y: e.target.scrollLeft });\n onScroll?.({ x: e.target.scrollTop, y: e.target.scrollLeft });\n if (total_width) {\n let num = width.reduce((x, y, i) => {\n x += y || 0;\n return x;\n }, 0);\n\n if (total_width > num + 50) {\n setTotalwidth(num);\n }\n }\n }\n\n function setlevel(data: string, level: number) {\n let arr = cloneDeep(store.expandkey);\n arr.fill('', level + 1);\n arr.splice(level, 1, data);\n return arr;\n }\n\n function setData(key: string, _data: any) {\n const fixdata = (data: any[], level: number) => {\n let arr = data;\n let i = 0;\n while (i < arr?.length) {\n let item = arr[i];\n\n if (item.key == key) {\n item['children'] = _data;\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n fixdata(item.children, level++);\n }\n i++;\n }\n return arr;\n };\n\n let arr = fixdata(data, 0);\n onChange(arr);\n }\n\n if (!data.length) {\n return (\n <div className='explorer-columns notdata'>\n <NotData />\n </div>\n );\n }\n\n function renderList(list: ExplorerItem[] | null, level: number, parent: ExplorerItem | null) {\n let curid = level == 0 ? store.curInfo?.key : store.expandkey?.[level - 1];\n\n let left = width.reduce((num, v, index) => {\n if (index < level) {\n return (num += v || avg);\n }\n return num;\n }, 0);\n //空\n if (!list) {\n return (\n <div\n data-id={curid}\n className={cx('layer empty', {\n select_col: select_col == level,\n })}\n onClick={(e) => {\n setSelectCol(level);\n if (store.expandkey[level - 1]) {\n store.setCurSelect(store.expandkey[level - 1]);\n }\n }}\n onContextMenu={(e: any) => {\n setSelectCol(level);\n if (store.expandkey[level - 1]) {\n store.setCurSelect(store.expandkey[level - 1]);\n }\n e.preventDefault();\n e.stopPropagation();\n let curinfo = null;\n if (level == 0) {\n curinfo = store.curInfo;\n } else {\n curinfo = store.dataMap?.[curid];\n }\n\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n let menudata: any = [];\n\n menudata = getMenu('cur-folder');\n store?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={curinfo}\n loadMenu={(v) => {\n if (['rename'].includes(v.key)) {\n return;\n }\n return store?.loadMenu?.(v);\n }}\n onChange={async (key: any, parent) => {\n if (key == 'update') {\n if (store?.curInfo) {\n store?.loadData();\n }\n store.closeMenu();\n return;\n }\n if (parent?.key == 'create-file') {\n store.createFolder(key, curinfo);\n store.closeMenu();\n return;\n }\n\n props?.onMenuClick?.(key, curinfo);\n store?.closeMenu();\n }}\n ></Menu>\n ),\n },\n { key: curid },\n );\n }}\n style={{\n left: left + 'px',\n width: width?.[level] || avg + 'px',\n }}\n >\n <div className='empty-is-null'>\n <div className='empty-icon'>\n <NullDataSvg></NullDataSvg>\n </div>\n <div className='empty-desc'>\n <span className=''>文件夹为空</span>\n </div>\n </div>\n </div>\n );\n }\n\n if (!Array.isArray(list) || !list.length) {\n return <></>;\n }\n\n return (\n <div\n data-id={curid}\n className={cx('layer list', {\n select_col: select_col == level,\n })}\n onClick={(e) => {\n setSelectCol(level);\n if (store.expandkey[level - 1]) {\n store.setCurSelect(store.expandkey[level - 1]);\n } else {\n store.setCurSelect(null);\n }\n }}\n style={{\n width: width[level] + 'px',\n left: left + 'px',\n }}\n onContextMenu={(e: any) => {\n setSelectCol(level);\n e.preventDefault();\n e.stopPropagation();\n\n let curinfo = null;\n if (level == 0) {\n curinfo = store.curInfo;\n } else {\n curinfo = store.dataMap?.[curid];\n }\n\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n let menudata: any = [];\n\n menudata = getMenu('cur-folder');\n\n store?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={curinfo}\n loadMenu={(v) => {\n if (['rename'].includes(v.key)) {\n return;\n }\n return store?.loadMenu?.(v);\n }}\n onChange={async (key: any, parent) => {\n console.log('🚀 ~ parent:', parent);\n if (key == 'update') {\n if (store?.curInfo) {\n store.loadData();\n }\n store.closeMenu();\n return;\n }\n if (parent?.key == 'create-file') {\n store.createFolder(key, curinfo);\n store.closeMenu();\n return;\n }\n\n props?.onMenuClick?.(key, curinfo);\n store?.closeMenu();\n }}\n ></Menu>\n ),\n },\n { key: curid },\n );\n }}\n >\n <div className='list-main'>\n <VirtualScroll\n className='list-scroll'\n item={list}\n itemHeight={32}\n renderItem={(v: any, i: number, end) => {\n return (\n <Item\n {...v}\n key={level + '-' + i}\n icon={icons}\n acitve={store.expandkey[level] == v.key}\n id={v.key}\n end={end}\n checks={checks?.includes(v.key)}\n selectedSuffix={store.selectedSuffix}\n isedit={store.reamekey == v.key || v.create_file}\n store={store}\n openMenu={store.openMenu}\n onRename={async (key: string, value: any, info: any) => {\n await props?.onRename?.(key, value, info);\n }}\n onMenuClick={props?.onMenuClick}\n onClick={async (e: any) => {\n //shift 键按下 进行展开\n if (store.shift) return;\n\n e.stopPropagation();\n store.closeMenu();\n store.setCurSelect(v.key);\n setSelectCol(level);\n if (v.type == 'folder') {\n let select = setlevel(v.key, level);\n let loaddata: any[] | null = null;\n let data = await onLoadData?.(v.key);\n if (Array.isArray(data) && data.length) {\n loaddata = data;\n }\n let arr =\n Array.isArray(v?.children) && v?.children.length\n ? [...v?.children]\n : loaddata;\n setData(v.key, arr);\n store.setExpandkey(select);\n }\n }}\n onDblclick={() => {\n onDblclick?.(v.key, v);\n }}\n parent={parent}\n ></Item>\n );\n }}\n ></VirtualScroll>\n </div>\n <div\n className={cx('drag')}\n onMouseDown={(e) => {\n e.stopPropagation();\n setSelectCol(level);\n setIsdarg(true);\n }}\n ></div>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cx('explorer-columns', { [className || '']: className })}\n onMouseMove={handleMousemove}\n onMouseUp={() => {\n setIsdarg(false);\n }}\n onMouseDown={(e) => {}}\n onContextMenu={(e) => {\n e.preventDefault();\n }}\n >\n <div className='explorer-columns-box-line'>\n <div\n style={{\n position: 'relative',\n left: `-${scroll.y}px`,\n minWidth: '100%',\n height: '100%',\n width: total_width,\n }}\n >\n {new Array(layer?.length).fill('').map((v, index) => {\n return (\n <div\n key={index}\n className='line-item'\n style={{\n width: width[index] ? width[index] : avg,\n }}\n ></div>\n );\n })}\n </div>\n </div>\n <div className='explorer-columns-box' onScroll={handleScroll}>\n <div\n className=''\n style={{\n height: '100%',\n width: total_width + 'px',\n transition: 'width 0.3s',\n }}\n >\n {layer.map((v: any, i) => {\n let parent = null;\n if (!i) {\n parent = store.curInfo;\n } else {\n let index = i - 1;\n let arr = layer[index];\n let key = store.expandkey[index];\n if (Array.isArray(arr) && key) {\n arr.map((v) => {\n if (v.key == key) {\n parent = v;\n }\n });\n }\n }\n\n return <React.Fragment key={i}>{renderList(v, i, parent)}</React.Fragment>;\n })}\n </div>\n </div>\n </div>\n );\n});\n\nexport default Columns;\n","import './index.less';\nimport { cx } from '../../../css';\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { ApiStatusEnum } from '../../../enum';\nimport { truncate } from 'lodash';\nimport { ExampleContext } from '../../../store';\nimport { convertBytesToSize } from '../../../utils/helper';\n\nimport { LoadingSvg } from '../../../components/icons';\nimport Tree from '../../../components/tree';\nimport Tile from '../../../components/tile';\nimport SelectBox from '../../../components/select-box';\nimport Columns from '../../../components/columns';\nimport { Pagination } from '@gingkoo/pandora';\n/**\n * 优化方案\n * 1.SelectBox\n * {\n * action: 'rotate',\n * className: 'file-select-box',\n * selectClass: '.file-continer-main .file',\n * }\n * 拆出来 暴露出去 来实现 拖动选框分区\n *\n * 2.组件要么彻底 业务话。要彻底组件话 现在有点不伦不类\n */\n\nconst template: any = {\n tile: {\n action: 'rotate',\n className: 'file-select-box',\n selectClass: '.file-continer-main .file',\n regionClass: '.file-select-box',\n },\n column: {\n className: 'explorer-columns',\n selectClass: '.explorer-columns-list',\n regionClass: '.explorer-columns .layer.list.select_col',\n },\n table: {\n className: 'explorer-tree table',\n dataClass: '.explorer-tree-row',\n selectClass: '.rc-tree-treenode',\n regionClass: '.file-select-box',\n },\n};\n\nlet time: any = null;\n\nconst Layout = (props: any) => {\n const {\n viewHeight: height,\n viewWidth: width,\n checks = [],\n isDrag = true,\n isNavtab = true,\n isSelectBoxes = true,\n isOpenMenu = true,\n\n loadData,\n loadNode,\n loadMenu,\n\n onClick,\n onCheck,\n onDblclick,\n showPages = false,\n onRename: _onRename,\n onMenuClick: _onMenuClick,\n } = props;\n\n const store = useContext(ExampleContext);\n\n const tile_srcoll = useRef<any>(null);\n const tree_srcoll = useRef<any>(null);\n const columns_srcoll = useRef<any>(null);\n\n const [_scroll, setScroll] = useState<any>({ x: 0, y: 0 });\n\n const [isdarg, setIsdarg] = useState(false);\n\n const scroll = useRef<any>({ x: 0, y: 0 });\n\n function Loading() {\n return (\n <div className='explorer-columns-loading'>\n <div className='loading-content'>\n <div className='loading-content-icon'>\n <LoadingSvg></LoadingSvg>\n </div>\n <div className='loading-content-title'>操作中 ...</div>\n </div>\n </div>\n );\n }\n\n function onMenuClick(key: string, props: any, type?: string) {\n let data = _onMenuClick(key, props, type ? type : 'main');\n if (data == 'update' && store.curInfo?.key) {\n loadData(store.curInfo?.key);\n }\n }\n\n function _onDblclick(key: string, info: any) {\n if (info.type == 'folder') {\n if (!isNavtab) return;\n\n if (Array.isArray(info?.children) && !info?.children.lenght) {\n store.setCurInfo(info);\n store.setCurList(info?.children);\n } else {\n loadData(key);\n }\n let arr = [...(store.log || [])];\n if (arr.length !== store.logindex) {\n arr = arr.slice(0, store.logindex - 1);\n }\n if (arr[arr.length - 1] !== info.key) {\n arr.push(info.key);\n }\n store.setLog(arr);\n store.setLogIndex(arr.length);\n } else {\n onDblclick?.(key, { ...info, isEdit: store.isEdit });\n }\n }\n\n function onRename(key: string, value: string | boolean, info: any) {\n _onRename(key, value, info, 'main');\n }\n\n function setRename(key: string) {\n store.setReName(key);\n }\n\n function toScroll(num: number) {\n if (store?.menutype == 'column') {\n columns_srcoll.current.toScroll({ x: num });\n }\n if (store?.menutype == 'table') {\n tree_srcoll.current.toScroll({ x: num });\n }\n if (store?.menutype == 'tile') {\n tile_srcoll.current?.toScroll({ x: num });\n }\n setScroll({ x: 0, y: num });\n }\n\n return (\n <div\n className='file-continer-main'\n onClick={() => {\n if (isdarg) return;\n if (store?.menutype !== 'column') {\n store.setCurSelect(null);\n store.setCurSelectFile(null);\n }\n }}\n >\n {store?.loading == ApiStatusEnum.LOADING && <Loading></Loading>}\n <SelectBox\n getContainer='.explorer-container'\n //业务\n checks={checks}\n checkType={store.checkType}\n checkMode={store.checkMode}\n loadMenu={loadMenu}\n loadData={loadNode}\n startPosition={_scroll}\n onMenuClick={onMenuClick}\n setScroll={(v: any, _type: string) => {\n // if (time) {\n // clearInterval(time);\n // time = null;\n // }\n // if (v < 0) return;\n // time = setInterval(() => {\n // if (_type == 'up') {\n // toScroll(scroll.current.y - v);\n // }\n // if (_type == 'down') {\n // toScroll(scroll.current.y + v);\n // }\n // }, 200);\n }}\n //功能\n className={cx('file-select-box', {\n [template[store?.menutype || '']?.className || '']: Boolean(\n template?.[store.menutype]?.className,\n ),\n })}\n isUpload={props.isUpload}\n isDrag={isDrag}\n isSelectBoxes={isSelectBoxes}\n dataClass={template?.[store.menutype]?.dataClass}\n selectClass={template?.[store.menutype]?.selectClass}\n action={template?.[store.menutype]?.action}\n regionClass={template?.[store.menutype]?.regionClass}\n onChange={(v: string[]) => {\n onCheck?.(v);\n }}\n onMouseup={(e: any) => {\n clearInterval(time);\n }}\n startDrag={(key: any[]) => {\n setIsdarg(true);\n props?.onStartDarg?.(key);\n }}\n endDrag={() => {\n props?.onEndDarg?.();\n setTimeout(() => {\n setIsdarg(false);\n }, 300);\n }}\n onMoveFile={props.onMoveFile}\n onUpload={props.onUpload}\n onFileDarg={props?.onFileDarg}\n >\n {store?.menutype == 'column' && (\n <Columns\n ref={columns_srcoll}\n store={store}\n icons={store.getIcons}\n data={store.curlist}\n checks={checks}\n onLoadData={loadNode}\n onClick={onClick}\n onRename={onRename}\n onMenuClick={onMenuClick}\n onDblclick={_onDblclick}\n height={height}\n width={width}\n onScroll={(v: any) => {\n scroll.current = v;\n setScroll(v);\n }}\n onChange={(v: any) => {\n store.setCurList(v);\n }}\n ></Columns>\n )}\n\n {store?.menutype == 'table' && (\n <Tree\n ref={tree_srcoll}\n type='table'\n checks={checks}\n activeKey={props?.activeFile}\n rename={store.reamekey}\n selectedKeys={[props?.activeFile || store.curSelect]}\n expandedKeys={store.expandkey}\n loadedKeys={store.loadkey}\n treeData={store.curlist as any}\n columns={store.columns}\n checkType={store.checkType}\n isEdit={store.isEdit}\n isDelect={store.isDelect}\n isDownload={store.isDownload}\n isUpload={store.isDownload}\n selectedSuffix={store.selectedSuffix}\n height={height - 24}\n width={width}\n animation={false}\n showLine={false}\n isOpenMenu={isOpenMenu}\n icon={store.getIcons}\n openMenu={store.openMenu}\n closeMenu={store.closeMenu}\n isload={true}\n ischeck={truncate}\n onScroll={(v: any) => {\n scroll.current = v;\n setScroll(v);\n }}\n onChecks={(arr: string[]) => {\n onCheck?.(arr);\n }}\n onSelect={(v: any) => {\n if (v?.type == 'folder' && v.expanded) {\n store.setCurSelectFile(v.key);\n }\n if (isdarg) return;\n store.setCurSelect(v.key);\n }}\n onRename={onRename}\n onMenuClick={onMenuClick}\n onDblclick={_onDblclick}\n loadData={loadNode}\n loadMenu={loadMenu}\n setRename={(v: string) => {\n setRename(v);\n }}\n onLoad={(v: any) => {\n store.setLoadKey(v);\n }}\n onExpand={(v: string[]) => {\n store.setExpandkey(v);\n }}\n onChange={(v: any) => {\n store.setCurList(v);\n }}\n ></Tree>\n )}\n\n {store?.menutype == 'tile' && (\n <Tile\n ref={tile_srcoll}\n width={width}\n store={store}\n height={height}\n rename={store.reamekey}\n select={store.curSelect}\n size={store.menuSize}\n data={store.curlist}\n icons={store.getIcons}\n checks={checks}\n openMenu={store.openMenu}\n closeMenu={store.closeMenu}\n onSelect={(key: any, v: any) => {\n store.setCurSelect(v.key);\n }}\n onDblclick={_onDblclick}\n onRename={onRename}\n onMenuClick={onMenuClick}\n setRename={(v: string) => {\n setRename(v);\n }}\n loadData={loadData}\n loadMenu={loadMenu}\n onScroll={(v: any) => {\n scroll.current = v;\n setScroll(v);\n }}\n ></Tile>\n )}\n </SelectBox>\n <div className='file-continer-footer'>\n <div className='desc'>\n <span className='desc-title'>{`${store.totalNum + '个'}项目`}</span>\n {store?.curSelect &&\n store.dataMap &&\n typeof store.dataMap[store?.curSelect]?.size == 'number' && (\n <span className='desc-size'>\n {convertBytesToSize(store.dataMap[store?.curSelect]?.size)}\n </span>\n )}\n </div>\n {showPages && (\n <div className='page'>\n <Pagination\n size='small'\n total={200}\n showSizeChange\n pageSize={100}\n onChange={(v) => {\n if (store?.curInfo?.key) {\n loadData(store.curInfo.key, {\n page: v,\n pageNum: 100,\n });\n }\n }}\n sizeOptions={[100, 200, 300, 400, 500]}\n onPageSizeChange={(v) => {}}\n bufferSize={1}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Layout;\n","import './index.less';\nimport cx from 'classnames';\nimport React, { useContext, useEffect, useState } from 'react';\n\nimport { DateFormat, convertBytesToSize } from '../../utils/helper';\nimport { ImgSuffix } from '../../enum';\nimport { Icons } from '../../explorer';\n\n// const Image = (src: string) => {\n// const [err, setErr] = useState(false);\n// if (err) {\n// return <div></div>;\n// }\n// return (\n// <img\n// src={src}\n// onError={() => {\n// setErr(true);\n// }}\n// ></img>\n// );\n// };\n\nfunction DetailsInfo(props: any) {\n const { info, getIcons, isheader = true } = props;\n\n const [isEdit, setIsEdit] = useState<any>(false);\n\n function rednerInfo() {\n return (\n <div className='panel-info'>\n <div className='panel-col'>\n <div className='title'>路径:</div>\n <div className='content'>{info?.pathDisplay || '-'}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>大小:</div>\n <div className='content'>\n {typeof info?.size == 'number' ? convertBytesToSize(info?.size) : info?.size || '-'}\n </div>\n </div>\n <div className='panel-col'>\n <div className='title'>创建时间 :</div>\n <div className='content'>{DateFormat(info?.createTime)}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>修改时间 :</div>\n <div className='content'>{DateFormat(info?.createTime)}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>创建人 :</div>\n <div className='content'>{}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>修改人 :</div>\n <div className='content'>{}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>描述说明:</div>\n <div className='content'>\n {isEdit ? (\n <textarea autoFocus rows={1}></textarea>\n ) : (\n <div\n className='content-test'\n onClick={() => {\n setIsEdit(true);\n }}\n ></div>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={cx('explorer-details', {\n background: ImgSuffix.includes(info?.suffix),\n })}\n >\n {isheader && DetailHeader(info)}\n <div className='info-content'>\n {props?.renderFileInfo ? props.renderFileInfo?.(info) : rednerInfo()}\n </div>\n <div className='tab-group-line'></div>\n </div>\n );\n}\nexport default DetailsInfo;\n\nexport function DetailHeader(info: any) {\n if (info?.suffix && ImgSuffix.includes(info.suffix)) {\n return (\n <div className='info-header-background'>\n <img src={info.pic}></img>\n <div className='title'>{info?.title}</div>\n </div>\n );\n } else {\n return (\n <div className='info-header'>\n <div className='file-icon'>{Icons(info as any, '')}</div>\n <div className='file-name'>\n <div className='title'>{info?.title}</div>\n <div className='desc'>\n <span>\n {typeof info?.size == 'number' ? convertBytesToSize(info?.size) : info?.size || '-'}\n </span>\n <span>{info?.fixTime || ''}</span>\n </div>\n </div>\n </div>\n );\n }\n}\n","import './index.less';\nimport React, { useContext, useEffect, useState } from 'react';\n\nimport { ExampleContext } from '../../../store';\n\nimport DetailsInfo from '../../../components/details';\n\nfunction ExplorerInfo(props: any) {\n const { infoshow = false, getIcons, curInfo, dataMap, curSelect } = useContext(ExampleContext);\n const [info, setInfo] = useState<any>({});\n\n useEffect(() => {\n if (infoshow) {\n props?.setSize(285);\n } else {\n props?.onMinimize();\n }\n }, [infoshow]);\n\n useEffect(() => {\n if (curSelect) {\n setInfo(dataMap?.[curSelect]);\n } else {\n setInfo(curInfo);\n }\n }, [curInfo, dataMap, curSelect]);\n\n return (\n <div className='frame-main-info'>\n <DetailsInfo {...props} info={info} getIcons={getIcons}></DetailsInfo>;\n </div>\n );\n}\n\nexport default ExplorerInfo;\n","import './index.less';\nimport { css } from '../css';\nimport { useContext, useEffect } from 'react';\n\nimport { ExplorerItem, ExplorerProps } from '../';\nimport { ExampleContext } from '../store';\n\nimport Draggable from '../components/Draggable';\nimport ExplorerHead from './components/explorer-head';\nimport ExplorerMenu from './components/explorer-menu';\nimport ExplorerMain from './components/explorer-main';\nimport ExplorerInfo from './components/explorer-info';\n\ninterface ExploreLayout extends ExplorerProps {\n loadNode: (key: string) => Promise<any>;\n onMenuClick?: any;\n onMoveFile?: any;\n}\n\n//布局操作\nconst Layout = (props: ExploreLayout) => {\n const { isHeader = true, isNavtab = true, defaultViewType } = props;\n\n const store = useContext(ExampleContext);\n useEffect(() => {\n if (defaultViewType) {\n store?.setMenutype(defaultViewType);\n }\n }, [defaultViewType]);\n\n return (\n <div className='frame-explorer-main'>\n <Draggable\n placement={'horizontal'}\n poi={isNavtab ? [200] : [0, 'max']}\n fix={[true, false]}\n rang={[10, 350]}\n >\n {isNavtab ? <ExplorerMenu {...props} /> : <></>}\n <div className='frame-right'>\n {isHeader && (\n <div className='frame-header'>\n <ExplorerHead {...props} />\n </div>\n )}\n <div\n className='frame-main'\n style={{\n height: isNavtab ? 'calc(100% - 85px)' : '100%',\n }}\n >\n <Draggable\n className={css`\n position: absolute;\n width: 100%;\n left: 0;\n `}\n placement={'horizontal'}\n poi={['max']}\n fix={[false, true]}\n rang={[380, 285]}\n >\n <ExplorerMain {...props} />\n <ExplorerInfo {...props}></ExplorerInfo>\n </Draggable>\n </div>\n </div>\n </Draggable>\n </div>\n );\n};\n\nexport default Layout;\n","import './index.less';\nimport './components/tree/css/index.less';\n\nimport cx from 'classnames';\nimport {\n FC,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport _, { concat } from 'lodash';\nimport { createRoot } from 'react-dom/client';\nimport { ExplorerItem, ExplorerProps } from './types';\nimport { ApiStatusEnum, fileType } from './enum';\n\nimport { DateFormat, convertBytesToSize, getKey } from './utils/helper';\nimport { ExampleContext } from './store';\n\nimport { DoneSvg, IconsMap, ProcessingSvg, SuffixIcon, StatusIcon } from './components/icons';\nimport Layout from './layout';\nimport { cloneDeep } from 'lodash';\n//@ts-ignore\nimport { Modal2 } from '@gingkoo/pandora';\nimport DetailsInfo, { DetailHeader } from './components/details';\n// import '@gingkoo/pandora/lib/umd/index.min.css';\n// import '@gingkoo/pandora-icons/fonts/css/all.min.css';\n\nconst defaultColumns = [\n {\n title: '文件名',\n key: 'title',\n width: 300,\n },\n {\n title: '文件类型',\n key: 'suffix',\n width: 130,\n },\n {\n title: '状态',\n key: 'status',\n width: 130,\n render: (v: any) => {\n return (\n <>\n {v.status == 'done' && (\n <>\n <DoneSvg /> <span style={{ marginLeft: '5px', fontSize: '12px' }}> 预处理结束</span>\n </>\n )}\n {v.status == 'processing' && (\n <>\n <ProcessingSvg />\n <span style={{ marginLeft: '5px', fontSize: '12px' }}> 预处理中</span>\n </>\n )}\n </>\n );\n },\n },\n {\n title: '大小',\n key: 'size',\n width: 200,\n render: (v: any) => {\n return <>{convertBytesToSize(v.size)}</>;\n },\n },\n {\n title: '修改时间',\n key: 'modifyTime',\n width: 200,\n render: (v: any) => {\n return <>{DateFormat(v.modifyTime)}</>;\n },\n },\n {\n title: '创建时间',\n key: 'createdate',\n width: 200,\n render: (v: any) => {\n return <>{DateFormat(v.createTime)}</>;\n },\n },\n];\n\nif (!Array.prototype.hasOwnProperty('myforeach')) {\n Object.defineProperty(Array.prototype, 'myforeach', {\n value: async function (fn: (...rest: any) => void, context = null) {\n let index = 0;\n let arr: any = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n while (index < arr.length) {\n if (index in arr) {\n try {\n await fn.call(context, arr[index], index, arr);\n } catch (e) {}\n }\n index++;\n }\n },\n enumerable: false,\n });\n}\n\nexport const Icons = (v: any, className: string, style?: any) => {\n if (v?.label) {\n return (\n <span\n className={cx(`explorer-label-icon ${className || ''}`)}\n style={{\n ...(style || {}),\n }}\n >\n <div\n style={{\n background: 'red',\n }}\n ></div>\n </span>\n );\n }\n\n //特殊的用id\n if (v?.key && IconsMap.has(v?.key)) {\n return (\n <span\n className={cx(`${className || ''}`)}\n style={{\n ...(style || {}),\n }}\n >\n {IconsMap.get(v.key)}\n </span>\n );\n }\n // 自定义替换后缀\n if (v?.suffix && IconsMap.has(v?.suffix)) {\n return (\n <span\n className={cx(`${className || ''}`)}\n style={{\n ...(style || {}),\n }}\n >\n {IconsMap.get(v.suffix)}\n </span>\n );\n }\n\n //图片\n if (v?.pic && typeof v?.pic == 'string') {\n return (\n <span\n className={cx('explorer_icon', {\n [className || '']: className,\n })}\n >\n <img\n draggable='false'\n style={{\n ...(style || {}),\n }}\n src={v.pic}\n ></img>\n <StatusIcon status={v?.status} />\n </span>\n );\n }\n\n //文件\n if (v?.type == 'folder') {\n return (\n <SuffixIcon\n className={cx(`${className || ''}`)}\n status={v?.status}\n suffix={'folder'}\n ></SuffixIcon>\n );\n }\n // 默认后缀\n return (\n <SuffixIcon\n className={cx(`${className || ''}`)}\n status={v?.status}\n suffix={v?.suffix || 'unknown'}\n ></SuffixIcon>\n );\n};\n\nconst Explorer: FC<ExplorerProps> = forwardRef((props, ref) => {\n const {\n data,\n columns,\n checkType,\n checkMode = 'file',\n isDelect = true,\n isUpload = true,\n isEdit = true,\n isDownload = true,\n isOpenMenu = true,\n isNavtab = true,\n checks,\n accept,\n selectedSuffix,\n multiple = true,\n filelist,\n\n expandkey: _expandkey,\n createFile,\n\n onCopy,\n onShear,\n onPaste,\n onDelect,\n onChange,\n onChangeCurMap,\n onExpand,\n loadData: _loadData,\n onRename: _onRename,\n onSelectFile,\n onMenuClick: _onMenuClick,\n onMoveFile: _onMoveFile,\n } = props;\n\n //公用数据\n const [pathDisplay, setPathDisplay] = useState<string>('');\n const [curlist, setCurList] = useState<ExplorerItem[]>([]);\n const [curInfo, setCurInfo] = useState<ExplorerItem | null>(null);\n const [dataMap, setDataMap] = useState<{ [key: string]: ExplorerItem } | null>({});\n\n const [curSelect, setCurSelect] = useState<string | null>(null); //当前选中信息\n const [curSelectFile, setCurSelectFile] = useState<string | null>(''); //当前选中的文件( 选中文件 和 选中文件夹 回会同时纯在 上传用)\n\n const [menuSize, setMenuSize] = useState<number>(80);\n\n //重命名 reamekey 内容 menuRename 导航\n const [reamekey, setRename] = useState<string | null>(null);\n const [menuRename, setMenuRename] = useState<string | null>(null);\n\n //创建文件的状态\n const [createState, setCreateState] = useState(false);\n\n const [logindex, setLogIndex] = useState<number>(0); //前进\n const [log, setLog] = useState<string[]>([]); //后退\n const [expandkey, setExpandkey] = useState<any[]>([]);\n const [nav_expandkey, setExpandNavKey] = useState<string[]>([]);\n\n const [loadkey, setLoadKey] = useState<any[]>([]);\n const [nav_loadKey, setNavLoadKey] = useState<string[]>([]);\n\n const [menutype, setMenutype] = useState<'tile' | 'table' | 'column'>('tile');\n const [infoshow, setInfoShow] = useState<boolean>(false);\n const [loading, setLoading] = useState<ApiStatusEnum>(ApiStatusEnum.READY);\n\n const [pageNum, setPageNum] = useState<number>(100);\n const [curpage, setCurPage] = useState<number>(1);\n const [totalNum, setTotalNum] = useState<number>(0);\n\n const [shift, setShift] = useState(false);\n const [control, setControl] = useState(false);\n\n const box = useRef<any>(null);\n const boxMenu = useRef<any>(null);\n const menu = useRef<any>(null);\n\n useImperativeHandle(ref, () => ({\n removeLog: () => {\n //清空日志\n setLog([]);\n },\n\n updateNav: (key?: string, closeload?: boolean) => {\n if (key) {\n reloadNode(key);\n } else {\n curInfo?.key && reloadNode(curInfo.key);\n }\n },\n\n updateData: async (key?: string, closeload?: boolean) => {\n if (key) {\n await loadData(key, undefined, closeload);\n } else {\n await loadData(curInfo?.key || '', undefined, closeload);\n }\n },\n\n updateCurListNode: (key?: string) => {\n updateCurlist(key || '');\n },\n\n createFolder: createFolder,\n }));\n\n useEffect(() => {\n if (filelist) {\n if (Array.isArray(filelist)) {\n setCurList(filelist);\n }\n setTimeout(() => {\n if (filelist?.length && _expandkey) {\n setExpandkey(_expandkey);\n } else {\n setExpandkey([]);\n }\n }, 0);\n } else {\n if (_expandkey) {\n setExpandkey(_expandkey);\n }\n }\n }, [filelist, _expandkey]);\n\n /* ************ 挂载监听 **************** */\n useEffect(() => {\n window.addEventListener('click', closeMenu);\n return () => {\n window.removeEventListener('click', closeMenu, false);\n window.removeEventListener('contextmenu', closeMenu, true);\n };\n }, []);\n\n useLayoutEffect(() => {\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n }, [curSelect, dataMap, isDelect, isEdit, reamekey]);\n\n const handleKeyDown = (e: any) => {\n if (e.altKey && e.key === '3') {\n setMenutype('column');\n }\n if (e.altKey && e.key === '2') {\n setMenutype('table');\n }\n if (e.altKey && e.key === '1') {\n setMenutype('tile');\n }\n // if ((e.ctrlKey || e.metaKey) && e.key === 'c') {\n // if (!isEdit) return;\n // if (curSelect && dataMap?.[curSelect]) {\n // onCopy?.(dataMap?.[curSelect]);\n // } else {\n // onCopy?.(null);\n // }\n // }\n // if ((e.ctrlKey || e.metaKey) && e.key === 'x') {\n // if (!isEdit) return;\n\n // if (curSelect && dataMap?.[curSelect]) {\n // onShear?.(dataMap?.[curSelect]);\n // } else {\n // onShear?.(null);\n // }\n // }\n // if ((e.ctrlKey || e.metaKey) && e.key === 'v') {\n // if (!isEdit || reamekey || menuRename) return;\n\n // curInfo && onPaste?.(curInfo);\n // curInfo && reloadNode(curInfo.key);\n // }\n if (e.key == 'Shift') {\n setShift(true);\n }\n if (e.key == 'Meta') {\n setControl(true);\n }\n };\n\n function handleKeyUp(e: any) {\n if (e.key == 'Shift') {\n setShift(false);\n }\n if (e.key == 'Meta') {\n setControl(false);\n }\n }\n\n const closeMenu = () => {\n boxMenu.current?.remove?.();\n boxMenu.current = null;\n menu.current = null;\n };\n\n useEffect(() => {\n if (!isNavtab) return;\n if (!curInfo) {\n setCurList(data?.[0]?.children || []);\n setCurInfo(data?.[0] || null);\n }\n }, [data, isNavtab]);\n\n useEffect(() => {\n /**\n * 分栏的 mapping 因为结构不同 所以在 columns 执行\n */\n if (menutype === 'column') return;\n let index = 0;\n const addLevel = (data: any, map: any, level: string) => {\n let i = 0;\n while (i < data.length) {\n let _level = level ? level + '-' + i : i + '';\n let item = data[i];\n item['index'] = index++;\n item['level'] = _level;\n map[item.key] = item;\n if (Array.isArray(item.children) && item.children.length > 0) {\n addLevel(item.children, map, _level);\n }\n i++;\n }\n return map;\n };\n\n let param = {};\n\n if (curInfo) {\n param = {\n [curInfo.key]: curInfo,\n };\n }\n\n let map = addLevel(curlist, param, '');\n setDataMap(map);\n }, [curlist, curSelectFile, curInfo, menutype]);\n\n //切换当前 文件目录时 需要清空的内容\n useEffect(() => {\n if (!curInfo?.key) return;\n\n setExpandkey([]);\n onExpand?.([]);\n setCurSelect(null);\n props?.onCheck?.([]);\n }, [curInfo?.key]);\n\n useEffect(() => {\n if (isNavtab) return;\n if (!curlist?.length) {\n if (Array.isArray(data)) {\n setCurList(data as any);\n }\n }\n }, [curlist, isNavtab, data]);\n\n useEffect(() => {\n onChangeCurMap?.(dataMap);\n }, [dataMap]);\n\n useEffect(() => {\n if (props?.expandedKeys) {\n setExpandNavKey(cloneDeep(props?.expandedKeys) || []);\n }\n }, [props.expandedKeys]);\n\n /* ************ 加载更新数据 **************** */\n\n async function loadData(key: string, param?: any, closeload = true) {\n if (!props?.loadData) return;\n closeload && setLoading(ApiStatusEnum.LOADING);\n let data: any = (await props.loadData?.(key, param)) || {};\n if (data.status == 'Err') {\n setTimeout(() => {\n closeload && setLoading(ApiStatusEnum.READY);\n }, 300);\n return null;\n }\n\n //清空加载过的结点记录\n setLoadKey([]);\n\n setCurList(data?.fileList || []);\n setCurInfo(data?.current || {});\n setTotalNum(data?.totalNum || 0);\n\n setTimeout(() => {\n closeload && setLoading(ApiStatusEnum.READY);\n }, 200);\n\n return data?.fileList || [];\n }\n\n async function loadNode(key: any) {\n if (!props.loadData) return;\n let data = await props.loadData?.(key);\n return data?.fileList || [];\n }\n\n // 直接通过 刷新数节点 达到刷新效果\n const reloadNode = (key: string, params?: ExplorerItem) => {\n let isfix = false;\n\n let level_index: number | null = null;\n let level_key: string[] = [key];\n const addData = (data: any[], key: string, level: number) => {\n let arr: any[] = data;\n let i = 0;\n while (i < arr.length) {\n let item: any = arr[i];\n if (item.key == key) {\n //刷新时需要 下一级展开内容记录 重新展开\n level_index = level;\n if (Array.isArray(item.children)) {\n item.children.map((v: any) => {\n level_key.push(v.key);\n });\n }\n isfix = true;\n item.api = true;\n item.isLeaf = false;\n item.children = [];\n if (item?.hasFolder == 0) {\n item.hasFolder = null;\n }\n }\n if (Array.isArray(item.children)) {\n item.children = addData(item.children, key, ++level);\n }\n i++;\n }\n return arr || [];\n };\n\n let arr = addData(cloneDeep(data) || [], key, 0);\n if (!isfix) {\n //路径可能不存在, 就需要更新他的更路径\n if (params) {\n arr = addData(cloneDeep(data) || [], params.source, 0);\n }\n }\n\n onChange?.(arr);\n setTimeout(() => {\n if (!level_index) {\n setNavLoadKey([]);\n } else {\n let nav = nav_loadKey.filter((v: string) => !level_key.includes(v));\n setNavLoadKey(nav);\n }\n }, 100);\n };\n\n const fixNavNode = (key: string, type: 'add' | 'del' | 'update' | 'replace', params: any) => {\n const addNode = (item: any, params: any) => {\n let arr = [];\n if (Array.isArray(item.children)) {\n arr = [...item.children, params];\n } else {\n arr = [params];\n }\n item.children = arr;\n return item;\n };\n\n const replace = (key: string) => {};\n\n const updateinfo = (item: any, params: any) => {\n return {\n ...item,\n ...params,\n };\n };\n\n const delNode = (arr: any[], index: number) => {\n arr.splice(index, 1);\n return arr;\n };\n\n const filterData = (data: any[], key: string) => {\n let arr: any[] = data;\n let i = 0;\n let del_index: number | null = null;\n while (i < arr.length) {\n let item: any = arr[i];\n if (key == item.key) {\n if (type == 'add') item = addNode(item, params);\n if (type == 'update') item = updateinfo(item, params);\n if (type == 'del') del_index = i;\n }\n if (Array.isArray(item.children)) {\n item.children = filterData(item.children, key);\n }\n i++;\n }\n if (type == 'del' && typeof del_index == 'number') {\n arr = delNode(arr, del_index);\n }\n\n return arr || [];\n };\n let datas = filterData(cloneDeep(data) || [], key);\n onChange?.(datas);\n };\n\n function updata(id: string, param: any) {\n const fixData = (data: any[], id: string, param: any) => {\n let arr: any[] = data;\n let i = 0;\n while (i < arr.length) {\n let item: any = arr[i];\n if (item.key == id) {\n let arr = Object.keys(param);\n arr.map((v) => {\n item[v] = param[v];\n });\n }\n if (Array.isArray(item.children)) {\n item.children = fixData(item.children, id, param);\n }\n i++;\n }\n return arr || [];\n };\n\n let arr = fixData(data || [], id, param);\n onChange?.(arr);\n }\n\n async function updateCurlist(key: string) {\n let data = [];\n data = await reduceGetTreeData(curlist, key || curInfo?.key || '', expandkey);\n setCurList(data);\n }\n\n async function reduceGetTreeData(data: any[], key: string, expand: string[]) {\n let res: any[] = (await loadNode(key)) as any[];\n\n const newData: any[] = [];\n // @ts-ignore\n await data.myforeach(async (v: any) => {\n let obj = _.cloneDeep(v);\n if (expand.includes(obj.key)) {\n obj.children = await reduceGetTreeData(obj.children || [], obj.key, expand);\n }\n if (obj.type == 'file') {\n let match = res.filter((it: any) => it.key === obj.key);\n\n if (match.length) {\n newData.push(match[0]);\n return null;\n }\n }\n newData.push(obj);\n });\n\n return newData;\n }\n\n /* ************ 功能方法 **************** */\n\n async function uploadFile(param?: ExplorerItem) {\n if (!curInfo) return;\n\n let cur: any = param || curInfo;\n\n let input = document.createElement('input');\n input.type = 'file';\n input.accept = accept || '';\n input.multiple = true;\n input?.click();\n input.onchange = async (e: any) => {\n const files = Array.from(e.target.files);\n let _file = files.map((v) => {\n return { file: v, path: '' };\n });\n await props?.onUpload?.(_file, cur);\n loadData?.(curInfo?.key);\n };\n }\n\n //新建文件夹\n function createFolder(suffix?: string, params?: ExplorerItem) {\n let _type = 'folder';\n if (suffix && suffix !== 'folder') {\n _type = 'file';\n }\n setCreateState(true);\n\n const folderName = (folders: any[], folderName: string) => {\n let newName = folderName.trim();\n let count = 1;\n\n while (folders.includes(newName)) {\n if (newName?.includes('.')) {\n try {\n let arr = folderName?.split('.');\n let title = arr?.slice(0, -1);\n newName = `${title.join('.')} (${count}).${arr[arr.length - 1]} `;\n } catch (e) {}\n } else {\n newName = `${folderName} (${count})`;\n }\n\n count++;\n }\n return newName;\n };\n\n const addData = (data: any[], key: string, child: any) => {\n let arr: any[] = data;\n let file: any[] = [];\n let folder = [];\n\n if (key) {\n let i = 0;\n while (i < arr.length) {\n let item: any = arr[i];\n if (item.key == key) {\n if (Array.isArray(item.children)) {\n let titles: string[] = [];\n item.children.forEach((v: any) => {\n if (v.title) {\n titles.push(v.title);\n }\n if (v.type == 'folder') folder.push(v);\n if (v.type == 'file') file.push(v);\n });\n\n let data = folderName(titles, child.title);\n child['title'] = data;\n folder.push(child);\n item.children = [...folder, ...file];\n } else {\n item.children = [child];\n }\n i = arr.length;\n break;\n }\n\n if (Array.isArray(item.children)) {\n item.children = addData(item.children, key, child);\n }\n i++;\n }\n } else {\n if (arr.length) {\n let titles: string[] = [];\n arr.forEach((v: any) => {\n if (v.title) {\n titles.push(v.title);\n }\n\n if (v.type == 'folder') folder.push(v);\n if (v.type == 'file') file.push(v);\n });\n let title = folderName(titles, child.title);\n child['title'] = title;\n folder.push(child);\n arr = [...folder, ...file];\n } else {\n arr.push(child);\n }\n }\n\n return arr || [];\n };\n\n let arr = cloneDeep(curlist) || [];\n\n let target_key = params?.key || curSelectFile || '';\n\n if (params && params?.key === curInfo?.key) {\n target_key = '';\n }\n\n let list: any = addData(arr, target_key || '', {\n key: getKey(),\n type: _type,\n title: _type == 'folder' ? '新建文件夹' : `新建文件.${suffix}`,\n create_file: true,\n suffix: suffix,\n parent: params,\n });\n setCurList(list);\n }\n\n function openMenu(props: any, param?: any) {\n if (!isOpenMenu) return;\n closeMenu();\n let { x = 0, y = 0, className = '', placement, content } = props;\n let _menu: any = null;\n _menu = document.createElement('div');\n menu.current = createRoot(_menu);\n if (boxMenu.current) {\n boxMenu.current?.appendChild(menu);\n } else {\n let body = document.querySelector('body');\n let _body = document.createElement('div');\n _body.className = `_explorer-menu ${className}`;\n\n _body.style.cssText = `\n position:absolute;\n top: 0px;\n left: 0px;\n widht:0px;\n height: 0px;\n z-index:110;\n `;\n boxMenu.current = _body;\n _body?.appendChild(_menu);\n body?.appendChild(_body);\n }\n\n let _box = box.current.getBoundingClientRect();\n\n _menu.style.cssText = `\n position:absolute;\n top: -100px;\n left: -100px;\n background: #fff;\n opacity: 0;\n `;\n\n menu.current.render(content);\n\n setTimeout(() => {\n let cur = _menu.getBoundingClientRect();\n if (cur.height + y > _box.bottom) {\n let shift = cur.height + y - _box.bottom;\n y = y - shift - 10;\n }\n\n if (cur.width + x > _box.right) {\n let shift = cur.width + x - _box.right;\n x = x - shift - 10;\n }\n\n _menu.style.cssText = `\n position:absolute;\n top: ${y}px;\n left:${x}px;\n background: #fff;\n `;\n }, 100);\n }\n\n /* *********** 拦截进行特殊处理 *********** */\n async function onMenuClick(key: string, param: any, type: any) {\n if (key == 'remove') {\n if (type == 'menu') {\n await onDelect?.([param.key], param);\n } else {\n await onDelect?.(checks || [], param);\n }\n\n if (param.key == curInfo?.key) {\n data?.[0]?.key && loadData(data?.[0]?.key);\n } else {\n curInfo?.key && loadData(curInfo?.key);\n }\n\n if (param.type == 'folder') {\n reloadNode(param.parentPath);\n }\n\n onCheck?.([]);\n return;\n }\n\n if (key == 'copy') {\n onCopy?.(param);\n return;\n }\n\n if (key == 'shear') {\n onShear?.(param);\n return;\n }\n\n if (key == 'paste') {\n onPaste?.(param);\n curInfo?.key && loadData(curInfo.key);\n reloadNode(param.key);\n return;\n }\n\n if (key == 'info') {\n const o = Modal2.openModal({\n className: 'explorer-details-modal',\n modalWidth: 450,\n modalHeight: 620,\n customHeader: () => {\n return <DetailHeader {...param}></DetailHeader>;\n },\n content: (\n <DetailsInfo\n info={param}\n getIcons={Icons}\n isheader={false}\n renderFileInfo={props?.renderFileInfo}\n ></DetailsInfo>\n ),\n });\n }\n\n if (key == 'file-upload') {\n uploadFile(param);\n closeMenu();\n return;\n }\n\n if (key == 'create') {\n createFolder();\n closeMenu();\n return;\n }\n\n if (key == 'rename') {\n setRename(param.key);\n }\n\n if (key == 'open' && param.type == 'folder') {\n loadData(param?.key || '');\n return;\n }\n\n _onMenuClick?.(key, { ...param, isEdit: isEdit });\n }\n\n //创建和重名\n async function onRename(key: string, value: any, info: any, type?: 'menu' | 'main') {\n if (info.create_file) {\n const delata = (data: any[]) => {\n let arr: any[] = data;\n let filter = [];\n\n let i = 0;\n while (i < arr.length) {\n let item: any = arr[i];\n if (!item?.create_file) {\n filter.push(item);\n }\n if (Array.isArray(item.children)) {\n item.children = delata(item.children);\n }\n i++;\n }\n\n return filter || [];\n };\n\n //取消创建\n if (value === false) {\n let arr = delata(curlist);\n setCreateState(false);\n setCurList(arr);\n return;\n }\n\n let param: any = curInfo;\n\n if (curSelectFile && dataMap?.[curSelectFile]) {\n param = dataMap?.[curSelectFile];\n }\n\n if (curInfo || !isNavtab) {\n setLoading(ApiStatusEnum.LOADING);\n let create = await createFile?.(value, param, info);\n await loadData?.(curInfo?.key || '', null, false);\n\n if (create?.current) {\n fixNavNode(info.key, 'add', create.current);\n } else {\n reloadNode(curInfo?.key || '');\n }\n\n setCreateState(false);\n setLoading(ApiStatusEnum.READY);\n }\n } else {\n let data = await _onRename?.(key, value, info);\n\n if (info.type == 'folder' || type == 'menu') {\n if (data?.key) {\n if (key === curInfo?.key) {\n loadData(data.key);\n } else {\n curInfo?.key && loadData(curInfo?.key);\n }\n updata(key, { key: data.key, title: value });\n }\n } else {\n loadData(curInfo?.key || '');\n updata(key, { title: value });\n }\n }\n }\n\n async function onCheck(arr: string[]) {\n let map = dataMap || {};\n let param: ExplorerItem[] = [];\n\n if (!multiple) {\n arr = [arr[0]];\n }\n\n arr.forEach((checkedKeys: string) => {\n if (map[checkedKeys]) {\n param.push(map[checkedKeys]);\n }\n });\n\n props.onCheck?.(arr, param);\n }\n\n async function onMoveFile(cur: string[], target?: string) {\n let info: ExplorerItem | undefined = dataMap?.[target || ''];\n if (!cur?.length) return;\n let data: ExplorerItem[] = [];\n cur.forEach((v) => {\n if (dataMap?.[v]) {\n data.push(dataMap?.[v]);\n }\n });\n _onMoveFile?.(data, info);\n }\n\n return (\n <ExampleContext.Provider\n value={{\n //data\n dataMap,\n curlist,\n log,\n logindex,\n curInfo,\n\n //config\n isDelect: isDelect,\n isUpload: isUpload,\n isEdit: isEdit,\n isDownload: isDownload,\n selectedSuffix: selectedSuffix,\n multiple: multiple,\n shift,\n control,\n nav_expandkey,\n\n menutype,\n pathDisplay,\n columns: columns || defaultColumns,\n loading,\n menuSize,\n infoshow,\n checkType,\n checkMode,\n reamekey,\n menuRename,\n curSelect,\n curSelectFile,\n loadkey,\n nav_loadKey,\n expandkey,\n totalNum,\n createState,\n\n //icon\n getIcons: Icons,\n loadMenu: props?.loadMenu,\n uploadFile,\n createFolder,\n reloadNode,\n openMenu,\n closeMenu,\n setTotalNum,\n\n //set\n setLog,\n setLogIndex,\n setCurInfo,\n setInfoShow,\n setCurList,\n setMenuSize,\n setMenutype,\n setPathDisplay,\n setLoading,\n setReName: setRename,\n setMenuRename,\n setExpandNavKey,\n setCurSelect: (v: string | null) => {\n if (v == '_ending') {\n v = null;\n }\n setCurSelect(v);\n onSelectFile?.(v, dataMap?.[v || '']);\n },\n setCurSelectFile,\n setLoadKey,\n setNavLoadKey,\n setExpandkey: (v: any) => {\n onExpand?.(v);\n setExpandkey(v);\n },\n setDataMap,\n }}\n >\n <div className='explorer-container' ref={box}>\n <Layout\n {...props}\n loadData={loadData}\n loadNode={loadNode}\n onRename={onRename}\n onCheck={onCheck}\n onMenuClick={onMenuClick}\n onMoveFile={onMoveFile}\n />\n </div>\n </ExampleContext.Provider>\n );\n});\n\nexport default Explorer;\n"],"names":["ApiStatusEnum","ImgSuffix","getKey","randomLength","str","Number","Math","random","toString","substr","Date","now","toUpperCase","convertBytesToSize","bytes","thresh","abs","units","u","length","toFixed","DateFormat","date","toISOString","slice","ExampleContext","createContext","IconsMap","Map","_jsx","FavoriteSvg","SpaceSvg","NetdiskSvg","AlbumSvg","RecycleSvg","RecentlySvg","LinkSvg","TextSvg","ShareLinkSvg","_jsxs","className","viewBox","children","d","fill","InfoSvg","version","xmlns","ZoomUpSvg","FavSvg","FavTagSvg","LoadingSvg","ArrowLeftSvg","SearchSvg","ArrowRightSvg","ArrowTopSvg","AngleRightSvg","OutdentSvg","CaretRight","CircleCheckSvg","DoneSvg","width","height","ProcessingSvg","UpdateSvg","NullDataSvg","xmlnsXlink","gradientUnits","y2","x2","y1","x1","id","stopColor","offset","stopOpacity","xlinkHref","opacity","stroke","strokeWidth","strokeMiterlimit","transform","points","ry","rx","cy","cx","SuffixIcon","suffix","status","_file","is","includes","StatusIcon","_localimg","src","UploadSvg","flush","hydrate","merge","getRegisteredStyles","injectGlobal","keyframes","css","sheet","cache","createEmotion","key","Draggable","React","forwardRef","style","placement","poi","_poi","fix","rang","ref","boxRef","useRef","clickInfoRef","x","i","w","sashPlacement","sashClicked","setSashClicked","useState","minimum","setMinimum","maximum","setMaximum","setPoi","pSize","setParentSize","useImperativeHandle","parentSize","isMaximize","index","ps","calcMax","isMinimize","onMaximize","onMinimize","setSize","useEffect","ob","resizeObserver","document","addEventListener","cancelDrag","current","unobserve","removeEventListener","targetElement","ResizeObserver","entries","entry","contentRect","observe","handleMouseMove","e","clientX","pageX","clientY","pageY","$_width","min","max","$_w2","getElementRect","curPoi","p","handleMouseDown","size","s","childrenDom","useMemo","Children","map","child","viewWidth","viewHeight","left","top","visible","type","cloneElement","sashDom","hasZero","filter","v","it","active","onMouseDown","onMouseUp","Boolean","onMouseMove","returnDocument","element","window","Dropdown","props","dropdownRender","trigger","zIndex","onExpand","destroyPopupOnHide","capture","position","onContextMenu","expand","setExpand","newDiv","setNewDiv","menu","mouse","setMouse","root","setRoot","time","windowSize","setWindowSize","getSize","menuSize","setMenuSize","useLayoutEffect","handleResize","addEvent","delEvent","innerWidth","innerHeight","ids","querySelector","onclick","remove","content","newDivs","body","createElement","onClick","onClone","onmouseleave","setTimeout","onmouseenter","clearTimeout","appendChild","createRoot","setAttribute","render","lie","curX","curY","y","shiftX","getBoundingClientRect","box","right","bottom","trunc","documentClose","documentMenu","contains","target","container","offsetWidth","offsetHeight","cleanup","disconnect","stopPropagation","onMouseEnter","preventDefault","nativeEvent","onMouseLeave","iconFactory","getMenu","registerMenu","component","addMenuItem","keys","Array","isArray","arr","removeMenuItem","menuItem","item","icon","title","istoolbar","desc","menuIcon","test","Icons","isValidElement","Menu","onChange","loadMenu","store","info","data","edit","download","upload","delect","_menu","push","isEdit","disabled","isDelect","isDownload","isUpload","menus","Fragment","menudata","dom","ExplorerHead","loadData","useContext","pathInputRef","path","setPath","pathFocus","setFocus","curInfo","pathDisplay","Breadcrumb","split","dataMap","first","last","_t","_","exit","logindex","log","setLogIndex","forward","toolbar","empty","curSelect","checks","tool","more","Ellipsis","curSelectFile","toolBtn","param","hidden","curinfo","menutype","openMenu","setReName","onMenuClick","closeMenu","disable","parentPath","setLog","focus","name","value","onInput","spellCheck","onKeyDown","keyCode","onBlur","placeholder","createFolder","uploadFile","Slider","classname","setMenutype","onViewType","infoshow","setInfoShow","isdarg","setDarg","handleBodyMousemove","handleBodyMouseup","d_value","per","round","cur","num","TreeContext","DropIndicator","dropPosition","dropLevelOffset","indent","pointerEvents","backgroundColor","Indent","prefixCls","level","isStart","isEnd","widthStyle","baseClassName","list","classNames","memo","getEntity","keyEntities","getPosition","isTreeNode","node","pos","undefined","fillFieldNames","fieldNames","_title","mergedTitle","convertTreeToData","rootNodes","dig","treeNodes","toArray","treeNode","rest","dataNode","parsedChildren","flattenTreeData","treeNodeList","expandedKeys","fieldTitles","fieldKey","fieldChildren","expandedKeySet","Set","flattenList","parent","mergedKey","fieldTitle","flattenNode","omit","has","traverseDataNodes","dataNodes","callback","config","mergedConfig","externalGetKey","childrenPropName","mergeChildrenPropName","syntheticGetKey","processNode","pathNodes","connectNodes","parentPos","nodes","forEach","subNode","subIndex","convertDataToEntities","initWrapper","processEntity","onProcessFinished","legacyExternalGetKey","mergedExternalGetKey","posEntities","wrapper","entity","getTreeNodeProps","selectedKeys","loadedKeys","loadingKeys","checkedKeys","halfCheckedKeys","dragOverNodeKey","treeNodeProps","eventKey","expanded","indexOf","selected","loaded","loading","checked","halfChecked","String","dragOver","dragOverGapTop","dragOverGapBottom","convertNodePropsToEventData","eventData","Object","defineProperty","get","ICON_OPEN","ICON_CLOSE","defaultTitle","InternalTreeNode","Component","state","dragNodeHighlight","componentDidMount","syncLoadData","componentDidUpdate","onSelectorClick","context","onNodeClick","isSelectable","onSelect","onCheck","onSelectorDoubleClick","onNodeDoubleClick","isDisabled","onNodeSelect","disableCheckbox","onNodeCheck","isCheckable","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onDragStart","onNodeDragStart","setState","dataTransfer","setData","error","onDragEnter","onNodeDragEnter","onDragOver","onNodeDragOver","onDragLeave","onNodeDragLeave","onDragEnd","onNodeDragEnd","onDrop","onNodeDrop","onNodeExpand","setSelectHandle","selectHandle","getNodeState","isLeaf","hasChildren","treeDisabled","checkable","treeCheckable","onNodeLoad","selectable","treeSelectable","isDraggable","draggable","nodeDraggable","renderDragHandler","renderSwitcherIconDom","switcherIcon","switcherIconFromProps","switcherIconFromCtx","renderSwitcher","switcherIconDom","switcherCls","renderCheckbox","$custom","renderIcon","renderSelector","showIcon","treeIcon","titleRender","wrapClass","$icon","currentIcon","titleNode","$title","onDoubleClick","renderDropIndicator","dropIndicatorRender","direction","rootDraggable","showIndicator","mergedIndent","cacheIndent","domRef","indentWidth","otherProps","filterTreeNode","dropContainerKey","dropTargetKey","draggingNodeKey","dataOrAriaAttributeProps","pickAttrs","aria","isEndNode","mergedDraggable","draggableWithoutDisabled","dragging","ariaSelected","ContextTreeNode","Consumer","displayName","useUnmount","triggerStart","triggerEnd","firstMount","setFirstMount","MotionTreeNode","motion","motionNodes","motionType","onMotionStart","onOriginMotionStart","onMotionEnd","onOriginMotionEnd","treeNodeRequiredProps","setVisible","targetVisible","triggerMotionStart","triggerMotionEndRef","triggerMotionEnd","onVisibleChanged","nextVisible","CSSMotion","motionAppear","motionClassName","motionStyle","motionRef","restProps","_createElement","TreeNode","RefMotionTreeNode","findExpandedKeys","prev","next","prevLen","nextLen","add","find","shorter","longer","set","getExpandRange","shorterStartIndex","findIndex","shorterEndNode","longerStartIndex","longerEndIndex","HIDDEN_STYLE","display","overflow","border","padding","margin","noop","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","virtual","itemHeight","ceil","itemKey","getAccessibilityPath","NodeList","onVirtualScroll","focusable","activeItem","focused","tabIndex","onFocus","onActiveChange","onListChangeStart","onListChangeEnd","domProps","listRef","indentMeasurerRef","scrollTo","scroll","getIndentWidth","prevExpandedKeys","setPrevExpandedKeys","prevData","setPrevData","transitionData","setTransitionData","transitionRange","setTransitionRange","setMotionType","dataRef","latestData","diffExpanded","keyIndex","rangeNodes","newTransitionData","splice","mergedData","_Fragment","visibility","VirtualList","fullHeight","onVisibleChange","originList","fullList","originSet","restList","some","arrDel","clone","arrAdd","posToArr","getDragChildrenKeys","dragNodeKey","dragChildrenKeys","isLastChild","treeNodeEntity","posArr","isFirstChild","calcDropPosition","event","dragNode","targetNode","startMousePosition","allowDrop","flattenedNodes","expandKeys","horizontalMouseOffset","rawDropLevelOffset","filteredExpandKeys","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeIndex","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","abstractDragDataNode","abstractDropDataNode","dropAllowed","dropNode","dropTargetPos","calcSelectedKeys","multiple","parseCheckedKeys","keyProps","conductExpandParent","keyList","conductUp","removeFromCheckedKeys","filteredKeys","isCheckDisabled","fillConductCheck","levelEntities","maxLevel","syntheticGetCheckDisabled","entities","childEntity","visitedKeys","allChecked","partialChecked","from","cleanConductCheck","halfKeys","delete","conductCheck","getCheckDisabled","hasEntity","levelSet","result","MAX_RETRY_TIMES","Tree","defaultProps","showLine","checkStrictly","defaultExpandParent","autoExpandParent","defaultExpandAll","defaultExpandedKeys","defaultCheckedKeys","defaultSelectedKeys","expandAction","destroyed","loadingRetryTimes","treeData","flattenNodes","activeKey","listChanging","prevProps","dragStartMousePosition","currentMouseOverDroppableNodeKey","createRef","onUpdated","itemScrollOffset","componentWillUnmount","onWindowDragEnd","getDerivedStateFromProps","prevState","newState","needSync","entitiesMap","cloneKeyEntities","checkedKeyEntity","conductKeys","newExpandedKeys","setExpandedKeys","resetDragState","delayedDragEnterLogic","persist","currentTarget","relatedTarget","cleanDragState","outsideTree","abstractDropNodeProps","getTreeNodeRequiredProps","getActiveItem","dropResult","dragNodesKeys","concat","dropToGap","triggerExpandActionExpand","shiftKey","metaKey","ctrlKey","nodeItem","eventNode","targetSelected","selectedNodes","selectedKey","setUncontrolledState","oriCheckedKeys","oriHalfCheckedKeys","checkedObj","eventObj","checkedNodes","checkedKey","keySet","checkedNodesPositions","loadPromise","Promise","resolve","reject","onLoad","promise","then","currentLoadedKeys","newLoadedKeys","catch","onRightClick","args","targetExpanded","newFlattenTreeData","currentExpandedKeys","expandedKeysToRestore","newActiveKey","offsetActiveKey","which","KeyCode","UP","DOWN","expandable","LEFT","RIGHT","ENTER","SPACE","atomic","forceState","allPassed","onScroll","rootClassName","rootStyle","scrollWidth","draggableConfig","Provider","role","TableItem","columns","ischeck","isdrag","rename","onRename","selectedSuffix","isOpenMenu","flex","renderTool","autoFocus","defaultValue","create_file","lastIndexOf","setSelectionRange","setTitle","NotData","addLevel","levelIndex","filedata","hasFolder","hasFile","api","motionName","onAppearStart","onAppearActive","scrollHeight","onLeaveStart","onLeaveActive","_ref","_widht","isload","animation","onChecks","onDblclick","filterData","setRename","tree","header","motionshow","seTmotionShow","setWidth","toScroll","reduce","cloneDeep","floor","s_icon","open","s_table_icon","fontSize","setLeaf","curKey","loopLeaf","lev","l","getNewTreeData","loop","levelkey","onLoadData","table","scrollLeft","Header","onWidhtChange","checkType","TreeItem","defaultmenu","setIsDrag","dragindex","setDargIndex","up","a","diff","ExplorerMenu","loadNode","_onMenuClick","_onRename","select","setSelect","menuRename","nav_loadKey","nav_expandkey","getIcons","setPathDisplay","setNavLoadKey","setExpandNavKey","setMenuRename","VirtualScroll","renderItem","containerRef","scrollTop","setScrollTop","setdata","items","handleScroll","visibleCount","clientHeight","startIdx","endIdx","overflowY","paddingTop","Tile","icons","itemSize","setList","col","setCol","originalArray","chunkSize","resultArray","acc","curr","chunkIndex","row","isname","pic","lineHeight","rows","NotUpLoad","SelectBox","dataClass","selectClass","regionClass","getContainer","isDrag","isSelectBoxes","checkMode","startPosition","setScroll","action","startDrag","endDrag","onMouseup","onFileDarg","selectionRef","clickRef","showDragAnimation","text","textBox","isDclick","isDragFiles","setIsDragFiles","isDragUpload","setIsDragUpload","setDragging","selects","stageClickInfo","setStageClickInfo","show","getSelectBox","createText","bodyDragEnter","handleDragOver","handleDragLeave","handleDragEnter","handleDrop","curlist","isSelectTarget","isregion","drag","idx","querySelectorAll","dataDom","getAttribute","isupload","classList","curList_keys","pX","pY","sWidth","sHeight","createDragView","createBox","startkey","ismove","onMoveFile","removeDragView","selectionDom","cssText","renderDragtext","files","getFile","file","traverseFileTree","isFile","fileInfo","isDirectory","dirReader","createReader","readEntries","_entries","promises","webkitGetAsEntry","all","onUpload","cont","types","_box","_text","region","scrolly","endy","stop","sTop","sLeft","shift","initTop","initButtom","sRight","sBottom","leftCover","cmidst","rightCover","topCover","midst","bottomCover","_id","isDarg","curid","dragIcon","dragDesc","_cur","cloneNode","shiftSelectColumns","start","end","_start","_end","start_level","end_level","start_position","end_position","curIndex","shiftSelect","values","controlSelectColumns","curlevel","curnum","control","button","curColumnkey","scrollx","ReactDOM","createPortal","Item","acitve","isedit","setValue","Columns","_w","layer","setLayer","select_col","setSelectCol","setIsdarg","total_width","setTotalwidth","avg","setExpandkey","initdata","expandkey","setCurSelectFile","news","isApi","mapping","getRowData","setDataMap","setSelectFile","_map","_child","handleMousemove","setlevel","_data","fixdata","renderList","setCurSelect","console","reamekey","loaddata","minWidth","transition","template","tile","column","Layout","isNavtab","showPages","tile_srcoll","tree_srcoll","columns_srcoll","_scroll","Loading","_onDblclick","lenght","setCurInfo","setCurList","LOADING","_type","clearInterval","onStartDarg","onEndDarg","activeFile","loadkey","truncate","setLoadKey","totalNum","Pagination","total","showSizeChange","pageSize","page","pageNum","sizeOptions","onPageSizeChange","bufferSize","DetailsInfo","isheader","setIsEdit","rednerInfo","createTime","background","DetailHeader","renderFileInfo","fixTime","ExplorerInfo","setInfo","isHeader","defaultViewType","ExplorerMain","defaultColumns","marginLeft","modifyTime","prototype","hasOwnProperty","fn","TypeError","call","enumerable","label","Explorer","accept","filelist","_expandkey","createFile","onCopy","onShear","onPaste","onDelect","onChangeCurMap","_loadData","onSelectFile","_onMoveFile","createState","setCreateState","setLoading","READY","setPageNum","curpage","setCurPage","setTotalNum","setShift","setControl","boxMenu","removeLog","updateNav","closeload","reloadNode","updateData","updateCurListNode","updateCurlist","handleKeyDown","handleKeyUp","altKey","_level","fileList","params","isfix","level_index","level_key","addData","source","nav","fixNavNode","addNode","datas","updata","fixData","reduceGetTreeData","res","newData","myforeach","obj","match","input","click","onchange","folderName","folders","newName","trim","count","join","folder","titles","target_key","_body","Modal2","openModal","modalWidth","modalHeight","customHeader","delata","create"],"mappings":"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EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,KAAK,EACL,OAAO,EACP,IAAI,EACJ,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,OAAO,EACP,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,EACL,GAAG,EACH,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../node_modules/style-inject/dist/style-inject.es.js","../../src/enum.ts","../../src/utils/helper.tsx","../../src/store.tsx","../../src/components/icons/index.tsx","../../src/css.ts","../../src/components/Draggable/index.tsx","../../src/components/Dropdown/index.tsx","../../src/components/menu/menulist.tsx","../../src/components/menu/index.tsx","../../src/layout/components/explorer-head/index.tsx","../../src/components/tree/components/contextTypes.ts","../../src/components/tree/components/DropIndicator.tsx","../../src/components/tree/components/Indent.tsx","../../src/components/tree/components/utils/keyUtil.ts","../../src/components/tree/components/utils/treeUtil.ts","../../src/components/tree/components/TreeNode.tsx","../../src/components/tree/components/useUnmount.ts","../../src/components/tree/components/MotionTreeNode.tsx","../../src/components/tree/components/utils/diffUtil.ts","../../src/components/tree/components/NodeList.tsx","../../src/components/tree/components/util.tsx","../../src/components/tree/components/utils/conductUtil.ts","../../src/components/tree/components/Tree.tsx","../../src/components/tree/tree-item-table.tsx","../../src/components/tree/tree-item.tsx","../../src/components/notdata/index.tsx","../../src/components/tree/index.tsx","../../src/layout/components/explorer-menu/index.tsx","../../src/components/virtualScroll/index.tsx","../../src/components/tile/index.tsx","../../src/components/select-box/index.tsx","../../src/components/columns/index.tsx","../../src/layout/components/explorer-main/index.tsx","../../src/components/details/index.tsx","../../src/layout/components/explorer-info/index.tsx","../../src/layout/index.tsx","../../src/explorer.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","export const enum fileType {\n 'folder' = 'folder',\n 'file' = 'file',\n}\n\n// 接口状态\nexport enum ApiStatusEnum {\n READY = 1,\n LOADING,\n ERROR,\n EMPTY,\n SUCCESS,\n}\n\nexport const ImgSuffix = ['png', 'jpg', 'jpge', 'jpeg'];\n","export const getKey = (randomLength: number = 3) => {\n let str = Number(Math.random().toString().substr(2, randomLength) + Date.now()).toString(36);\n return str.toUpperCase();\n};\nexport const convertBytesToSize = (bytes: number = 2) => {\n const thresh = 1024;\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let u = -1;\n do {\n bytes /= thresh;\n ++u;\n } while (Math.abs(bytes) >= thresh && u < units.length - 1);\n return bytes.toFixed(1) + ' ' + units[u];\n};\n\nexport const DateFormat = (date?: number | string) => {\n return typeof date == 'number' ? new Date(date).toISOString().slice(0, 10) : date || '';\n};\n","import React, { createContext } from 'react';\nimport { ApiStatusEnum } from './enum';\nimport { ExplorerItem, ExplorerProps, ColumnsProps } from './types';\n\ninterface ExampleContextProps extends ExplorerProps {\n pathDisplay: string;\n menutype: 'tile' | 'table' | 'column';\n menuSize: number;\n infoshow: boolean;\n curlist: ExplorerItem[];\n log?: string[];\n logindex: number;\n\n loading?: ApiStatusEnum;\n curInfo?: ExplorerItem | null;\n dataMap: { [key: string]: ExplorerItem } | null;\n reamekey: string | null;\n menuRename: string | null;\n curSelect: string | null;\n curSelectFile: string | null;\n loadkey: string[];\n nav_loadKey: string[];\n expand?: string[];\n expandkey: string[];\n nav_expandkey: string[];\n shift: Boolean;\n control: Boolean;\n totalNum: number;\n createState: Boolean;\n\n columns?: ColumnsProps[];\n\n getIcons: (v: ExplorerItem, className: string, style?: any) => JSX.Element;\n uploadFile: any;\n createFolder: any;\n reloadNode: (key: string) => void;\n openMenu: (props: any, param?: ExplorerItem | null) => void;\n closeMenu: () => void;\n\n setTotalNum: React.Dispatch<React.SetStateAction<number>>;\n setLog: React.Dispatch<React.SetStateAction<string[]>>;\n setLogIndex: React.Dispatch<React.SetStateAction<number>>;\n setCurInfo: React.Dispatch<React.SetStateAction<ExplorerItem | null>>;\n setMenuSize: React.Dispatch<React.SetStateAction<number>>;\n setCurList: React.Dispatch<React.SetStateAction<ExplorerItem[]>>;\n setInfoShow: React.Dispatch<React.SetStateAction<boolean>>;\n setLoading: React.Dispatch<React.SetStateAction<ApiStatusEnum>>;\n setPathDisplay: React.Dispatch<React.SetStateAction<string>>;\n setMenutype: React.Dispatch<React.SetStateAction<'tile' | 'table' | 'column'>>;\n setReName: React.Dispatch<React.SetStateAction<string | null>>;\n setMenuRename: React.Dispatch<React.SetStateAction<string | null>>;\n setCurSelect: (v: string | null) => void;\n setCurSelectFile: React.Dispatch<React.SetStateAction<string | null>>;\n setLoadKey: React.Dispatch<React.SetStateAction<string[]>>;\n setNavLoadKey: React.Dispatch<React.SetStateAction<string[]>>;\n setExpandkey: React.Dispatch<React.SetStateAction<string[]>>;\n setExpandNavKey: React.Dispatch<React.SetStateAction<string[]>>;\n setDataMap: React.Dispatch<React.SetStateAction<{ [key: string]: ExplorerItem } | null>>;\n}\n\nexport const ExampleContext: React.Context<ExampleContextProps> = createContext<any>(null);\n","import './index.less';\nimport cx from 'classnames';\n\nexport const IconsMap = new Map([\n ['favorite', <FavoriteSvg />],\n ['space', <SpaceSvg />],\n ['netdisk', <NetdiskSvg />],\n ['album', <AlbumSvg />],\n ['recycle', <RecycleSvg />],\n ['recently', <RecentlySvg />],\n ['coordination', <LinkSvg />],\n ['text', <TextSvg />],\n ['share', <ShareLinkSvg />],\n]);\n\n//文件\nexport function FavoriteSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M640 211.2l41.6 89.6 249.6 38.4c25.6 6.4 48 22.4 54.4 44.8 9.6 25.6 3.2 54.4-16 70.4l-182.4 188.8 44.8 262.4c3.2 25.6-6.4 54.4-28.8 67.2-12.8 6.4-25.6 12.8-38.4 12.8-12.8 0-22.4-3.2-35.2-9.6L512 857.6l-108.8 60.8c-76.8-121.6-96-284.8-60.8-409.6 41.6-153.6 147.2-262.4 297.6-297.6z'\n fill='#FFECB3'\n ></path>\n <path\n d='M531.2 112l105.6 227.2c3.2 12.8 16 19.2 28.8 22.4l243.2 35.2c9.6 0 19.2 3.2 22.4 9.6 3.2 6.4-3.2 19.2-9.6 25.6L742.4 608c-9.6 9.6-12.8 22.4-12.8 35.2l44.8 256c3.2 6.4 3.2 19.2-6.4 28.8-9.6 6.4-25.6 0-28.8-3.2l-208-118.4c-9.6-3.2-12.8-6.4-19.2-6.4-6.4 0-12.8 3.2-19.2 6.4l-211.2 118.4c-3.2 3.2-19.2 9.6-28.8 3.2-9.6-9.6-6.4-16-6.4-25.6l41.6-256c6.4-16 0-32-9.6-38.4L96 432c-3.2-6.4-12.8-16-9.6-25.6 3.2-9.6 12.8-12.8 22.4-16l246.4-38.4c12.8-3.2 25.6-9.6 32-22.4l105.6-220.8c3.2-6.4 9.6-22.4 19.2-22.4 6.4 6.4 12.8 9.6 19.2 25.6zM512 28.8c-28.8 0-51.2 16-60.8 41.6l-108.8 233.6-249.6 38.4c-25.6 6.4-48 22.4-54.4 44.8-9.6 25.6-3.2 54.4 16 70.4l182.4 188.8L192 908.8c-3.2 25.6 6.4 54.4 28.8 67.2 12.8 6.4 25.6 12.8 38.4 12.8 12.8 0 22.4-3.2 35.2-9.6l217.6-121.6 217.6 121.6c12.8 6.4 22.4 9.6 35.2 9.6 12.8 0 28.8-6.4 38.4-12.8 19.2-16 32-41.6 28.8-67.2l-44.8-262.4 182.4-188.8c19.2-19.2 25.6-44.8 16-70.4-9.6-25.6-28.8-44.8-54.4-44.8l-249.6-38.4-108.8-233.6c-19.2-25.6-32-41.6-60.8-41.6z'\n fill='#FFC107'\n ></path>\n </svg>\n );\n}\n//个人空间\nexport function SpaceSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M155.75222656 382.06612461V849.50070312a37.49976563 37.49976563 0 0 0 37.49976563 37.49976563h637.49601562a37.49976563 37.49976563 0 0 0 37.49976563-37.49976563V382.06612461L512 144.58010908 155.75222656 382.06612461z m-58.31213554-51.26217979l393.74753906-262.49835937a37.49976563 37.49976563 0 0 1 41.62473984 0l393.74753906 262.49835937A37.49976563 37.49976563 0 0 1 943.24730469 362.00375v487.49695313a112.49929687 112.49929687 0 0 1-112.49929688 112.49929687H193.25199219a112.49929687 112.49929687 0 0 1-112.49929688-112.49929687V362.00375a37.49976563 37.49976563 0 0 1 16.68739571-31.19980518z'\n fill='#ffac33'\n ></path>\n <path\n d='M736.99859375 718.25152344m-224.99859375 0a224.99859375 224.99859375 0 1 0 449.9971875 0 224.99859375 224.99859375 0 1 0-449.9971875 0Z'\n fill='#ffdcb3'\n ></path>\n <path\n d='M437.00046875 924.50023437a37.49976563 37.49976563 0 1 1-74.99953125 1e-8V708.87658203c0-78.43076016 67.85582607-140.62412109 149.9990625-140.62412109s149.9990625 62.19336094 149.9990625 140.62412109V924.50023437a37.49976563 37.49976563 0 1 1-74.99953125 1e-8V708.87658203c0-35.47477793-32.88729463-65.62458984-74.99953125-65.62458984s-74.99953125 30.14981192-74.99953125 65.62458984V924.50023437z'\n fill='#ffac33'\n ></path>\n </svg>\n );\n}\n//网盘\nexport function NetdiskSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M950.66666667 263C941.66666667 254 930.41666667 249.5 919.16666667 249.5H476.66666667L377.66666667 150.5c-3.75-3.75-9-7.5-14.25-9.75-6-2.25-11.25-3.75-17.25-3.75H109.16666667c-11.25 0-23.25 4.5-31.5 13.5S64.16666667 170.75 64.16666667 182v262.5h900V294.5c0-11.25-4.5-23.25-13.5-31.5z'\n fill='#FFD766'\n ></path>\n <path\n d='M919.16666667 894.5H109.16666667c-24.75 0-45-20.25-45-45V369.5h900v480c0 24.75-20.25 45-45 45z'\n fill='#FFAC33'\n ></path>\n <path\n d='M709.16666667 790.25c0 9.75-7.5 17.25-17.25 17.25H351.41666667c-9.75 0-17.25-7.5-17.25-17.25 0 0 0-63.75 46.5-87 30-15 18-3 54.75-18 36-15 45-20.25 45-20.25v-34.5s-13.5-10.5-18-42.75c-8.25 2.25-11.25-9.75-12-18-0.75-7.5-5.25-31.5 5.25-29.25-2.25-15.75-3.75-30.75-3-38.25 2.25-27 28.5-54.75 68.25-57 46.5 2.25 65.25 30 68.25 57 0.75 7.5-0.75 21.75-3 38.25 10.5-2.25 6 21.75 5.25 29.25-0.75 8.25-3 20.25-12 18-4.5 33-18 42.75-18 42.75v34.5s8.25 5.25 45 20.25c36 15 24.75 3.75 54.75 18.75 48 21.75 48 86.25 48 86.25z'\n fill='#FFDCB3'\n ></path>\n </svg>\n );\n}\n\n//相册\nexport function AlbumSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M892.5344 179.0336H131.46666667a47.568 47.568 0 0 0-47.56906667 47.568v459.80586667h856.20053333V226.60266667a47.568 47.568 0 0 0-47.56266666-47.568z'\n fill='#98DCF0'\n ></path>\n <path\n d='M616.4096 495.9872l-165.27573333 190.42133333h330.5248l-165.248-190.42133333z'\n fill='#699B54'\n ></path>\n <path\n d='M587.80373333 686.4128L367.49866667 432.57066667 147.18933333 686.4128h-63.2928v110.98026667a47.568 47.568 0 0 0 47.56906667 47.57333333h761.06346667c26.2688 0 47.568-21.2992 47.568-47.57333333V686.40746667l-352.29333334 0.00533333z'\n fill='#80BB67'\n ></path>\n <path\n d='M718.11626667 337.5872c-0.016 35.02293333 28.36586667 63.4272 63.3952 63.44426667 35.02293333 0.01066667 63.42826667-28.37226667 63.44426666-63.40053334v-0.04373333c0.01066667-35.02933333-28.3712-63.43466667-63.3952-63.44533333-35.02933333-0.01066667-63.4336 28.37226667-63.44533333 63.39626666v0.04906667z'\n fill='#FFE68E'\n ></path>\n </svg>\n );\n}\n\n//回收站\nexport function RecycleSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path d='M314.2 128h418.5v115.6H314.2z' fill='#92C4FF'></path>\n <path\n d='M608.4 767.7c-17.7 0-32-14.3-32-31.9V384c0-17.7 14.3-32 32-32s32 14.3 32 32v351.7c0 17.7-14.3 32-32 32 0.1 0 0 0 0 0z m-191.9 0c-17.6 0-31.9-14.3-31.9-31.9V384c0-17.6 14.3-32 31.9-32 17.6 0 32 14.3 32 31.9v351.8c0.1 17.7-14.2 32-32 32 0.1 0 0.1 0 0 0z m511.7-543.6H768.3v-63.9c0-52.9-42.7-95.9-95.2-95.9H352.6c-53 0.1-95.9 43-95.9 95.9v64H96.8c-17.6 0-31.9 14.3-31.9 32s14.3 31.9 31.9 31.9h831.4c17.7 0 32-14.3 32-32s-14.3-32-32-32z m-607.6-63.9c0-17.6 14.4-32 32-32h320.5c17.5 0 31.3 14.1 31.3 32v64H320.6v-64z'\n fill='#4383DB'\n ></path>\n <path\n d='M736.5 959.6H288.7c-52.9-0.1-95.9-43-95.9-95.9V383.5c-0.6-17.7 13.2-32.5 30.8-33.1 17.7-0.6 32.5 13.2 33.1 30.8V863.6c0 17.6 14.3 31.9 32 31.9h447.7c17.6 0 31.9-14.3 31.9-31.9V384.8c-0.6-17.7 13.2-32.5 30.8-33.1 17.7-0.6 32.5 13.2 33.1 30.8v481.1c0.1 53-42.8 95.9-95.7 96z'\n fill='#4383DB'\n ></path>\n </svg>\n );\n}\n\n//最近访问\nexport function RecentlySvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M512 512m-469.333333 0a469.333333 469.333333 0 1 0 938.666666 0 469.333333 469.333333 0 1 0-938.666666 0Z'\n fill='#2070E5'\n ></path>\n <path\n d='M512 133.333333c-212.074667 0-384 171.925333-384 384s171.925333 384 384 384 384-171.925333 384-384-171.925333-384-384-384z m39.616 496.042667h-89.152c-11.733333 0-21.333333-9.6-21.333333-21.333333v-51.114667-235.413333c0-11.733333 9.6-21.333333 21.333333-21.333334h12.224c11.733333 0 21.333333 9.6 21.333333 21.333334v231.616c0 11.733333 9.6 21.333333 21.333334 21.333333h231.594666c11.733333 0 21.333333 9.6 21.333334 21.333333v12.224c0 11.733333-9.6 21.333333-21.333334 21.333334h-197.333333z'\n fill='#FFFFFF'\n ></path>\n </svg>\n );\n}\n\n//我的协作\nexport function LinkSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M832.85333333 675.84L407.3244448 512l425.52888853-163.84c34.13333333-13.65333333 52.33777813-52.33777813 38.6844448-88.74666667-13.65333333-34.13333333-52.33777813-52.33777813-88.74666666-38.6844448l-591.6444448 227.55555627C166.1155552 457.38666667 147.91111147 484.69333333 147.91111147 512s18.2044448 54.61333333 43.2355552 63.7155552l591.6444448 227.55555627c9.10222187 2.2755552 15.92888853 4.55111147 25.0311104 4.5511104 27.30666667 0 52.33777813-15.92888853 63.71555626-43.2355552 13.65333333-36.40888853-4.55111147-75.09333333-38.6844448-88.74666667z'\n fill='#92c4ff'\n ></path>\n <path\n d='M216.17777813 512m-159.2888896 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n <path\n d='M807.82222187 284.4444448m-159.28888854 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n <path\n d='M807.82222187 739.5555552m-159.28888854 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n </svg>\n );\n}\n\n//\nexport function TextSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M725.333 375.467H298.667a17.067 17.067 0 1 0 0 34.133h426.666a17.067 17.067 0 1 0 0-34.133z m-426.666-102.4h170.666a17.067 17.067 0 1 0 0-34.134H298.667a17.067 17.067 0 1 0 0 34.134zM725.333 512H298.667a17.067 17.067 0 1 0 0 34.133h426.666a17.067 17.067 0 1 0 0-34.133z m0 136.533H298.667a17.067 17.067 0 1 0 0 34.134h426.666a17.067 17.067 0 1 0 0-34.134z m0 136.534H298.667a17.067 17.067 0 1 0 0 34.133h426.666a17.067 17.067 0 1 0 0-34.133z'\n fill='#92c4ff'\n ></path>\n <path\n d='M664.132 0H110.933v1024h802.134V248.934L664.132 0z m10.001 58.266l180.668 180.667H674.133V58.266z m-529.066 931.6V34.134H640v238.934h238.933v716.8H145.067z'\n fill='#bfbfbf'\n ></path>\n </svg>\n );\n}\n\n//属性\nexport function InfoSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M512 64C264.576 64 64 264.576 64 512c0 247.424 200.576 448 448 448s448-200.576 448-448C960 264.576 759.424 64 512 64zM512 848c-185.536 0-336-150.464-336-336S326.464 176 512 176 848 326.464 848 512 697.536 848 512 848zM512 400c-30.912 0-56 25.088-56 56l0 224C456 710.912 481.088 736 512 736s56-25.088 56-56l0-224C568 425.088 542.912 400 512 400zM512 232c-30.912 0-56 25.088-56 56S481.088 344 512 344 568 318.912 568 288 542.912 232 512 232z'></path>\n </svg>\n );\n}\n\n//放大\nexport function ZoomUpSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M448.2 184c70.6 0 136.9 27.5 186.8 77.4s77.4 116.2 77.4 186.8S684.9 585.1 635 635s-116.2 77.4-186.8 77.4-136.9-27.5-186.8-77.4S184 518.7 184 448.2c0-70.6 27.5-136.9 77.4-186.8S377.6 184 448.2 184m0-88c-90.1 0-180.3 34.4-249 103.2-137.5 137.5-137.5 360.5 0 498.1 68.8 68.8 158.9 103.2 249 103.2s180.3-34.4 249-103.2c137.5-137.5 137.5-360.5 0-498.1C628.4 130.4 538.3 96 448.2 96z'></path>\n <path d='M697.2 653.2c-11.3 0-22.5 4.3-31.1 12.9-17.2 17.2-17.2 45.1 0 62.3l186.8 186.8c8.6 8.6 19.9 12.9 31.1 12.9 11.3 0 22.5-4.3 31.1-12.9 17.2-17.2 17.2-45.1 0-62.3L728.3 666.1c-8.6-8.6-19.8-12.9-31.1-12.9zM567.3 417.1c-8-8-19-12.9-31.1-12.9h-176c-24.3 0-44.1 19.7-44.1 44.1 0 12.2 4.9 23.2 12.9 31.1 8 8 19 12.9 31.1 12.9h176.1c24.3 0 44.1-19.7 44.1-44.1 0-12.1-5-23.2-13-31.1z'></path>\n <path d='M479.3 329c-8-8-19-12.9-31.1-12.9-24.3 0-44.1 19.7-44.1 44.1v176.1c0 12.2 4.9 23.2 12.9 31.1 8 8 19 12.9 31.1 12.9 24.3 0 44.1-19.7 44.1-44.1l0.1-176c-0.1-12.2-5-23.2-13-31.2z'></path>\n </svg>\n );\n}\n\n//收藏文件夹\nexport function FavSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'>\n <path d='M928.891803 415.759306c-4.862772-14.704022-18.294016-25.021413-35.998232-27.56697L655.722604 354.079209 549.658066 141.429964c-7.909044-15.885669-21.976165-25.384918-37.634515-25.384918s-29.737759 9.499249-37.634515 25.362391L368.313235 354.079209 131.141244 388.192336c-17.726743 2.545557-31.180514 12.862948-36.009496 27.589497-4.841269 14.726549-0.057342 30.908142 12.738025 43.247848L279.510565 624.578952l-40.52105 233.762214c-2.420634 13.95551 0.670692 26.818458 8.693395 36.226574 7.260879 8.545945 18.055434 13.409741 29.6241 13.409741 7.499461 0 15.090054-1.95371 22.578252-5.864202L512.023551 791.754266l212.127027 110.359013c19.022049 9.907808 40.226151 6.500079 52.202352-7.545539 8.043182-9.408117 11.089454-22.271065 8.682131-36.226574l-40.498523-233.762214L916.165041 459.029681C928.982935 446.643897 933.710544 430.485856 928.891803 415.759306zM690.719406 592.580296c-7.13698 6.909662-10.409547 16.81747-8.726162 26.591139l36.77132 212.263213-192.607334-100.221839c-8.861324-4.635453-19.408081-4.635453-28.270429 0l-192.627814 100.221839 36.793847-212.263213c1.692601-9.77367-1.568702-19.681477-8.726162-26.591139l-155.846254-150.32303 215.365803-30.975723c9.885281-1.431492 18.431226-7.568066 22.862912-16.431438l96.314419-193.104978 96.315443 193.104978c4.430662 8.863372 12.976607 14.998922 22.861888 16.431438l215.37809 30.975723L690.719406 592.580296z'></path>\n </svg>\n );\n}\n\n//分享\nexport function ShareSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'>\n <path\n d='M506.8 107.1C286 107.1 107.1 286 107.1 506.8S286 906.5 506.8 906.5s399.7-178.9 399.7-399.7c0.1-220.7-178.9-399.7-399.7-399.7z m243.7 404.2L538.9 668.9c-3.7 2.9-8.4 4.6-13.5 4.6-11.8 0-21.4-9.1-22.2-20.6v-77.7h-59c-73.3 0-139.6 28.4-188.9 74.8-1.6 1.2-3.5 2-5.7 2-5.1 0-9.3-4.1-9.3-9.2 0-0.5 0.1-1 0.1-1.5 24.7-121.4 134.2-213.5 262.8-218.6v-78.4c0.9-11.5 10.4-20.6 22.2-20.6 4.8 0 9.4 1.6 13 4.3l212.3 158.1c3.5 3.1 5.8 7.6 5.8 12.5 0.1 5.1-2.3 9.6-6 12.7z'\n fill='#31dc48'\n ></path>\n </svg>\n );\n}\n//收藏标签\nexport function FavTagSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M768 42.666667a128 128 0 0 1 128 128v768a42.666667 42.666667 0 0 1-57.642667 39.936l-326.4-122.368-326.314666 122.368a42.666667 42.666667 0 0 1-57.386667-35.072L128 938.666667V170.666667a128 128 0 0 1 128-128z m0 85.333333H256a42.666667 42.666667 0 0 0-42.666667 42.666667v706.389333l283.690667-106.325333a42.666667 42.666667 0 0 1 24.064-1.749334l5.888 1.706667L810.666667 877.098667V170.666667a42.666667 42.666667 0 0 0-37.674667-42.368L768 128z m-235.178667 119.765333a36.693333 36.693333 0 0 1 9.386667 9.386667l21.632 31.36a42.666667 42.666667 0 0 0 22.954667 16.682667l36.522666 10.88a36.693333 36.693333 0 0 1 18.688 57.429333l-23.210666 30.293333a42.666667 42.666667 0 0 0-8.746667 26.965334l0.938667 38.144a36.693333 36.693333 0 0 1-48.810667 35.456l-35.968-12.672a42.666667 42.666667 0 0 0-28.416 0l-35.968 12.672a36.693333 36.693333 0 0 1-48.810667-35.456l0.938667-38.144a42.666667 42.666667 0 0 0-8.746667-26.965334l-23.210666-30.293333a36.693333 36.693333 0 0 1 18.688-57.429333l36.522666-10.88a42.666667 42.666667 0 0 0 22.954667-16.64l21.674667-31.445334a36.693333 36.693333 0 0 1 50.986666-9.386666z'></path>\n </svg>\n );\n}\n\nexport function ArrowDown() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M862.485 481.154H234.126l203.3-203.3c12.497-12.497 12.497-32.758 0-45.255s-32.758-12.497-45.255 0L135.397 489.373c-12.497 12.497-12.497 32.758 0 45.254l256.774 256.775c6.249 6.248 14.438 9.372 22.627 9.372s16.379-3.124 22.627-9.372c12.497-12.497 12.497-32.759 0-45.255l-203.3-203.301h628.36c17.036 0 30.846-13.81 30.846-30.846s-13.81-30.846-30.846-30.846z'></path>\n </svg>\n );\n}\n\nexport function LoadingSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'>\n <path\n d='M512 42.666667c-25.6 0-42.666667 17.066667-42.666667 42.666666v170.666667c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V85.333333c0-25.6-17.066667-42.666667-42.666667-42.666666z m0 682.666666c-25.6 0-42.666667 17.066667-42.666667 42.666667v170.666667c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666667-42.666666v-170.666667c0-25.6-17.066667-42.666667-42.666667-42.666667zM238.933333 179.2c-17.066667-17.066667-42.666667-12.8-59.733333 4.266667-17.066667 17.066667-17.066667 42.666667 0 59.733333L298.666667 362.666667c17.066667 17.066667 42.666667 17.066667 59.733333 4.266666 17.066667-17.066667 17.066667-42.666667 4.266667-59.733333l-4.266667-4.266667-119.466667-123.733333zM725.333333 661.333333c-17.066667-17.066667-42.666667-12.8-59.733333 4.266667-17.066667 17.066667-17.066667 42.666667 0 59.733333l119.466667 119.466667c17.066667 17.066667 42.666667 17.066667 59.733333 4.266667s17.066667-42.666667 4.266667-59.733334l-4.266667-4.266666-119.466667-123.733334zM298.666667 512c0-25.6-17.066667-42.666667-42.666667-42.666667H85.333333c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666667h170.666667c25.6 0 42.666667-17.066667 42.666667-42.666667z m640-42.666667h-170.666667c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h170.666667c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666667zM302.933333 661.333333l-119.466666 119.466667c-17.066667 17.066667-17.066667 42.666667-4.266667 59.733333s42.666667 17.066667 59.733333 4.266667l4.266667-4.266667 119.466667-119.466666c17.066667-17.066667 17.066667-42.666667 4.266666-59.733334s-46.933333-17.066667-64 0z m388.266667-285.866666c12.8 0 21.333333-4.266667 29.866667-12.8l119.466666-119.466667c17.066667-17.066667 17.066667-42.666667 4.266667-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333-4.266667l-4.266667 4.266667-119.466667 119.466666c-17.066667 17.066667-17.066667 42.666667 0 59.733334 8.533333 8.533333 21.333333 12.8 29.866667 12.8z'\n p-id='22183'\n ></path>\n </svg>\n );\n}\n//箭头向左\nexport function ArrowLeftSvg() {\n return (\n <svg viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M206.7 547.6c-0.3-0.3-0.5-0.6-0.8-0.9-0.3-0.3-0.6-0.6-0.8-1l-0.9-1.2c-0.2-0.2-0.4-0.5-0.6-0.7-0.3-0.4-0.6-0.9-1-1.3-0.2-0.2-0.3-0.4-0.5-0.7-0.3-0.5-0.6-0.9-0.9-1.4-0.1-0.2-0.3-0.5-0.4-0.7-0.3-0.5-0.5-0.9-0.8-1.4-0.1-0.3-0.3-0.5-0.4-0.8-0.2-0.4-0.5-0.9-0.7-1.3-0.1-0.3-0.3-0.6-0.4-0.9l-0.6-1.2c-0.2-0.4-0.3-0.7-0.5-1.1-0.2-0.4-0.3-0.7-0.4-1.1-0.2-0.4-0.3-0.8-0.5-1.2-0.1-0.3-0.2-0.7-0.3-1-0.2-0.5-0.3-0.9-0.5-1.4l-0.3-0.9c-0.1-0.5-0.3-1-0.4-1.5-0.1-0.3-0.1-0.6-0.2-0.8-0.1-0.5-0.2-1.1-0.3-1.6-0.1-0.3-0.1-0.6-0.2-0.9-0.1-0.5-0.2-1-0.3-1.6 0-0.3-0.1-0.7-0.1-1-0.1-0.5-0.1-1-0.2-1.5 0-0.5-0.1-0.9-0.1-1.4 0-0.4-0.1-0.7-0.1-1.1-0.1-1.7-0.1-3.4 0-5.1 0-0.4 0.1-0.8 0.1-1.1 0-0.5 0.1-0.9 0.1-1.4s0.1-1 0.2-1.5c0-0.3 0.1-0.7 0.1-1 0.1-0.5 0.2-1.1 0.3-1.6 0.1-0.3 0.1-0.6 0.2-0.9 0.1-0.5 0.2-1.1 0.3-1.6 0.1-0.3 0.1-0.6 0.2-0.8 0.1-0.5 0.3-1 0.4-1.5l0.3-0.9c0.1-0.5 0.3-0.9 0.5-1.4 0.1-0.3 0.2-0.7 0.3-1 0.1-0.4 0.3-0.8 0.5-1.2 0.1-0.4 0.3-0.8 0.4-1.1 0.1-0.4 0.3-0.7 0.5-1.1l0.6-1.2c0.1-0.3 0.3-0.6 0.4-0.9 0.2-0.5 0.5-0.9 0.7-1.3 0.1-0.3 0.3-0.5 0.4-0.8 0.3-0.5 0.5-0.9 0.8-1.4 0.1-0.2 0.3-0.5 0.4-0.7 0.3-0.5 0.6-0.9 0.9-1.4 0.2-0.2 0.3-0.5 0.5-0.7 0.3-0.5 0.6-0.9 1-1.3 0.2-0.3 0.4-0.5 0.6-0.7l0.9-1.2c0.3-0.3 0.5-0.6 0.8-1 0.3-0.3 0.5-0.6 0.8-0.9 0.5-0.6 1.1-1.2 1.7-1.7l0.1-0.1 204.6-204.6c19.9-19.9 52.2-19.9 72.1 0s19.9 52.2 0 72.1L367.6 462.4h415.1c28.2 0 51 22.8 51 51s-22.8 51-51 51H367.6L485.2 682c19.9 19.9 19.9 52.2 0 72.1-10 10-23 14.9-36.1 14.9-13 0-26.1-5-36.1-14.9L208.5 549.4l-0.1-0.1c-0.6-0.5-1.1-1.1-1.7-1.7z'></path>\n </svg>\n );\n}\n\n//搜索\nexport function SearchSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M909.824 837.12l-209.408-208.896a333.824 333.824 0 1 0-72.192 72.192l208.896 209.408a51.2 51.2 0 1 0 72.704-72.704z m-477.696-174.592a230.4 230.4 0 1 1 230.4-230.4 230.4 230.4 0 0 1-230.4 230.4z'></path>\n </svg>\n );\n}\n\nexport function ArrowRightSvg() {\n return (\n <svg viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M818.9 547.6c0.3-0.3 0.5-0.6 0.8-0.9 0.3-0.3 0.6-0.6 0.8-1l0.9-1.2c0.2-0.2 0.4-0.5 0.6-0.7 0.3-0.4 0.6-0.9 1-1.3 0.2-0.2 0.3-0.4 0.5-0.7 0.3-0.5 0.6-0.9 0.9-1.4 0.1-0.2 0.3-0.5 0.4-0.7 0.3-0.5 0.5-0.9 0.8-1.4 0.1-0.3 0.3-0.5 0.4-0.8 0.2-0.4 0.5-0.9 0.7-1.3 0.1-0.3 0.3-0.6 0.4-0.9l0.6-1.2c0.2-0.4 0.3-0.7 0.5-1.1 0.2-0.4 0.3-0.7 0.4-1.1 0.2-0.4 0.3-0.8 0.5-1.2 0.1-0.3 0.2-0.7 0.3-1 0.2-0.5 0.3-0.9 0.5-1.4l0.3-0.9c0.1-0.5 0.3-1 0.4-1.5 0.1-0.3 0.1-0.6 0.2-0.8 0.1-0.5 0.2-1.1 0.3-1.6 0.1-0.3 0.1-0.6 0.2-0.9 0.1-0.5 0.2-1 0.3-1.6 0-0.3 0.1-0.7 0.1-1 0.1-0.5 0.1-1 0.2-1.5 0-0.5 0.1-0.9 0.1-1.4 0-0.4 0.1-0.7 0.1-1.1 0.1-1.7 0.1-3.4 0-5.1 0-0.4-0.1-0.8-0.1-1.1 0-0.5-0.1-0.9-0.1-1.4 0-0.5-0.1-1-0.2-1.5 0-0.3-0.1-0.7-0.1-1-0.1-0.5-0.2-1.1-0.3-1.6-0.1-0.3-0.1-0.6-0.2-0.9-0.1-0.5-0.2-1.1-0.3-1.6-0.1-0.3-0.1-0.6-0.2-0.8-0.1-0.5-0.3-1-0.4-1.5l-0.3-0.9c-0.1-0.5-0.3-0.9-0.5-1.4-0.1-0.3-0.2-0.7-0.3-1-0.1-0.4-0.3-0.8-0.5-1.2-0.1-0.4-0.3-0.8-0.4-1.1-0.1-0.4-0.3-0.7-0.5-1.1l-0.6-1.2c-0.1-0.3-0.3-0.6-0.4-0.9-0.2-0.5-0.5-0.9-0.7-1.3-0.1-0.3-0.3-0.5-0.4-0.8-0.3-0.5-0.5-0.9-0.8-1.4-0.1-0.2-0.3-0.5-0.4-0.7-0.3-0.5-0.6-0.9-0.9-1.4-0.2-0.2-0.3-0.5-0.5-0.7-0.3-0.5-0.6-0.9-1-1.3-0.2-0.3-0.4-0.5-0.6-0.7l-0.9-1.2c-0.3-0.3-0.5-0.6-0.8-1-0.3-0.3-0.5-0.6-0.8-0.9-0.5-0.6-1.1-1.2-1.7-1.7l-0.1-0.1-204.5-204.8c-19.9-19.9-52.2-19.9-72.1 0-19.9 19.9-19.9 52.2 0 72.1L658 462.4H243c-28.2 0-51 22.8-51 51s22.8 51 51 51h415L540.5 681.9c-19.9 19.9-19.9 52.2 0 72.1 10 10 23 14.9 36.1 14.9s26.1-5 36.1-14.9l204.6-204.6 0.1-0.1c0.4-0.5 1-1.1 1.5-1.7z'></path>\n </svg>\n );\n}\n\nexport function ArrowTopSvg() {\n return (\n <svg className='icon' viewBox='0 0 1000 1000' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M796.014 439.312l-257.492-257.492c-20.11-20.11-52.709-20.11-72.819 0l-257.492 257.492c-20.11 20.11-20.11 52.709 0 72.819s52.709 20.11 72.819 0l169.585-169.585v493.664c0 28.453 23.046 51.499 51.499 51.499s51.499-23.046 51.499-51.499v-493.664l169.585 169.585c10.042 10.043 23.226 15.089 36.41 15.089s26.367-5.021 36.41-15.089c20.11-20.11 20.11-52.709 0-72.819z'></path>\n </svg>\n );\n}\n\nexport function AngleRightSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M761.055557 532.128047c0.512619-0.992555 1.343475-1.823411 1.792447-2.848649 8.800538-18.304636 5.919204-40.703346-9.664077-55.424808L399.935923 139.743798c-19.264507-18.208305-49.631179-17.344765-67.872168 1.888778-18.208305 19.264507-17.375729 49.631179 1.888778 67.872168l316.960409 299.839269L335.199677 813.631716c-19.071845 18.399247-19.648112 48.767639-1.247144 67.872168 9.407768 9.791372 21.984142 14.688778 34.560516 14.688778 12.000108 0 24.000215-4.479398 33.311652-13.439914l350.048434-337.375729c0.672598-0.672598 0.927187-1.599785 1.599785-2.303346 0.512619-0.479935 1.056202-0.832576 1.567101-1.343475C757.759656 538.879828 759.199462 535.391265 761.055557 532.128047z'></path>\n </svg>\n );\n}\n\nexport function OutdentSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M64 128c0-35.4 28.6-64 64-64h768c35.4 0 64 28.6 64 64s-28.6 64-64 64H128C92.6 192 64 163.4 64 128z m384 256c0-35.4 28.6-64 64-64h384c35.4 0 64 28.6 64 64s-28.6 64-64 64H512c-35.4 0-64-28.6-64-64z m64 192h384c35.4 0 64 28.6 64 64s-28.6 64-64 64H512c-35.4 0-64-28.6-64-64s28.6-64 64-64zM64 896c0-35.4 28.6-64 64-64h768c35.4 0 64 28.6 64 64s-28.6 64-64 64H128c-35.4 0-64-28.6-64-64z m0.4-358.8c-16.4-12.8-16.4-37.8 0-50.6L268.2 328c21-16.4 51.6-1.4 51.6 25.2v317.4c0 26.6-30.6 41.6-51.6 25.2L64.4 537.2z'></path>\n </svg>\n );\n}\n\nexport function CaretRight() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M159.24 128.8v766.4c0 80.38 92.44 125.62 156 76.3l512.18-398.12a96.62 96.62 0 0 0-2.88-154.74L312.28 50.34C248.36 4.38 159.24 50 159.24 128.8z'></path>\n </svg>\n );\n}\n\nexport function CircleCheckSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M512 981.333333C252.8 981.333333 42.666667 771.2 42.666667 512S252.8 42.666667 512 42.666667s469.333333 210.133333 469.333333 469.333333-210.133333 469.333333-469.333333 469.333333z m0-85.333333a384 384 0 1 0 0-768 384 384 0 0 0 0 768z m-85.333333-316.330667l225.834666-225.834666 60.330667 60.330666L426.666667 700.330667l-158.165334-158.165334 60.330667-60.330666L426.666667 579.669333z'></path>\n </svg>\n );\n}\nexport function DoneSvg() {\n return (\n <svg\n viewBox='0 0 1024 1024'\n version='1.1'\n width='16px'\n height='16px'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M512 1024q218-5 362.5-149.5T1024 512q-5-218-149.5-362.5T512 0Q294 5 149.5 149.5T0 512q5 218 149.5 362.5T512 1024z m169-684q13-13 30-13t30 13q13 13 13 30t-12 30L484 659q-13 12-30.5 12T424 659L283 518q-13-13-13-30t13-30q13-13 30-13t30 13l111 110 227-228z'\n fill='#3dbd7d'\n ></path>\n </svg>\n );\n}\n\nexport function ProcessingSvg() {\n return (\n <svg\n width='18px'\n height='18px'\n viewBox='0 0 1024 1024'\n version='1.1'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n d='M512 950.848c-242.368 0-438.848-196.48-438.848-438.848C73.152 269.632 269.632 73.152 512 73.152c242.368 0 438.848 196.48 438.848 438.848 0 242.368-196.48 438.848-438.848 438.848z m219.872-428.032h-183.296V229.888a36.576 36.576 0 1 0-73.152 0v366.08h256.448a36.576 36.576 0 1 0 0-73.152z'\n fill='#0277fb'\n ></path>\n </svg>\n );\n}\n\n//分享链接\nexport function ShareLinkSvg() {\n return (\n <svg className='svg-icon' viewBox='0 0 1024 1024'>\n <path\n d='M832.85333333 675.84L407.3244448 512l425.52888853-163.84c34.13333333-13.65333333 52.33777813-52.33777813 38.6844448-88.74666667-13.65333333-34.13333333-52.33777813-52.33777813-88.74666666-38.6844448l-591.6444448 227.55555627C166.1155552 457.38666667 147.91111147 484.69333333 147.91111147 512s18.2044448 54.61333333 43.2355552 63.7155552l591.6444448 227.55555627c9.10222187 2.2755552 15.92888853 4.55111147 25.0311104 4.5511104 27.30666667 0 52.33777813-15.92888853 63.71555626-43.2355552 13.65333333-36.40888853-4.55111147-75.09333333-38.6844448-88.74666667z'\n fill='#92c4ff'\n ></path>\n <path\n d='M216.17777813 512m-159.2888896 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n <path\n d='M807.82222187 284.4444448m-159.28888854 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n <path\n d='M807.82222187 739.5555552m-159.28888854 0a159.28888853 159.28888853 0 1 0 318.57777814 0 159.28888853 159.28888853 0 1 0-318.57777814 0Z'\n fill='#2070e5'\n ></path>\n </svg>\n );\n}\n\nexport function UpdateSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M512 919.552c-224.768 0-407.552-182.784-407.552-407.552 0-8.704 0.512-17.408 1.024-26.112l71.68 4.608c-0.512 7.168-0.512 14.336-0.512 21.504 0 185.344 150.528 335.872 335.872 335.872 86.528 0 168.448-32.768 230.912-92.16l49.152 52.224C716.288 880.128 616.96 919.552 512 919.552zM919.552 512h-71.68c0-11.776-0.512-23.552-2.048-35.328-17.92-171.52-161.28-300.544-334.336-300.544-67.584 0-132.096 19.968-187.904 57.344L284.16 174.08c67.072-45.568 145.92-69.632 227.84-69.632 209.408 0 384 156.672 405.504 365.056 1.536 13.824 2.048 28.16 2.048 42.496z'></path>\n <path d='M140.288 290.816L28.16 491.52c-3.072 5.12 1.024 11.776 6.656 11.776H258.56c6.144 0 9.728-6.144 6.656-11.776L153.6 290.816c-3.072-5.632-10.752-5.632-13.312 0zM870.4 675.84L758.272 475.136c-3.072-5.12 1.024-11.776 6.656-11.776h223.744c6.144 0 9.728 6.144 6.656 11.776L883.712 675.84c-2.56 5.12-10.24 5.12-13.312 0zM270.336 202.24a35.84 35.84 0 1 0 71.68 0 35.84 35.84 0 1 0-71.68 0zM728.576 784.896a35.84 35.84 0 1 0 71.68 0 35.84 35.84 0 1 0-71.68 0z'></path>\n </svg>\n );\n}\n\n//空数据\nexport function NullDataSvg() {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n xmlnsXlink='http://www.w3.org/1999/xlink'\n viewBox='0 0 512 512'\n >\n <defs>\n <linearGradient\n gradientUnits='userSpaceOnUse'\n y2='181.12'\n x2='1'\n y1='91.35'\n x1='1'\n id='color_line_26'\n >\n <stop stopColor='#81cfff' offset='0' />\n <stop stopOpacity='0' stopColor='#5ecfff' offset='1' />\n </linearGradient>\n <linearGradient\n xlinkHref='#color_line_26'\n y2='161.88'\n x2='455.01'\n y1='72.11'\n x1='455.01'\n id='color_line_26-2'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='199.51'\n x2='40.9'\n y1='143.88'\n x1='40.9'\n id='color_line_26-3'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='123.17'\n x2='64.97'\n y1='95.36'\n x1='64.97'\n id='color_line_26-4'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='132.02'\n x2='397.23'\n y1='104.2'\n x1='397.23'\n id='color_line_26-5'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='189.13'\n x2='424.75'\n y1='133.49'\n x1='424.75'\n id='color_line_26-6'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='262.12'\n x2='232.75'\n y1='224.43'\n x1='232.75'\n id='color_line_26-7'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='204.03'\n x2='349.36'\n y1='26.68'\n x1='349.36'\n id='color_line_26-8'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='204.03'\n x2='201.45'\n y1='55.61'\n x1='201.45'\n id='color_line_26-9'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='204.03'\n x2='122.98'\n y1='26.68'\n x1='122.98'\n id='color_line_26-10'\n />\n <linearGradient\n xlinkHref='#color_line_26'\n y2='209.54'\n x2='273.51'\n y1='0'\n x1='273.51'\n id='color_line_26-11'\n />\n </defs>\n <title>暂无历史数据</title>\n <g>\n <path\n id='svg_7'\n fill='url(#color_line_26-7)'\n opacity='0.4'\n d='m412.28,262.12c-23,-23 -61,-37.69 -179.53,-37.69s-156.51,14.67 -179.54,37.69l359.07,0z'\n className='cls-7'\n />\n <g id='svg_57'>\n <line\n id='svg_1'\n stroke='url(#color_line_26)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='167.12'\n x2='1'\n y1='77.35'\n x1='1'\n className='cls-1'\n />\n <line\n id='svg_2'\n stroke='url(#color_line_26-2)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='147.88'\n x2='455.01'\n y1='58.11'\n x1='455.01'\n className='cls-2'\n />\n <line\n id='svg_3'\n stroke='url(#color_line_26-3)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='185.51'\n x2='40.9'\n y1='129.88'\n x1='40.9'\n className='cls-3'\n />\n <line\n id='svg_4'\n stroke='url(#color_line_26-4)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='109.17'\n x2='64.97'\n y1='81.36'\n x1='64.97'\n className='cls-4'\n />\n <line\n id='svg_5'\n stroke='url(#color_line_26-5)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='118.02'\n x2='397.23'\n y1='90.2'\n x1='397.23'\n className='cls-5'\n />\n <line\n id='svg_6'\n stroke='url(#color_line_26-6)'\n strokeWidth='2px'\n strokeMiterlimit='10'\n fill='none'\n y2='175.13'\n x2='424.75'\n y1='119.49'\n x1='424.75'\n className='cls-6'\n />\n <g id='svg_8' opacity='0.7' className='cls-8'>\n <path\n id='svg_9'\n fill='url(#color_line_26-8)'\n opacity='0.4'\n d='m381.66,33.68l-62.59,0a2.71,2.71 0 0 0 -2.82,2.59l0,172.17a2.71,2.71 0 0 0 2.82,2.59l62.59,0a2.72,2.72 0 0 0 2.82,-2.59l0,-172.17a2.72,2.72 0 0 0 -2.82,-2.59zm-52.36,120.32a0.9,0.9 0 0 1 -0.95,0.87l-3.6,0a0.9,0.9 0 0 1 -0.95,-0.87l0,-19.73a0.91,0.91 0 0 1 0.95,-0.87l3.6,0a0.91,0.91 0 0 1 0.95,0.87l0,19.73zm0,-30.23a0.91,0.91 0 0 1 -0.95,0.87l-3.6,0a0.91,0.91 0 0 1 -0.95,-0.87l0,-19.77a0.91,0.91 0 0 1 0.95,-0.87l3.6,0a0.91,0.91 0 0 1 0.95,0.87l0,19.77zm0,-30.24a0.91,0.91 0 0 1 -0.95,0.87l-3.6,0a0.91,0.91 0 0 1 -0.95,-0.87l0,-19.73a0.91,0.91 0 0 1 0.95,-0.87l3.6,0a0.91,0.91 0 0 1 0.95,0.87l0,19.73zm0,-30.24a0.91,0.91 0 0 1 -0.95,0.87l-3.6,0a0.91,0.91 0 0 1 -0.95,-0.87l0,-19.73a0.91,0.91 0 0 1 0.95,-0.87l3.6,0a0.91,0.91 0 0 1 0.95,0.87l0,19.73zm11.7,90.71a0.9,0.9 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.95,-0.87l0,-19.73a0.92,0.92 0 0 1 0.95,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.23a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.92,0.92 0 0 1 -0.95,-0.87l0,-19.77a0.92,0.92 0 0 1 0.95,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.77zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.92,0.92 0 0 1 -0.95,-0.87l0,-19.73a0.92,0.92 0 0 1 0.95,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.92,0.92 0 0 1 -0.95,-0.87l0,-19.73a0.92,0.92 0 0 1 0.95,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm11.7,90.71a0.9,0.9 0 0 1 -0.94,0.87l-3.61,0a0.9,0.9 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.23a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.77a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.77zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm11.7,90.71a0.9,0.9 0 0 1 -0.94,0.87l-3.61,0a0.9,0.9 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.23a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.77a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.77zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm0,-30.24a0.91,0.91 0 0 1 -0.94,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.91,0.91 0 0 1 0.94,0.87l0,19.73zm11.71,90.71a0.91,0.91 0 0 1 -0.95,0.87l-3.61,0a0.9,0.9 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.92,0.92 0 0 1 0.95,0.87l0,19.73zm0,-30.23a0.92,0.92 0 0 1 -0.95,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.77a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.92,0.92 0 0 1 0.95,0.87l0,19.77zm0,-30.24a0.92,0.92 0 0 1 -0.95,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.92,0.92 0 0 1 0.95,0.87l0,19.73zm0,-30.24a0.92,0.92 0 0 1 -0.95,0.87l-3.61,0a0.91,0.91 0 0 1 -0.94,-0.87l0,-19.73a0.91,0.91 0 0 1 0.94,-0.87l3.61,0a0.92,0.92 0 0 1 0.95,0.87l0,19.73z'\n className='cls-9'\n />\n <path\n id='svg_10'\n fill='url(#color_line_26-9)'\n opacity='0.4'\n d='m232.1,62.61l-59.3,0a2.71,2.71 0 0 0 -2.8,2.59l0,143.24a2.71,2.71 0 0 0 2.8,2.56l59.3,0a2.71,2.71 0 0 0 2.82,-2.59l0,-143.21a2.71,2.71 0 0 0 -2.82,-2.59zm-48.63,103.76a1.16,1.16 0 0 1 -1.2,1.11l-5.4,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l5.4,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.4,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.4,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l5.4,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.4,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.4,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l5.4,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.4,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.4,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l5.4,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.4,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.18a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l0,5.18zm10.08,90.19a1.16,1.16 0 0 1 -1.2,1.11l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.22a1.16,1.16 0 0 1 1.21,-1.1l5.4,0a1.15,1.15 0 0 1 1.2,1.1l-0.05,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.22a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l-0.05,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.22a1.16,1.16 0 0 1 1.21,-1.1l5.4,0a1.15,1.15 0 0 1 1.2,1.1l-0.05,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.22a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l-0.05,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.21a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.15,1.15 0 0 1 1.2,1.11l-0.05,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.22a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.16,1.16 0 0 1 1.2,1.11l-0.05,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.21a1.16,1.16 0 0 1 1.21,-1.11l5.4,0a1.15,1.15 0 0 1 1.2,1.11l-0.05,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-5.35,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.18a1.16,1.16 0 0 1 1.21,-1.15l5.4,0a1.16,1.16 0 0 1 1.2,1.11l-0.05,5.22zm10.08,90.19a1.16,1.16 0 0 1 -1.21,1.11l-5.42,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l5.4,0a1.16,1.16 0 0 1 1.21,1.1l0.02,5.22zm0,-12.88a1.16,1.16 0 0 1 -1.21,1.1l-5.42,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.21,1.11l-5.42,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l5.4,0a1.16,1.16 0 0 1 1.21,1.1l0.02,5.22zm0,-12.88a1.16,1.16 0 0 1 -1.21,1.1l-5.42,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.21,1.11l-5.42,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.21zm0,-12.88a1.16,1.16 0 0 1 -1.21,1.1l-5.42,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.21,1.11l-5.42,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.21,1.11l0.02,5.21zm0,-12.88a1.16,1.16 0 0 1 -1.21,1.1l-5.42,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.18a1.16,1.16 0 0 1 1.2,-1.11l5.4,0a1.16,1.16 0 0 1 1.23,1.11l0,5.18zm25.21,90.19a1.16,1.16 0 0 1 -1.2,1.11l-20.54,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l20.54,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-20.54,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l20.54,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-20.54,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.22a1.15,1.15 0 0 1 1.2,-1.1l20.54,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-20.54,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l20.54,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-20.54,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l20.54,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-20.54,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.22a1.16,1.16 0 0 1 1.2,-1.11l20.54,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-12.89a1.16,1.16 0 0 1 -1.2,1.11l-20.54,0a1.16,1.16 0 0 1 -1.2,-1.11l0,-5.21a1.15,1.15 0 0 1 1.2,-1.11l20.54,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-12.88a1.15,1.15 0 0 1 -1.2,1.1l-20.54,0a1.15,1.15 0 0 1 -1.2,-1.1l0,-5.18a1.16,1.16 0 0 1 1.2,-1.11l20.54,0a1.16,1.16 0 0 1 1.2,1.11l0,5.18z'\n className='cls-10'\n />\n <path\n id='svg_11'\n fill='url(#color_line_26-10)'\n opacity='0.4'\n d='m162.13,33.68l-76.3,0a2.71,2.71 0 0 0 -2.83,2.59l0,172.17a2.71,2.71 0 0 0 2.83,2.56l76.3,0a2.71,2.71 0 0 0 2.82,-2.59l0,-172.14a2.71,2.71 0 0 0 -2.82,-2.59zm-6.79,134.32a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.21a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-14.67a1.15,1.15 0 0 1 -1.2,1.1l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.22a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.16,1.16 0 0 1 1.2,1.11l0,5.22zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.22a1.16,1.16 0 0 1 1.21,-1.1l60.31,0a1.15,1.15 0 0 1 1.2,1.1l0,5.22zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.21a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.15,1.15 0 0 1 1.2,1.11l0,5.21zm0,-14.67a1.15,1.15 0 0 1 -1.2,1.1l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.3a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.16,1.16 0 0 1 1.2,1.11l0,5.3zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.27a1.16,1.16 0 0 1 1.21,-1.1l60.31,0a1.15,1.15 0 0 1 1.2,1.1l0,5.27zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.26a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.15,1.15 0 0 1 1.2,1.11l0,5.26zm0,-14.67a1.15,1.15 0 0 1 -1.2,1.1l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.1l0,-5.27a1.16,1.16 0 0 1 1.21,-1.11l60.31,0a1.16,1.16 0 0 1 1.2,1.11l0,5.27zm0,-14.68a1.16,1.16 0 0 1 -1.2,1.11l-60.31,0a1.16,1.16 0 0 1 -1.21,-1.11l0,-5.27a1.16,1.16 0 0 1 1.21,-1.1l60.31,0a1.15,1.15 0 0 1 1.2,1.1l0,5.27z'\n className='cls-11'\n />\n <path\n id='svg_12'\n fill='url(#color_line_26-11)'\n opacity='0.4'\n d='m307.21,7l-65.39,0a2.51,2.51 0 0 0 -2.42,2.59l0,204.35a2.51,2.51 0 0 0 2.42,2.6l65.39,0a2.51,2.51 0 0 0 2.41,-2.6l0,-204.35a2.51,2.51 0 0 0 -2.41,-2.59zm-5.82,134.28a1.06,1.06 0 0 1 -1,1.1l-51.72,0a1.06,1.06 0 0 1 -1,-1.1l0,-5.22a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.22a1.06,1.06 0 0 1 1,-1.1l51.69,0a1.06,1.06 0 0 1 1,1.1l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.21a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.21zm0,-14.67a1.06,1.06 0 0 1 -1,1.1l-51.72,0a1.06,1.06 0 0 1 -1,-1.1l0,-5.25a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.25zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.22a1.06,1.06 0 0 1 1,-1.1l51.69,0a1.06,1.06 0 0 1 1,1.1l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.21a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.21zm0,-14.67a1.06,1.06 0 0 1 -1,1.1l-51.72,0a1.06,1.06 0 0 1 -1,-1.1l0,-5.22a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.22a1.06,1.06 0 0 1 1,-1.1l51.69,0a1.06,1.06 0 0 1 1,1.1l0.03,5.22zm0,-14.68a1.07,1.07 0 0 1 -1,1.11l-51.72,0a1.07,1.07 0 0 1 -1,-1.11l0,-5.21a1.07,1.07 0 0 1 1,-1.11l51.69,0a1.07,1.07 0 0 1 1,1.11l0.03,5.21z'\n className='cls-12'\n />\n </g>\n </g>\n <g transform='rotate(-12 333.085 213.426)' id='svg_58'>\n <polygon\n id='svg_22'\n fill='#57b3f5'\n points='339.3399963378906,228.0500030517578 339.3399963378906,228.0399932861328 340.7200012207031,228.82000732421875 340.7200012207031,228.8300018310547 327.71002197265625,243.99000549316406 327.6399841308594,241.6699981689453 327.7699890136719,241.52000427246094 339.3399963378906,228.0500030517578 '\n className='cls-15'\n />\n <polygon\n id='svg_23'\n fill='#4899e3'\n points='337.3999938964844,226.9499969482422 339.3399963378906,228.0399932861328 339.3399963378906,228.0500030517578 327.7699890136719,241.52000427246094 326.010009765625,240.14999389648438 337.3999938964844,226.9499969482422 '\n className='cls-17'\n />\n <polygon\n id='svg_24'\n fill='#4888e3'\n points='336.010009765625,226.1699981689453 337.3999938964844,226.9499969482422 326.010009765625,240.14999389648438 325.94000244140625,237.8300018310547 336.010009765625,226.1699981689453 '\n className='cls-18'\n />\n <polygon\n id='svg_25'\n fill='#57b3f5'\n points='313.6399841308594,212.77999877929688 301.54998779296875,225.8300018310547 300.3999938964844,224.10000610351562 312.3900146484375,211.0399932861328 313.6399841308594,212.77999877929688 '\n className='cls-15'\n />\n <polygon\n id='svg_26'\n fill='#69bff5'\n points='314.55999755859375,214.07000732421875 300.9900207519531,228.8300018310547 300.91998291015625,226.50999450683594 301.54998779296875,225.8300018310547 313.6399841308594,212.77999877929688 314.55999755859375,214.05999755859375 314.55999755859375,214.07000732421875 '\n className='cls-14'\n />\n <polygon\n id='svg_27'\n fill='#69bff5'\n points='317.97998046875,210.16000366210938 314.57000732421875,214.0800018310547 314.55999755859375,214.07000732421875 314.55999755859375,214.05999755859375 313.6399841308594,212.77999877929688 312.3900146484375,211.0399932861328 315.83001708984375,207.02000427246094 317.97998046875,210.16000366210938 '\n className='cls-14'\n />\n <polygon\n id='svg_28'\n fill='#7dccf5'\n points='366.510009765625,189.3300018310547 372.25,198.19000244140625 368.04998779296875,195.8300018310547 364.0799865722656,190.27999877929688 366.510009765625,189.3300018310547 '\n className='cls-13'\n />\n <polygon\n id='svg_29'\n fill='#57b3f5'\n points='364.0799865722656,190.27999877929688 368.04998779296875,195.8300018310547 347.95001220703125,219 362.3399963378906,190.9600067138672 364.0799865722656,190.27999877929688 '\n className='cls-15'\n />\n <polygon\n id='svg_30'\n fill='#57b3f5'\n points='315.83001708984375,207.02000427246094 319.9700012207031,207.61000061035156 343.2799987792969,217.55999755859375 347.95001220703125,219 343.4100036621094,224.24000549316406 317.97998046875,210.16000366210938 315.83001708984375,207.02000427246094 '\n className='cls-15'\n />\n <polygon\n id='svg_31'\n fill='#8cd7ff'\n points='372.25,198.19000244140625 344.02001953125,230.67999267578125 340.7200012207031,228.82000732421875 339.3399963378906,228.0399932861328 337.3999938964844,226.9499969482422 336.010009765625,226.1699981689453 317.8399963378906,215.92999267578125 314.57000732421875,214.0800018310547 317.97998046875,210.16000366210938 343.4100036621094,224.24000549316406 347.95001220703125,219 368.04998779296875,195.8300018310547 372.25,198.19000244140625 '\n className='cls-16'\n />\n <polygon\n id='svg_32'\n fill='#8cd7ff'\n points='314.57000732421875,214.0800018310547 317.8399963378906,215.92999267578125 304.1099853515625,231.25999450683594 300.9900207519531,228.8300018310547 314.55999755859375,214.07000732421875 314.57000732421875,214.0800018310547 '\n className='cls-16'\n />\n <polygon\n id='svg_33'\n fill='#8cd7ff'\n points='344.02001953125,230.67999267578125 330.83001708984375,246.4199981689453 327.71002197265625,243.99000549316406 340.7200012207031,228.8300018310547 340.7200012207031,228.82000732421875 344.02001953125,230.67999267578125 '\n className='cls-16'\n />\n <path\n id='svg_34'\n fill='#ebfcff'\n d='m293.92,189.8c0.14,-0.42 0.87,-0.52 1.23,-0.31c-0.22,-0.08 -0.37,0.1 -0.32,0.41a18.89,18.89 0 0 0 2.57,8.21c0.26,0.72 0.42,2.62 0.72,3.6a1.28,1.28 0 0 0 1.17,1.07a1.28,1.28 0 0 1 -1.66,0.41c-0.73,-0.32 -1.24,-2.83 -1.35,-3.31s-1.24,-5.35 -1.58,-6a13.51,13.51 0 0 1 -0.78,-4.08z'\n className='cls-19'\n />\n <path\n id='svg_35'\n fill='#e49056'\n d='m301.27,201.87a11.25,11.25 0 0 1 -1.73,0.89l-0.25,0a1.28,1.28 0 0 1 -1.17,-1.07c-0.3,-1 -0.46,-2.88 -0.72,-3.6a18.89,18.89 0 0 1 -2.57,-8.21c-0.05,-0.31 0.1,-0.49 0.32,-0.41a21.68,21.68 0 0 1 2.71,3.15a9.11,9.11 0 0 0 3.8,3.88a1.67,1.67 0 0 1 0.14,0.53c0.07,0.63 -0.18,1.21 -0.54,1.26s-0.93,-0.19 -0.87,0.48a2,2 0 0 0 1,1.57c0.44,0.17 0.76,0.12 0.76,0.64a3.28,3.28 0 0 0 0,0.34c0,0.27 0.08,0.41 0,0.51s-0.54,-0.15 -0.88,0.04z'\n className='cls-20'\n />\n <path\n id='svg_36'\n strokeWidth='0.09px'\n stroke='#4986d9'\n strokeMiterlimit='10'\n fill='none'\n d='m295.15,189.49c-0.36,-0.21 -1.09,-0.11 -1.23,0.31a13.51,13.51 0 0 0 0.78,4c0.34,0.68 1.48,5.55 1.58,6s0.62,3 1.35,3.31a1.28,1.28 0 0 0 1.66,-0.41l0,0'\n className='cls-21'\n />\n <path\n id='svg_37'\n fill='#a4e5ff'\n d='m359,190.06a0.56,0.56 0 0 0 0.08,0.54a1.72,1.72 0 0 1 -0.61,-0.13l0.53,-0.41z'\n className='cls-22'\n />\n <path\n id='svg_38'\n d='m360.72,187.15c0.83,-2.68 -0.21,-5.38 -2.33,-6a4.15,4.15 0 0 0 -4.53,2a1.78,1.78 0 0 1 -0.78,-1.71c0.08,0.57 1,1.11 1.43,0.43a2.71,2.71 0 0 1 0.87,-0.68c1.11,-0.59 3,-1 4.28,0.11a5.06,5.06 0 0 1 1.49,2.27a6.1,6.1 0 0 1 0.11,3.45a1.8,1.8 0 0 1 -0.18,0.65a6.73,6.73 0 0 1 -1.56,1.71a6.18,6.18 0 0 0 1.2,-2.23z'\n />\n <path\n id='svg_39'\n fill='#257fba'\n d='m339.52,208.84c0,0.23 0,0.46 0.08,0.68l0,0l-1.69,1l-16.33,-9a3.33,3.33 0 0 0 -1,-0.33l-15.58,-2.4l19.33,-1.38a2.59,2.59 0 0 1 1.85,0.59l13.38,10.84l-0.04,0z'\n className='cls-23'\n />\n <path\n id='svg_40'\n fill='#398eed'\n d='m343.27,217.56l-3.69,2.24a3.64,3.64 0 0 1 -4.11,-0.23l-15.51,-12l-18.42,-2.57l0.39,-2.11l0.72,-3.9l0.1,-0.52l2.2,0.34l0,0l15.65,2.4a3.33,3.33 0 0 1 1,0.33l16.33,9l1.69,-1l0,0a13.71,13.71 0 0 0 3.65,8.02z'\n className='cls-24'\n />\n <path\n id='svg_41'\n fill='#ffb056'\n d='m351.69,185l0,0a2.9,2.9 0 0 1 1.36,-0.26a5.06,5.06 0 0 0 1.31,5.51a4.22,4.22 0 0 1 0,1.34c-0.45,0 -1.47,0 -1.22,1.35s3,1 3.53,0a2.49,2.49 0 0 1 0.91,-1.85l0.81,-0.62a1.72,1.72 0 0 0 0.61,0.13a0.56,0.56 0 0 1 -0.08,-0.54l2.46,-1.9a15.75,15.75 0 0 1 2.2,4a8.34,8.34 0 0 1 0.83,4.4a17,17 0 0 0 -7.27,6.42c-2.09,3.48 -7.29,14 -8.05,15.85c-1.56,0.18 -3.29,0.42 -3.29,0.42a7.42,7.42 0 0 1 -2.57,-1.72a13.71,13.71 0 0 1 -3.67,-8c0,-0.22 -0.06,-0.45 -0.08,-0.68s0,-0.28 0,-0.41c-0.2,-2.18 0.87,-1.09 1.56,-1.39s8.25,-12.5 8.61,-13.49a16.58,16.58 0 0 0 0.34,-7.44a4.11,4.11 0 0 1 1.7,-1.12z'\n className='cls-25'\n />\n <path\n id='svg_42'\n fill='#fae6d2'\n d='m353.08,181.4a1.78,1.78 0 0 0 0.78,1.71a6.3,6.3 0 0 0 -0.8,1.67a2.9,2.9 0 0 0 -1.36,0.26c0.23,-1 0.12,-3 1,-3.77s2.67,-0.12 2.67,-0.12a2.71,2.71 0 0 0 -0.87,0.68c-0.44,0.68 -1.34,0.17 -1.42,-0.43z'\n className='cls-26'\n />\n <path\n id='svg_43'\n fill='#ffeed2'\n d='m361.68,188l0,0l-0.6,-0.32a1.8,1.8 0 0 0 0.18,-0.65a6.1,6.1 0 0 0 -0.11,-3.45l6.33,2.76a1.08,1.08 0 0 1 0.32,1.76l-4.18,4.14a15.75,15.75 0 0 0 -2.2,-4l0.26,-0.24z'\n className='cls-27'\n />\n <path\n id='svg_44'\n fill='#ffeed2'\n d='m355.39,190.82a3.52,3.52 0 0 0 2.88,-0.42l0.16,0.07l-0.81,0.62a2.49,2.49 0 0 0 -0.91,1.85c-0.56,1 -3.27,1.43 -3.53,0s0.77,-1.31 1.22,-1.35a4.22,4.22 0 0 0 0,-1.34a3.3,3.3 0 0 0 0.99,0.57z'\n className='cls-27'\n />\n <path\n id='svg_45'\n fill='#ffeed2'\n d='m357.64,183.61a3.81,3.81 0 0 1 0.23,4.74c-0.89,1.12 -0.23,1.76 0.4,2.05a3.52,3.52 0 0 1 -2.88,0.42a3.3,3.3 0 0 1 -1,-0.53a5.06,5.06 0 0 1 -1.31,-5.51a6.3,6.3 0 0 1 0.8,-1.67a0.62,0.62 0 0 0 0.23,0.07c0.73,0.09 2.74,-0.35 3.53,0.43z'\n className='cls-27'\n />\n <polygon\n id='svg_46'\n fill='#ffeed2'\n points='302.6499938964844,198.97000122070312 301.92999267578125,202.8699951171875 300.1600036621094,202.16000366210938 300.54998779296875,198.39999389648438 302.6499938964844,198.97000122070312 '\n className='cls-27'\n />\n <path\n id='svg_47'\n strokeWidth='0.23px'\n stroke='#000'\n strokeMiterlimit='10'\n fill='none'\n d='m359.51,189.36c-0.11,0.13 -0.24,0.25 -0.36,0.37'\n className='cls-28'\n />\n <path\n id='svg_48'\n d='m361.27,183.49a5.25,5.25 0 0 0 -1.53,-2.31a3.91,3.91 0 0 0 -4.41,-0.13l0,0a2.86,2.86 0 0 0 -0.92,0.71a0.52,0.52 0 0 1 -0.59,0.25a0.8,0.8 0 0 1 -0.62,-0.62l-0.11,-0.77l-0.13,0.77a1.93,1.93 0 0 0 0.85,1.83a0.77,0.77 0 0 0 0.27,0.08a7.1,7.1 0 0 0 0.91,0c0.86,0 2,-0.12 2.57,0.41a3.72,3.72 0 0 1 0.22,4.58a1.58,1.58 0 0 0 -0.43,1.32a1.45,1.45 0 0 0 0.88,0.91a0.15,0.15 0 0 0 0.11,0l0,0l0.06,0a2.56,2.56 0 0 1 0.25,-0.16a0.78,0.78 0 0 0 0.35,-0.36s0,0 0.07,-0.08a0.79,0.79 0 0 0 0.14,-0.13a2.79,2.79 0 0 1 0.35,-0.37l0.31,-0.29a4.94,4.94 0 0 0 1.27,-1.46a1.9,1.9 0 0 0 0.2,-0.67a6.3,6.3 0 0 0 -0.07,-3.51z'\n />\n <path\n id='svg_49'\n opacity='0.2'\n stroke='#e55c5c'\n strokeWidth='0.23px'\n strokeMiterlimit='10'\n fill='none'\n d='m354.4,191.63c-0.05,0.28 -0.16,0.49 -0.35,0.51'\n className='cls-29'\n />\n <path\n id='svg_50'\n opacity='0.2'\n stroke='#e55c5c'\n strokeWidth='0.23px'\n strokeMiterlimit='10'\n fill='none'\n d='m361.42,188.16l0.26,-0.21l1.58,-1.22'\n className='cls-29'\n />\n <ellipse\n transform='rotate(-74.08 123.85 385)'\n id='svg_51'\n fill='#ffeed2'\n ry='0.8'\n rx='1.17'\n cy='556.35'\n cx='378.24'\n className='cls-27'\n />\n <ellipse\n id='svg_52'\n fill='#e55c5c'\n opacity='0.2'\n transform='matrix(0.27 -0.96 0.96 0.27 19.85 369)'\n ry='0.47'\n rx='0.68'\n cy='276.08604'\n cx='267.18035'\n className='cls-30'\n />\n <path\n id='svg_53'\n fill='#ebfcff'\n d='m300.56,188.35c0.34,-0.28 1,0 1.2,0.41c-0.14,-0.19 -0.37,-0.12 -0.49,0.16a19,19 0 0 0 -2.25,8.31c-0.17,0.75 -1.05,2.43 -1.34,3.42a1.28,1.28 0 0 0 0.42,1.53a1.27,1.27 0 0 1 -1.62,-0.54c-0.45,-0.67 0.47,-3.07 0.64,-3.52s1.83,-5.18 1.91,-5.94a13.54,13.54 0 0 1 1.53,-3.83z'\n className='cls-19'\n />\n <path\n id='svg_54'\n fill='#ffb056'\n d='m300.25,202.48a10.84,10.84 0 0 1 -1.93,-0.18a1.19,1.19 0 0 1 -0.22,-0.12a1.28,1.28 0 0 1 -0.42,-1.53c0.29,-1 1.17,-2.67 1.34,-3.42a19,19 0 0 1 2.25,-8.31c0.12,-0.28 0.35,-0.35 0.49,-0.16a21,21 0 0 1 0.59,4.1a9.09,9.09 0 0 0 1.12,5.32a1.83,1.83 0 0 1 -0.17,0.53c-0.28,0.56 -0.81,0.92 -1.13,0.76s-0.68,-0.66 -1,-0.06a2.05,2.05 0 0 0 0,1.86c0.28,0.38 0.57,0.51 0.3,0.95a2.25,2.25 0 0 0 -0.16,0.3c-0.13,0.25 -0.16,0.38 -0.33,0.4s-0.34,-0.42 -0.73,-0.44z'\n className='cls-25'\n />\n <path\n id='svg_55'\n strokeWidth='0.09px'\n stroke='#4986d9'\n strokeMiterlimit='10'\n fill='none'\n d='m301.76,188.76c-0.19,-0.38 -0.86,-0.69 -1.2,-0.41a13.54,13.54 0 0 0 -1.53,3.83c-0.08,0.76 -1.74,5.48 -1.91,5.94s-1.09,2.85 -0.64,3.52a1.27,1.27 0 0 0 1.62,0.54l0,0'\n className='cls-21'\n />\n </g>\n <g transform='rotate(-180 196.395 199.245)' opacity='0.88' id='svg_56'>\n <polygon\n id='svg_13'\n fill='#7dccf5'\n points='137.75,247.66000366210938 175.89999389648438,224.32000732421875 223.51998901367188,224.76998901367188 223.29000854492188,248.47000122070312 137.75,247.66000366210938 '\n className='cls-13'\n />\n <polygon\n id='svg_14'\n fill='#69bff5'\n points='223.29000854492188,248.47000122070312 223.51998901367188,224.76998901367188 261.44000244140625,225.13999938964844 223.29000854492188,248.47000122070312 '\n className='cls-14'\n />\n <polygon\n id='svg_15'\n fill='#57b3f5'\n points='261.44000244140625,225.13999938964844 268.75,198.07000732421875 286.5799865722656,187.16000366210938 261.44000244140625,225.13999938964844 '\n className='cls-15'\n />\n <polygon\n id='svg_16'\n fill='#8cd7ff'\n points='106.21000671386719,216.97000122070312 138.22000122070312,197.3699951171875 144.35000610351562,193.62998962402344 175.77999877929688,224.20999145507812 175.77999877929688,224.32000732421875 137.75,247.66000366210938 106.21000671386719,216.97000122070312 '\n className='cls-16'\n />\n <polygon\n id='svg_17'\n fill='#8cd7ff'\n points='268.75,198.07000732421875 261.44000244140625,225.13999938964844 223.51998901367188,224.76998901367188 175.89999389648438,224.32000732421875 184.4499969482422,192.58999633789062 261.739990234375,193.3300018310547 270,193.41000366210938 268.75,198.07000732421875 '\n className='cls-16'\n />\n <polygon\n id='svg_18'\n fill='#69bff5'\n points='138.22000122070312,197.3699951171875 138.4600067138672,173.36000061035156 176.49000549316406,150.02000427246094 175.77999877929688,224.20999145507812 144.35000610351562,193.62998962402344 138.22000122070312,197.3699951171875 '\n className='cls-14'\n />\n <polygon\n id='svg_19'\n fill='#7dccf5'\n points='175.77999877929688,224.20999145507812 176.49000549316406,150.02000427246094 176.61000061035156,150.02000427246094 262.1499938964844,150.83999633789062 261.739990234375,193.3300018310547 184.4499969482422,192.58999633789062 175.89999389648438,224.32000732421875 175.77999877929688,224.20999145507812 '\n className='cls-13'\n />\n <polygon\n id='svg_20'\n fill='#69bff5'\n points='261.7799987792969,189.30999755859375 182.7899932861328,189.30999755859375 175.89999389648438,224.32000732421875 184.4499969482422,192.58999633789062 261.739990234375,193.3300018310547 261.7799987792969,189.30999755859375 '\n className='cls-14'\n />\n <polygon\n id='svg_21'\n fill='#57b3f5'\n points='175.89999389648438,224.32000732421875 151.02999877929688,192.58999633789062 146.1300048828125,195.36000061035156 175.89999389648438,224.32000732421875 '\n className='cls-15'\n />\n </g>\n </g>\n </svg>\n );\n}\n\n//后缀\nexport function SuffixIcon({\n className,\n suffix,\n status,\n}: {\n className: string;\n suffix: string;\n status?: string | React.ReactNode;\n}) {\n let _file = [\n 'folder',\n 'xls',\n 'xlsx',\n 'doc',\n 'docx',\n 'pptx',\n 'md',\n 'txt',\n 'js',\n 'css',\n 'pdf',\n 'html',\n 'json',\n '3dm',\n '3ds',\n '7z',\n 'accdb',\n 'ai',\n 'air',\n 'apk',\n 'arj',\n 'as',\n 'asax',\n 'ascx',\n 'ashx',\n 'asm',\n 'asmx',\n 'aspx',\n 'autodesk',\n 'avi',\n 'bin',\n 'bmp',\n 'bz2',\n 'c',\n 'cab',\n 'cdr',\n 'cer',\n 'chm',\n 'class',\n 'cmd',\n 'code',\n 'cpp',\n 'cs',\n 'cshtml',\n 'csproj',\n 'css',\n 'csv',\n 'dae',\n 'djvu',\n 'dll',\n 'dmg',\n 'dng',\n 'doc',\n 'docm',\n 'docx',\n 'dot',\n 'dotm',\n 'dotx',\n 'dtd',\n 'dwf',\n 'dwg',\n 'dxf',\n 'eml',\n 'eps',\n 'epub',\n 'exe',\n 'f',\n 'fbx',\n 'fla',\n 'flv',\n 'font',\n 'framework',\n 'gif',\n 'graph',\n 'gz',\n 'h',\n 'hdr',\n 'hlp',\n 'iam',\n 'ico',\n 'ifc',\n 'indd',\n 'ini',\n 'ipa',\n 'iso',\n 'jar',\n 'java',\n 'js',\n 'json',\n 'key',\n 'ldf',\n 'lnk',\n 'makefile',\n 'mdb',\n 'mdf',\n 'mht',\n 'mhtml',\n 'midi',\n 'mkv',\n 'mov',\n 'movie',\n 'map4',\n 'mpp',\n 'mpt',\n 'msg',\n 'msi',\n 'music',\n 'numbers',\n 'o',\n 'odp',\n 'ods',\n 'odt',\n 'oexe',\n 'office',\n 'ogg',\n 'pages',\n 'pdb',\n 'php',\n 'pkg',\n 'pi',\n 'pot',\n 'potx',\n 'pps',\n 'ppsx',\n 'prproj',\n 'psd',\n 'pspimage',\n 'pst',\n 'put',\n 'py',\n 'rar',\n 'rd',\n 'reg',\n 'resx',\n 'rmvb',\n 'rtf',\n 'rvt',\n 's',\n 'sitx',\n 'skp',\n 'sln',\n 'sql',\n 'stl',\n 'suo',\n 'svg',\n 'swf',\n 'swift',\n 'tar',\n 'tga',\n 'tgz',\n 'utorrent',\n 'vb',\n 'vbproj',\n 'vbs',\n 'vcf',\n 'vcproj',\n 'vcxproj',\n 'vdw',\n 'vdx',\n 'vsd',\n 'vsdx',\n 'vss',\n 'vst',\n 'vsx',\n 'vtx',\n 'wasm',\n 'xaml',\n 'xap',\n 'xlsb',\n 'xlsm',\n 'xlt',\n 'xltx',\n 'xps',\n 'xsd',\n 'xsl',\n 'y',\n 'zip',\n //非文件类型特色icon\n 'open',\n 'download',\n 'upload',\n 'copy',\n 'shear',\n 'rename',\n 'remove',\n 'update',\n 'file-line',\n 'paste',\n ];\n\n let statuslist = ['done', 'processing'];\n\n let is = _file.includes(suffix);\n return (\n <span\n className={cx(`explorer_icon x-${is ? suffix : 'unknown'}`, {\n [className || '']: className,\n })}\n >\n {status && <StatusIcon status={status} />}\n </span>\n );\n}\n\nexport function StatusIcon({ status = '' }: { status: string | React.ReactNode }) {\n let _localimg = ['done', 'processing'];\n\n if (typeof status === 'string' && status) {\n let is = _localimg.includes(status);\n return is ? (\n <span className={cx(`explorer_icon-state ${status} `)}></span>\n ) : (\n <img className='explorer_icon-stateimg' src={status}></img>\n );\n }\n return status ? <span className={cx(`explorer_icon-state`)}>{status}</span> : null;\n}\n\nexport function UnknownSvg() {\n return (\n <svg viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path\n d='M160 0h512l256 256v704c0 35.3472-28.6528 64-64 64H160c-35.3472 0-64-28.6528-64-64V64c0-35.3472 28.6528-64 64-64z'\n fill='#CCCCCC'\n ></path>\n <path d='M672 0l256 256h-192c-35.3472 0-64-28.6528-64-64V0z' fill='#EAEAEA'></path>\n <path\n d='M384 499.2c0-25.6 5.12-46.08 10.24-58.88 5.12-12.8 15.36-25.6 28.16-35.84 12.8-12.8 25.6-20.48 43.52-25.6 15.36-5.12 30.72-7.68 48.64-7.68 35.84 0 64 10.24 89.6 30.72C627.2 422.4 640 448 640 481.28c0 15.36-5.12 28.16-10.24 40.96s-17.92 28.16-38.4 46.08-28.16 30.72-35.84 38.4c-7.68 7.68-10.24 17.92-15.36 28.16-5.12 10.24-2.56 17.92-2.56 43.52h-51.2c0-25.6 2.56-38.4 5.12-51.2s7.68-23.04 15.36-33.28 15.36-23.04 33.28-40.96c17.92-17.92 30.72-30.72 35.84-38.4 5.12-7.68 10.24-20.48 10.24-38.4s-7.68-30.72-20.48-43.52-30.72-20.48-53.76-20.48c-51.2 0-76.8 35.84-76.8 87.04h-51.2z m153.6 281.6h-51.2v-51.2h51.2v51.2z'\n fill='#FFFFFF'\n ></path>\n </svg>\n );\n}\n\nexport function UploadSvg() {\n return (\n <svg className='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg'>\n <path d='M768 640v128H256V640h-85.333v128c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333V640H768zM298.667 384l60.16 60.16 110.506-110.08v348.587h85.334V334.08l110.506 110.08 60.16-60.16L512 170.667 298.667 384z'></path>\n </svg>\n );\n}\n","import createEmotion from '@emotion/css/create-instance';\n\nexport const {\n flush,\n hydrate,\n cx,\n merge,\n getRegisteredStyles,\n injectGlobal,\n keyframes,\n css,\n sheet,\n cache,\n} = createEmotion({ key: 'explorer' });\n","import './index.less';\nimport React, {\n useState,\n useRef,\n useEffect,\n useMemo,\n CSSProperties,\n useImperativeHandle,\n} from 'react';\nimport { cx } from '@emotion/css';\n\n/**\n * TODO.\n * - 嵌套使用\n * - 最多支持两个子元素 和无数个固定元素 固定元素不能在中间\n * - 目前子元素必须是两个\n */\n\nexport interface DraggableProps {\n ref?: any;\n style?: React.CSSProperties;\n className?: string;\n placement?: 'horizontal' | 'vertical'; // 布局方式 默认 horizontal\n poi?: Array<number | 'max'>; // 线的位置\n fix?: boolean[]; // 默认全不固定\n rang?: number[]; // 每个子元素最小宽度/最小高度 默认不填是 0\n children: React.ReactNode;\n}\n\nconst Draggable: React.FC<DraggableProps> = React.forwardRef(\n (\n {\n className,\n style,\n placement = 'horizontal',\n poi: _poi,\n fix = [false, false],\n rang = [0, 0],\n children,\n },\n ref,\n ) => {\n const boxRef = useRef<HTMLDivElement | null>(null);\n const clickInfoRef = useRef<{ x: number; i: number; w: number }>({ x: 0, i: 0, w: 0 });\n const sashPlacement = placement === 'horizontal' ? 'vertical' : 'horizontal';\n const [sashClicked, setSashClicked] = useState(-1); // 不等于 -1 代表点击了\n const [minimum, setMinimum] = useState(false);\n const [maximum, setMaximum] = useState(false);\n const [poi, setPoi] = useState<Array<number | 'max'>>(_poi || []);\n const [pSize, setParentSize] = useState({\n width: 0,\n height: 0,\n });\n\n useImperativeHandle(ref, () => {\n return {\n // 父组件宽高\n parentSize: pSize,\n\n // 组件是否最大化\n isMaximize: (index: number) => {\n let ps = placement === 'horizontal' ? pSize.width : pSize.height;\n\n if (index) {\n return poi[0] === 0;\n }\n\n return calcMax(poi[0]) === ps;\n },\n\n // 组件是否最小化\n isMinimize: (index: number) => {\n let ps = placement === 'horizontal' ? pSize.width : pSize.height;\n\n if (index) {\n return calcMax(poi[0]) === ps;\n }\n\n return poi[0] === 0;\n },\n\n // 组件最大化\n onMaximize,\n\n // 组件最小化\n onMinimize,\n // 设置组件大小\n setSize,\n };\n });\n\n useEffect(() => {\n // 监听元素大小改变\n const ob = resizeObserver();\n document.addEventListener('mouseleave', cancelDrag);\n\n return () => {\n ob && boxRef.current && ob.unobserve(boxRef.current!);\n document.removeEventListener('mouseleave', cancelDrag);\n };\n }, []);\n\n function resizeObserver() {\n const targetElement = boxRef.current!;\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setParentSize({ width, height });\n }\n });\n\n resizeObserver.observe(targetElement);\n\n return resizeObserver;\n }\n\n function handleMouseMove(e: any) {\n if (~sashClicked) {\n let x = placement === 'horizontal' ? e.clientX || e.pageX : e.clientY || e.pageY;\n\n let $_width = x - clickInfoRef.current.x + clickInfoRef.current.w;\n let index = clickInfoRef.current.i;\n let min = rang[index];\n let max = (placement === 'horizontal' ? pSize.width : pSize.height) - rang.slice(-1)[0];\n\n setMinimum(false);\n setMaximum(false);\n\n if ($_width <= min) {\n $_width = min;\n setMinimum(true);\n } else if ($_width >= max) {\n $_width = max;\n setMaximum(true);\n }\n let $_w2 = placement === 'horizontal' ? pSize.width - $_width : pSize.height - $_width; //第二个模块宽或高\n setPoi([$_width, $_w2]); // TODO.先这么写\n }\n }\n\n function getElementRect(index: number) {\n let curPoi = !index ? 0 : calcMax(poi[index - 1]);\n\n let w = 0;\n if (placement === 'horizontal') {\n curPoi = Math.min(curPoi, pSize.width);\n\n if (index == poi.length - 1 && poi.length > 1) {\n if (fix[index] && poi.length > 1) {\n w = calcMax(poi[index] || 0);\n curPoi = Math.min(pSize.width - w, pSize.width);\n } else {\n w = pSize.width - curPoi;\n }\n } else if (poi[index] === void 0) {\n w = pSize.width - curPoi;\n } else {\n if (fix[index] && poi.length > 1) {\n w = Math.min(calcMax(poi[index] || 0), pSize.width);\n } else {\n if (poi.length > 1) {\n w = pSize.width - calcMax(poi[index + 1] || 0);\n } else {\n w = Math.min(calcMax(poi[index]), pSize.width) - curPoi;\n }\n }\n }\n }\n\n if (placement === 'vertical') {\n if (index == poi.length - 1 && poi.length > 1) {\n if (fix[index] && poi.length > 1) {\n w = calcMax(poi[index] || 0);\n curPoi = Math.min(pSize.height - w, pSize.height);\n } else {\n w = pSize.height - curPoi;\n }\n } else if (poi[index] === void 0) {\n w = pSize.height - curPoi;\n } else {\n if (fix[index] && poi.length > 1) {\n w = Math.min(calcMax(poi[index] || 0), pSize.height);\n } else {\n if (poi.length > 1) {\n w = pSize.height - calcMax(poi[index + 1] || 0);\n } else {\n w = Math.min(calcMax(poi[index]), pSize.height) - curPoi;\n }\n }\n }\n // curPoi = Math.min(curPoi, pSize.height);\n // if (poi[index] === void 0) {\n // // 最后一个\n // w = pSize.height - curPoi;\n // } else {\n // w = Math.min(calcMax(poi[index]), pSize.height) - curPoi;\n // }\n }\n return {\n p: curPoi,\n w,\n };\n }\n\n function handleMouseDown(e: any, index: number) {\n let x = placement === 'horizontal' ? e.clientX || e.pageX : e.clientY || e.pageY;\n clickInfoRef.current = {\n x,\n i: index,\n w: getElementRect(index).w,\n };\n setSashClicked(index);\n }\n\n function cancelDrag() {\n setSashClicked(-1);\n }\n\n function onMaximize(index: number) {\n // 最大化\n if (index) {\n setPoi([0]);\n } else {\n setPoi(['max']);\n }\n }\n\n function onMinimize(index: number) {\n // 最小化\n if (index) {\n setPoi(['max']);\n } else {\n setPoi([0]);\n }\n }\n\n function setSize(index: number, size: number) {\n // 设置大小\n let ps = placement === 'horizontal' ? pSize.width : pSize.height;\n\n let s = Math.min(size, ps);\n setPoi([index ? ps - s : s, index ? s : ps - s]);\n return s;\n }\n\n const childrenDom = useMemo(() => {\n return React.Children.map(children, (child: any, index) => {\n let style: CSSProperties = {};\n let { p, w } = getElementRect(index);\n\n let ps = pSize.height;\n let viewWidth = pSize.width;\n let viewHeight = pSize.height;\n if (placement === 'horizontal') {\n ps = pSize.width;\n style.left = p;\n style.height = '100%';\n style.width = viewWidth = w;\n }\n\n if (placement === 'vertical') {\n style.top = p;\n style.width = '100%';\n style.height = viewHeight = w;\n }\n let isMinimize = !w;\n let isMaximize = w === ps;\n if (!pSize.height || !pSize.width) return null;\n return (\n <div\n className={cx('split-view-view', { visible: !isMinimize })}\n key={index}\n style={style}\n >\n {typeof child?.type === 'string' || typeof child === 'string'\n ? child\n : React.cloneElement(child, {\n viewWidth,\n viewHeight,\n parentSize: pSize,\n isMaximize,\n isMinimize,\n onMaximize: () => {\n onMaximize(index);\n },\n onMinimize: () => {\n onMinimize(index);\n },\n setSize: (size: number) => {\n setSize(index, size);\n },\n })}\n </div>\n );\n });\n }, [placement, children, poi, pSize]);\n\n function calcMax(size: number | 'max'): number {\n return size === 'max' ? (placement === 'horizontal' ? pSize.width : pSize.height) : size;\n }\n\n const sashDom = useMemo(() => {\n // poi只有一个或有一个为0时\n let hasZero = poi.filter((v) => {\n return v === 0 || v === 'max';\n });\n if (hasZero.length > 0) return null;\n\n // poi需要配合固定时;\n if (poi.length > 1) {\n let style: CSSProperties = {};\n let it = calcMax(poi[0]);\n if (fix[1]) {\n it = calcMax(poi[1]);\n\n if (placement === 'horizontal') {\n it = pSize.width - it;\n style.left = it - 2.5;\n }\n if (placement === 'vertical') {\n it = pSize.height - it;\n style.top = it - 2.5;\n }\n } else {\n if (placement === 'horizontal') {\n it = Math.min(it, pSize.width);\n style.left = it - 2.5;\n }\n if (placement === 'vertical') {\n it = Math.min(it, pSize.height);\n style.top = it - 2.5;\n }\n }\n\n return (\n <div\n // key={index}\n className={cx('code-sash', sashPlacement, { active: sashClicked === 0 })}\n style={style}\n onMouseDown={(e) => handleMouseDown(e, 0)}\n onMouseUp={cancelDrag}\n ></div>\n );\n }\n\n return poi.map((it, index) => {\n it = calcMax(it);\n\n let style: CSSProperties = {};\n if (placement === 'horizontal') {\n it = Math.min(it, pSize.width);\n style.left = it - 2.5;\n }\n if (placement === 'vertical') {\n it = Math.min(it, pSize.height);\n style.top = it - 2.5;\n }\n return (\n <div\n key={index}\n className={cx('code-sash', sashPlacement, { active: sashClicked === index })}\n style={style}\n onMouseDown={(e) => handleMouseDown(e, index)}\n onMouseUp={cancelDrag}\n ></div>\n );\n });\n }, [placement, poi, pSize, sashClicked]);\n\n return (\n <div className={cx('Draggable', className, placement)} style={style}>\n <div className={cx('sash-container')}>\n <div\n className={cx('code-sash-mask', sashPlacement, {\n active: Boolean(~sashClicked),\n minimum,\n maximum,\n })}\n onMouseMove={handleMouseMove}\n onMouseUp={cancelDrag}\n ></div>\n {sashDom}\n </div>\n <div ref={boxRef} className={cx('split-view-container')}>\n {childrenDom}\n </div>\n </div>\n );\n },\n);\n\nexport default Draggable;\n","import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport './index.less';\nimport cx from 'classnames';\ninterface DropdownProps {\n id?: string;\n children: any;\n trigger?: 'click' | 'hover' | 'contextMenu';\n placement?:\n | 'left'\n | 'top'\n | 'right'\n | 'bottom'\n | 'topLeft'\n | 'topRight'\n | 'bottomLeft'\n | 'bottomContent';\n dropdownRender?: any;\n zIndex?: number;\n className?: string;\n onExpand?: (val: boolean) => void;\n destroyPopupOnHide?: boolean; //关闭后是否销毁\n capture?: boolean;\n position?: { x?: number; y?: number };\n style?: any;\n onContextMenu?: any;\n}\n\nfunction returnDocument(element?: any): Document {\n if (element) {\n return element.ownerDocument;\n }\n return window.document;\n}\n\nexport default function Dropdown(props: DropdownProps) {\n let {\n children,\n dropdownRender,\n trigger = 'click',\n placement = 'left',\n className,\n id,\n zIndex,\n onExpand,\n destroyPopupOnHide = false,\n capture,\n position,\n style,\n onContextMenu,\n } = props;\n const [expand, setExpand] = useState(false);\n const [newDiv, setNewDiv] = useState<any>(null);\n const menu = useRef<any>(null);\n const [mouse, setMouse] = useState<any>(null);\n const [root, setRoot] = useState<any>(null);\n const ref: any = useRef();\n const time: any = useRef(null);\n\n let [windowSize, setWindowSize] = useState(getSize());\n let [menuSize, setMenuSize] = useState({\n width: 0,\n height: 0,\n });\n\n useLayoutEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n useLayoutEffect(() => {\n addEvent();\n return () => {\n delEvent();\n };\n }, []);\n\n function handleResize() {\n setWindowSize(getSize());\n }\n\n function getSize() {\n return {\n width: window?.innerWidth || 0,\n height: window?.innerHeight || 0,\n };\n }\n\n useEffect(() => {\n if (id) {\n let ids: any = document.querySelector(`._dropdown_${id}`);\n if (ids) {\n ids.onclick = () => {\n ids.remove();\n };\n }\n }\n }, []);\n\n //初始化创建弹框\n useEffect(() => {\n let content: any = null;\n let newDivs: any = null;\n if ((!newDiv && expand) || (destroyPopupOnHide && expand)) {\n let body = document.querySelector('body');\n newDivs = document.createElement('div');\n if (id) {\n newDivs.className = `_dropdown_${id}`;\n }\n content = document.createElement('div');\n setNewDiv(newDivs);\n menu.current = content;\n content.className = '_dropdown';\n content.style.position = 'absolute';\n content.onclick = onClick;\n newDivs.style.position = 'absolute';\n newDivs.style.top = '0px';\n newDivs.style.left = '0px';\n // newDivs.style.bottom = '0px';\n newDivs.style.width = '100%';\n newDivs.style.zIndex = zIndex ? zIndex + '' : '1002';\n newDivs.onclick = onClone;\n if (trigger == 'hover') {\n newDivs.onmouseleave = (e: any) => {\n time.current = setTimeout(() => {\n onClone();\n }, 300);\n };\n newDivs.onmouseenter = () => {\n if (time.current) clearTimeout(time.current);\n };\n }\n newDivs?.appendChild(content);\n body?.appendChild(newDivs);\n let root = createRoot(content);\n content?.setAttribute('class', `_dropdown_menu _dropdown-hidden`);\n root.render(\n typeof dropdownRender == 'function'\n ? dropdownRender({ onClone })\n : React.cloneElement(dropdownRender, { onClone }),\n );\n setTimeout(() => {\n content?.setAttribute('class', `_dropdown_menu _dropdown-${placement}`);\n lie(content, newDivs);\n }, 100);\n setRoot(root);\n }\n onExpand?.(expand);\n\n return () => {};\n }, [expand]);\n\n useEffect(() => {\n if (!newDiv || !menu) return;\n expand\n ? menu?.current?.setAttribute('class', `_dropdown_menu _dropdown-${placement}`)\n : menu?.current?.setAttribute('class', '_dropdown_menu _dropdown-hidden');\n if (!expand) {\n } else {\n returnDocument().removeEventListener('click', onClone);\n }\n if (!expand) {\n newDiv?.remove();\n setNewDiv(null);\n setMenuSize({\n width: 0,\n height: 0,\n });\n }\n\n expand ? lie(menu?.current, newDiv) : null;\n }, [expand, mouse, placement]);\n\n useEffect(() => {\n if (menu?.current && root) {\n root.render(\n typeof dropdownRender == 'function'\n ? dropdownRender({ onClone })\n : React.cloneElement(dropdownRender, { onClone }),\n );\n }\n }, [dropdownRender, root]);\n\n function lie(content: any, newDiv: any) {\n if (!content || !newDiv) {\n return;\n }\n let curX = mouse?.x;\n let curY = mouse?.y;\n let shiftX = position?.x || 0;\n let shiftY = position?.y || 0;\n let size = content.getBoundingClientRect();\n let box = ref.current.getBoundingClientRect();\n\n if (placement == 'left' && trigger != 'contextMenu') {\n curX = box?.left - size?.width - 5 + shiftX;\n curY = box?.top + 5;\n }\n\n if (placement == 'top') {\n curY = box?.top - size?.height - 10;\n }\n\n if (placement == 'topLeft') {\n curY = box?.top - size?.height - 10;\n curX = box?.left;\n }\n\n if (placement == 'topRight') {\n curY = box?.top - size?.height - 10;\n curX = box?.right - size.width + 10;\n }\n if (placement == 'bottom') {\n curY = box?.bottom + 10;\n }\n if (placement == 'bottomLeft') {\n curY = box?.bottom + 10;\n curX = box?.left;\n }\n if (placement == 'right') {\n curX = box?.right + 10 + shiftX;\n curY = box?.top;\n }\n\n if (placement == 'bottomContent') {\n curY = box?.bottom + 10;\n curX = box?.left - (size?.width || 0) / 2 + (box.width || 0) / 2;\n }\n\n if (windowSize.width - (curX || 0) - (size?.width || 0) < 0) {\n curX = Math.trunc(mouse?.x - size?.width) - 5;\n }\n if (windowSize.height - (curY || 0) - (size?.height || 0) < 0) {\n curY = Math.trunc(mouse?.y - size?.height) - 5;\n }\n content.style.top = `${curY || 0}px`;\n content.style.left = `${curX || 0}px`;\n }\n\n //处理点击和点击嵌套问题\n const addEvent = () => {\n returnDocument().body.addEventListener('click', onClone, false);\n returnDocument().body.addEventListener('click', documentClose, true);\n returnDocument().body.addEventListener('contextmenu', documentMenu, false);\n };\n\n const delEvent = () => {\n returnDocument().body.removeEventListener('click', onClone, false);\n returnDocument().body.removeEventListener('click', documentClose, true);\n returnDocument().body.removeEventListener('contextmenu', documentMenu, true);\n };\n\n function documentMenu(e: any) {\n if (!ref.current?.contains(e.target)) {\n onClone();\n }\n }\n\n function documentClose(e: any) {\n var container = document.querySelector('._dropdown_menu');\n if (container?.contains(e.target)) {\n if (menu.current !== container) {\n onClone();\n }\n } else {\n if (!ref.current?.contains(e.target)) {\n onClone();\n }\n }\n }\n\n useEffect(() => {\n if (!menu?.current) return;\n const resizeObserver = new ResizeObserver(() => {\n if (menu.current.offsetWidth !== menuSize.width) {\n }\n if (menu.current.offsetHeight) {\n setMenuSize({\n ...menuSize,\n height: menu.current.offsetHeight,\n });\n }\n });\n resizeObserver.observe(menu.current);\n return function cleanup() {\n resizeObserver.disconnect();\n };\n }, [menu?.current]);\n\n //如果内部组件,宽高发生变化从新计算高度\n useEffect(() => {\n if (menu?.current && root) {\n lie(menu?.current, newDiv);\n }\n }, [menuSize.height, menuSize.width]);\n\n function onClone() {\n setExpand(false);\n }\n\n function onClick(e: any) {\n e.stopPropagation();\n }\n\n return (\n <div\n ref={ref}\n className={cx('_dropdown', {\n [className || '']: className,\n })}\n style={{\n ...style,\n }}\n onMouseEnter={(e) => {\n e.preventDefault();\n if (trigger == 'hover') {\n setTimeout(() => {\n if (time.current) clearTimeout(time.current);\n });\n let x = 0 + (position?.x || 0);\n let y = 0 + (position?.y || 0);\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n setMouse({ x, y });\n setExpand(true);\n }\n }}\n onMouseLeave={(e: any) => {\n if (trigger == 'hover') {\n time.current = setTimeout(() => {\n onClone();\n }, 300);\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault();\n onContextMenu?.(e);\n if (trigger == 'contextMenu') {\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n setMouse({ x, y });\n setExpand(true);\n }\n }}\n onClick={(e) => {\n if (trigger == 'click') {\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n setMouse({ x, y });\n setExpand(!expand);\n } else {\n setExpand(false);\n }\n }}\n >\n {children}\n </div>\n );\n}\n","import { MenuItem } from '.';\nimport { FavSvg, InfoSvg, ShareSvg, FavTagSvg, UpdateSvg } from '../icons';\n\nconst iconFactory: {\n [propName: string]: React.ComponentType<{}>;\n} = {};\n\nexport function getMenu(key: string) {\n return iconFactory[key];\n}\n\nexport function registerMenu(key: string, component: any) {\n iconFactory[key] = component;\n}\n\nexport function addMenuItem(key: string | string[], menu: any[]) {\n let keys: string[] = [];\n if (Array.isArray(key)) {\n keys = key;\n } else {\n keys = [key];\n }\n keys.map((v: string) => {\n let component: any = getMenu(v);\n let arr = [...component, ...menu];\n registerMenu(v, arr);\n });\n}\n\nexport function removeMenuItem(key: string | string[], menuItem: string[]) {\n let keys: string[] = [];\n if (Array.isArray(key)) {\n keys = key;\n } else {\n keys = [key];\n }\n keys.map((v: string) => {\n let component: any = getMenu(v);\n let arr = component.filter((item: MenuItem) => !menuItem.includes(item.key));\n registerMenu(v, arr);\n });\n}\n\n//\nregisterMenu('basis', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n },\n { type: 'line' },\n {\n key: 'fav-add',\n icon: <FavSvg></FavSvg>,\n title: '添加到收藏文件夹',\n },\n {\n key: 'create-link-home',\n icon: 'app-link',\n title: '发送到桌面快捷方式',\n },\n]);\n//收藏夹\nregisterMenu('favorite', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n },\n { type: 'line' },\n {\n key: 'fav-add',\n icon: <FavSvg></FavSvg>,\n title: '添加到收藏文件夹',\n suffix: '',\n },\n {\n key: 'create-link-home',\n icon: 'app-link',\n title: '发送到桌面快捷方式',\n },\n]);\n//个人中心\nregisterMenu('self', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n },\n {\n type: 'line',\n },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n },\n]);\n//文件夹\nregisterMenu('folder', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n suffix: '',\n },\n { type: 'line' },\n {\n key: 'download',\n icon: 'download',\n title: '下载',\n istoolbar: true,\n },\n { type: 'line' },\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n desc: 'ctrl + c',\n istoolbar: true,\n },\n {\n key: 'shear',\n icon: 'shear',\n title: '剪切',\n desc: 'ctrl + x',\n istoolbar: true,\n },\n {\n key: 'rename',\n icon: 'rename',\n title: '重命名',\n istoolbar: true,\n },\n {\n key: 'remove',\n icon: 'remove',\n title: '删除',\n istoolbar: true,\n },\n { type: 'line' },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n },\n]);\n\n//当前文件夹\nregisterMenu('cur-folder', [\n {\n key: 'update',\n icon: <UpdateSvg></UpdateSvg>,\n title: '刷新',\n },\n { type: 'line' },\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n desc: 'ctrl + c',\n },\n {\n key: 'file-upload',\n icon: 'upload',\n title: '文件上传',\n },\n {\n key: 'create',\n icon: 'folder',\n title: '新建文件夹',\n },\n {\n key: 'create-file',\n icon: 'file-line',\n title: '新建文件',\n children: 'create-file',\n },\n { type: 'line' },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n },\n]);\n\n//文件夹\nregisterMenu('nav-folder', [\n {\n key: 'update',\n icon: <UpdateSvg></UpdateSvg>,\n title: '刷新',\n },\n { type: 'line' },\n {\n key: 'download',\n icon: 'download',\n title: '下载',\n },\n { type: 'line' },\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n },\n {\n key: 'shear',\n icon: 'shear',\n title: '剪切',\n },\n {\n key: 'rename',\n icon: 'rename',\n title: '重命名',\n },\n {\n key: 'remove',\n icon: 'remove',\n title: '删除',\n },\n { type: 'line' },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n },\n]);\n\n//文件\nregisterMenu('file', [\n {\n key: 'open',\n icon: 'open',\n title: '打开',\n suffix: '',\n },\n { type: 'line' },\n {\n key: 'download',\n icon: 'download',\n title: '下载',\n istoolbar: true,\n },\n { type: 'line' },\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n istoolbar: true,\n },\n {\n key: 'shear',\n icon: 'shear',\n title: '剪切',\n istoolbar: true,\n },\n {\n key: 'rename',\n icon: 'rename',\n title: '重命名',\n istoolbar: true,\n },\n {\n key: 'remove',\n icon: 'remove',\n title: '删除',\n istoolbar: true,\n },\n { type: 'line' },\n {\n key: 'user-file-tag',\n icon: <FavTagSvg />,\n title: '个人标签',\n },\n { type: 'line' },\n {\n key: 'info',\n icon: <InfoSvg></InfoSvg>,\n title: '属性',\n istoolbar: true,\n },\n]);\n\n//创建文件\nregisterMenu('create-file', [\n {\n key: 'txt',\n icon: 'txt',\n title: 'txt 文件',\n },\n {\n key: 'md',\n icon: 'md',\n title: 'md 文件',\n },\n {\n key: 'html',\n icon: 'html',\n title: 'htm 文件',\n },\n {\n key: 'xlsx',\n icon: 'xlsx',\n title: 'xlsx 文件',\n },\n]);\n\n//创建文件\nregisterMenu('Batch-Selection', [\n {\n key: 'copy',\n icon: 'copy',\n title: '复制',\n istoolbar: true,\n },\n {\n key: 'shear',\n icon: 'shear',\n title: '剪切',\n istoolbar: true,\n },\n {\n key: 'download',\n icon: 'download',\n title: '下载',\n istoolbar: true,\n },\n {\n key: 'remove',\n icon: 'remove',\n title: '删除',\n istoolbar: true,\n },\n]);\n","import './index.less';\nimport cx from 'classnames';\nimport React, { ReactNode, useContext, useMemo } from 'react';\n\nimport { AngleRightSvg } from '../icons';\n\nimport Dropdown from '../Dropdown';\nimport { Icons } from '../../explorer';\nimport { getMenu } from './menulist';\n\ninterface MenuProps {\n menu?: MenuItem[];\n info?: any;\n onChange?: (key: string, parent?: MenuItem) => any;\n loadMenu?: (item: MenuItem) => MenuItem | MenuItem[];\n store?: any;\n}\nexport interface MenuItem {\n key: string;\n title: string;\n type?: string;\n icon?: string | ReactNode;\n children: MenuItem | null;\n [key: string]: any;\n}\n\nexport function menuIcon(icon: any) {\n if (typeof icon == 'string') {\n if (/\\.(jpg|jpeg|png|gif|bmp)$/.test(icon)) {\n return;\n }\n return Icons({ suffix: icon }, 'explorer-menu-icon');\n }\n\n if (React.isValidElement(icon)) {\n return <span className='explorer-menu-icon x-icon'>{icon}</span>;\n }\n return <></>;\n}\n\nexport default function Menu(props: MenuProps) {\n const { menu, onChange, loadMenu, store, info = {} } = props;\n\n if (!menu) return <></>;\n\n let data = useMemo(() => {\n let edit = ['remove', 'copy', 'create', 'shear', 'paste', 'rename'];\n let download = ['download'];\n let upload = ['file-upload'];\n let delect = ['remove'];\n\n let arr: any[] = [];\n\n let _menu: MenuItem[] = [];\n menu.map((v: any) => {\n let data = v;\n\n if (typeof v === 'function') {\n data = v?.(info);\n } else if (loadMenu) {\n data = loadMenu(v);\n }\n if (Array.isArray(data)) {\n _menu = [..._menu, ...data];\n } else {\n _menu.push(data);\n }\n });\n\n _menu.map((v) => {\n if (!store?.isEdit && edit.includes(v?.key)) {\n arr.push({\n ...v,\n disabled: true,\n });\n return;\n }\n if (!store?.isDelect && delect.includes(v?.key)) {\n arr.push({\n ...v,\n disabled: true,\n });\n return;\n }\n if (!store?.isDownload && download.includes(v?.key)) {\n arr.push({\n ...v,\n disabled: true,\n });\n return;\n }\n if (!store?.isUpload && upload.includes(v?.key)) {\n arr.push({\n ...v,\n disabled: true,\n });\n return;\n }\n arr.push(v);\n });\n\n return arr;\n }, [menu, props, store?.isEdit, store?.isDownload, store?.isUpload]);\n\n const menus = useMemo(() => {\n return data.map((v: any, index: number) => {\n //排除空数据\n if (!v) {\n return <React.Fragment key={index}></React.Fragment>;\n }\n //横线\n if (v?.type == 'line') {\n return <div key={index} className='explorer-menu-line'></div>;\n }\n\n //用来处理 子级\n let child: any | null = null;\n if (Array.isArray(v?.children) && v?.children.length) {\n child = v?.children;\n } else if (typeof v?.children === 'string') {\n let menudata = getMenu(v.children);\n if (menudata) {\n child = menudata;\n }\n }\n\n //默认内容\n let dom = (\n <div\n className={cx('explorer-menu-item', {\n disabled: v.disabled,\n })}\n key={index}\n onClick={(e) => {\n if (!v?.disabled) {\n onChange && onChange(v.key);\n } else {\n e.stopPropagation();\n }\n }}\n >\n <span className='item-icon'>{menuIcon(v?.icon)} </span>\n <span className='item-title'>{v?.title}</span>\n {v?.desc && <span className='item-tool'>{v?.desc}</span>}\n {child && (\n <span className='item-tool'>\n <span className='explorer-menu-icon x-icon'>\n <AngleRightSvg></AngleRightSvg>\n </span>\n </span>\n )}\n </div>\n );\n\n if (!child) {\n return dom;\n }\n\n return (\n <Dropdown\n key={index}\n trigger='hover'\n placement='right'\n position={{ x: -20 }}\n dropdownRender={({ onClone }: any) => {\n return (\n <Menu\n store={store}\n menu={child}\n onChange={(item) => {\n onChange && onChange(item, v);\n onClone();\n }}\n ></Menu>\n );\n }}\n >\n {dom}\n </Dropdown>\n );\n });\n }, [data]);\n\n return <div className='explorer-menu'>{menus}</div>;\n}\n","import './index.less';\nimport { cx, css } from '../../../css';\nimport classname from 'classnames';\nimport { CaretRight, CircleCheckSvg } from '../../../components/icons';\n\nimport { useState, useRef, useEffect, useLayoutEffect, useMemo, useContext } from 'react';\nimport { ExampleContext } from '../../../store';\nimport {\n ArrowLeftSvg,\n FavSvg,\n SearchSvg,\n UpdateSvg,\n ZoomUpSvg,\n ArrowTopSvg,\n OutdentSvg,\n ArrowRightSvg,\n} from '../../../components/icons';\nimport { Icons } from '../../../explorer';\nimport Menu, { menuIcon } from '../../../components/menu/index';\nimport { getMenu } from '../../../components/menu/menulist';\nimport React from 'react';\nimport { Ellipsis } from '@gingkoo/pandora-icons';\n\nconst menu = [\n {\n key: 'tile',\n title: '图标排列 (Alt+1)',\n icon: <i className='font-icon list-type-icon'></i>,\n },\n {\n key: 'table',\n title: '图标排列 (Alt+2)',\n icon: <i className='font-icon list-type-list'></i>,\n },\n {\n key: 'column',\n title: '图标排列 (Alt+3)',\n icon: <i className='font-icon list-type-split'></i>,\n },\n];\n\nconst ExplorerHead = (props: any) => {\n const { loadData, isEdit = true, isUpload = true } = props;\n\n const store = useContext(ExampleContext);\n const pathInputRef = useRef<any>(null);\n const [path, setPath] = useState('');\n const [pathFocus, setFocus] = useState(false);\n\n useEffect(() => {\n setPath(store?.curInfo?.pathDisplay || '');\n }, [store?.curInfo?.pathDisplay]);\n\n const Breadcrumb = useMemo(() => {\n let arr: any[] = [];\n let path = store?.curInfo?.pathDisplay || '';\n arr = path.split('/');\n arr = arr.filter((v) => v);\n\n return arr.map((v, i) => {\n if (!v) return <></>;\n let info = store?.dataMap?.[v];\n\n return (\n <li\n key={i}\n className={cx('header-address-item', {\n first: i == 0,\n last: i == arr.length - 1,\n })}\n >\n <a\n title={v}\n className={css`\n z-index: ${arr.length + 1 - i};\n `}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <span className='title-icon'>\n {info ? Icons({ ...info, status: null }, '') : Icons({ type: 'folder' }, '')}\n </span>\n <span className='title-name'>{v}</span>\n </a>\n </li>\n );\n });\n }, [store?.curInfo?.pathDisplay, store.dataMap]);\n\n function exit() {\n if (store.logindex) {\n if (Array.isArray(store.log)) {\n let index: number = store.logindex - 2;\n let key = store?.log[index];\n loadData?.(key || '');\n store.setLogIndex(index + 1);\n }\n }\n }\n\n function forward() {\n if (Array.isArray(store.log) && store.log.length - 1 >= store.logindex) {\n let key = store?.log[store.logindex];\n loadData?.(key);\n store.setLogIndex(store.logindex + 1);\n }\n }\n\n const addData = (data: any[], key: string, child: any) => {\n let arr: any[] = data;\n if (key) {\n let i = 0;\n while (i < arr.length) {\n let item = arr[i];\n if (item.key == key) {\n if (Array.isArray(item.children)) {\n item.children.unshift(child);\n } else {\n item.children = [child];\n }\n i = arr.length;\n break;\n }\n\n if (Array.isArray(item.children)) {\n item.children = addData(item.children, key, child);\n }\n i++;\n }\n } else {\n arr.unshift(child);\n }\n\n return arr || [];\n };\n\n const toolbar = useMemo(() => {\n let empty: any[] = [];\n if (!store.curSelect && props.checks?.length < 1) return empty;\n\n let info = null;\n if (store.curSelect) {\n info = store.dataMap?.[store.curSelect];\n }\n\n let menudata: any = [];\n\n if (props.checks?.length > 1) {\n menudata = getMenu('Batch-Selection');\n } else if (info && getMenu(info.key)) {\n menudata = getMenu(info.key);\n } else if (info && info.type && getMenu(info.type)) {\n menudata = getMenu(info.type);\n } else {\n menudata = getMenu('');\n }\n\n let tool: any[] = [],\n more: any[] = [];\n\n menudata?.map((v: any) => {\n if (v?.istoolbar) {\n if (tool.length > 3) {\n more.push(v);\n } else {\n tool.push(v);\n }\n }\n });\n\n if (more.length) {\n tool = [\n ...tool,\n {\n key: 'more',\n title: '更多',\n icon: <Ellipsis />,\n children: more,\n },\n ];\n }\n\n return tool;\n }, [\n store.curSelectFile,\n store.curSelect,\n store.dataMap,\n store.isEdit,\n store.isDelect,\n store.curInfo,\n props.checks,\n ]);\n\n function toolBtn(param: any) {\n let hidden = false;\n\n if (param.key == 'download' && store.isDownload == false) {\n }\n\n if (param.key == 'remove' && store.isDelect == false) {\n hidden = true;\n }\n\n if (['copy', 'shear', 'rename'].includes(param.key) && store.isEdit == false) {\n hidden = true;\n }\n\n return (\n <div className={cx('toolbar-btn', { hidden: hidden })} onClick={() => {}}>\n <span\n className='title'\n onClick={(e) => {\n let curinfo: any = store.curInfo;\n if (store.menutype == 'column' && store.curSelectFile) {\n curinfo = store.dataMap?.[store.curSelectFile];\n } else if (store.curSelect) {\n curinfo = store.dataMap?.[store.curSelect];\n }\n\n if (props.checks?.length > 1) {\n curinfo = {};\n }\n\n if (param.children) {\n e.stopPropagation();\n e.preventDefault();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n store.openMenu({\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={param.children}\n loadMenu={props?.loadMenu}\n onChange={async (key: any) => {\n if (key == 'rename') {\n store?.setReName(curinfo.key);\n return;\n }\n props?.onMenuClick?.(key, curinfo);\n store?.closeMenu();\n }}\n ></Menu>\n ),\n });\n return;\n }\n\n if (hidden) return;\n\n if (curinfo) {\n props?.onMenuClick?.(param.key, curinfo, 'main');\n }\n }}\n >\n {menuIcon(param.icon)}\n <span>{param.title}</span>\n </span>\n </div>\n );\n }\n\n return (\n <>\n <div className='header-content'>\n <div className='header-left'>\n <div className='btn-group'>\n <button\n className={cx('btn history-back', { disable: !store.log?.length || !store.logindex })}\n title='后退 (Alt+Left / Backspace)'\n onClick={() => {\n exit();\n }}\n >\n <ArrowLeftSvg />\n </button>\n <button\n className={cx('btn history-next', {\n disable: !store.log?.length || store.log?.length == store.logindex,\n })}\n title='前进 (Alt+Right / Ctrl+Backspace)'\n onClick={() => {\n forward();\n }}\n >\n <ArrowRightSvg />\n </button>\n </div>\n </div>\n <div className='header-middle'>\n <button\n className={cx('btn', { disable: !store.curInfo?.parentPath })}\n onClick={async () => {\n if (store.curInfo?.parentPath && store.curInfo?.key) {\n await loadData(store.curInfo?.parentPath);\n let arr = [...(store.log || [])];\n if (arr.length !== store.logindex) {\n arr = arr.slice(0, store.logindex - 1);\n }\n arr = [...arr, store.curInfo?.key];\n store.setLog(arr);\n store.setLogIndex(arr.length);\n }\n }}\n >\n <ArrowTopSvg />\n </button>\n <div\n className={cx('header-address', { hidden: pathFocus })}\n title='点击进入编辑状态'\n onClick={() => {\n setFocus(true);\n setTimeout(() => {\n pathInputRef.current.focus();\n }, 100);\n }}\n >\n <ul className={'header-address-content'}>\n {Breadcrumb}\n <li className='clear'></li>\n </ul>\n </div>\n\n <div className={cx('header-address-input', { hidden: !pathFocus })}>\n <input\n ref={pathInputRef}\n type='text'\n name='path'\n value={path}\n onInput={(e: any) => {\n setPath(e.target.value);\n }}\n className='path'\n spellCheck='false'\n onKeyDown={(e) => {\n if (pathFocus && (e.key === 'Enter' || e.keyCode === 13)) {\n loadData?.(path);\n setFocus(false);\n }\n }}\n onBlur={(v: any) => {\n loadData?.(v.target.value);\n setFocus(false);\n }}\n />\n </div>\n <button\n className={cx('btn', { disable: !store.curInfo?.key })}\n onClick={() => {\n if (store.curInfo?.key) {\n loadData(store.curInfo?.key);\n }\n }}\n >\n <UpdateSvg></UpdateSvg>\n </button>\n </div>\n <div className='header-right'>\n <div className='search-box'>\n <input placeholder='请输入'></input>\n <button>\n <SearchSvg></SearchSvg>\n </button>\n </div>\n </div>\n </div>\n <div className='frame-right-main'>\n <div className='toolbar'>\n <div className='toolbar-left'>\n {isEdit && (\n <div className={cx('toolbar-btn', { hidden: !isEdit })} onClick={() => {}}>\n <span\n className='title'\n onClick={() => {\n isEdit && store.createFolder();\n }}\n >\n {Icons({ type: 'folder' }, '')}\n <span>新建文件夹</span>\n </span>\n <span\n className='more'\n onClick={(e) => {\n if (!store.curInfo?.key) return;\n e.preventDefault();\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n let menudata: any = [];\n\n menudata = getMenu('create-file');\n store?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n onChange={async (v: any) => {\n store.createFolder(v);\n props?.closeMenu?.();\n }}\n ></Menu>\n ),\n },\n store.curInfo,\n );\n }}\n >\n <CaretRight></CaretRight>\n </span>\n </div>\n )}\n\n {isUpload && (\n <div className={cx('toolbar-btn', { hidden: !isEdit })} onClick={() => {}}>\n <span\n className='title'\n onClick={() => {\n let curinfo = store.curInfo;\n if (store.menutype == 'column' && store.curSelectFile) {\n curinfo = store.dataMap?.[store.curSelectFile];\n }\n store.uploadFile(curinfo);\n }}\n >\n {menuIcon('upload')}\n <span>文件上传</span>\n </span>\n </div>\n )}\n </div>\n <div className='toolbar-list'>\n {toolbar.map((v: any, index) => {\n return <React.Fragment key={index}>{toolBtn(v)}</React.Fragment>;\n })}\n </div>\n <div className='toolbar-right'>\n <div className='btn-group'>\n {store?.menutype == 'tile' && (\n <div\n className='tool'\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX - 18;\n y = e.nativeEvent.clientY + 20;\n\n store.openMenu({\n x: x,\n y: y,\n content: (\n <Slider\n value={store.menuSize}\n max={360}\n min={40}\n onChange={(v: number) => {\n store.setMenuSize(v);\n }}\n ></Slider>\n ),\n });\n }}\n >\n <ZoomUpSvg></ZoomUpSvg>\n </div>\n )}\n\n {menu.map((v) => {\n return (\n <button\n key={v.key}\n title={v.title}\n className={classname('btn', {\n active: store?.menutype == v.key,\n })}\n onClick={() => {\n store?.setMenutype(v.key as any);\n props?.onViewType?.(v.key);\n }}\n >\n {v.icon}\n </button>\n );\n })}\n\n <button\n className={classname('btn panel-toggle', {\n active: store?.infoshow,\n })}\n title='属性信息 <code>]</code>'\n onClick={() => {\n store?.setInfoShow(!store?.infoshow);\n }}\n >\n <OutdentSvg />\n </button>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default ExplorerHead;\n\nfunction Slider(props: any) {\n const { value, max, min, onChange } = props;\n const ref = useRef<any>(null);\n const [isdarg, setDarg] = useState(false);\n const [size, setSize] = useState<number | null>(null);\n\n useEffect(() => {\n document.addEventListener('mousemove', handleBodyMousemove);\n document.addEventListener('mouseup', handleBodyMouseup);\n\n return () => {\n document.removeEventListener('mousemove', handleBodyMousemove);\n document.removeEventListener('mouseup', handleBodyMouseup);\n };\n }, [isdarg, ref.current]);\n\n useEffect(() => {\n if (!size) return;\n let d_value = max - min;\n let per = d_value / 100;\n onChange && onChange(Math.round(per * size) + min);\n }, [size]);\n\n useEffect(() => {\n let d_value = max - min;\n let data = value - min;\n setSize((data / d_value) * 100);\n }, [value]);\n\n function handleBodyMousemove(e: any) {\n if (!isdarg) return;\n if (!ref.current) return;\n e.preventDefault();\n\n let dom = ref.current.getBoundingClientRect();\n let cur = dom.top + 15;\n let num = e.clientY - cur;\n num > 100 ? (num = 100) : null;\n num < 0 ? (num = 0) : null;\n setSize(num);\n }\n\n function handleBodyMouseup(e: any) {\n e.preventDefault();\n e.stopPropagation();\n setDarg(false);\n }\n\n return (\n <div\n className='_slider'\n ref={ref}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <div\n className='_slider-link'\n onClick={(e: any) => {\n let dom = ref.current.getBoundingClientRect();\n let cur = dom.top + 15;\n let num = e.clientY - cur;\n num > 100 ? (num = 100) : null;\n num < 0 ? (num = 0) : null;\n setSize(num);\n }}\n >\n <div\n style={{ top: size + 'px' }}\n className='_slider-drop'\n onMouseDown={(e) => {\n setDarg(true);\n }}\n ></div>\n </div>\n </div>\n );\n}\n","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nimport {\n BasicDataNode,\n DataNode,\n Direction,\n EventDataNode,\n IconType,\n Key,\n KeyEntities,\n NodeInstance,\n} from './interface';\nimport { DraggableConfig } from './Tree';\n\nexport type NodeMouseEventParams<\n TreeDataType extends BasicDataNode = DataNode,\n T = HTMLSpanElement,\n> = {\n event: React.MouseEvent<T>;\n node: EventDataNode<TreeDataType>;\n};\nexport type NodeDragEventParams<\n TreeDataType extends BasicDataNode = DataNode,\n T = HTMLDivElement,\n> = {\n event: React.DragEvent<T>;\n node: EventDataNode<TreeDataType>;\n};\n\nexport type NodeMouseEventHandler<\n TreeDataType extends BasicDataNode = DataNode,\n T = HTMLSpanElement,\n> = (e: React.MouseEvent<T>, node: EventDataNode<TreeDataType>) => void;\nexport type NodeDragEventHandler<\n TreeDataType extends BasicDataNode = DataNode,\n T = HTMLDivElement,\n> = (e: React.DragEvent<T>, node: NodeInstance<TreeDataType>, outsideTree?: boolean) => void;\n\nexport interface TreeContextProps<TreeDataType extends BasicDataNode = DataNode> {\n prefixCls: string;\n selectable?: boolean;\n showIcon?: boolean;\n icon: IconType;\n switcherIcon: IconType;\n draggable?: DraggableConfig;\n draggingNodeKey?: Key;\n checkable: boolean | React.ReactNode;\n checkStrictly: boolean;\n disabled: boolean;\n keyEntities: KeyEntities;\n // for details see comment in Tree.state (Tree.tsx)\n dropLevelOffset?: number;\n dropContainerKey: Key | null;\n dropTargetKey: Key | null;\n dropPosition: -1 | 0 | 1 | null;\n indent: number | null;\n indentWidth?: number;\n dropIndicatorRender: (props: {\n dropPosition: -1 | 0 | 1;\n dropLevelOffset: number;\n indent: any;\n prefixCls: string;\n direction: Direction;\n }) => React.ReactNode;\n dragOverNodeKey: Key | null;\n direction: Direction;\n\n loadData: (treeNode: EventDataNode<TreeDataType>) => Promise<void>;\n filterTreeNode: (treeNode: EventDataNode<TreeDataType>) => boolean;\n titleRender?: (node: any) => React.ReactNode;\n\n onNodeClick: NodeMouseEventHandler<TreeDataType>;\n onNodeDoubleClick: NodeMouseEventHandler<TreeDataType>;\n onNodeExpand: NodeMouseEventHandler<TreeDataType>;\n onNodeSelect: NodeMouseEventHandler<TreeDataType>;\n onNodeCheck: (\n e: React.MouseEvent<HTMLSpanElement>,\n treeNode: EventDataNode<TreeDataType>,\n checked: boolean,\n ) => void;\n onNodeLoad: (treeNode: EventDataNode<TreeDataType>) => void;\n onNodeMouseEnter: NodeMouseEventHandler<TreeDataType>;\n onNodeMouseLeave: NodeMouseEventHandler<TreeDataType>;\n onNodeContextMenu: NodeMouseEventHandler<TreeDataType>;\n onNodeDragStart: NodeDragEventHandler<any, any>;\n onNodeDragEnter: NodeDragEventHandler<any, any>;\n onNodeDragOver: NodeDragEventHandler<any, any>;\n onNodeDragLeave: NodeDragEventHandler<any, any>;\n onNodeDragEnd: NodeDragEventHandler<any, any>;\n onNodeDrop: NodeDragEventHandler<any, any>;\n}\n\nexport const TreeContext: React.Context<any> = React.createContext(null);\n","import * as React from 'react'\n\nexport default function DropIndicator ({\n dropPosition,\n dropLevelOffset,\n indent,\n}: {\n dropPosition: -1 | 0 | 1,\n dropLevelOffset: number,\n indent: number,\n}) {\n const style: React.CSSProperties = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2,\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return <div style={style} />;\n}\n","import * as React from 'react';\nimport classNames from 'classnames';\n\ninterface IndentProps {\n prefixCls: string;\n level: number;\n isStart: boolean[];\n isEnd: boolean[];\n width?: number;\n}\n\nconst Indent: React.FC<any> = ({ prefixCls, level, isStart, isEnd, width }) => {\n const widthStyle: React.CSSProperties =\n width >= 0\n ? {\n width: width,\n }\n : {};\n\n const baseClassName = `${prefixCls}-indent-unit`;\n const list: React.ReactElement[] = [];\n for (let i = 0; i < level; i += 1) {\n list.push(\n <span\n key={i}\n className={classNames(baseClassName, {\n [`${baseClassName}-start`]: isStart[i],\n [`${baseClassName}-end`]: isEnd[i],\n })}\n style={widthStyle}\n />,\n );\n }\n\n return (\n <span aria-hidden='true' className={`${prefixCls}-indent`}>\n {list}\n </span>\n );\n};\n\nexport default React.memo(Indent);\n","import type { Key, KeyEntities, SafeKey } from '../interface';\n\nexport default function getEntity<T = any>(keyEntities: any, key: any) {\n return keyEntities[key as SafeKey];\n}\n","import toArray from 'rc-util/lib/Children/toArray';\nimport omit from 'rc-util/lib/omit';\nimport warning from 'rc-util/lib/warning';\nimport * as React from 'react';\nimport {\n BasicDataNode,\n DataEntity,\n DataNode,\n EventDataNode,\n FieldNames,\n FlattenNode,\n GetKey,\n Key,\n KeyEntities,\n NodeElement,\n SafeKey,\n TreeNodeProps,\n} from '../interface';\nimport getEntity from './keyUtil';\n\nexport function getPosition(level: string | number, index: number) {\n return `${level}-${index}`;\n}\n\nexport function isTreeNode(node: NodeElement) {\n return node && node.type && node.type.isTreeNode;\n}\n\nexport function getKey(key: Key, pos: string) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\n\nexport function fillFieldNames(fieldNames?: FieldNames): Required<FieldNames> {\n const { title, _title, key, children } = fieldNames || {};\n const mergedTitle = title || 'title';\n\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children',\n };\n}\n\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData: DataNode[], fieldNames: any) {\n const keys: Map<string, boolean> = new Map();\n\n function dig(list: DataNode[], path: string = '') {\n (list || []).forEach((treeNode: any) => {\n const key = treeNode[fieldNames.key];\n const children = treeNode[fieldNames.children];\n warning(\n key !== null && key !== undefined,\n `Tree node must have a certain key: [${path}${key}]`,\n );\n\n const recordKey = String(key);\n warning(\n !keys.has(recordKey) || key === null || key === undefined,\n `Same 'key' exist in the Tree: ${recordKey}`,\n );\n keys.set(recordKey, true);\n\n dig(children, `${path}${recordKey} > `);\n });\n }\n\n dig(treeData);\n}\n\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes: React.ReactNode): any[] {\n function dig(node: React.ReactNode): DataNode[] {\n const treeNodes: any = toArray(node) as NodeElement[];\n return treeNodes\n .map((treeNode: any) => {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n\n const { key } = treeNode;\n const { children, ...rest } = treeNode.props;\n\n const dataNode: DataNode = {\n key: key as Key,\n ...rest,\n };\n\n const parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n\n return dataNode;\n })\n .filter((dataNode: any) => dataNode);\n }\n\n return dig(rootNodes);\n}\n\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData<TreeDataType extends BasicDataNode = DataNode>(\n treeNodeList: TreeDataType[],\n expandedKeys: Key[] | true,\n fieldNames: FieldNames,\n): FlattenNode<TreeDataType>[] {\n const {\n _title: fieldTitles,\n key: fieldKey,\n children: fieldChildren,\n } = fillFieldNames(fieldNames);\n\n const expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n const flattenList: FlattenNode<TreeDataType>[] = [];\n\n function dig(list: TreeDataType[], parent: any = null): FlattenNode<TreeDataType>[] {\n return list.map((treeNode: any, index) => {\n const pos: string = getPosition(parent ? parent.pos : '0', index);\n const mergedKey = getKey(treeNode[fieldKey], pos);\n\n // Pick matched title in field title list\n let mergedTitle: React.ReactNode;\n for (let i = 0; i < fieldTitles.length; i += 1) {\n const fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n\n // Add FlattenDataNode into list\n const flattenNode: any = {\n ...omit(treeNode, [...fieldTitles, fieldKey, fieldChildren] as any),\n title: mergedTitle,\n key: mergedKey,\n parent,\n pos,\n children: null,\n data: treeNode,\n isStart: [...(parent ? parent.isStart : []), index === 0],\n isEnd: [...(parent ? parent.isEnd : []), index === list.length - 1],\n };\n\n flattenList.push(flattenNode);\n\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n\n return flattenNode;\n });\n }\n\n dig(treeNodeList);\n\n return flattenList;\n}\n\ntype ExternalGetKey = GetKey<DataNode> | string;\n\ninterface TraverseDataNodesConfig {\n childrenPropName?: string;\n externalGetKey?: ExternalGetKey;\n fieldNames?: FieldNames;\n}\n\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(\n dataNodes: DataNode[],\n callback: (data: {\n node: DataNode;\n index: number;\n pos: string;\n key: Key;\n parentPos: string | number;\n level: number;\n nodes: DataNode[];\n }) => void,\n // To avoid too many params, let use config instead of origin param\n config?: TraverseDataNodesConfig | string,\n) {\n let mergedConfig: TraverseDataNodesConfig = {};\n if (typeof config === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = { externalGetKey: config };\n }\n mergedConfig = mergedConfig || {};\n\n // Init config\n const { childrenPropName, externalGetKey, fieldNames } = mergedConfig;\n\n const { key: fieldKey, children: fieldChildren } = fillFieldNames(fieldNames);\n\n const mergeChildrenPropName = childrenPropName || fieldChildren;\n\n // Get keys\n let syntheticGetKey: (node: DataNode | any, pos?: any) => Key;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = (node: DataNode) => (node as any)[externalGetKey as string];\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = (node: DataNode) => (externalGetKey as GetKey<DataNode>)(node);\n }\n } else {\n syntheticGetKey = (node, pos) => getKey(node[fieldKey], pos);\n }\n\n // Process\n function processNode(node: any, index?: number, parent?: any, pathNodes?: any[]) {\n const children = node ? node[mergeChildrenPropName] : dataNodes;\n const pos = node ? getPosition(parent.pos, index as number) : '0';\n const connectNodes = node ? [...(pathNodes || []), node] : [];\n\n // Process node if is not root\n if (node) {\n const key: Key = syntheticGetKey(node, pos);\n const data: any = {\n node,\n index,\n pos,\n key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes,\n };\n\n callback(data);\n }\n\n // Process children node\n if (children) {\n children.forEach((subNode: any, subIndex: any) => {\n processNode(\n subNode,\n subIndex,\n {\n node,\n pos,\n level: parent ? parent.level + 1 : -1,\n },\n connectNodes,\n );\n });\n }\n }\n\n processNode(null);\n}\n\ninterface Wrapper {\n posEntities: Record<string, DataEntity>;\n keyEntities: KeyEntities;\n}\n\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(\n dataNodes: DataNode[],\n {\n initWrapper,\n processEntity,\n onProcessFinished,\n externalGetKey,\n childrenPropName,\n fieldNames,\n }: {\n initWrapper?: (wrapper: Wrapper) => Wrapper;\n processEntity?: (entity: DataEntity, wrapper: Wrapper) => void;\n onProcessFinished?: (wrapper: Wrapper) => void;\n externalGetKey?: ExternalGetKey;\n childrenPropName?: string;\n fieldNames?: FieldNames;\n } = {},\n /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey?: ExternalGetKey,\n) {\n // Init config\n const mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n\n const posEntities: any = {};\n const keyEntities: any = {};\n let wrapper: Wrapper = {\n posEntities,\n keyEntities,\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseDataNodes(\n dataNodes,\n (item) => {\n const { node, index, pos, key, parentPos, level, nodes } = item;\n const entity: DataEntity = { node, nodes, index, key, pos, level };\n\n const mergedKey = getKey(key, pos);\n\n posEntities[pos] = entity;\n keyEntities[mergedKey as SafeKey] = entity;\n\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n },\n { externalGetKey: mergedExternalGetKey, childrenPropName, fieldNames },\n );\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n\nexport interface TreeNodeRequiredProps<TreeDataType extends BasicDataNode = DataNode> {\n expandedKeys: Key[];\n selectedKeys: Key[];\n loadedKeys: Key[];\n loadingKeys: Key[];\n checkedKeys: Key[];\n halfCheckedKeys: Key[];\n dragOverNodeKey: Key;\n dropPosition: number;\n keyEntities: KeyEntities<TreeDataType>;\n}\n\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps<TreeDataType extends BasicDataNode = DataNode>(\n key: Key,\n {\n expandedKeys,\n selectedKeys,\n loadedKeys,\n loadingKeys,\n checkedKeys,\n halfCheckedKeys,\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n }: TreeNodeRequiredProps<TreeDataType>,\n) {\n const entity = getEntity(keyEntities, key);\n\n const treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1,\n };\n\n return treeNodeProps;\n}\n\nexport function convertNodePropsToEventData<TreeDataType extends BasicDataNode = DataNode>(\n props: TreeNodeProps<TreeDataType>,\n): EventDataNode<any> {\n const {\n data,\n expanded,\n selected,\n checked,\n loaded,\n loading,\n halfChecked,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n pos,\n active,\n eventKey,\n } = props;\n\n const eventData = {\n ...data,\n expanded,\n selected,\n checked,\n loaded,\n loading,\n halfChecked,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n pos,\n active,\n key: eventKey,\n };\n\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get() {\n warning(\n false,\n 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.',\n );\n return props;\n },\n });\n }\n\n return eventData;\n}\n","import classNames from 'classnames';\nimport pickAttrs from 'rc-util/lib/pickAttrs';\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext, TreeContextProps } from './contextTypes';\nimport Indent from './Indent';\nimport { TreeNodeProps } from './interface';\nimport getEntity from './utils/keyUtil';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\n\nconst ICON_OPEN = 'open';\nconst ICON_CLOSE = 'close';\n\nconst defaultTitle = '---';\n\nexport type { TreeNodeProps } from './interface';\n\nexport interface InternalTreeNodeProps extends TreeNodeProps {\n context?: TreeContextProps | null;\n}\n\nexport interface TreeNodeState {\n dragNodeHighlight: boolean;\n}\n\nclass InternalTreeNode extends React.Component<any, TreeNodeState> {\n public state = {\n dragNodeHighlight: false,\n };\n\n public selectHandle: HTMLSpanElement;\n\n cacheIndent: number;\n\n // Isomorphic needn't load data in server side\n componentDidMount() {\n this.syncLoadData(this.props);\n }\n\n componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n\n onSelectorClick = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n // Click trigger before select/check operation\n const {\n context: { onNodeClick },\n } = this.props;\n onNodeClick(e, convertNodePropsToEventData(this.props));\n\n if (this.isSelectable()) {\n this.onSelect(e);\n } else {\n this.onCheck(e);\n }\n };\n\n onSelectorDoubleClick = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const {\n context: { onNodeDoubleClick },\n } = this.props;\n onNodeDoubleClick(e, convertNodePropsToEventData(this.props));\n };\n\n onSelect = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n if (this.isDisabled()) return;\n\n const {\n context: { onNodeSelect },\n } = this.props;\n onNodeSelect(e, convertNodePropsToEventData(this.props));\n };\n\n onCheck = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n if (this.isDisabled()) return;\n\n const { disableCheckbox, checked } = this.props;\n const {\n context: { onNodeCheck },\n } = this.props;\n\n if (!this.isCheckable() || disableCheckbox) return;\n\n const targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(this.props), targetChecked);\n };\n\n onMouseEnter = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const {\n context: { onNodeMouseEnter },\n } = this.props;\n onNodeMouseEnter(e, convertNodePropsToEventData(this.props));\n };\n\n onMouseLeave = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const {\n context: { onNodeMouseLeave },\n } = this.props;\n onNodeMouseLeave(e, convertNodePropsToEventData(this.props));\n };\n\n onContextMenu = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const {\n context: { onNodeContextMenu },\n } = this.props;\n onNodeContextMenu(e, convertNodePropsToEventData(this.props));\n };\n\n onDragStart = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragStart },\n } = this.props;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true,\n });\n onNodeDragStart(e, this);\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n\n onDragEnter = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragEnter },\n } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n };\n\n onDragOver = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragOver },\n } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n };\n\n onDragLeave = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragLeave },\n } = this.props;\n\n e.stopPropagation();\n onNodeDragLeave(e, this);\n };\n\n onDragEnd = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDragEnd },\n } = this.props;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDragEnd(e, this);\n };\n\n onDrop = (e: React.DragEvent<HTMLDivElement>) => {\n const {\n context: { onNodeDrop },\n } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDrop(e, this);\n };\n\n // Disabled item still can be switch\n onExpand: React.MouseEventHandler<HTMLDivElement> = (e) => {\n const {\n loading,\n context: { onNodeExpand },\n } = this.props;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(this.props));\n };\n\n // Drag usage\n setSelectHandle = (node: any) => {\n this.selectHandle = node;\n };\n\n getNodeState = () => {\n const { expanded } = this.props;\n\n if (this.isLeaf()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n\n hasChildren = () => {\n const { eventKey } = this.props;\n const {\n context: { keyEntities },\n } = this.props;\n const { children } = getEntity(keyEntities, eventKey) || {};\n\n return !!(children || []).length;\n };\n\n isLeaf = () => {\n const { isLeaf, loaded } = this.props;\n const {\n context: { loadData },\n } = this.props;\n\n const hasChildren = this.hasChildren();\n\n if (isLeaf === false) {\n return false;\n }\n\n return isLeaf || (!loadData && !hasChildren) || (loadData && loaded && !hasChildren);\n };\n\n isDisabled = () => {\n const { disabled } = this.props;\n const {\n context: { disabled: treeDisabled },\n } = this.props;\n\n return !!(treeDisabled || disabled);\n };\n\n isCheckable = () => {\n const { checkable } = this.props;\n const {\n context: { checkable: treeCheckable },\n } = this.props;\n\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n\n // Load data to avoid default expanded tree without data\n syncLoadData = (props: any) => {\n const { expanded, loading, loaded } = props;\n const {\n context: { loadData, onNodeLoad },\n } = this.props;\n\n if (loading) {\n return;\n }\n\n // read from state to avoid loadData at same time\n if (loadData && expanded && !this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(this.props));\n }\n }\n };\n\n isSelectable() {\n const { selectable } = this.props;\n const {\n context: { selectable: treeSelectable },\n } = this.props;\n\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n }\n\n isDraggable = () => {\n const {\n data,\n context: { draggable },\n } = this.props;\n\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n\n // ==================== Render: Drag Handler ====================\n renderDragHandler = () => {\n const {\n context: { draggable, prefixCls },\n } = this.props;\n\n return draggable?.icon ? (\n <span className={`${prefixCls}-draggable-icon`}>{draggable.icon}</span>\n ) : null;\n };\n\n // ====================== Render: Switcher ======================\n renderSwitcherIconDom = (isLeaf: boolean) => {\n const { switcherIcon: switcherIconFromProps } = this.props;\n const {\n context: { switcherIcon: switcherIconFromCtx },\n } = this.props;\n\n const switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon({ ...this.props, isLeaf });\n }\n return switcherIcon;\n };\n\n // Switcher\n renderSwitcher = () => {\n const { expanded } = this.props;\n const {\n context: { prefixCls },\n } = this.props;\n\n if (this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n const switcherIconDom = this.renderSwitcherIconDom(true);\n\n return switcherIconDom !== false ? (\n <span className={classNames(`${prefixCls}-switcher`, `${prefixCls}-switcher-noop`)}>\n {switcherIconDom}\n </span>\n ) : null;\n }\n\n const switcherCls = classNames(\n `${prefixCls}-switcher`,\n `${prefixCls}-switcher_${expanded ? ICON_OPEN : ICON_CLOSE}`,\n );\n\n const switcherIconDom = this.renderSwitcherIconDom(false);\n\n return switcherIconDom !== false ? (\n <span onClick={this.onExpand} className={switcherCls}>\n {switcherIconDom}\n </span>\n ) : null;\n };\n\n // ====================== Render: Checkbox ======================\n // Checkbox\n renderCheckbox = () => {\n const { checked, halfChecked, disableCheckbox } = this.props;\n const {\n context: { prefixCls },\n } = this.props;\n const disabled = this.isDisabled();\n const checkable = this.isCheckable();\n\n if (!checkable) return null;\n\n // [Legacy] Custom element should be separate with `checkable` in future\n const $custom = typeof checkable !== 'boolean' ? checkable : null;\n\n return (\n <span\n className={classNames(\n `${prefixCls}-checkbox`,\n checked && `${prefixCls}-checkbox-checked`,\n !checked && halfChecked && `${prefixCls}-checkbox-indeterminate`,\n (disabled || disableCheckbox) && `${prefixCls}-checkbox-disabled`,\n )}\n onClick={this.onCheck}\n >\n {$custom}\n </span>\n );\n };\n\n // ==================== Render: Title + Icon ====================\n renderIcon = () => {\n const { loading } = this.props;\n const {\n context: { prefixCls },\n } = this.props;\n\n return (\n <span\n className={classNames(\n `${prefixCls}-iconEle`,\n `${prefixCls}-icon__${this.getNodeState() || 'docu'}`,\n loading && `${prefixCls}-icon_loading`,\n )}\n />\n );\n };\n\n // Icon + Title\n renderSelector = () => {\n const { dragNodeHighlight } = this.state;\n const { title = defaultTitle, selected, icon, loading, data, index } = this.props;\n const {\n context: { prefixCls, showIcon, icon: treeIcon, loadData, titleRender },\n } = this.props;\n const disabled = this.isDisabled();\n\n const wrapClass = `${prefixCls}-node-content-wrapper`;\n\n // Icon - Still show loading icon when loading without showIcon\n let $icon;\n\n if (showIcon) {\n const currentIcon = icon || treeIcon;\n\n $icon = currentIcon ? (\n <span className={classNames(`${prefixCls}-iconEle`, `${prefixCls}-icon__customize`)}>\n {typeof currentIcon === 'function' ? currentIcon(this.props) : currentIcon}\n </span>\n ) : (\n this.renderIcon()\n );\n } else if (loadData && loading) {\n $icon = this.renderIcon();\n }\n\n // Title\n let titleNode: React.ReactNode;\n if (typeof title === 'function') {\n titleNode = title(data, index);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n\n const $title = <span className={`${prefixCls}-title`}>{titleNode}</span>;\n\n return (\n <span\n ref={this.setSelectHandle}\n title={typeof title === 'string' ? title : ''}\n className={classNames(\n `${wrapClass}`,\n `${wrapClass}-${this.getNodeState() || 'normal'}`,\n !disabled && (selected || dragNodeHighlight) && `${prefixCls}-node-selected`,\n )}\n onMouseEnter={this.onMouseEnter}\n onMouseLeave={this.onMouseLeave}\n onContextMenu={this.onContextMenu}\n onClick={this.onSelectorClick}\n onDoubleClick={this.onSelectorDoubleClick}\n >\n {$icon}\n {$title}\n {this.renderDropIndicator()}\n </span>\n );\n };\n\n // =================== Render: Drop Indicator ===================\n renderDropIndicator = () => {\n const { disabled, eventKey } = this.props;\n const {\n context: {\n draggable,\n dropLevelOffset,\n dropPosition,\n prefixCls,\n indent,\n dropIndicatorRender,\n dragOverNodeKey,\n direction,\n },\n } = this.props;\n const rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n const showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n\n // This is a hot fix which is already fixed in\n // https://github.com/react-component/tree/pull/743/files\n // But some case need break point so we hack on this\n // ref https://github.com/ant-design/ant-design/issues/43493\n const mergedIndent = indent ?? this.cacheIndent;\n this.cacheIndent = indent;\n\n return showIndicator\n ? dropIndicatorRender({\n dropPosition,\n dropLevelOffset,\n indent: mergedIndent,\n prefixCls,\n direction,\n })\n : null;\n };\n\n // =========================== Render ===========================\n render() {\n const {\n eventKey,\n className,\n style,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n isLeaf,\n isStart,\n isEnd,\n expanded,\n selected,\n checked,\n halfChecked,\n loading,\n domRef,\n active,\n data,\n onMouseMove,\n selectable,\n indentWidth,\n index,\n ...otherProps\n } = this.props;\n const {\n context: {\n prefixCls,\n filterTreeNode,\n keyEntities,\n dropContainerKey,\n dropTargetKey,\n draggingNodeKey,\n },\n } = this.props;\n const disabled = this.isDisabled();\n const dataOrAriaAttributeProps = pickAttrs(otherProps, { aria: true, data: true });\n const { level } = getEntity(keyEntities, eventKey) || {};\n const isEndNode = isEnd[isEnd.length - 1];\n\n const mergedDraggable = this.isDraggable();\n const draggableWithoutDisabled = !disabled && mergedDraggable;\n\n const dragging = draggingNodeKey === eventKey;\n const ariaSelected = selectable !== undefined ? { 'aria-selected': !!selectable } : undefined;\n\n return (\n <div\n ref={domRef}\n className={classNames(className, `${prefixCls}-treenode`, {\n [`${prefixCls}-treenode-disabled`]: disabled,\n [`${prefixCls}-treenode-switcher-${expanded ? 'open' : 'close'}`]: !isLeaf,\n [`${prefixCls}-treenode-checkbox-checked`]: checked,\n [`${prefixCls}-treenode-checkbox-indeterminate`]: halfChecked,\n [`${prefixCls}-treenode-selected`]: selected,\n [`${prefixCls}-treenode-loading`]: loading,\n [`${prefixCls}-treenode-active`]: active,\n [`${prefixCls}-treenode-leaf-last`]: isEndNode,\n [`${prefixCls}-treenode-draggable`]: mergedDraggable,\n ['odd']: typeof index === 'number' ? (index % 2 == 0 ? true : false) : false,\n\n dragging,\n 'drop-target': dropTargetKey === eventKey,\n 'drop-container': dropContainerKey === eventKey,\n 'drag-over': !disabled && dragOver,\n 'drag-over-gap-top': !disabled && dragOverGapTop,\n 'drag-over-gap-bottom': !disabled && dragOverGapBottom,\n 'filter-node': filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props)),\n })}\n style={style}\n // Draggable config\n draggable={draggableWithoutDisabled}\n aria-grabbed={dragging}\n onDragStart={draggableWithoutDisabled ? this.onDragStart : undefined}\n // Drop config\n onDragEnter={mergedDraggable ? this.onDragEnter : undefined}\n onDragOver={mergedDraggable ? this.onDragOver : undefined}\n onDragLeave={mergedDraggable ? this.onDragLeave : undefined}\n onDrop={mergedDraggable ? this.onDrop : undefined}\n onDragEnd={mergedDraggable ? this.onDragEnd : undefined}\n onMouseMove={onMouseMove}\n {...ariaSelected}\n {...dataOrAriaAttributeProps}\n >\n <Indent\n prefixCls={prefixCls}\n level={level}\n isStart={isStart}\n isEnd={isEnd}\n width={indentWidth}\n />\n {this.renderDragHandler()}\n {this.renderSwitcher()}\n {this.renderCheckbox()}\n {this.renderSelector()}\n </div>\n );\n }\n}\n\nconst ContextTreeNode: React.FC<TreeNodeProps> = (props) => (\n <TreeContext.Consumer>\n {(context: TreeContextProps | null) => <InternalTreeNode {...props} context={context} />}\n </TreeContext.Consumer>\n);\n\nContextTreeNode.displayName = 'TreeNode';\n\n(ContextTreeNode as any).isTreeNode = 1;\n\nexport default ContextTreeNode;\n","import * as React from 'react';\nimport useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';\n\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart: VoidFunction, triggerEnd: VoidFunction) {\n const [firstMount, setFirstMount] = React.useState(false);\n\n useLayoutEffect(() => {\n if (firstMount) {\n triggerStart();\n\n return () => {\n triggerEnd();\n };\n }\n }, [firstMount]);\n\n useLayoutEffect(() => {\n setFirstMount(true);\n\n return () => {\n setFirstMount(false);\n };\n }, []);\n}\n","import classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport { FlattenNode, TreeNodeProps } from './interface';\nimport TreeNode from './TreeNode';\nimport useUnmount from './useUnmount';\nimport { getTreeNodeProps, TreeNodeRequiredProps } from './utils/treeUtil';\n\ninterface MotionTreeNodeProps extends Omit<TreeNodeProps, 'domRef'> {\n active: boolean;\n motion?: any;\n motionNodes?: FlattenNode[];\n onMotionStart: () => void;\n onMotionEnd: () => void;\n motionType?: 'show' | 'hide';\n treeNodeRequiredProps: TreeNodeRequiredProps;\n [key: string]: any;\n}\n\nconst MotionTreeNode: React.ForwardRefRenderFunction<HTMLDivElement, MotionTreeNodeProps> = (\n {\n className,\n style,\n motion,\n motionNodes,\n motionType,\n onMotionStart: onOriginMotionStart,\n onMotionEnd: onOriginMotionEnd,\n active,\n treeNodeRequiredProps,\n index,\n ...props\n },\n ref,\n) => {\n const [visible, setVisible] = React.useState(true);\n const { prefixCls } = React.useContext(TreeContext);\n\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n const targetVisible: any = motionNodes && motionType !== 'hide';\n\n useLayoutEffect(() => {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n\n const triggerMotionStart = () => {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n\n // Should only trigger once\n const triggerMotionEndRef = React.useRef(false);\n const triggerMotionEnd = () => {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n\n // Motion end event\n const onVisibleChanged = (nextVisible: boolean) => {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n\n if (motionNodes) {\n return (\n <CSSMotion\n ref={ref}\n visible={visible}\n {...motion}\n motionAppear={motionType === 'show'}\n onVisibleChanged={onVisibleChanged}\n >\n {({ className: motionClassName, style: motionStyle }, motionRef) => (\n <div\n ref={motionRef}\n className={classNames(`${prefixCls}-treenode-motion`, motionClassName)}\n style={motionStyle}\n >\n {motionNodes.map((treeNode: FlattenNode) => {\n const {\n data: { ...restProps },\n title,\n key,\n isStart,\n isEnd,\n } = treeNode;\n delete restProps.children;\n\n const treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n\n return (\n <TreeNode\n {...(restProps as Omit<typeof restProps, 'children'>)}\n {...treeNodeProps}\n title={title}\n active={active}\n data={treeNode.data}\n key={key}\n index={index}\n isStart={isStart}\n isEnd={isEnd}\n />\n );\n })}\n </div>\n )}\n </CSSMotion>\n );\n }\n return (\n <TreeNode\n index={index}\n domRef={ref}\n className={className}\n style={style}\n {...props}\n active={active}\n />\n );\n};\n\nMotionTreeNode.displayName = 'MotionTreeNode';\n\nconst RefMotionTreeNode = React.forwardRef(MotionTreeNode);\n\nexport default RefMotionTreeNode;\n","import { Key, FlattenNode } from '../interface';\n\nexport function findExpandedKeys(prev: Key[] = [], next: Key[] = []) {\n const prevLen = prev.length;\n const nextLen = next.length;\n\n if (Math.abs(prevLen - nextLen) !== 1) {\n return { add: false, key: null };\n }\n\n function find(shorter: Key[], longer: Key[]) {\n const cache: Map<Key, boolean> = new Map();\n shorter.forEach(key => {\n cache.set(key, true);\n });\n\n const keys = longer.filter(key => !cache.has(key));\n\n return keys.length === 1 ? keys[0] : null;\n }\n\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next),\n };\n }\n\n return {\n add: false,\n key: find(next, prev),\n };\n}\n\nexport function getExpandRange(shorter: FlattenNode[], longer: FlattenNode[], key: Key) {\n const shorterStartIndex = shorter.findIndex(data => data.key === key);\n const shorterEndNode = shorter[shorterStartIndex + 1];\n const longerStartIndex = longer.findIndex(data => data.key === key);\n\n if (shorterEndNode) {\n const longerEndIndex = longer.findIndex(data => data.key === shorterEndNode.key);\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}\n","/**\n * Handle virtual list of the TreeNodes.\n */\nimport useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';\nimport VirtualList, { ListRef } from 'rc-virtual-list';\nimport * as React from 'react';\nimport {\n BasicDataNode,\n DataEntity,\n DataNode,\n FlattenNode,\n Key,\n KeyEntities,\n ScrollTo,\n} from './interface';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\n\nconst HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0,\n};\n\nconst noop = () => {};\n\nexport const MOTION_KEY = `RC_TREE_MOTION_${Math.random()}`;\n\nconst MotionNode: DataNode = {\n key: MOTION_KEY,\n};\n\nexport const MotionEntity: DataEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode],\n};\n\nconst MotionFlattenData: FlattenNode = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: [],\n};\n\nexport interface NodeListRef {\n scrollTo: ScrollTo;\n getIndentWidth: () => number;\n}\n\ninterface NodeListProps<TreeDataType extends BasicDataNode> {\n prefixCls: string;\n style: React.CSSProperties;\n data: FlattenNode<TreeDataType>[];\n motion: any;\n focusable?: boolean;\n activeItem: FlattenNode<TreeDataType>;\n focused?: boolean;\n tabIndex: number;\n checkable?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n indentWidth?: number;\n\n expandedKeys: Key[];\n selectedKeys: Key[];\n checkedKeys: Key[];\n loadedKeys: Key[];\n loadingKeys: Key[];\n halfCheckedKeys: Key[];\n keyEntities: KeyEntities;\n\n dragging: boolean;\n dragOverNodeKey: Key;\n dropPosition: number;\n\n // Virtual list\n height: number;\n itemHeight: number;\n scrollWidth?: number;\n virtual?: boolean;\n\n onVirtualScroll?: (info: any) => void;\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\n onFocus?: React.FocusEventHandler<HTMLDivElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement>;\n onActiveChange: (key: Key) => void;\n\n onListChangeStart: () => void;\n onListChangeEnd: () => void;\n}\n\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(\n list: FlattenNode[],\n virtual: boolean,\n height: number,\n itemHeight: number,\n) {\n if (virtual === false || !height) {\n return list;\n }\n\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\n\nfunction itemKey(item: FlattenNode) {\n const { key, pos } = item;\n return getKey(key, pos);\n}\n\nfunction getAccessibilityPath(item: FlattenNode): string {\n let path = String(item.data.key);\n let current = item;\n\n while (current.parent) {\n current = current.parent;\n path = `${current.data.key} > ${path}`;\n }\n\n return path;\n}\n\nconst NodeList = React.forwardRef<NodeListRef, any>((props, ref) => {\n const {\n prefixCls,\n data,\n selectable,\n checkable,\n expandedKeys,\n selectedKeys,\n checkedKeys,\n loadedKeys,\n loadingKeys,\n halfCheckedKeys,\n keyEntities,\n disabled,\n indentWidth,\n\n dragging,\n dragOverNodeKey,\n dropPosition,\n motion,\n\n height,\n itemHeight,\n virtual,\n onVirtualScroll,\n\n focusable,\n activeItem,\n focused,\n tabIndex,\n\n onKeyDown,\n onFocus,\n onBlur,\n onActiveChange,\n\n onListChangeStart,\n onListChangeEnd,\n\n ...domProps\n } = props;\n\n // =============================== Ref ================================\n const listRef = React.useRef<ListRef>(null);\n const indentMeasurerRef = React.useRef<any>(null);\n React.useImperativeHandle(ref, () => ({\n scrollTo: (scroll) => {\n if (listRef.current) {\n listRef.current.scrollTo(scroll);\n }\n },\n getIndentWidth: () => indentMeasurerRef.current.offsetWidth,\n }));\n\n // ============================== Motion ==============================\n const [prevExpandedKeys, setPrevExpandedKeys] = React.useState(expandedKeys);\n const [prevData, setPrevData] = React.useState(data);\n const [transitionData, setTransitionData] = React.useState(data);\n const [transitionRange, setTransitionRange] = React.useState([]);\n const [motionType, setMotionType] = React.useState<'show' | 'hide' | null>(null);\n\n // When motion end but data change, this will makes data back to previous one\n const dataRef = React.useRef(data);\n dataRef.current = data;\n\n function onMotionEnd() {\n const latestData = dataRef.current;\n\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n\n onListChangeEnd();\n }\n\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(() => {\n setPrevExpandedKeys(expandedKeys);\n\n const diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n const keyIndex = prevData.findIndex(({ key }: any) => key === diffExpanded.key);\n\n const rangeNodes: any = getMinimumRangeTransitionRange(\n getExpandRange(prevData, data, diffExpanded.key),\n virtual,\n height,\n itemHeight,\n );\n\n const newTransitionData: FlattenNode[] = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n const keyIndex = data.findIndex(({ key }: any) => key === diffExpanded.key);\n\n const rangeNodes: any = getMinimumRangeTransitionRange(\n getExpandRange(data, prevData, diffExpanded.key),\n virtual,\n height,\n itemHeight,\n );\n\n const newTransitionData: FlattenNode[] = data.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n\n // We should clean up motion if is changed by dragging\n React.useEffect(() => {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n\n const mergedData = motion ? transitionData : data;\n\n const treeNodeRequiredProps = {\n expandedKeys,\n selectedKeys,\n loadedKeys,\n loadingKeys,\n checkedKeys,\n halfCheckedKeys,\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n };\n\n return (\n <>\n {focused && activeItem && (\n <span style={HIDDEN_STYLE} aria-live='assertive'>\n {getAccessibilityPath(activeItem)}\n </span>\n )}\n <div>\n <input\n style={HIDDEN_STYLE}\n disabled={focusable === false || disabled}\n tabIndex={focusable !== false ? tabIndex : null}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onBlur={onBlur}\n value=''\n onChange={noop}\n aria-label='for screen reader'\n />\n </div>\n <div\n className={`${prefixCls}-treenode`}\n aria-hidden\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0,\n }}\n >\n <div className={`${prefixCls}-indent`}>\n <div ref={indentMeasurerRef} className={`${prefixCls}-indent-unit`} />\n </div>\n </div>\n <VirtualList<FlattenNode>\n {...domProps}\n data={mergedData}\n onVirtualScroll={onVirtualScroll}\n itemKey={itemKey}\n height={height}\n fullHeight={false}\n virtual={virtual}\n itemHeight={itemHeight}\n prefixCls={`${prefixCls}-list`}\n ref={listRef}\n onVisibleChange={(originList, fullList) => {\n const originSet = new Set(originList);\n const restList = fullList.filter((item) => !originSet.has(item));\n\n // Motion node is not render. Skip motion\n if (restList.some((item) => itemKey(item) === MOTION_KEY)) {\n onMotionEnd();\n }\n }}\n >\n {(treeNode: any, index) => {\n const {\n pos,\n data: { ...restProps },\n title,\n key,\n isStart,\n isEnd,\n } = treeNode;\n const mergedKey = getKey(key, pos);\n\n delete restProps.key;\n delete restProps.children;\n\n const treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n\n return (\n <MotionTreeNode\n {...(restProps as Omit<typeof restProps, 'children'>)}\n {...treeNodeProps}\n title={title}\n active={!!activeItem && key === activeItem.key}\n pos={pos}\n data={treeNode.data}\n isStart={isStart}\n isEnd={isEnd}\n motion={motion}\n indentWidth={indentWidth}\n motionNodes={key === MOTION_KEY ? transitionRange : null}\n motionType={motionType}\n onMotionStart={onListChangeStart}\n onMotionEnd={onMotionEnd}\n treeNodeRequiredProps={treeNodeRequiredProps}\n index={index}\n onMouseMove={() => {\n onActiveChange(null);\n }}\n />\n );\n }}\n </VirtualList>\n </>\n );\n});\n\nNodeList.displayName = 'NodeList';\n\nexport default NodeList;\n","/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\n\nimport warning from 'rc-util/lib/warning';\nimport React from 'react';\nimport {\n BasicDataNode,\n DataEntity,\n DataNode,\n Direction,\n FlattenNode,\n Key,\n KeyEntities,\n NodeElement,\n NodeInstance,\n} from './interface';\nimport { AllowDrop, TreeProps } from './Tree';\nimport TreeNode from './TreeNode';\nimport getEntity from './utils/keyUtil';\n\nexport { getPosition, isTreeNode } from './utils/treeUtil';\n\nexport function arrDel(list: Key[], value: any) {\n if (!list) return [];\n const clone = list.slice();\n const index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list: Key[], value: any) {\n const clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos: string) {\n return pos.split('-');\n}\n\nexport function getDragChildrenKeys<TreeDataType extends BasicDataNode = DataNode>(\n dragNodeKey: any,\n keyEntities: KeyEntities<TreeDataType>,\n): Key[] {\n // not contains self\n // self for left or right drag\n const dragChildrenKeys: React.Key[] = [];\n\n const entity = getEntity(keyEntities, dragNodeKey);\n function dig(list: DataEntity<TreeDataType>[] = []) {\n list.forEach(({ key, children }) => {\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n\n dig(entity.children);\n\n return dragChildrenKeys;\n}\n\nexport function isLastChild<TreeDataType extends BasicDataNode = DataNode>(treeNodeEntity: any) {\n if (treeNodeEntity.parent) {\n const posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\n\nexport function isFirstChild<TreeDataType extends BasicDataNode = DataNode>(\n treeNodeEntity: DataEntity<TreeDataType>,\n) {\n const posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n\n// Only used when drag, not affect SSR.\nexport function calcDropPosition<TreeDataType extends BasicDataNode = DataNode>(\n event: React.MouseEvent,\n dragNode: NodeInstance<TreeDataType>,\n targetNode: NodeInstance<TreeDataType>,\n indent: number,\n startMousePosition: {\n x: number;\n y: number;\n },\n allowDrop: AllowDrop<any>,\n flattenedNodes: FlattenNode<TreeDataType>[],\n keyEntities: KeyEntities<TreeDataType>,\n expandKeys: Key[],\n direction: Direction,\n): {\n dropPosition: -1 | 0 | 1;\n dropLevelOffset: number;\n dropTargetKey: Key;\n dropTargetPos: string;\n dropContainerKey: Key;\n dragOverNodeKey: Key;\n dropAllowed: boolean;\n} {\n const { clientX, clientY } = event;\n const { top, height } = (event.target as HTMLElement).getBoundingClientRect();\n // optional chain for testing\n const horizontalMouseOffset =\n (direction === 'rtl' ? -1 : 1) * ((startMousePosition?.x || 0) - clientX);\n const rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n\n // Filter the expanded keys to exclude the node that not has children currently (like async nodes).\n const filteredExpandKeys = expandKeys.filter((key: any) => keyEntities[key]?.children?.length);\n\n // find abstract drop node by horizontal offset\n let abstractDropNodeEntity: any = getEntity(keyEntities, targetNode.props.eventKey);\n\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n const nodeIndex = flattenedNodes.findIndex(\n (flattenedNode) => flattenedNode.key === abstractDropNodeEntity.key,\n );\n const prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n const prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = getEntity(keyEntities, prevNodeKey);\n }\n\n const initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n\n const abstractDragOverEntity = abstractDropNodeEntity;\n const dragOverNodeKey = abstractDropNodeEntity.key;\n\n let dropPosition: -1 | 0 | 1 = 0;\n let dropLevelOffset = 0;\n\n // Only allow cross level drop when dragging on a non-expanded node\n if (!filteredExpandKeys.includes(initialAbstractDropNodeKey)) {\n for (let i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n\n const abstractDragDataNode = dragNode.props.data;\n const abstractDropDataNode = abstractDropNodeEntity.node;\n let dropAllowed = true;\n if (\n isFirstChild(abstractDropNodeEntity) &&\n abstractDropNodeEntity.level === 0 &&\n clientY < top + height / 2 &&\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1,\n }) &&\n abstractDropNodeEntity.key === targetNode.props.eventKey\n ) {\n // first half of first node in first level\n dropPosition = -1;\n } else if (\n (abstractDragOverEntity.children || []).length &&\n filteredExpandKeys.includes(dragOverNodeKey)\n ) {\n // drop on expanded node\n // only allow drop inside\n if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0,\n })\n ) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })\n ) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0,\n })\n ) {\n dropPosition = 0;\n } else if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })\n ) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (\n allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })\n ) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n\n return {\n dropPosition,\n dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : abstractDropNodeEntity.parent?.key || null,\n dropAllowed,\n };\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys: Key[], props: TreeProps) {\n if (!selectedKeys) return undefined;\n\n const { multiple } = props;\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\nconst internalProcessProps = (props: DataNode): any => props;\nexport function convertDataToTree(\n treeData: DataNode[] | any,\n processor?: { processProps: (prop: DataNode) => any },\n): NodeElement[] {\n if (!treeData) return [];\n\n const { processProps = internalProcessProps } = processor || {};\n const list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(({ children, ...props }): NodeElement => {\n const childrenNodes = convertDataToTree(children, processor);\n\n return (\n <TreeNode key={props.key} {...processProps(props)}>\n {childrenNodes}\n </TreeNode>\n );\n });\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys: Key[] | { checked: Key[]; halfChecked: Key[] }) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n let keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined,\n };\n } else if (typeof keys === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined,\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n return keyProps;\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList: any[], keyEntities: KeyEntities): Key[] {\n const expandedKeys = new Set<Key>();\n\n function conductUp(key: Key) {\n if (expandedKeys.has(key)) return;\n\n const entity = getEntity(keyEntities, key);\n if (!entity) return;\n\n expandedKeys.add(key);\n\n const { parent, node } = entity;\n\n if (node.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach((key) => {\n conductUp(key);\n });\n\n return [...expandedKeys];\n}\n","import warning from 'rc-util/lib/warning';\nimport {\n BasicDataNode,\n DataEntity,\n DataNode,\n GetCheckDisabled,\n Key,\n KeyEntities,\n} from '../interface';\nimport getEntity from './keyUtil';\n\ninterface ConductReturnType {\n checkedKeys: Key[];\n halfCheckedKeys: Key[];\n}\n\nfunction removeFromCheckedKeys(halfCheckedKeys: Set<Key>, checkedKeys: Set<Key>) {\n const filteredKeys = new Set<Key>();\n halfCheckedKeys.forEach((key) => {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\n\nexport function isCheckDisabled<TreeDataType>(node: TreeDataType) {\n const { disabled, disableCheckbox, checkable } = (node || {}) as DataNode;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n\n// Fill miss keys\nfunction fillConductCheck<TreeDataType extends BasicDataNode = DataNode>(\n keys: Set<Key>,\n levelEntities: Map<number, Set<DataEntity<TreeDataType>>>,\n maxLevel: number,\n syntheticGetCheckDisabled: GetCheckDisabled<TreeDataType>,\n): ConductReturnType {\n const checkedKeys = new Set<Key>(keys);\n const halfCheckedKeys = new Set<Key>();\n\n // Add checked keys top to bottom\n for (let level = 0; level <= maxLevel; level += 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach((entity) => {\n const { key, node, children = [] } = entity;\n\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children\n .filter((childEntity) => !syntheticGetCheckDisabled(childEntity.node))\n .forEach((childEntity) => {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n\n // Add checked keys from bottom to top\n const visitedKeys = new Set<Key>();\n for (let level = maxLevel; level >= 0; level -= 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach((entity: any) => {\n const { parent, node } = entity;\n\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n\n let allChecked = true;\n let partialChecked = false;\n\n (parent.children || [])\n .filter((childEntity: any) => !syntheticGetCheckDisabled(childEntity.node))\n .forEach(({ key }: any) => {\n const checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n\n visitedKeys.add(parent.key);\n });\n }\n\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys)),\n };\n}\n\n// Remove useless key\nfunction cleanConductCheck<TreeDataType extends BasicDataNode = DataNode>(\n keys: Set<Key>,\n halfKeys: Key[],\n levelEntities: Map<number, Set<DataEntity<TreeDataType>>>,\n maxLevel: number,\n syntheticGetCheckDisabled: GetCheckDisabled<TreeDataType>,\n): ConductReturnType {\n const checkedKeys = new Set<Key>(keys);\n let halfCheckedKeys = new Set<Key>(halfKeys);\n\n // Remove checked keys from top to bottom\n for (let level = 0; level <= maxLevel; level += 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach((entity) => {\n const { key, node, children = [] } = entity;\n\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children\n .filter((childEntity) => !syntheticGetCheckDisabled(childEntity.node))\n .forEach((childEntity) => {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set<Key>();\n const visitedKeys = new Set<Key>();\n for (let level = maxLevel; level >= 0; level -= 1) {\n const entities = levelEntities.get(level) || new Set();\n\n entities.forEach((entity: any) => {\n const { parent, node } = entity;\n\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n\n let allChecked = true;\n let partialChecked = false;\n\n (parent.children || [])\n .filter((childEntity: any) => !syntheticGetCheckDisabled(childEntity.node))\n .forEach(({ key }: any) => {\n const checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n\n visitedKeys.add(parent.key);\n });\n }\n\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys)),\n };\n}\n\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck<TreeDataType extends BasicDataNode = DataNode>(\n keyList: Key[],\n checked: true | { checked: false; halfCheckedKeys: Key[] },\n keyEntities: KeyEntities<TreeDataType>,\n getCheckDisabled?: GetCheckDisabled<TreeDataType>,\n): ConductReturnType {\n const warningMissKeys: Key[] = [];\n\n let syntheticGetCheckDisabled: GetCheckDisabled<TreeDataType>;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n\n // We only handle exist keys\n const keys = new Set<Key>(\n keyList.filter((key) => {\n const hasEntity = !!getEntity(keyEntities, key);\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n\n return hasEntity;\n }),\n );\n const levelEntities = new Map<number, Set<DataEntity<TreeDataType>>>();\n let maxLevel = 0;\n\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach((key) => {\n const entity = keyEntities[key];\n const { level } = entity;\n\n let levelSet: any = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n\n levelSet.add(entity);\n\n maxLevel = Math.max(maxLevel, level);\n });\n\n warning(\n !warningMissKeys.length,\n `Tree missing follow keys: ${warningMissKeys\n .slice(0, 100)\n .map((key) => `'${key}'`)\n .join(', ')}`,\n );\n\n let result: ConductReturnType;\n if (checked === true) {\n result = fillConductCheck<TreeDataType>(\n keys,\n levelEntities,\n maxLevel,\n syntheticGetCheckDisabled,\n );\n } else {\n result = cleanConductCheck(\n keys,\n checked.halfCheckedKeys,\n levelEntities,\n maxLevel,\n syntheticGetCheckDisabled,\n );\n }\n\n return result;\n}\n","// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\n\nimport classNames from 'classnames';\nimport KeyCode from 'rc-util/lib/KeyCode';\nimport pickAttrs from 'rc-util/lib/pickAttrs';\nimport warning from 'rc-util/lib/warning';\nimport * as React from 'react';\n\nimport {\n NodeDragEventHandler,\n NodeDragEventParams,\n NodeMouseEventHandler,\n NodeMouseEventParams,\n TreeContext,\n} from './contextTypes';\nimport DropIndicator from './DropIndicator';\nimport {\n BasicDataNode,\n DataNode,\n Direction,\n EventDataNode,\n FieldNames,\n FlattenNode,\n IconType,\n Key,\n KeyEntities,\n NodeInstance,\n SafeKey,\n ScrollTo,\n} from './interface';\nimport NodeList, { MotionEntity, MOTION_KEY, NodeListRef } from './NodeList';\nimport TreeNode from './TreeNode';\nimport {\n arrAdd,\n arrDel,\n calcDropPosition,\n calcSelectedKeys,\n conductExpandParent,\n getDragChildrenKeys,\n parseCheckedKeys,\n posToArr,\n} from './util';\nimport { conductCheck } from './utils/conductUtil';\nimport getEntity from './utils/keyUtil';\nimport {\n convertDataToEntities,\n convertNodePropsToEventData,\n convertTreeToData,\n fillFieldNames,\n flattenTreeData,\n getTreeNodeProps,\n warningWithoutKey,\n} from './utils/treeUtil';\n\nconst MAX_RETRY_TIMES = 10;\n\nexport interface CheckInfo<TreeDataType extends BasicDataNode = DataNode> {\n event: 'check';\n node: EventDataNode<TreeDataType>;\n checked: boolean;\n nativeEvent: MouseEvent;\n checkedNodes: TreeDataType[];\n checkedNodesPositions?: { node: TreeDataType; pos: string }[];\n halfCheckedKeys?: Key[];\n}\n\nexport interface AllowDropOptions<TreeDataType extends BasicDataNode = DataNode> {\n dragNode: TreeDataType;\n dropNode: TreeDataType;\n dropPosition: -1 | 0 | 1;\n}\nexport type AllowDrop<TreeDataType extends BasicDataNode = DataNode> = (\n options: AllowDropOptions<TreeDataType>,\n) => boolean;\n\nexport type DraggableFn = (node: DataNode) => boolean;\nexport type DraggableConfig = {\n icon?: React.ReactNode | false;\n nodeDraggable?: DraggableFn;\n};\n\nexport type ExpandAction = false | 'click' | 'doubleClick';\n\nexport interface TreeProps<TreeDataType extends BasicDataNode = DataNode> {\n prefixCls: string;\n className?: string;\n style?: React.CSSProperties;\n focusable?: boolean;\n activeKey?: Key | null;\n tabIndex?: number;\n children?: React.ReactNode;\n treeData?: TreeDataType[]; // Generate treeNode by children\n fieldNames?: FieldNames;\n showLine?: boolean;\n showIcon?: boolean;\n icon?: IconType;\n indentWidth?: number;\n selectable?: boolean;\n expandAction?: ExpandAction;\n disabled?: boolean;\n multiple?: boolean;\n checkable?: boolean | React.ReactNode;\n checkStrictly?: boolean;\n draggable?: DraggableFn | boolean | DraggableConfig;\n defaultExpandParent?: boolean;\n autoExpandParent?: boolean;\n defaultExpandAll?: boolean;\n defaultExpandedKeys?: Key[];\n expandedKeys?: Key[];\n defaultCheckedKeys?: Key[];\n checkedKeys?: Key[] | { checked: Key[]; halfChecked: Key[] };\n defaultSelectedKeys?: Key[];\n selectedKeys?: Key[];\n allowDrop?: any;\n titleRender?: (node: TreeDataType) => React.ReactNode;\n dropIndicatorRender?: (props: {\n dropPosition: -1 | 0 | 1;\n dropLevelOffset: number;\n indent: number;\n prefixCls: string;\n direction: Direction;\n }) => React.ReactNode;\n onFocus?: React.FocusEventHandler<HTMLDivElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement>;\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\n onContextMenu?: React.MouseEventHandler<HTMLDivElement>;\n onClick?: NodeMouseEventHandler<TreeDataType>;\n onDoubleClick?: NodeMouseEventHandler<TreeDataType>;\n onScroll?: React.UIEventHandler<HTMLElement>;\n onExpand?: (\n expandedKeys: Key[],\n info: {\n node: EventDataNode<TreeDataType>;\n expanded: boolean;\n nativeEvent: MouseEvent;\n },\n ) => void;\n onCheck?: (\n checked: { checked: Key[]; halfChecked: Key[] } | Key[],\n info: CheckInfo<TreeDataType>,\n ) => void;\n onSelect?: (\n selectedKeys: Key[],\n info: {\n event: 'select';\n selected: boolean;\n node: EventDataNode<TreeDataType>;\n selectedNodes: TreeDataType[];\n nativeEvent: MouseEvent;\n },\n ) => void;\n onLoad?: (\n loadedKeys: Key[],\n info: {\n event: 'load';\n node: EventDataNode<TreeDataType>;\n },\n ) => void;\n loadData?: (treeNode: EventDataNode<TreeDataType>) => Promise<any>;\n loadedKeys?: Key[];\n onMouseEnter?: (info: NodeMouseEventParams<TreeDataType>) => void;\n onMouseLeave?: (info: NodeMouseEventParams<TreeDataType>) => void;\n onRightClick?: (info: { event: React.MouseEvent; node: EventDataNode<TreeDataType> }) => void;\n onDragStart?: (info: NodeDragEventParams<TreeDataType>) => void;\n onDragEnter?: (info: NodeDragEventParams<TreeDataType> & { expandedKeys: Key[] }) => void;\n onDragOver?: (info: NodeDragEventParams<TreeDataType>) => void;\n onDragLeave?: (info: NodeDragEventParams<TreeDataType>) => void;\n onDragEnd?: (info: NodeDragEventParams<TreeDataType>) => void;\n onDrop?: (\n info: NodeDragEventParams<TreeDataType> & {\n dragNode: EventDataNode<TreeDataType>;\n dragNodesKeys: Key[];\n dropPosition: number;\n dropToGap: boolean;\n },\n ) => void;\n /**\n * Used for `rc-tree-select` only.\n * Do not use in your production code directly since this will be refactor.\n */\n onActiveChange?: (key: Key) => void;\n filterTreeNode?: (treeNode: EventDataNode<TreeDataType>) => boolean;\n motion?: any;\n switcherIcon?: IconType;\n\n // Virtual List\n height?: number;\n itemHeight?: number;\n scrollWidth?: number;\n onVirtualScroll?: (info: any) => any;\n itemScrollOffset?: number;\n virtual?: boolean;\n\n // direction for drag logic\n direction?: Direction;\n\n rootClassName?: string;\n rootStyle?: React.CSSProperties;\n}\n\ninterface TreeState<TreeDataType extends BasicDataNode = DataNode> {\n keyEntities: KeyEntities<TreeDataType>;\n\n indent: number | null;\n\n selectedKeys: Key[];\n checkedKeys: Key[];\n halfCheckedKeys: Key[];\n loadedKeys: Key[];\n loadingKeys: Key[];\n expandedKeys: Key[];\n\n draggingNodeKey: any;\n dragChildrenKeys: Key[];\n\n // for details see comment in Tree.state\n dropPosition: -1 | 0 | 1 | null;\n dropLevelOffset: number | null;\n dropContainerKey: Key | null;\n dropTargetKey: Key | null;\n dropTargetPos: string | null;\n dropAllowed: boolean;\n dragOverNodeKey: Key | null;\n\n treeData: TreeDataType[];\n flattenNodes: FlattenNode<TreeDataType>[];\n\n focused: boolean;\n activeKey: Key | null;\n\n // Record if list is changing\n listChanging: boolean;\n\n prevProps: TreeProps;\n\n fieldNames: FieldNames;\n}\n\nclass Tree<TreeDataType extends DataNode | BasicDataNode = DataNode> extends React.Component<\n TreeProps<any>,\n TreeState<any>\n> {\n static defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: () => true,\n expandAction: false,\n };\n\n static TreeNode = TreeNode;\n\n destroyed: boolean = false;\n\n delayedDragEnterLogic: Record<any, number>;\n\n loadingRetryTimes: Record<any, number> = {};\n\n state: any = {\n keyEntities: {},\n\n indent: null,\n\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n\n draggingNodeKey: null,\n dragChildrenKeys: [],\n\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null, // the drop position of abstract-drop-node, inside 0, top -1, bottom 1\n dropContainerKey: null, // the container key of abstract-drop-node if dropPosition is -1 or 1\n dropLevelOffset: null, // the drop level offset of abstract-drag-over-node\n dropTargetPos: null, // the pos of abstract-drop-node\n dropAllowed: true, // if drop to abstract-drop-node is allowed\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n\n treeData: [],\n flattenNodes: [],\n\n focused: false,\n activeKey: null,\n\n listChanging: false,\n\n prevProps: null,\n\n fieldNames: fillFieldNames(),\n };\n\n dragStartMousePosition: any = null;\n\n dragNode: any;\n\n currentMouseOverDroppableNodeKey: any = null;\n\n listRef = React.createRef<NodeListRef>();\n\n componentDidMount(): void {\n this.destroyed = false;\n this.onUpdated();\n }\n\n componentDidUpdate(): void {\n this.onUpdated();\n }\n\n onUpdated() {\n const { activeKey, itemScrollOffset = 0 } = this.props;\n\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({ activeKey });\n\n if (activeKey !== null) {\n this.scrollTo({ key: activeKey, offset: itemScrollOffset });\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n\n static getDerivedStateFromProps(props: any, prevState: any) {\n const { prevProps } = prevState;\n const newState: Partial<TreeState> = {\n prevProps: props,\n };\n\n function needSync(name: string) {\n return (!prevProps && name in props) || (prevProps && prevProps[name] !== props[name]);\n }\n\n // ================== Tree Node ==================\n let treeData: any;\n\n // fieldNames\n let { fieldNames } = prevState;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n ({ treeData } = props);\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n const entitiesMap = convertDataToEntities(treeData, { fieldNames });\n newState.keyEntities = {\n [MOTION_KEY]: MotionEntity,\n ...entitiesMap.keyEntities,\n };\n\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n\n const keyEntities = newState.keyEntities || prevState.keyEntities;\n\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || (prevProps && needSync('autoExpandParent'))) {\n newState.expandedKeys =\n props.autoExpandParent || (!prevProps && props.defaultExpandParent)\n ? conductExpandParent(props.expandedKeys, keyEntities)\n : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n const cloneKeyEntities = { ...keyEntities };\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map((key) => cloneKeyEntities[key].key);\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys =\n props.autoExpandParent || props.defaultExpandParent\n ? conductExpandParent(props.defaultExpandedKeys, keyEntities)\n : props.defaultExpandedKeys;\n }\n\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n const flattenNodes: FlattenNode[] = flattenTreeData(\n treeData || prevState.treeData,\n newState.expandedKeys || prevState.expandedKeys,\n fieldNames,\n );\n newState.flattenNodes = flattenNodes;\n }\n\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n\n // ================= checkedKeys =================\n if (props.checkable) {\n let checkedKeyEntity;\n\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys,\n };\n }\n\n if (checkedKeyEntity) {\n let { checkedKeys = [], halfCheckedKeys = [] } = checkedKeyEntity;\n\n if (!props.checkStrictly) {\n const conductKeys = conductCheck(checkedKeys, true, keyEntities);\n ({ checkedKeys, halfCheckedKeys } = conductKeys);\n }\n\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n\n return newState;\n }\n\n onNodeDragStart: NodeDragEventHandler<any, HTMLDivElement> = (event, node) => {\n const { expandedKeys, keyEntities } = this.state;\n const { onDragStart } = this.props;\n const { eventKey } = node.props;\n\n this.dragNode = node;\n this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY,\n };\n\n const newExpandedKeys = arrDel(expandedKeys, eventKey);\n\n this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: this.listRef.current?.getIndentWidth?.(),\n } as TreeState<TreeDataType>);\n\n this.setExpandedKeys(newExpandedKeys);\n\n window.addEventListener('dragend', this.onWindowDragEnd);\n\n onDragStart?.({ event, node: convertNodePropsToEventData<TreeDataType>(node.props) });\n };\n\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n onNodeDragEnter = (event: React.DragEvent<HTMLDivElement>, node: any) => {\n const { expandedKeys, keyEntities, dragChildrenKeys, flattenNodes, indent } = this.state;\n const { onDragEnter, onExpand, allowDrop, direction } = this.props;\n const { pos, eventKey } = node.props;\n const { dragNode } = this;\n\n // record the key of node which is latest entered, used in dragleave event.\n if (this.currentMouseOverDroppableNodeKey !== eventKey) {\n this.currentMouseOverDroppableNodeKey = eventKey;\n }\n\n if (!dragNode) {\n this.resetDragState();\n return;\n }\n\n const {\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropTargetPos,\n dropAllowed,\n dragOverNodeKey,\n } = calcDropPosition<TreeDataType>(\n event,\n dragNode,\n node,\n indent,\n this.dragStartMousePosition,\n allowDrop,\n flattenNodes,\n keyEntities,\n expandedKeys,\n direction,\n );\n\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed\n ) {\n this.resetDragState();\n return;\n }\n\n // Side effect for delay drag\n if (!this.delayedDragEnterLogic) {\n this.delayedDragEnterLogic = {};\n }\n Object.keys(this.delayedDragEnterLogic).forEach((key) => {\n clearTimeout(this.delayedDragEnterLogic[key]);\n });\n\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n this.delayedDragEnterLogic[pos] = window.setTimeout(() => {\n if (this.state.draggingNodeKey === null) return;\n\n let newExpandedKeys = [...expandedKeys];\n const entity = getEntity(keyEntities, node.props.eventKey);\n\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n\n if (!('expandedKeys' in this.props)) {\n this.setExpandedKeys(newExpandedKeys);\n }\n\n onExpand?.(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent,\n });\n }, 800);\n }\n\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n this.resetDragState();\n return;\n }\n\n // Update drag over node and drag state\n this.setState({\n dragOverNodeKey,\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropTargetPos,\n dropAllowed,\n });\n\n onDragEnter?.({\n event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys,\n });\n };\n\n onNodeDragOver = (event: React.DragEvent<HTMLDivElement>, node: NodeInstance<TreeDataType>) => {\n const { dragChildrenKeys, flattenNodes, keyEntities, expandedKeys, indent } = this.state;\n const { onDragOver, allowDrop, direction } = this.props;\n const { dragNode } = this;\n\n if (!dragNode) {\n return;\n }\n\n const {\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropAllowed,\n dropTargetPos,\n dragOverNodeKey,\n } = calcDropPosition(\n event,\n dragNode,\n node,\n indent,\n this.dragStartMousePosition,\n allowDrop,\n flattenNodes,\n keyEntities,\n expandedKeys,\n direction,\n );\n\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed calculated by calcDropPosition\n return;\n }\n\n // Update drag position\n\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (\n !(\n this.state.dropPosition === null &&\n this.state.dropLevelOffset === null &&\n this.state.dropTargetKey === null &&\n this.state.dropContainerKey === null &&\n this.state.dropTargetPos === null &&\n this.state.dropAllowed === false &&\n this.state.dragOverNodeKey === null\n )\n ) {\n this.resetDragState();\n }\n } else if (\n !(\n dropPosition === this.state.dropPosition &&\n dropLevelOffset === this.state.dropLevelOffset &&\n dropTargetKey === this.state.dropTargetKey &&\n dropContainerKey === this.state.dropContainerKey &&\n dropTargetPos === this.state.dropTargetPos &&\n dropAllowed === this.state.dropAllowed &&\n dragOverNodeKey === this.state.dragOverNodeKey\n )\n ) {\n this.setState({\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropTargetPos,\n dropAllowed,\n dragOverNodeKey,\n });\n }\n\n onDragOver?.({ event, node: convertNodePropsToEventData(node.props) });\n };\n\n onNodeDragLeave: NodeDragEventHandler<TreeDataType> = (event, node) => {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (\n this.currentMouseOverDroppableNodeKey === node.props.eventKey &&\n !event.currentTarget.contains(event.relatedTarget as Node)\n ) {\n this.resetDragState();\n this.currentMouseOverDroppableNodeKey = null;\n }\n\n const { onDragLeave } = this.props;\n\n onDragLeave?.({ event, node: convertNodePropsToEventData<TreeDataType>(node.props) });\n };\n\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n onWindowDragEnd = (event: any) => {\n this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', this.onWindowDragEnd);\n };\n\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n onNodeDragEnd: any = (event: any, node: any) => {\n const { onDragEnd } = this.props;\n this.setState({\n dragOverNodeKey: null,\n });\n\n this.cleanDragState();\n\n onDragEnd?.({ event, node: convertNodePropsToEventData<TreeDataType>(node.props) });\n\n this.dragNode = null;\n\n window.removeEventListener('dragend', this.onWindowDragEnd);\n };\n\n onNodeDrop = (\n event: React.DragEvent<HTMLDivElement>,\n node: any,\n outsideTree: boolean = false,\n ) => {\n const { dragChildrenKeys, dropPosition, dropTargetKey, dropTargetPos, dropAllowed } =\n this.state;\n\n if (!dropAllowed) return;\n\n const { onDrop } = this.props;\n\n this.setState({\n dragOverNodeKey: null,\n });\n this.cleanDragState();\n\n if (dropTargetKey === null) return;\n\n const abstractDropNodeProps = {\n ...getTreeNodeProps(dropTargetKey, this.getTreeNodeRequiredProps()),\n active: this.getActiveItem()?.key === dropTargetKey,\n data: getEntity(this.state.keyEntities, dropTargetKey).node,\n };\n const dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n\n warning(\n !dropToChild,\n \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\",\n );\n\n const posArr = posToArr(dropTargetPos);\n\n const dropResult = {\n event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: this.dragNode ? convertNodePropsToEventData(this.dragNode.props) : null,\n dragNodesKeys: [this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1]),\n };\n\n if (!outsideTree) {\n onDrop?.(dropResult);\n }\n\n this.dragNode = null;\n };\n\n resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false,\n });\n }\n\n cleanDragState = () => {\n const { draggingNodeKey } = this.state;\n if (draggingNodeKey !== null) {\n this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null,\n });\n }\n this.dragStartMousePosition = null;\n this.currentMouseOverDroppableNodeKey = null;\n };\n\n triggerExpandActionExpand: NodeMouseEventHandler = (e, treeNode) => {\n const { expandedKeys, flattenNodes } = this.state;\n const { expanded, key, isLeaf } = treeNode;\n\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n\n const node = flattenNodes.filter((nodeItem: any) => nodeItem.key === key)[0];\n const eventNode = convertNodePropsToEventData<TreeDataType>({\n ...getTreeNodeProps(key, this.getTreeNodeRequiredProps()),\n data: node.data,\n });\n\n this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n this.onNodeExpand(e as React.MouseEvent<HTMLDivElement>, eventNode);\n };\n\n onNodeClick: NodeMouseEventHandler<TreeDataType> = (e, treeNode) => {\n const { onClick, expandAction } = this.props;\n\n if (expandAction === 'click') {\n this.triggerExpandActionExpand(e, treeNode);\n }\n\n onClick?.(e, treeNode);\n };\n\n onNodeDoubleClick: NodeMouseEventHandler<TreeDataType> = (e, treeNode) => {\n const { onDoubleClick, expandAction } = this.props;\n\n if (expandAction === 'doubleClick') {\n this.triggerExpandActionExpand(e, treeNode);\n }\n\n onDoubleClick?.(e, treeNode);\n };\n\n onNodeSelect: NodeMouseEventHandler<any> = (e, treeNode) => {\n let { selectedKeys } = this.state;\n const { keyEntities, fieldNames } = this.state;\n const { onSelect, multiple } = this.props;\n const { selected } = treeNode;\n const key = treeNode[fieldNames.key];\n const targetSelected = !selected;\n\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n const selectedNodes = selectedKeys\n .map((selectedKey: any) => {\n const entity = getEntity(keyEntities, selectedKey);\n if (!entity) return null;\n\n return entity.node;\n })\n .filter((node: any) => node);\n\n this.setUncontrolledState({ selectedKeys });\n\n onSelect?.(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes,\n nativeEvent: e.nativeEvent,\n });\n };\n\n onNodeCheck = (\n e: React.MouseEvent<HTMLSpanElement>,\n treeNode: EventDataNode<TreeDataType>,\n checked: boolean,\n ) => {\n const {\n keyEntities,\n checkedKeys: oriCheckedKeys,\n halfCheckedKeys: oriHalfCheckedKeys,\n } = this.state;\n const { checkStrictly, onCheck } = this.props;\n const { key } = treeNode;\n\n // Prepare trigger arguments\n let checkedObj;\n const eventObj: any = {\n event: 'check',\n node: treeNode,\n checked,\n nativeEvent: e.nativeEvent,\n };\n\n if (checkStrictly) {\n const checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n const halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };\n\n eventObj.checkedNodes = checkedKeys\n .map((checkedKey) => getEntity(keyEntities, checkedKey))\n .filter((entity) => entity)\n .map((entity) => entity.node);\n\n this.setUncontrolledState({ checkedKeys });\n } else {\n // Always fill first\n let { checkedKeys, halfCheckedKeys } = conductCheck(\n [...oriCheckedKeys, key],\n true,\n keyEntities,\n );\n\n // If remove, we do it again to correction\n if (!checked) {\n const keySet = new Set(checkedKeys);\n keySet.delete(key);\n ({ checkedKeys, halfCheckedKeys } = conductCheck(\n Array.from(keySet),\n { checked: false, halfCheckedKeys },\n keyEntities,\n ));\n }\n\n checkedObj = checkedKeys;\n\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = halfCheckedKeys;\n\n checkedKeys.forEach((checkedKey) => {\n const entity = getEntity(keyEntities, checkedKey);\n if (!entity) return;\n\n const { node, pos } = entity;\n\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({ node, pos });\n });\n\n this.setUncontrolledState(\n {\n checkedKeys,\n },\n false,\n {\n halfCheckedKeys,\n },\n );\n }\n\n onCheck?.(checkedObj, eventObj as CheckInfo<TreeDataType>);\n };\n\n onNodeLoad = (treeNode: EventDataNode<TreeDataType>) => {\n const { key } = treeNode;\n\n const loadPromise = new Promise<void>((resolve, reject) => {\n // We need to get the latest state of loading/loaded keys\n this.setState(({ loadedKeys = [], loadingKeys = [] }): any => {\n const { loadData, onLoad } = this.props;\n\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n\n // Process load data\n const promise = loadData(treeNode);\n promise\n .then(() => {\n const { loadedKeys: currentLoadedKeys } = this.state;\n const newLoadedKeys = arrAdd(currentLoadedKeys, key);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad?.(newLoadedKeys, {\n event: 'load',\n node: treeNode,\n });\n\n this.setUncontrolledState({\n loadedKeys: newLoadedKeys,\n });\n this.setState((prevState) => ({\n loadingKeys: arrDel(prevState.loadingKeys, key),\n }));\n\n resolve();\n })\n .catch((e) => {\n this.setState((prevState) => ({\n loadingKeys: arrDel(prevState.loadingKeys, key),\n }));\n\n // If exceed max retry times, we give up retry\n this.loadingRetryTimes[key as SafeKey] =\n (this.loadingRetryTimes[key as SafeKey] || 0) + 1;\n if (this.loadingRetryTimes[key as SafeKey] >= MAX_RETRY_TIMES) {\n const { loadedKeys: currentLoadedKeys } = this.state;\n\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n\n this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key),\n });\n resolve();\n }\n\n reject(e);\n });\n\n return {\n loadingKeys: arrAdd(loadingKeys, key),\n };\n });\n });\n\n // Not care warning if we ignore this\n loadPromise.catch(() => {});\n\n return loadPromise;\n };\n\n onNodeMouseEnter: NodeMouseEventHandler<TreeDataType> = (event, node) => {\n const { onMouseEnter } = this.props;\n\n onMouseEnter?.({ event, node });\n };\n\n onNodeMouseLeave: NodeMouseEventHandler<TreeDataType> = (event, node) => {\n const { onMouseLeave } = this.props;\n\n onMouseLeave?.({ event, node });\n };\n\n onNodeContextMenu: NodeMouseEventHandler<TreeDataType> = (event, node) => {\n const { onRightClick } = this.props;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({ event, node });\n }\n };\n\n onFocus: React.FocusEventHandler<HTMLDivElement> = (...args) => {\n const { onFocus } = this.props;\n this.setState({ focused: true });\n\n onFocus?.(...args);\n };\n\n onBlur: React.FocusEventHandler<HTMLDivElement> = (...args) => {\n const { onBlur } = this.props;\n this.setState({ focused: false });\n this.onActiveChange(null);\n\n onBlur?.(...args);\n };\n\n getTreeNodeRequiredProps = () => {\n const {\n expandedKeys,\n selectedKeys,\n loadedKeys,\n loadingKeys,\n checkedKeys,\n halfCheckedKeys,\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n } = this.state;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey,\n dropPosition,\n keyEntities: keyEntities,\n };\n };\n\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n setExpandedKeys = (expandedKeys: Key[]) => {\n const { treeData, fieldNames } = this.state;\n\n const flattenNodes: FlattenNode<TreeDataType>[] = flattenTreeData<TreeDataType>(\n treeData,\n expandedKeys,\n fieldNames,\n );\n this.setUncontrolledState(\n {\n expandedKeys,\n flattenNodes,\n },\n true,\n );\n };\n\n onNodeExpand = (e: React.MouseEvent<HTMLDivElement>, treeNode: any) => {\n let { expandedKeys } = this.state;\n const { listChanging, fieldNames } = this.state;\n const { onExpand, loadData } = this.props;\n const { expanded } = treeNode;\n const key = treeNode[fieldNames.key];\n\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n\n // Update selected keys\n const index = expandedKeys.indexOf(key);\n const targetExpanded = !expanded;\n\n warning(\n (expanded && index !== -1) || (!expanded && index === -1),\n 'Expand state not sync with index check',\n );\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n\n this.setExpandedKeys(expandedKeys);\n\n onExpand?.(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent,\n });\n\n // Async Load data\n if (targetExpanded && loadData) {\n const loadPromise = this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise\n .then(() => {\n // [Legacy] Refresh logic\n const newFlattenTreeData = flattenTreeData<TreeDataType>(\n this.state.treeData,\n expandedKeys,\n fieldNames,\n );\n this.setUncontrolledState({ flattenNodes: newFlattenTreeData });\n })\n .catch(() => {\n const { expandedKeys: currentExpandedKeys } = this.state;\n const expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n\n onListChangeStart = () => {\n this.setUncontrolledState({\n listChanging: true,\n });\n };\n\n onListChangeEnd = () => {\n setTimeout(() => {\n this.setUncontrolledState({\n listChanging: false,\n });\n });\n };\n\n // =========================== Keyboard ===========================\n onActiveChange = (newActiveKey: any) => {\n const { activeKey } = this.state;\n const { onActiveChange, itemScrollOffset = 0 } = this.props;\n\n if (activeKey === newActiveKey) {\n return;\n }\n\n this.setState({ activeKey: newActiveKey });\n if (newActiveKey !== null) {\n this.scrollTo({ key: newActiveKey, offset: itemScrollOffset });\n }\n\n onActiveChange?.(newActiveKey);\n };\n\n getActiveItem = () => {\n const { activeKey, flattenNodes } = this.state;\n if (activeKey === null) {\n return null;\n }\n\n return flattenNodes.find(({ key }: any) => key === activeKey) || null;\n };\n\n offsetActiveKey = (offset: number) => {\n const { flattenNodes, activeKey } = this.state;\n\n let index = flattenNodes.findIndex(({ key }: any) => key === activeKey);\n\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n\n const item = flattenNodes[index];\n if (item) {\n const { key } = item;\n this.onActiveChange(key);\n } else {\n this.onActiveChange(null);\n }\n };\n\n onKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (event) => {\n const { activeKey, expandedKeys, checkedKeys, fieldNames } = this.state;\n const { onKeyDown, checkable, selectable } = this.props;\n\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP: {\n this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN: {\n this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n\n // >>>>>>>>>> Expand & Selection\n const activeItem = this.getActiveItem();\n if (activeItem && activeItem.data) {\n const treeNodeRequiredProps = this.getTreeNodeRequiredProps();\n\n const expandable =\n activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n const eventNode = convertNodePropsToEventData<TreeDataType>({\n ...getTreeNodeProps(activeKey, treeNodeRequiredProps),\n data: activeItem.data,\n active: true,\n });\n\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT: {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n this.onNodeExpand({} as React.MouseEvent<HTMLDivElement>, eventNode);\n } else if (activeItem.parent) {\n this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT: {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n this.onNodeExpand({} as React.MouseEvent<HTMLDivElement>, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE: {\n if (\n checkable &&\n !eventNode.disabled &&\n eventNode.checkable !== false &&\n !eventNode.disableCheckbox\n ) {\n this.onNodeCheck(\n {} as React.MouseEvent<HTMLDivElement>,\n eventNode,\n !checkedKeys.includes(activeKey),\n );\n } else if (\n !checkable &&\n selectable &&\n !eventNode.disabled &&\n eventNode.selectable !== false\n ) {\n this.onNodeSelect({} as React.MouseEvent<HTMLDivElement>, eventNode);\n }\n break;\n }\n }\n }\n\n onKeyDown?.(event);\n };\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState = (\n state: any,\n atomic: boolean = false,\n forceState: Partial<TreeState<TreeDataType>> | null = null,\n ) => {\n if (!this.destroyed) {\n let needSync = false;\n let allPassed = true;\n const newState: any = {};\n\n Object.keys(state).forEach((name) => {\n if (name in this.props) {\n allPassed = false;\n return;\n }\n\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync && (!atomic || allPassed)) {\n this.setState({\n ...newState,\n ...forceState,\n } as TreeState<TreeDataType>);\n }\n }\n };\n\n scrollTo: ScrollTo = (scroll) => {\n this.listRef.current?.scrollTo(scroll);\n };\n\n render() {\n const {\n focused,\n flattenNodes,\n keyEntities,\n draggingNodeKey,\n activeKey,\n dropLevelOffset,\n dropContainerKey,\n dropTargetKey,\n dropPosition,\n dragOverNodeKey,\n indent,\n } = this.state;\n const {\n prefixCls,\n className,\n style,\n showLine,\n focusable,\n tabIndex = 0,\n selectable,\n showIcon,\n icon,\n indentWidth,\n switcherIcon,\n draggable,\n checkable,\n checkStrictly,\n disabled,\n motion,\n loadData,\n filterTreeNode,\n height,\n itemHeight,\n virtual,\n titleRender,\n dropIndicatorRender,\n onContextMenu,\n onScroll,\n onVirtualScroll,\n direction,\n rootClassName,\n rootStyle,\n scrollWidth,\n } = this.props;\n\n const domProps: React.HTMLAttributes<HTMLDivElement> = pickAttrs(this.props, {\n aria: true,\n data: true,\n });\n\n // It's better move to hooks but we just simply keep here\n let draggableConfig: any;\n if (draggable) {\n if (typeof draggable === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable,\n };\n } else {\n draggableConfig = {};\n }\n }\n\n return (\n <TreeContext.Provider\n value={{\n prefixCls,\n selectable,\n showIcon,\n icon,\n switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey,\n checkable,\n checkStrictly,\n disabled,\n keyEntities,\n dropLevelOffset,\n dropContainerKey,\n dropTargetKey,\n dropPosition,\n dragOverNodeKey,\n indent,\n indentWidth,\n direction,\n dropIndicatorRender,\n\n loadData,\n filterTreeNode,\n\n titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop,\n }}\n >\n <div\n role='tree'\n className={classNames(prefixCls, className, rootClassName, {\n [`${prefixCls}-show-line`]: showLine,\n [`${prefixCls}-focused`]: focused,\n [`${prefixCls}-active-focused`]: activeKey !== null,\n })}\n style={rootStyle}\n >\n <NodeList\n ref={this.listRef}\n prefixCls={prefixCls}\n style={style}\n data={flattenNodes}\n disabled={disabled}\n selectable={selectable}\n checkable={!!checkable}\n indentWidth={indentWidth}\n scrollWidth={scrollWidth}\n motion={motion}\n dragging={draggingNodeKey !== null}\n height={height}\n itemHeight={itemHeight}\n virtual={virtual}\n focusable={focusable}\n focused={focused}\n tabIndex={tabIndex}\n activeItem={this.getActiveItem()}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.onKeyDown}\n onActiveChange={this.onActiveChange}\n onListChangeStart={this.onListChangeStart}\n onListChangeEnd={this.onListChangeEnd}\n onContextMenu={onContextMenu}\n onScroll={onScroll}\n onVirtualScroll={onVirtualScroll}\n {...this.getTreeNodeRequiredProps()}\n {...domProps}\n />\n </div>\n </TreeContext.Provider>\n );\n }\n}\n\nexport default Tree;\n","import cx from 'classnames';\n\nimport { getMenu } from '../menu/menulist';\n\nimport { CircleCheckSvg } from '../icons';\nimport Menu from '../menu';\n\nexport default function TableItem(props: any) {\n const {\n columns,\n width,\n id,\n active,\n ischeck,\n onCheck,\n onMenuClick,\n isdrag,\n isUpload,\n rename,\n onRename,\n onSelect,\n loadMenu,\n closeMenu,\n checks,\n ...param\n } = props;\n\n let disable = props?.disable || false;\n\n if (!disable && Array.isArray(props.selectedSuffix)) {\n disable =\n !props.selectedSuffix.includes(props.suffix) && !props.selectedSuffix?.includes(props?.type);\n }\n\n return (\n <div\n className={cx('explorer-tree-row', {\n disable,\n 'menu-drag-move': active,\n })}\n data-id={!disable ? id : null}\n data-type={!disable ? props.type : null}\n data-isdrag={isdrag === false ? false : true}\n data-upload={isUpload === false ? false : true}\n onContextMenu={(e) => {\n e.stopPropagation();\n e.preventDefault();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n if (!props.isOpenMenu) return;\n if (props?.menu === false) return;\n\n let menudata: any = [];\n if (getMenu(props.id)) {\n menudata = getMenu(props.id);\n } else if (props.type && getMenu(props.type)) {\n menudata = getMenu(props.type);\n } else {\n menudata = getMenu('');\n }\n\n props?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={props}\n menu={menudata}\n info={{ key: id, ...param }}\n loadMenu={loadMenu}\n onChange={async (v: any) => {\n onMenuClick && onMenuClick(v);\n props?.closeMenu?.();\n }}\n ></Menu>\n ),\n },\n { key: props.id },\n );\n }}\n >\n {columns.map((v: any, i: number) => {\n let x = width[i] - (i ? 0 : 58 + 8) + (i ? 10 : 0);\n if (i == 0 && typeof param.level === 'number') {\n x = x - param.level * 16;\n }\n\n if (typeof v?.render === 'function') {\n return (\n <div\n className={cx('row-item')}\n key={i}\n style={\n width[i]\n ? {\n flex: `0 0 ${x}px`,\n width: x + 'px',\n }\n : {}\n }\n >\n <div className='row-item-content'> {v.render?.({ id, ...param }, v.key)}</div>\n <div className='row-item-tool'>\n {v?.renderTool\n ? v?.renderTool({ id, ...param }, v.key)\n : !i && (\n <div\n className={cx('row-item-check', {\n active: active,\n })}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n onClick={(e) => {\n if (disable) return;\n e.stopPropagation();\n e.preventDefault();\n onCheck?.();\n }}\n >\n <span className='btn-check'>\n <CircleCheckSvg />\n </span>\n </div>\n )}\n </div>\n </div>\n );\n }\n\n if (rename && v.key == 'title') {\n return (\n <div\n className={cx('row-item')}\n key={i}\n style={\n width[i]\n ? {\n flex: `0 0 ${x}px`,\n width: x + 'px',\n }\n : {}\n }\n >\n <div className='row-item-content'>\n <input\n className='node-input'\n autoFocus\n defaultValue={param[v?.key]}\n placeholder='请输入'\n onKeyDown={(e: any) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n if (props.create_file) {\n onRename?.(e.target?.value);\n return;\n }\n onRename?.(e.target?.value);\n }\n\n if (e.key === 'Escape') {\n onRename?.(false);\n return;\n }\n }}\n onFocus={(e) => {\n let i: number = param[v?.key]?.lastIndexOf('.');\n if (props?.suffix == 'folder') {\n e.target.setSelectionRange(0, param[v?.key]?.length);\n } else if (i !== -1) {\n e.target.setSelectionRange(0, i);\n }\n }}\n onBlur={(e) => {\n if (props.create_file) {\n onRename?.(e.target.value);\n return;\n }\n\n if (e.target.value === param[v?.key]) {\n onRename?.(false);\n return;\n }\n onRename?.(e.target.value);\n }}\n ></input>\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={cx('row-item')}\n key={i}\n style={\n width[i]\n ? {\n flex: `0 0 ${x}px`,\n width: x + 'px',\n }\n : {}\n }\n >\n <div className='row-item-content'>{param[v?.key] || ''}</div>\n <div className='row-item-tool'>\n {v?.renderTool\n ? v?.renderTool({ id, ...param }, v.key)\n : !i && (\n <div\n className={cx('row-item-check', {\n active: active,\n })}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n onClick={(e) => {\n if (disable) return;\n e.stopPropagation();\n e.preventDefault();\n onCheck?.();\n }}\n >\n <span className='btn-check'>\n <CircleCheckSvg />\n </span>\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\n\nimport { TreeItem } from '.';\nimport { getMenu } from '../menu/menulist';\n\nimport { CaretRight } from '../icons';\nimport Menu from '../menu';\n\nexport default (props: any) => {\n const { onRename, onMenuClick, loadMenu, info } = props;\n\n const [title, setTitle] = useState('');\n\n useEffect(() => {\n setTitle(info.title);\n }, [info.title]);\n\n let menudata: any = [];\n if (getMenu(props.id)) {\n menudata = getMenu(props.id);\n } else if (info.type && getMenu(info.type)) {\n menudata = getMenu('nav-folder');\n } else {\n menudata = getMenu('');\n }\n\n return (\n <div\n style={{ height: '100%' }}\n onContextMenu={(e) => {\n e.preventDefault();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n if (info?.menu == false) return;\n\n props?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={props}\n menu={menudata}\n info={info}\n loadMenu={loadMenu}\n onChange={async (v: any) => {\n onMenuClick && onMenuClick(v);\n props?.closeMenu?.();\n }}\n ></Menu>\n ),\n },\n { key: props.id },\n );\n }}\n >\n {props.rename ? (\n <div className='explorer-tree-node'>\n <input\n className='node-input'\n autoFocus\n value={title}\n placeholder='请输入'\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n onRename?.(title);\n }\n if (e.key === 'Escape') {\n setTitle(info.title);\n onRename?.(false);\n }\n }}\n onFocus={(e) => {\n let i: number = title.lastIndexOf('.');\n if (info?.suffix == 'folder') {\n e.target.setSelectionRange(0, title.length);\n } else if (i !== -1) {\n e.target.setSelectionRange(0, i);\n }\n }}\n onChange={(v) => {\n setTitle?.(v.target.value);\n }}\n onBlur={() => {\n onRename?.(title);\n }}\n ></input>\n </div>\n ) : (\n <div className='explorer-tree-node'>\n <div className='node-title'>{title || ''}</div>\n <div className='node-menu'>\n {info?.menu !== false && (\n <div\n className='node-menu-icon'\n onClick={(e) => {\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n props?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n menu={menudata}\n loadMenu={loadMenu}\n info={info}\n onChange={async (v: any) => {\n onMenuClick && onMenuClick(v);\n props?.closeMenu?.();\n }}\n ></Menu>\n ),\n },\n { key: props.id },\n );\n }}\n >\n <CaretRight />\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n","import './index.less';\nimport React from 'react';\nimport { NullDataSvg } from '../icons';\n\nexport default function NotData() {\n return (\n <div className='explorer-notdata'>\n <div className='tree-empty'>\n <div className='empty-svg'>\n <NullDataSvg></NullDataSvg>\n </div>\n <span>文件夹为空</span>\n </div>\n </div>\n );\n}\n","import './index.less';\nimport cx from 'classnames';\n\nimport React, {\n forwardRef,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { cloneDeep } from 'lodash';\n\nimport Tree from './components';\nimport { Provider } from 'rc-motion';\nimport { AngleRightSvg, CaretRight, LoadingSvg, NullDataSvg } from '../icons';\n\nimport TableItem from './tree-item-table';\nimport TreeItem from './tree-item';\nimport NotData from '../notdata';\n\nexport interface TreeItem {\n key?: string;\n title?: string;\n icon?: boolean;\n suffix?: string;\n api?: boolean;\n level?: string;\n menu?: any;\n children?: TreeItem[];\n isLeaf?: boolean;\n [key: string]: any;\n}\n\nexport interface TreeProps {\n type?: 'tree' | 'table';\n treeData: TreeItem[];\n showLine?: boolean; //未实现\n height?: number | null;\n isload?: boolean;\n animation?: boolean;\n defaultmenu?: 'basis' | 'file';\n defaultExpandedKeys?: string[];\n expandedKeys?: string[];\n autoExpandParent?: boolean;\n columns?: any[];\n checks?: string[];\n\n loadedKeys?: string[];\n\n icon?: (v: any, className: string) => ReactNode;\n onChecks?: (checks: string[], param?: TreeItem[]) => void;\n onSelect?: (key: string) => any;\n onChange?: (data: TreeItem[]) => void;\n titleRender?: (props: any) => any;\n onMenuClick?: (key: string, props: any, type?: string) => 'update' | void;\n onDblclick?: (key: string, props: any) => void;\n loadData?: (key: string) => Promise<TreeItem[]> | TreeItem[];\n onRename?: (key: string, value: string, props?: TreeItem) => boolean | void;\n filterData?: (node: any) => boolean;\n onExpand?: (data: string[]) => void;\n [key: string]: any;\n}\n\n//添加层级\nconst addLevel = (data: any, levelIndex = 0, type: string, filedata?: (node: any) => boolean) => {\n let arr = data;\n if (filedata) {\n arr = arr.filter((v: any) => filedata?.(v));\n }\n let i = 0;\n while (i < arr.length) {\n let item = arr[i];\n\n item['level'] = levelIndex;\n\n if (type == 'tree' && item?.hasFolder == 0) {\n item['isLeaf'] = true;\n }\n if (type == 'table' && item?.hasFolder == 0 && item?.hasFile == 0) {\n item['isLeaf'] = true;\n }\n if (!item?.api && !item?.children) {\n item['isLeaf'] = true;\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n if (filedata) {\n item.children = addLevel(item.children, levelIndex + 1, type, filedata);\n } else {\n addLevel(item.children, levelIndex + 1, type, filedata);\n }\n }\n i++;\n }\n return arr;\n};\n\n//下拉动画\nconst motion = {\n motionName: 'node-motion',\n motionAppear: false,\n onAppearStart: () => ({ height: 0 }),\n onAppearActive: (node: any) => ({ height: node.scrollHeight }),\n onLeaveStart: (node: any) => ({ height: node.offsetHeight }),\n onLeaveActive: () => ({ height: 0 }),\n};\n\nexport default forwardRef((props: TreeProps, _ref) => {\n const {\n type = 'tree',\n autoExpandParent,\n defaultExpandedKeys,\n activeKey,\n treeData,\n checks,\n height,\n expandedKeys,\n width: _widht,\n columns,\n rename,\n isload = false,\n ischeck = false,\n showLine = true,\n animation = true,\n loadedKeys = undefined,\n selectedKeys,\n\n icon,\n titleRender,\n onChecks,\n onChange,\n onSelect,\n onDblclick,\n onMenuClick,\n onRename,\n loadData,\n filterData,\n onExpand,\n onScroll,\n setRename,\n onLoad,\n } = props;\n\n const ref = useRef<any>(null);\n const tree = useRef<any>(null);\n const header = useRef<any>(null);\n\n const [data, setData] = useState(treeData);\n const [motionshow, seTmotionShow] = useState(animation);\n const [width, setWidth] = useState<(number | null)[]>([]);\n\n useImperativeHandle(_ref, () => ({\n toScroll: ({ x, y }: any) => {\n tree.current.scrollTo({ top: x });\n },\n }));\n\n const scrollWidth = useMemo(() => {\n let w = (_widht || 100) - 6;\n let size = width?.reduce((x: number, y: number | null) => {\n if (typeof y == 'number') {\n return x + y;\n }\n return x;\n }, 0);\n\n return size > w ? size : Math.ceil(w);\n }, [width, _widht]);\n\n useEffect(() => {\n let arr = cloneDeep(treeData) || [];\n arr = addLevel(arr, 0, type, filterData);\n setData(arr);\n }, [treeData, type, filterData]);\n\n useEffect(() => {\n if (!Array.isArray(columns)) return;\n\n let data = ref.current?.getBoundingClientRect();\n let w = 80;\n if (data) {\n w = Math.floor((data.width - 8) / columns.length);\n }\n\n let arr = columns.map((v: any) => {\n if (typeof v?.width === 'number') {\n return v.width;\n } else {\n return w;\n }\n });\n\n setWidth(arr);\n }, [columns]);\n\n //展开按钮\n const s_icon = (v: any) => {\n if (v.isLeaf) {\n return <></>;\n }\n if (v.loading) {\n return (\n <div className={cx('explorer-tree-switch loading')}>\n <LoadingSvg />\n </div>\n );\n }\n return (\n <div\n className={cx('explorer-tree-switch', {\n open: v.expanded,\n })}\n >\n <AngleRightSvg />\n </div>\n );\n };\n\n const s_table_icon = (v: any) => {\n if (v.eventKey == '_ending') {\n return <></>;\n }\n if (v.isLeaf) {\n return <></>;\n }\n if (v.loading) {\n return (\n <div className={cx('explorer-tree-switch loading')}>\n <LoadingSvg />\n </div>\n );\n }\n return (\n <div\n className={cx('explorer-tree-switch', {\n open: v.expanded,\n })}\n style={{ fontSize: '7px' }}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n >\n <CaretRight />\n </div>\n );\n };\n\n //树的懒加载\n const setLeaf = (treeData: any, curKey: any, level: any) => {\n const loopLeaf = (data: any, lev: any) => {\n const l = lev - 1;\n data.forEach((item: any) => {\n if (\n item.key.length > curKey.length\n ? item.key.indexOf(curKey) !== 0\n : curKey.indexOf(item.key) !== 0\n ) {\n return;\n }\n if (item.children) {\n loopLeaf(item.children, l);\n } else if (l < 1 && treeData.api) {\n item.isLeaf = true;\n }\n });\n };\n loopLeaf(treeData, level + 1);\n };\n\n //树s的懒加载\n const getNewTreeData = (treeData: any, curKey: any, child: any, level: any) => {\n const loop = (data: any, levelkey: string) => {\n if (level < 1 || curKey.length - 3 > level * 2) return;\n data.forEach((item: any, index: number) => {\n let l = levelkey + `-${index}`;\n if (curKey.indexOf(l) === 0) {\n if (item.children && item.children.length) {\n loop(item.children, l);\n } else {\n item.children = child;\n }\n }\n });\n };\n loop(treeData, '0');\n setLeaf(treeData, curKey, level);\n };\n\n //树的懒加载\n const onLoadData = (treeNode: any) => {\n onChange ? null : seTmotionShow(false);\n\n if (!treeNode.api) {\n if (!treeNode?.children) {\n return new Promise((resolve: any) => {\n if (animation) {\n setTimeout(() => {\n seTmotionShow(true);\n resolve();\n }, 100);\n }\n });\n } else {\n return new Promise((resolve: any) => {\n animation && seTmotionShow(true);\n resolve();\n });\n }\n }\n\n return new Promise(async (resolve: any) => {\n const tree = [...treeData];\n\n let child = await loadData?.(treeNode?.key);\n\n if (typeof treeNode.level === 'number') {\n child = child?.map((v) => {\n return { ...v, level: treeNode.level + 1 };\n });\n }\n getNewTreeData(tree, treeNode.pos, child, 10);\n onChange?.(tree);\n setTimeout(() => {\n resolve();\n }, 300);\n });\n };\n\n if (type == 'table' && !treeData.length) {\n return <NotData />;\n }\n\n return (\n <div\n ref={ref}\n onClick={() => {}}\n onScroll={(e) => {}}\n className={cx('explorer-tree', {\n showLine: showLine,\n table: type == 'table',\n ['explorer-checks']: ischeck,\n })}\n >\n <Provider motion={motionshow}>\n {type == 'table' && (\n <div\n ref={header}\n className='tree-scroll-x'\n onScroll={(e: any) => {\n if (typeof e.target?.scrollLeft === 'number') {\n tree.current.scrollTo({ left: e.target?.scrollLeft });\n }\n }}\n >\n <Header\n width={width}\n columns={columns || []}\n onWidhtChange={(v: any) => {\n setWidth(v);\n }}\n ></Header>\n </div>\n )}\n <Tree\n ref={tree}\n checkStrictly={true}\n expandedKeys={expandedKeys}\n loadedKeys={loadedKeys}\n checkable={type == 'table' ? true : false}\n selectedKeys={selectedKeys ? selectedKeys : undefined}\n autoExpandParent={autoExpandParent}\n defaultExpandedKeys={defaultExpandedKeys || []}\n motion={motionshow ? motion : undefined}\n onVirtualScroll={(props: any) => {\n onScroll?.({ x: props.x, y: props.y });\n header.current?.scrollTo?.({ left: props.x });\n }}\n icon={(e) => {\n if (e.eventKey == '_ending') {\n return <></>;\n }\n return icon?.({ key: e.eventKey, ...e }, 'explorer-tree-icon');\n }}\n itemHeight={40}\n checkedKeys={checks}\n height={height ? height : undefined}\n scrollWidth={type == 'table' ? scrollWidth || _widht : undefined}\n onContextMenu={(e) => {\n e.preventDefault();\n }}\n onExpand={(v: any) => {\n onExpand?.(v);\n }}\n onDoubleClick={(v, node) => {\n if (rename) return;\n v.stopPropagation();\n onDblclick && onDblclick?.(node.key, node);\n }}\n titleRender={(v: any) => {\n if (v.key == '_ending') {\n return (\n <div\n style={{\n height: v.height + 'px',\n opacity: 0,\n }}\n ></div>\n );\n }\n if (titleRender) {\n return titleRender(v);\n }\n if (type == 'table') {\n let { key, ...item } = v;\n\n return (\n <React.Fragment key={v.key}>\n <TableItem\n {...props}\n {...item}\n id={key}\n ischeck={ischeck}\n active={checks?.includes(v.key)}\n width={width}\n rename={v.key == rename || v.create_file}\n onRename={(value: any) => {\n if (typeof value === 'boolean' && !v.create_file) {\n setRename(null);\n return;\n }\n onRename && onRename(v.key, value, v);\n setRename(null);\n }}\n onMenuClick={(menu: any) => {\n //选判断 是不是 命名\n if (menu == 'rename') {\n setTimeout(() => {\n setRename(v.key);\n });\n return;\n }\n /***\n * 右键 三种情况\n * 有多选 没在选中内\n * 有多选 在选中内\n * 没有多选\n */\n if (checks?.length && checks.includes(v.key)) {\n onMenuClick && onMenuClick(menu, v);\n } else {\n onMenuClick && onMenuClick(menu, v, 'menu'); //带menu 是对当前数据进操作 没有是 对选中内容进行操作\n }\n }}\n onCheck={() => {\n let arr: any[] | undefined = cloneDeep(checks);\n\n if (props.checkType && props.checkType !== v.type) return;\n\n if (checks?.includes(v.key)) {\n arr = checks.filter((key) => key !== v.key);\n } else {\n arr = [...(arr || []), v.key];\n }\n onChecks && onChecks?.(arr);\n }}\n columns={columns}\n ></TableItem>\n </React.Fragment>\n );\n }\n let { key, ...item } = v;\n return (\n <React.Fragment key={v.key}>\n <TreeItem\n {...props}\n info={v}\n defaultmenu\n id={key}\n rename={v.key == rename}\n onRename={(value: any) => {\n if (typeof value === 'boolean' && !v.create_file) return setRename(null);\n onRename && onRename(v.key, value, v);\n setRename(null);\n }}\n loadMenu={props.loadMenu}\n onMenuClick={(menu: any) => {\n if (menu == 'rename') {\n setTimeout(() => {\n setRename(v.key);\n });\n return;\n }\n onMenuClick && onMenuClick(menu, v);\n }}\n ></TreeItem>\n </React.Fragment>\n );\n }}\n onSelect={(v, info: any) => {\n if (v[0] || info?.node?.key) {\n onSelect?.({ key: v[0], ...(info?.node || {}) });\n }\n }}\n onClick={(e) => {\n e.stopPropagation();\n props?.closeMenu();\n }}\n onLoad={(v) => {\n if (v.length == loadedKeys?.length) return;\n onLoad?.(v);\n }}\n loadData={isload ? (onLoadData as any) : null}\n treeData={type == 'table' ? [...data, { key: '_ending', title: '', height: 200 }] : data}\n switcherIcon={type == 'table' ? s_table_icon : s_icon}\n />\n </Provider>\n </div>\n );\n});\n\nfunction Header(props: any) {\n const { width, onWidhtChange, columns } = props;\n const [isdarg, setIsDrag] = useState(false);\n const [dragindex, setDargIndex] = useState<number | null>(null);\n const ref = useRef<any>(null);\n useLayoutEffect(() => {\n window.addEventListener('mousemove', lie);\n window.addEventListener('mouseup', up);\n return () => {\n window.removeEventListener('mousemove', lie);\n window.removeEventListener('mouseup', up);\n };\n }, [isdarg]);\n\n function up() {\n if (!isdarg) return;\n setIsDrag(false);\n setDargIndex(null);\n }\n\n function lie(e: any) {\n if (!isdarg) return;\n if (typeof dragindex !== 'number') return;\n e.preventDefault();\n let dom = ref.current.querySelector('.item-resize');\n let a = dom?.getBoundingClientRect();\n let x = e.clientX - a.left;\n let arr = cloneDeep(width);\n let diff = 150 - dragindex * 16;\n arr[dragindex] = x > diff ? x : diff;\n onWidhtChange(arr);\n }\n\n return (\n <div ref={ref} className='explorer-table-header' onMouseUp={() => {}} onClick={() => {}}>\n {columns.map((v: any, i: number) => {\n let x = width[i];\n return (\n <React.Fragment key={v.key}>\n <div\n className={cx('item', {\n 'item-resize': dragindex == i,\n })}\n style={\n width[i]\n ? {\n flex: `0 0 ${x}px`,\n width: x + 'px',\n }\n : {}\n }\n >\n {v.title}\n </div>\n <div\n className={cx('resize', {\n 'resize-focus': dragindex == i,\n })}\n onMouseDown={(e) => {\n e.stopPropagation();\n setDargIndex(i);\n setIsDrag(true);\n }}\n onMouseUp={() => {\n setIsDrag(false);\n setDargIndex(null);\n }}\n ></div>\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n","import './index.less';\nimport { useContext, useEffect, useState } from 'react';\n\nimport { ExampleContext } from '../../../store';\n\nimport Tree from '../../../components/tree';\nimport { cloneDeep } from 'lodash';\n\nconst ExplorerMenu = (props: any) => {\n const {\n viewHeight: height,\n data,\n loadData,\n loadNode,\n onMenuClick: _onMenuClick,\n onChange,\n loadMenu,\n onRename: _onRename,\n } = props;\n const store = useContext(ExampleContext);\n const [select, setSelect] = useState<string>('');\n\n useEffect(() => {\n if (typeof store.curInfo?.key === 'string') {\n setSelect(store.curInfo?.key);\n }\n }, [store.curInfo?.key]);\n\n function onRename(key: string, value: string, info: any) {\n _onRename(key, value, info, 'menu');\n }\n\n function onMenuClick(key: any, data: any) {\n _onMenuClick(key, data, 'menu');\n }\n\n const openMenu = (props: any, param: any) => {\n setSelect(param.key);\n store.openMenu(props);\n };\n\n return (\n <div\n className='frame-left'\n onContextMenu={(e) => {\n e.preventDefault();\n }}\n >\n <Tree\n isload={true}\n treeData={data}\n height={height}\n rename={store.menuRename}\n loadedKeys={[...store.nav_loadKey]}\n expandedKeys={cloneDeep(store.nav_expandkey)}\n selectedKeys={[select]}\n icon={(v: any, className: any) => {\n if (v.icon == false) return <></>;\n return store.getIcons(v, className);\n }}\n onMenuClick={onMenuClick}\n loadData={loadNode}\n loadMenu={loadMenu}\n onChange={onChange}\n onRename={onRename}\n isEdit={store.isEdit}\n isDelect={store.isDelect}\n isDownload={store.isDownload}\n isUpload={store.isDownload}\n openMenu={openMenu}\n closeMenu={store.closeMenu}\n onSelect={(v: any) => {\n if (v.key === store.curInfo?.key) return;\n store.setPathDisplay(v?.pathDisplay);\n loadData(v.key);\n let arr = [...(store.log || [])];\n if (arr.length !== store.logindex) {\n arr = arr.slice(0, store.logindex - 1);\n }\n if (arr[arr.length - 1] !== v.key) {\n arr.push(v.key);\n }\n store.setLog(arr);\n store.setLogIndex(arr.length);\n }}\n filterData={(v: any) => {\n if (v.type == 'file') return false;\n return true;\n }}\n onLoad={(key: string[]) => {\n store.setNavLoadKey(key);\n }}\n onExpand={(v: any) => {\n store.setExpandNavKey(v);\n }}\n setRename={store.setMenuRename}\n ></Tree>\n </div>\n );\n};\n\nexport default ExplorerMenu;\n","import './index.less';\nimport { cx } from '@emotion/css';\nimport { FC, forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\ninterface VirtualProps {\n ref?: any;\n className: string;\n item: any[];\n itemHeight: number;\n renderItem: (v: any, i: number, end: boolean) => any;\n onScroll?: (v?: any) => any;\n}\n\nconst VirtualScroll: FC<VirtualProps> = forwardRef((props, ref) => {\n const { className, item, itemHeight, renderItem, onScroll } = props;\n\n useImperativeHandle(ref, () => ({\n toScroll: ({ x, y }: any) => {\n containerRef.current.scrollTop = x;\n },\n }));\n\n const [scrollTop, setScrollTop] = useState(0);\n const containerRef = useRef<any>(null);\n const [data, setdata] = useState<any[]>([]);\n const items = [];\n\n useEffect(() => {\n setdata(item || []);\n }, [item]);\n const handleScroll = () => {\n setScrollTop(containerRef.current.scrollTop);\n onScroll?.({ x: containerRef.current.scrollLeft, y: containerRef.current.scrollTop });\n };\n\n useEffect(() => {\n containerRef.current?.addEventListener('scroll', handleScroll);\n return () => {\n containerRef.current?.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n const visibleCount = Math.ceil(containerRef.current?.clientHeight / itemHeight);\n const startIdx = Math.floor(scrollTop / itemHeight);\n const endIdx = Math.min(startIdx + visibleCount + 1, data.length);\n for (let i = startIdx; i < endIdx; i++) {\n items.push(renderItem(data[i], i, data.length - 1 == i));\n }\n\n return (\n <div\n className={cx(`explorer-virtualScroll ${className}`)}\n style={{ height: '100%', overflowY: 'auto' }}\n ref={containerRef}\n >\n <div\n style={{\n position: 'relative',\n height: `${data.length * itemHeight}px`,\n paddingTop: `${startIdx * itemHeight}px`,\n }}\n >\n {items}\n </div>\n </div>\n );\n});\nexport default VirtualScroll;\n","import cx from 'classnames';\nimport { css } from '../../css';\n\nimport React, { FC, forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { getMenu } from '../menu/menulist';\n\nimport VirtualScroll from '../virtualScroll';\nimport Menu from '../menu';\nimport NotData from '../notdata';\n\ninterface TileProps {\n className?: string;\n checks: any[];\n onMenuClick?: (key: string, param: any, type?: string) => void;\n onDblclick?: (key: string, param: any) => void;\n onSelect?: (key: string, param: any) => void;\n onRename?: (key: string, value: string | boolean, param: any) => void;\n [key: string]: any;\n}\n\nconst Tile: FC<TileProps> = forwardRef((props, ref) => {\n const _ref = useRef<any>(null);\n const scroll = useRef<any>(null);\n useImperativeHandle(ref, () => ({\n toScroll: (v: any) => {\n scroll.current.toScroll(v);\n },\n }));\n\n const {\n store,\n rename,\n className,\n height,\n width,\n icons,\n data,\n select,\n checks = [],\n size = 80,\n loadMenu,\n onSelect,\n onDblclick,\n onMenuClick,\n onRename,\n onScroll,\n setRename,\n } = props;\n\n const [itemSize, setSize] = useState(0);\n const [list, setList] = useState([]);\n const [col, setCol] = useState(9);\n const [focus, setFocus] = useState();\n\n useEffect(() => {\n setFocus(select);\n }, [select]);\n\n useEffect(() => {\n const originalArray = data;\n const chunkSize = col;\n const resultArray = originalArray?.reduce((acc: any, curr: any, index: number) => {\n const chunkIndex = Math.floor(index / chunkSize);\n if (!acc[chunkIndex]) {\n acc[chunkIndex] = [];\n }\n acc[chunkIndex].push(curr);\n return acc;\n }, []);\n\n setList(resultArray);\n }, [data, col]);\n\n useEffect(() => {\n if (!width) return;\n let w = (width || 0) - 10;\n let data = Math.round(w / (size + 5));\n let s = Math.floor(w / data);\n setCol(data);\n setSize(s);\n }, [width, size]);\n\n if (!list.length) {\n return <NotData />;\n }\n\n return (\n <div\n ref={_ref}\n className={cx('', {\n [className || '']: className,\n })}\n style={{\n height: height + 'px',\n }}\n onContextMenu={(e: any) => {\n e.preventDefault();\n }}\n >\n <VirtualScroll\n ref={scroll}\n className=''\n item={list}\n onScroll={(v: any) => {\n onScroll?.(v);\n }}\n itemHeight={itemSize + 65}\n renderItem={(row: any, index) => {\n return (\n <React.Fragment key={index}>\n {row?.map((v: any, i: number) => {\n const w = itemSize - 10;\n let menudata: any = [];\n if (getMenu(v.key)) {\n menudata = getMenu(v.key);\n } else if (v.type && getMenu(v.type)) {\n menudata = getMenu(v.type);\n } else {\n menudata = getMenu('');\n }\n\n let isname = rename == v.key || v?.create_file;\n\n let disable = v?.disable || false;\n\n //判断是否可以选中 选中的逻辑在 select-box 中 可以控制 data-id 进行编辑\n if (!disable && Array.isArray(store.selectedSuffix)) {\n disable =\n !store.selectedSuffix?.includes(v?.suffix) &&\n !store.selectedSuffix?.includes(v?.type);\n }\n\n return (\n <div\n key={v.key}\n data-id={!disable ? v.key : undefined}\n data-type={!disable ? v.type : undefined}\n className={cx(\n 'file',\n {\n 'file-folder': v.type === 'folder',\n 'menu-path-folder': v.type === 'folder',\n 'menu-path-file': v.type === 'file',\n select: !!~checks.indexOf(v.key) || isname,\n 'file-focus': focus === v.key,\n 'menu-drag-move': !!~checks.indexOf(v.key),\n disable,\n },\n css`\n top: ${(w + 65) * index + index * 10 + 10}px;\n left: ${w * i + i * 10 + 10}px;\n width: ${w || 0}px;\n max-height: ${w + 65}px;\n `,\n )}\n onClick={(e) => {\n if (disable) return;\n e.stopPropagation();\n if (select && focus == v.key) return;\n onSelect?.(v.key, v);\n }}\n onDoubleClick={() => {\n onDblclick?.(v.key, v);\n }}\n onContextMenu={(e) => {\n e.preventDefault();\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n if (props?.menu == false) return;\n\n props.openMenu(\n {\n x: x,\n y: y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={v}\n loadMenu={loadMenu}\n onChange={(key) => {\n if (key == 'rename') {\n setRename(v.key);\n return;\n }\n onMenuClick?.(key, v, props.checks?.length ? undefined : 'menu');\n props.closeMenu();\n }}\n ></Menu>\n ),\n },\n v,\n );\n }}\n >\n <i\n className={cx('path-ico')}\n style={{\n width: w + 'px',\n height: w - w / 10 + 'px',\n }}\n >\n {v.type === 'folder' || !v?.pic\n ? icons(v, 'x-item-icon', {\n width: w + 'px',\n height: w + 'px',\n lineHeight: w + 'px',\n })\n : icons(v, 'picture-show', {\n width: w + 'px',\n height: w + 'px',\n lineHeight: w + 'px',\n })}\n </i>\n <div\n className='title-type-name'\n style={{\n width: w + 'px',\n }}\n >\n {isname ? (\n <textarea\n autoFocus\n rows={3}\n defaultValue={v.title}\n onFocus={(e) => {\n let i: number = v.title.lastIndexOf('.');\n\n if (v?.suffix == 'folder') {\n e.target.setSelectionRange(0, v.title.length);\n } else if (i !== -1) {\n e.target.setSelectionRange(0, i);\n }\n }}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n if (v.create_file) {\n onRename?.(v.key, e.target?.value, v);\n return;\n }\n onRename?.(v.key, e.target?.value, v);\n }\n\n if (e.key === 'Escape') {\n if (v.create_file) {\n onRename?.(v.key, false, v);\n }\n setRename(null);\n return;\n }\n }}\n onBlur={(e) => {\n if (v.create_file) {\n onRename?.(v.key, e.target?.value, v);\n return;\n }\n if (e.target?.value === v.title) {\n setRename(null);\n return;\n }\n onRename?.(v.key, e.target.value, v);\n setRename(null);\n }}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n ></textarea>\n ) : (\n <span className='title'>{v.title}</span>\n )}\n </div>\n </div>\n );\n })}\n </React.Fragment>\n );\n }}\n ></VirtualScroll>\n </div>\n );\n});\n\nexport default Tile;\n","import './index.less';\n\nimport cx from 'classnames';\nimport { useState, useRef, useEffect, ReactNode, useContext, useMemo } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport ReactDOM from 'react-dom';\n\nimport { chain, cloneDeep, concat } from 'lodash';\nimport { ExampleContext } from '../../store';\n\nimport { ArrowLeftSvg, UploadSvg } from '../icons';\nimport Menu from '../menu';\nimport { getMenu } from '../menu/menulist';\nimport { NodeElement } from '../tree/components/interface';\n\nvar time: any = null;\n\n/***\n * 功能拆封\n *\n */\n\ninterface SelectBoxProps {\n checks: string[];\n\n getContainer: string;\n dataClass?: string; //\n selectClass: string; //要选择的class\n className?: string;\n regionClass?: string; //选框区域\n\n isDrag: boolean;\n isSelectBoxes: boolean;\n\n action?: 'stack' | 'rotate';\n checkType?: 'file' | 'folder';\n\n startDrag: (key: string[]) => void;\n endDrag: () => void;\n onChange: (v: any) => any;\n children: ReactNode;\n onMouseup: (v: any) => void;\n [key: string]: any;\n}\n\nconst NotUpLoad = ['.DS_Store'];\n\nconst SelectBox = (props: SelectBoxProps) => {\n let {\n checks = [],\n\n className = '',\n dataClass,\n selectClass = '',\n regionClass,\n getContainer = '',\n\n isDrag = true,\n isSelectBoxes = true,\n checkType = '',\n checkMode,\n loadMenu,\n isUpload = true,\n\n startPosition,\n setScroll,\n\n action = 'stack',\n startDrag,\n endDrag,\n onChange,\n onMouseup,\n loadData,\n\n onMenuClick,\n onFileDarg,\n } = props;\n\n const store = useContext(ExampleContext);\n\n const selectionRef: any = useRef<any>(null);\n\n const clickRef = useRef(true);\n //选框\n const ref = useRef<any>(null);\n\n //盒子\n const box = useRef<any>(null);\n\n const showDragAnimation = useRef<boolean>(true);\n\n //当前\n const cur = useRef<any[] | null>(null);\n\n //文案\n const text = useRef<any>(null);\n const textBox = useRef<any>(null);\n\n //鼠标位置\n const mouse = useRef({ x: 0, y: 0 });\n\n //判断单机还双击\n const isDclick = useRef<any>(null);\n\n //是否可以多动文件\n const [isDragFiles, setIsDragFiles] = useState(false);\n //是否可以拖动上传\n const [isDragUpload, setIsDragUpload] = useState(false);\n\n const [dragging, setDragging] = useState(false);\n\n const [selects, setSelect] = useState<string[]>([]);\n\n const [stageClickInfo, setStageClickInfo] = useState<{\n show: boolean;\n x?: number;\n y?: number;\n scrollx?: number;\n scrolly?: number;\n startkey?: string | null;\n }>({ show: false });\n\n useEffect(() => {\n let lie = startPosition;\n if (stageClickInfo.show) {\n getSelectBox();\n }\n }, [startPosition, stageClickInfo, checks]);\n\n const menudata = useMemo(() => {\n let v = cloneDeep(store.curInfo);\n if (!v) return;\n let menudata: any = [];\n if (getMenu(v.key)) {\n menudata = getMenu(v.key);\n } else {\n menudata = getMenu('cur-folder');\n }\n\n return menudata;\n }, [store.curInfo, isUpload]);\n\n useEffect(() => {\n setSelect(checks);\n }, [checks]);\n\n useEffect(() => {\n if (isDragUpload) {\n createText();\n } else {\n textBox.current?.remove();\n textBox.current = null;\n text.current = null;\n box.current = null;\n }\n }, [isDragUpload]);\n\n useEffect(() => {\n if (!isUpload) return;\n // 在这里执行需要操作 DOM 的代码\n document.querySelector(getContainer)?.addEventListener('dragenter', bodyDragEnter);\n document.addEventListener('dragover', handleDragOver, false);\n document.addEventListener('dragleave', handleDragLeave, false);\n document?.addEventListener('dragenter', handleDragEnter);\n document?.addEventListener('drop', handleDrop);\n return () => {\n document.querySelector(getContainer)?.removeEventListener('dragenter', bodyDragEnter);\n document.removeEventListener('dragenter', bodyDragEnter);\n document.removeEventListener('dragover', handleDragOver);\n document.removeEventListener('mouseleave', handleDragLeave);\n document.removeEventListener('dragleave', handleDragLeave);\n document?.removeEventListener('drop', handleDrop);\n };\n }, [store.curInfo, store.dataMap, store.curInfo?.key, isUpload, store.menutype, selectClass]);\n\n useEffect(() => {\n document.addEventListener('mousemove', handleBodyMousemove);\n document.addEventListener('mouseup', handleBodyMouseup);\n return () => {\n document.removeEventListener('mousemove', handleBodyMousemove);\n document.removeEventListener('mouseup', handleBodyMouseup);\n };\n }, [stageClickInfo, checkMode, isDragFiles, action, checks, startPosition, store.curlist]);\n\n /***************** 方法 ******************/\n\n //判断鼠标点击位置 是否为目标区域\n /**\n * @param e 鼠标默认事件\n * @param checkType //判断文件类型\n * @param status//添加状态\n * @param isregion//是否过滤区域\n * @param drag 判断是否可以拖动\n * @param upload 判断是否可以上传\n * @returns\n */\n function isSelectTarget(\n e: any,\n checkType: string,\n status?: string,\n isregion?: boolean,\n drag = true,\n upload = false,\n ): null | string[] {\n let idx: string[] = [];\n\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n if (v.contains(e.target)) {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n\n let id: string | undefined = dataDom?.getAttribute('data-id');\n\n if (drag) {\n let isdrag = dataDom?.getAttribute('data-isdrag');\n if (isdrag == 'false') return;\n }\n\n if (upload) {\n let isupload = dataDom?.getAttribute('data-upload');\n if (isupload == 'false') {\n v.classList.add('notupload');\n return;\n }\n }\n\n if (checkType) {\n let type = dataDom?.getAttribute('data-type');\n if (type !== checkType) return;\n if (status == 'select') {\n v.classList.add('hover');\n }\n }\n if (id) {\n idx.push(id);\n }\n } else {\n if (status == 'select') {\n v.classList.remove('hover');\n }\n }\n if (status == 'remove') {\n v.classList.remove('hover');\n }\n });\n\n if (store.menutype == 'column' && isregion) {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n if (!idx.length && v.contains(e?.target)) {\n let dataDom: any = v;\n let id = dataDom?.getAttribute('data-id');\n idx.push(id);\n } else {\n v.classList.remove('drags');\n }\n });\n }\n\n if (idx.length) {\n return idx;\n }\n\n return null;\n }\n //清空\n function empty() {\n textBox.current?.remove();\n box.current?.remove();\n box.current = null;\n textBox.current = null;\n clickRef.current = false;\n\n showDragAnimation.current = true;\n cur.current?.forEach((v) => v.remove());\n cur.current = null;\n }\n //第一层数据\n const curList_keys = useMemo(() => {\n if (!Array.isArray(store.curlist)) return [];\n return store.curlist.map((v) => v?.key);\n }, [store.curlist]);\n\n /***************** 鼠标移动 ******************/\n //鼠标移动 (文件移动动画)\n function handleBodyMousemove(e: any) {\n /***\n * 一.判断 是创建选取 还是文件拖动\n * 二.创建选取\n * 1. createBox\n * 三.文件拖动\n * 1.判断 创建拖动 位置\n * 2.位置>10 进行拖动\n * 3.内容存在 执行动画 进行移动\n */\n const { clientX: x, clientY: y } = e;\n const { x: pX, y: pY } = stageClickInfo;\n\n //移动\n if (isDrag && isDragFiles && selects.length) {\n let sWidth = Math.abs(x - pX! || 0);\n let sHeight = Math.abs(y - pY! || 0);\n if (cur.current?.length || sWidth > 10 || sHeight > 10) {\n isDrag && createDragView(e);\n }\n } else {\n //选框\n mouse.current = { x, y };\n createBox(e);\n }\n }\n\n //鼠标松开 (文件移动事件)\n function handleBodyMouseup(e: any) {\n setDragging(false);\n setIsDragFiles(false);\n setStageClickInfo({ show: false });\n onMouseup?.(e);\n if (cur.current?.length) {\n let target = isSelectTarget(e, 'folder', '', true, false);\n\n if (target?.[0] && !checks?.includes(target?.[0])) {\n if (target?.[0] !== stageClickInfo.startkey) {\n let ismove = onFileDarg?.(target[0]) === false;\n\n props.onMoveFile(checks, !ismove ? target?.[0] : null);\n }\n } else {\n if (ref.current.contains(e?.target)) {\n if (store.curInfo?.key && !curList_keys.includes(checks[0])) {\n let ismove = onFileDarg?.(store.curInfo?.key) === false;\n props.onMoveFile(checks, !ismove ? store.curInfo?.key : null);\n }\n }\n }\n removeDragView();\n empty();\n } else {\n const selectionDom = selectionRef.current;\n if (selectionDom) {\n selectionDom.style.cssText = `\n position: absolute; \n opacity: 0;\n top:1px; \n left: 1px;\n width: 0px;\n height: 0px;\n pointer-events: none;\n z-index: -1;\n `;\n }\n setTimeout(() => {\n clickRef.current = true;\n }, 300);\n }\n }\n\n /***************** 拖动 *****************/\n\n //上传文件拖动中 (外部文件上传)\n const handleDragOver = (e: any) => {\n e?.preventDefault();\n const { clientX: x, clientY: y } = e || {};\n if (text.current) {\n let id: string | null = null;\n\n let is = false;\n let param: any = {};\n\n if (ref.current.contains(e?.target)) {\n param = store.curInfo;\n is = true;\n }\n\n let state = '';\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n if (v.contains(e?.target)) {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n let type = dataDom?.getAttribute('data-type');\n if (type !== 'folder') return;\n\n let isupload = dataDom?.getAttribute('data-upload');\n if (isupload == 'false') {\n v.classList.add('notupload');\n state = 'notupload';\n return;\n }\n\n id = dataDom?.getAttribute('data-id');\n is = false;\n\n v.classList.add('drags');\n } else {\n v.classList.remove('drags');\n v.classList.remove('notupload');\n }\n });\n\n if (store.menutype == 'column') {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n if (!id && v.contains(e?.target)) {\n let dataDom: any = v;\n id = dataDom?.getAttribute('data-id');\n if (id) {\n v.classList.add('drags');\n is = false;\n }\n } else {\n v.classList.remove('drags');\n }\n });\n }\n\n if (typeof id == 'string') {\n if (store.curInfo?.key === id) {\n param = store.curInfo;\n } else {\n param = store?.dataMap?.[id] || {};\n }\n }\n\n if (is) {\n ref.current.style.cssText = `\n border:2px solid #1677ff;\n `;\n } else {\n ref.current.style.cssText = `\n border:2px solid transparent;\n `;\n }\n let config: any = undefined;\n\n let element = renderDragtext({ x: x + 20, y: y + 20, ...param }, config);\n\n text.current.render(element);\n return [id];\n }\n return null;\n };\n\n //文件上传\n const handleDrop = async (e: any) => {\n setIsDragUpload(false);\n e.preventDefault();\n e.stopPropagation();\n const items = Array.from(e.dataTransfer.items);\n\n let files: any[] = [];\n let empty: any[] = [];\n\n const getFile = async (item: any, path?: string) =>\n new Promise<any>((resolve, reject) => {\n item.file((file: any) => {\n resolve({ file, path: path }); // 假设路径为空字符串或根据需要调整\n }, reject);\n });\n\n const traverseFileTree = async (item: any, path = '') => {\n try {\n if (item.isFile) {\n // 使用自定义的 getFile 函数来获取文件\n const fileInfo = await getFile(item, path);\n files.push(fileInfo);\n } else if (item.isDirectory) {\n const dirReader = item.createReader();\n const entries = await new Promise<any[]>((resolve, reject) => {\n dirReader.readEntries((entries: any) => {\n resolve(entries);\n }, reject);\n });\n\n let _entries = entries.filter((v: any) => {\n if (!NotUpLoad.includes(v.name)) {\n return v;\n }\n });\n\n if (_entries.length === 0) {\n empty.push(path + item.name + '/');\n } else {\n for (let i = 0; i < _entries.length; i++) {\n await traverseFileTree(_entries[i], path + item.name + '/');\n }\n }\n }\n } catch (error) {}\n };\n\n const promises = items.map(async (entry: any) => {\n const item = entry.webkitGetAsEntry();\n if (item) {\n return traverseFileTree(item, '');\n }\n });\n\n await Promise.all(promises);\n\n let data = isSelectTarget(e, 'folder', '', true, false, true);\n\n handleDragLeave();\n let key: any = null;\n\n if (typeof data?.[0] == 'string' && store?.dataMap?.[data?.[0]]) {\n if (data?.[0] == store.curInfo?.key) {\n key = store.curInfo;\n } else {\n key = store?.dataMap?.[data?.[0]];\n }\n } else {\n key = store.curInfo;\n }\n\n // if (!key) return;\n typeof props.onUpload === 'function' && props?.onUpload(files, key, empty);\n };\n\n function handleDragEnter(e: any) {\n e.preventDefault();\n e.stopPropagation();\n }\n //退出当前区域\n function handleDragLeave(e?: any) {\n let cont = document.querySelector(getContainer);\n e?.preventDefault();\n e?.stopPropagation();\n if (!cont?.contains(e?.target) || e?.clientX <= 0 || e?.clientY <= 0) {\n setIsDragUpload(false);\n }\n\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n v.classList.remove('drags');\n v.classList.remove('notupload');\n });\n if (store.menutype == 'column') {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n v.classList.remove('drags');\n v.classList.remove('notupload');\n });\n }\n if (ref.current) {\n ref.current.style.cssText = `\n border:2px solid transparent;\n `;\n }\n }\n //拖入div\n function bodyDragEnter(e?: any) {\n e?.preventDefault();\n e?.stopPropagation();\n if (e?.dataTransfer?.types && !e?.dataTransfer?.types.includes('Files')) {\n return;\n }\n setIsDragUpload(true);\n }\n\n /*********** 创建绘制页面 (拖动是执行样式) *************/\n\n //拖动到文件上方时 展示的字体\n function createText() {\n let _box = null;\n let body = null;\n let _text = null;\n\n _text = document.createElement('div');\n text.current = createRoot(_text);\n\n if (textBox.current && text.current) {\n textBox.current?.appendChild(text);\n } else {\n body = document.querySelector('body');\n _box = document.createElement('div');\n _box.className = `_selectbox ${className}`;\n _box.style.cssText = `\n position: absolute; \n top:1px; \n left: 1px;\n width: 0px;\n height: 0px;\n pointer-events: none;\n overflow: visible !important;\n z-index: 999;\n `;\n\n textBox.current = _box;\n _box?.appendChild(_text);\n body?.appendChild(_box);\n }\n }\n\n //创建选框 并过滤数据\n function createBox(e: any) {\n if (stageClickInfo.show) {\n let region = null;\n //指定了选区大小\n if (regionClass) {\n let dom = document.querySelector(regionClass);\n if (dom) {\n region = dom.getBoundingClientRect();\n }\n }\n\n if (region) {\n let { x: left, y: top, width, height } = region;\n let right = left + width;\n let bottom = top + height;\n let { clientX: x, clientY: y } = e;\n\n if (x > right || x < left || y > bottom || y < top) {\n return;\n }\n }\n\n const selectionDom = selectionRef.current;\n if (selectionDom) {\n let idx: string[] = [];\n if (checkMode == 'check') {\n idx = cloneDeep(checks);\n }\n\n let dom: any[] = [];\n // 终点\n const { clientX: x, clientY: y } = e;\n\n let { top, bottom } = ref.current?.getBoundingClientRect?.();\n // 起点\n const { x: pX, y: pY = 0, scrolly = 0 } = stageClickInfo;\n const { y: endy = 0 } = startPosition;\n\n let stop = endy - scrolly;\n\n if (!pX || !pY) {\n return null;\n }\n let direction = 'down';\n // 默认右下\n let sTop = pY;\n let sLeft = pX;\n let sWidth = x - pX!;\n let sHeight = y - pY!;\n\n // 左下\n if (x < pX! && y > pY!) {\n sLeft = x;\n sWidth = pX - x;\n }\n // 左上\n if (x < stageClickInfo.x! && y < pY!) {\n sLeft = x;\n sTop = y;\n sWidth = pX - x;\n sHeight = pY - y;\n direction = 'up';\n }\n\n // 右上\n if (x > stageClickInfo.x! && y < pY!) {\n sTop = y;\n sHeight = pY - y;\n direction = 'up';\n }\n\n //判断\n if (stop > 0) {\n if (stop > pY) {\n sTop = top;\n } else {\n }\n }\n\n if (bottom - y < 60) {\n idx = cloneDeep(checks);\n\n let shift = 60 - (bottom - y);\n setScroll?.(shift, 'down');\n let initTop = sTop - top;\n if (sTop == top) {\n sHeight = y - top;\n } else if (initTop < stop) {\n sTop = top;\n sHeight = initTop + sHeight;\n } else {\n sTop = sTop - stop;\n sHeight = stop + sHeight;\n }\n }\n\n if (y - top < 60) {\n idx = cloneDeep(checks);\n let shift = 60 - (y - top);\n setScroll?.(shift, 'up');\n\n let initButtom = bottom + top;\n let cur = sTop + sHeight;\n\n if (stop > 0) {\n if (sTop == top) {\n sHeight = y - top;\n }\n } else {\n if (initButtom - cur < -stop) {\n sHeight = initButtom;\n } else {\n sHeight = -stop + sHeight;\n }\n }\n }\n\n if (bottom - y > 60 && y - top > 60) {\n setScroll?.(-1, 'up');\n if (sTop == top) {\n sHeight = y - top;\n }\n }\n\n Array.from(document.querySelectorAll(selectClass)).forEach((v, i) => {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n\n let { top, right, bottom, left } = v.getBoundingClientRect();\n let sRight = sLeft + sWidth;\n let sBottom = sTop + sHeight;\n\n //判断是否在选择区\n let leftCover = sLeft <= left && left <= sRight;\n\n let cmidst = sLeft >= left && sRight <= right; //内\n\n let rightCover = sLeft <= right && right <= sRight;\n\n let topCover = sTop <= top && top <= sBottom;\n\n let midst = sTop >= top && sBottom <= bottom; //内\n\n let bottomCover = sTop <= bottom && bottom <= sBottom;\n\n if ((leftCover || cmidst || rightCover) && (topCover || midst || bottomCover)) {\n if (checkType) {\n let type = dataDom?.getAttribute('data-type');\n if (type !== checkType) return;\n }\n let isdrag = dataDom?.getAttribute('data-isdrag');\n if (isdrag == 'false') return;\n\n let id = dataDom?.getAttribute('data-id');\n if (id && !idx.includes(id)) {\n idx.push(id);\n dom.push(v);\n }\n }\n });\n\n selectionDom.style.cssText = `\n position: absolute;\n background-color: rgba(30, 175, 249, .2);\n border: 1px solid rgba(30, 175, 249, 1);\n top:${sTop}px;\n left: ${sLeft}px;\n width: ${sWidth}px;\n height: ${sHeight}px;\n pointer-events: none;\n z-index: 0;\n `;\n onChange(idx);\n }\n }\n }\n\n //鼠标不移动时筛选数据\n function getSelectBox() {\n const selectionDom = selectionRef.current;\n const { x, y } = mouse.current;\n\n let region = null;\n //指定了选区大小\n if (regionClass) {\n let dom = document.querySelector(regionClass);\n if (dom) {\n region = dom.getBoundingClientRect();\n }\n }\n\n if (region) {\n let { x: left, y: top, width, height } = region;\n let right = left + width;\n let bottom = top + height;\n if (x > right || x < left || y > bottom || y < top) {\n return;\n }\n }\n\n if (selectionDom && mouse.current) {\n let idx: string[] = [];\n if (checkMode == 'check') {\n idx = cloneDeep(checks);\n }\n\n let dom: any[] = [];\n // 终点\n\n let { top, bottom } = ref.current?.getBoundingClientRect?.();\n // 起点\n const { x: pX, y: pY = 0, scrolly = 0 } = stageClickInfo;\n const { y: endy = 0 } = startPosition;\n\n let stop = endy - scrolly;\n\n if (!pX || !pY) {\n return null;\n }\n let direction = 'down';\n // 默认右下\n let sTop = pY;\n let sLeft = pX;\n let sWidth = x - pX!;\n let sHeight = y - pY!;\n\n // 左下\n if (x < pX! && y > pY!) {\n sLeft = x;\n sWidth = pX - x;\n }\n // 左上\n if (x < stageClickInfo.x! && y < pY!) {\n sLeft = x;\n sTop = y;\n sWidth = pX - x;\n sHeight = pY - y;\n direction = 'up';\n }\n\n // 右上\n if (x > stageClickInfo.x! && y < pY!) {\n sTop = y;\n sHeight = pY - y;\n direction = 'up';\n }\n\n // console.log(pY);\n\n // //判断\n // if (stop > 0) {\n // if (stop > pY - top) {\n // sTop = top;\n // } else {\n // sTop = top + stop + (pY - top);\n // sHeight = 0;\n // console.log('顶', sTop, '高', sHeight, '差', stop);\n // }\n // }\n\n if (bottom - y < 60) {\n idx = cloneDeep(checks);\n let initTop = sTop - top;\n if (sTop == top) {\n sHeight = y - top;\n } else if (initTop < stop) {\n sTop = top;\n sHeight = initTop + sHeight;\n } else {\n sTop = sTop - stop;\n sHeight = stop + sHeight;\n }\n }\n\n if (y - top < 60) {\n idx = cloneDeep(checks);\n\n let initButtom = bottom + top;\n let cur = sTop + sHeight;\n\n if (stop > 0) {\n if (sTop == top) {\n sHeight = y - top;\n }\n } else {\n if (initButtom - cur < -stop) {\n sHeight = initButtom;\n } else {\n sHeight = -stop + sHeight;\n }\n }\n }\n\n if (bottom - y > 60 && y - top > 60) {\n setScroll?.(-1, 'up');\n if (sTop == top) {\n sHeight = y - top;\n }\n }\n\n Array.from(document.querySelectorAll(selectClass)).forEach((v, i) => {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n\n let { top, right, bottom, left } = v.getBoundingClientRect();\n let sRight = sLeft + sWidth;\n let sBottom = sTop + sHeight;\n\n //判断是否在选择区\n let leftCover = sLeft <= left && left <= sRight;\n\n let cmidst = sLeft >= left && sRight <= right; //内\n\n let rightCover = sLeft <= right && right <= sRight;\n\n let topCover = sTop <= top && top <= sBottom;\n\n let midst = sTop >= top && sBottom <= bottom; //内\n\n let bottomCover = sTop <= bottom && bottom <= sBottom;\n\n if ((leftCover || cmidst || rightCover) && (topCover || midst || bottomCover)) {\n if (checkType) {\n let type = dataDom?.getAttribute('data-type');\n if (type !== checkType) return;\n }\n let id = dataDom?.getAttribute('data-id');\n if (id && !idx.includes(id)) {\n idx.push(id);\n dom.push(v);\n }\n }\n });\n\n selectionDom.style.cssText = `\n position: absolute;\n background-color: rgba(30, 175, 249, .2);\n border: 1px solid rgba(30, 175, 249, 1);\n top:${sTop}px;\n left: ${sLeft}px;\n width: ${sWidth}px;\n height: ${sHeight}px;\n pointer-events: none;\n z-index: 10;\n `;\n\n // onChange(idx);\n }\n }\n\n //拖动选中 文件\n function createDragView(e: any) {\n const { clientX: x, clientY: y } = e;\n\n setDragging(true);\n let body = document.querySelector('body');\n let _box: any = null;\n\n //文件移动中\n if (cur.current?.length) {\n //文件移动时过度动画\n if (cur?.current?.length && isDrag) {\n cur.current?.map((v: any, i) => {\n let data = v.getBoundingClientRect();\n let is = store?.menutype == 'column';\n if (action == 'stack') {\n v.style.cssText = `\n position: absolute;\n transition: ${showDragAnimation.current ? '.2s' : 'none'} ;\n top:${y + 25 + i * 3}px;\n left:${x + i * 3 + 10}px;\n opacity:1;\n z-index:-${i};\n width:${is ? data.width : null}px;\n `;\n } else {\n v.style.cssText = `\n position: absolute;\n transition: ${showDragAnimation.current ? '.2s' : 'none'} ;\n top:${y + 25}px;\n left:${x + 10}px;\n z-index:-${i};\n opacity:1;\n transform: rotate(${4 * (i % 2 ? i * -1 : i)}deg);\n width:${is ? data.width : null}px;\n `;\n }\n });\n time = setTimeout(() => {\n showDragAnimation.current = false;\n }, 200);\n }\n let id: string | null = null;\n\n let is = false;\n let param: any = {};\n\n //第一层 不能拖动\n if (ref.current.contains(e?.target) && checks?.[0]) {\n if (!curList_keys.includes(checks[0])) {\n param = store.curInfo;\n is = true;\n }\n }\n\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n if (v.contains(e?.target)) {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n //判断 类型\n let type = dataDom?.getAttribute('data-type');\n if (type !== 'folder') return;\n\n //是否能检测到id\n let _id = dataDom?.getAttribute('data-id');\n if (checks?.includes(_id)) return;\n\n //暴露出去 让组件外判断是否可以 传入\n let isDarg = onFileDarg?.(_id);\n if (isDarg === false) return;\n\n id = _id;\n is = false;\n v.classList.add('drags');\n } else {\n v.classList.remove('drags');\n }\n });\n\n if (store.menutype == 'column') {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n if (!id && v.contains(e?.target)) {\n let dataDom: any = v;\n let curid = dataDom?.getAttribute('data-id');\n\n if (curid === stageClickInfo.startkey) return;\n\n id = curid;\n\n if (id) {\n v.classList.add('drags');\n is = false;\n }\n } else {\n v.classList.remove('drags');\n }\n });\n }\n\n if (typeof id == 'string') {\n if (store.curInfo?.key === id) {\n param = store.curInfo;\n } else {\n param = store?.dataMap?.[id] || {};\n }\n }\n\n if (is) {\n ref.current.style.cssText = `\n border:2px solid #1677ff;\n `;\n } else {\n ref.current.style.cssText = `\n border:2px solid transparent;\n `;\n }\n\n let element = renderDragtext(\n { x: x + 10, y: y - 10, ...param },\n {\n dragIcon: <ArrowLeftSvg />,\n dragDesc: '移动到:',\n desc: `${cur.current?.length || 0}项目`,\n },\n );\n text.current.render(element);\n } else {\n startDrag(checks);\n //创建 视图\n createText();\n _box = document.createElement('div');\n _box.className = `_selectbox ${className}`;\n _box.style.cssText = `\n position: absolute; \n top:1px; \n left: 1px;\n width: 0px;\n height: 0px;\n pointer-events: none;\n overflow: visible !important;\n z-index: 999;\n `;\n\n let list: any = [];\n Array.from(document.querySelectorAll(selectClass)).forEach((v, i) => {\n let dataDom: any = v;\n if (dataClass) {\n dataDom = v.querySelector(dataClass);\n }\n let id = dataDom?.getAttribute('data-id');\n if (checks.includes(id)) {\n list.push(v);\n v.classList.add('dragging');\n }\n });\n\n let arr: any[] = [];\n list.map((v: any, i: number) => {\n let _cur = v.cloneNode(true);\n\n let data = v.getBoundingClientRect();\n\n if (action == 'stack') {\n _cur.style.cssText = `\n position: absolute;\n width:${data.width}px;\n top:${data.top}px;\n left:${data.left}px;\n width:${data.width}px;\n transition: 0.3s;\n `;\n } else if (action == 'rotate') {\n _cur.style.cssText = `\n position: absolute;\n width:${data.width}px;\n top:${data.top}px;\n left:${data.left}px;\n transition: 0.3s;\n transform: rotate(${4 * (i % 2 ? i * -1 : i)}deg);\n `;\n }\n\n arr.push(_cur);\n _box?.appendChild(_cur);\n });\n\n cur.current = arr;\n body?.appendChild(_box);\n box.current = _box;\n }\n }\n\n function removeDragView() {\n endDrag();\n Array.from(document.querySelectorAll(selectClass)).filter((v) => {\n v.classList.remove('drags');\n v.classList.remove('dragging');\n });\n ref.current.style.cssText = `\n border:2px solid transparent;`;\n\n if (store.menutype == 'column') {\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n v.classList.remove('drags');\n });\n }\n }\n\n function renderDragtext(\n { x, y, ...props }: any,\n config?: { dragIcon?: NodeElement; dragDesc?: string; desc: string },\n ) {\n const { dragIcon, dragDesc = '', desc = '' } = config || {};\n return (\n <div\n className={cx('explorer-drop-tip', {\n select: props?.title,\n })}\n style={{ top: y, left: x }}\n >\n {props?.title ? (\n <>\n <span className='drop-tip-content'>\n <span className='content-icon'>{dragIcon || <UploadSvg></UploadSvg>}</span>\n <> {dragDesc || '上传至:'} </>\n </span>\n <span className='drop-tip-title'>{props?.title || <UploadSvg></UploadSvg>}</span>\n </>\n ) : (\n <>{desc || '拖到文件夹上传'} </>\n )}\n </div>\n );\n }\n\n /************* shift 选中 **************/\n\n //分栏模式下特殊处理\n function shiftSelectColumns(start: string, end: string) {\n let _start = store.dataMap?.[start]?.level || '';\n let _end = store.dataMap?.[end]?.level || '';\n\n if (!_end) return;\n\n let start_level = _start?.split('-');\n let end_level = _end?.split('-');\n\n let is = end_level.length == start_level.length;\n\n //开始位置\n let start_position = start_level[start_level.length - 1]\n ? start_level[start_level.length - 1] - 0\n : 0;\n\n // 结束位置\n let end_position = end_level[end_level.length - 1] ? end_level[end_level.length - 1] - 0 : 0;\n\n let max = start_position > end_position ? start_position : end_position;\n\n let min = start_position > end_position ? end_position : start_position;\n\n //判断是否是同一层\n if (!is) {\n min = 0;\n }\n\n let ids: string[] = [];\n const addLevel = (data: any) => {\n if (!data) return;\n let i = 0;\n while (i < data.length) {\n let item = data[i];\n\n if (typeof item.level === 'string') {\n let arr = item.level.split('-');\n let curIndex = arr[arr.length - 1];\n\n if (end_level.length == arr.length) {\n if (curIndex >= min && curIndex <= max) {\n ids.push(item.key);\n }\n }\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n addLevel(item.children);\n }\n i++;\n }\n };\n addLevel(store?.curlist || []);\n\n setSelect(ids);\n onChange(ids);\n }\n\n function shiftSelect(start: string, end: string) {\n if (!store?.dataMap) return;\n let _start = store.dataMap?.[start]?.index || 0;\n let _end = store.dataMap?.[end]?.index;\n\n if (typeof _end !== 'number') return;\n\n if (store?.menutype == 'column') {\n shiftSelectColumns(start, end);\n return;\n }\n\n let max = _start > _end ? _start : _end;\n\n let min = _start > _end ? _end : _start;\n\n let data = Object.values(store?.dataMap);\n\n let ids: string[] = [];\n\n data.map((v: any) => {\n if (v.index >= min && v.index <= max) {\n ids.push(v.key);\n }\n });\n setSelect(ids);\n onChange(ids);\n }\n\n /*************** control 选中 ******************* */\n\n function controlSelectColumns(key: string) {\n if (store?.menutype != 'column') return false;\n if (!store?.dataMap) return false;\n let _start = store.dataMap?.[key]?.level || '';\n\n let num = _start.split('-').length;\n\n let is = checks.some((v: string) => {\n let curlevel = store.dataMap?.[v]?.level || '';\n let curnum = curlevel.split('-').length;\n if (num != curnum) {\n return v;\n }\n });\n\n return is;\n }\n\n return (\n <div\n ref={ref}\n className={cx(`file-select-box ${className}`)}\n onDragLeave={(e) => {\n e.preventDefault();\n }}\n onDoubleClick={() => {\n clearTimeout(isDclick.current);\n }}\n onMouseDown={(e: any) => {\n let type: any = isSelectTarget(e, checkType);\n store.closeMenu();\n\n //按下shift建 切有 起始 选中文件\n if (store.shift && type?.[0]) {\n shiftSelect(checks[0], type[0]);\n return;\n }\n\n if (store.control && type?.[0]) {\n if (checks.includes(type?.[0])) {\n let arr: string[] = [];\n arr = checks.filter((v) => v !== type?.[0]);\n setSelect(arr);\n onChange(arr);\n } else {\n let arr: string[] = [];\n let is = controlSelectColumns(type[0]);\n if (is) {\n setSelect(type);\n onChange(type);\n return;\n }\n\n arr = [...selects, ...type];\n setSelect(arr);\n onChange(arr);\n return;\n }\n return;\n }\n\n //控制选中反选\n if (type?.[0]) {\n //右键不能今天拖动\n if (e.button === 2) return;\n setIsDragFiles(true);\n\n let curColumnkey = null;\n if (store.menutype == 'column') {\n //分栏模式下拖动文件 排除原有位置\n Array.from(document.querySelectorAll('.explorer-columns .layer')).filter((v) => {\n if (v.contains(e?.target)) {\n let dataDom: any = v;\n curColumnkey = dataDom?.getAttribute('data-id');\n }\n });\n }\n setStageClickInfo({\n show: false,\n x: e.clientX,\n y: e.clientY,\n startkey: curColumnkey,\n });\n\n // if (checkMode == 'check') {\n // if (!checks.includes(type?.[0])) {\n // let arr = [...selects, ...type];\n // setSelect(arr);\n // onChange(arr);\n // } else {\n // let arr = checks.filter((v: string) => v !== type?.[0]);\n // setSelect(arr);\n // onChange(arr);\n // }\n // }\n time = null;\n if (checkMode == 'check' && checks?.length > 1) return;\n }\n\n //在区域未选中\n if (Array.isArray(type) && checkMode != 'check') {\n if (!checks.includes(type[0])) {\n setSelect(type);\n onChange(type);\n }\n }\n\n isDclick.current = null;\n\n if (type) return;\n if (selects.length) {\n if (checkMode !== 'check') {\n setSelect([]);\n onChange([]);\n empty();\n }\n }\n\n //创建选取\n clickRef.current = false;\n isSelectBoxes &&\n setStageClickInfo({\n show: true,\n x: e.clientX,\n y: e.clientY,\n scrollx: startPosition?.x || 0,\n scrolly: startPosition?.y || 0,\n });\n }}\n onMouseUp={(e) => {\n let type: any = isSelectTarget(e, checkType);\n //控制选中反选\n if (type?.[0] && !stageClickInfo.show && !dragging) {\n if (checkMode == 'check') {\n if (!checks.includes(type?.[0])) {\n let arr = [...selects, ...type];\n setSelect(arr);\n onChange(arr);\n } else {\n let arr = checks.filter((v: string) => v !== type?.[0]);\n setSelect(arr);\n onChange(arr);\n }\n }\n }\n }}\n onContextMenu={(e) => {\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n store.openMenu(\n {\n x: x,\n y: y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={store.curInfo}\n loadMenu={(v) => {\n let menu = loadMenu?.(v);\n if (menu?.key == 'rename') return undefined;\n if (menu?.key == 'copy') return undefined;\n return menu;\n }}\n onChange={(key, parent) => {\n if (key == 'update') {\n if (store?.curInfo) {\n loadData(store?.curInfo?.key);\n }\n store.closeMenu();\n return;\n }\n\n if (parent?.key == 'create-file') {\n store.createFolder(key);\n store.closeMenu();\n return;\n }\n onMenuClick?.(key, store.curInfo);\n store.closeMenu();\n }}\n ></Menu>\n ),\n },\n store?.curInfo,\n );\n }}\n >\n {props.children}\n {ReactDOM.createPortal(<div ref={selectionRef}></div>, document.body)}\n </div>\n );\n};\n\nexport default SelectBox;\n","import './index.less';\nimport cx from 'classnames';\nimport React, {\n FC,\n forwardRef,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { getMenu } from '../menu/menulist';\nimport { cloneDeep, concat, xor } from 'lodash';\n\nimport Menu, { MenuItem } from '../menu';\nimport { NullDataSvg } from '../icons';\nimport VirtualScroll from '../virtualScroll';\nimport NotData from '../notdata';\nimport { ExplorerItem } from 'src/types';\n\nfunction Item(props: any) {\n const { store, onClick, acitve, isedit, checks = false, icon, parent, onDblclick } = props;\n\n const [value, setValue] = useState('');\n useEffect(() => {\n setValue(props?.title);\n }, [props?.title]);\n\n let disable = props?.disable || false;\n\n if (!disable && Array.isArray(props.selectedSuffix)) {\n disable =\n !props.selectedSuffix.includes(props.suffix) && !props.selectedSuffix?.includes(props?.type);\n }\n\n return (\n <>\n <div\n className={cx('explorer-columns-list', {\n acitve: acitve,\n checks: checks,\n isedit: isedit,\n 'menu-drag-move': acitve,\n disable,\n })}\n data-id={!disable ? props.id : null}\n data-type={!disable ? props.type : null}\n onClick={onClick}\n onContextMenu={(e) => {\n e.preventDefault();\n e.stopPropagation();\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n if (props?.menu == false) return;\n\n let menudata: any = [];\n if (getMenu(props.id)) {\n menudata = getMenu(props.id);\n } else if (props.type && getMenu(props.type)) {\n menudata = getMenu(props.type);\n } else {\n menudata = getMenu('');\n }\n store?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={{ key: props.id, ...props }}\n loadMenu={props?.loadMenu}\n onChange={async (key: any) => {\n if (key == 'rename') {\n store?.setReName(props.id);\n return;\n }\n props?.onMenuClick?.(key, { key: props.id, ...props });\n store?.closeMenu();\n }}\n ></Menu>\n ),\n },\n { key: props.id },\n );\n }}\n onDoubleClick={(e: any) => {\n onDblclick?.();\n }}\n >\n {icon?.({ key: props.id, ...props }, 'columns-list-icon')}\n {isedit ? (\n <input\n className='columns-list-input'\n autoFocus\n value={value}\n onFocus={(e) => {\n let i: number = props.title.lastIndexOf('.');\n if (props?.suffix == 'folder') {\n e.target.setSelectionRange(0, props.title.length);\n } else if (i !== -1) {\n e.target.setSelectionRange(0, i);\n }\n }}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n if (props?.create_file) {\n props?.onRename?.(props.id, e.target?.value, {\n ...props,\n // ...(parent || {}),\n create_file: true,\n });\n return;\n }\n props?.onRename?.(props.id, e.target?.value, props);\n }\n\n if (e.key === 'Escape') {\n if (props.create_file) {\n props?.onRename(props.id, false, props);\n }\n\n store?.setReName?.(null);\n return;\n }\n }}\n onBlur={(e) => {\n if (props?.create_file) {\n props?.onRename?.(props.id, e.target?.value, {\n create_file: true,\n ...props,\n // ...(parent || {}),\n });\n return;\n }\n if (e.target?.value === props.title) {\n store?.setReName?.(null);\n return;\n }\n props?.onRename?.(props.id, e.target.value, props);\n store?.setReName?.(null);\n }}\n onChange={(e) => {\n setValue(e.target.value);\n }}\n ></input>\n ) : (\n <>\n <div className='columns-list-title'>{props.title}</div>\n <div className='columns-list-tool'>\n <span className=''></span>\n </div>\n </>\n )}\n </div>\n {props?.end && <div className='explorer-columns-last'></div>}\n </>\n );\n}\n\ninterface ColumnsProps {\n data: any[];\n className?: string;\n icons?: (v: any, className: string) => ReactNode;\n onRename?: (key: any, value: string, param: any) => any;\n checks?: string[];\n onMenuClick: any;\n onLoadData?: any;\n onDblclick?: (key: string, param: any) => any;\n onClick?: (key: any, param: any) => any;\n [key: string]: any;\n}\n\nconst Columns: FC<ColumnsProps> = forwardRef((props, _ref) => {\n const {\n store,\n width: _w,\n data,\n className,\n checks = [],\n icons,\n onLoadData,\n onChange,\n onDblclick,\n onScroll,\n } = props;\n const ref = useRef<any>(null);\n\n const [scroll, setScroll] = useState({ x: 0, y: 0 });\n\n const [layer, setLayer] = useState(new Array(1).fill([])); //文件列表数据\n const [width, setWidth] = useState(new Array(1).fill(null)); //记录每行的宽度\n const [select_col, setSelectCol] = useState<number>(0); //选中栏\n const [isdrag, setIsdarg] = useState<boolean>(false);\n const [total_width, setTotalwidth] = useState<number>(0);\n\n let avg = useMemo(() => {\n if (!_w) return 0;\n let num = Math.ceil(_w / 5);\n return num < 200 ? 200 : num;\n }, []);\n\n useEffect(() => {\n let arr = new Array(1).fill('');\n //清空\n store.setExpandkey(arr);\n setScroll({ x: 0, y: 0 });\n setTotalwidth(0);\n }, [store.curInfo?.key]);\n\n useEffect(() => {\n initdata();\n }, [data, store.expandkey]);\n\n useEffect(() => {\n let level = select_col;\n store.setCurSelectFile(store.expandkey?.[level - 1] || null);\n }, [select_col, store?.expandkey]);\n\n useEffect(() => {\n if (!isdrag) return;\n let news = 0;\n width.map((v, index) => {\n news += v ? v : 0;\n });\n if (total_width < news) {\n setTotalwidth(news);\n }\n }, [width, avg, isdrag]);\n\n async function initdata() {\n let arr = new Array(1).fill([]);\n let { layer, isApi, child, mapping } = await getRowData(data, store.expandkey, 0);\n store.setDataMap(mapping);\n arr = layer;\n if (isApi) {\n onChange(child);\n }\n setLayer(arr);\n }\n\n async function getRowData(data: ExplorerItem[] | null, setSelectFile: string[], level: number) {\n // 1. 返回 没层用到的数据\n // 2. 返回 是否调用接口\n // 3. 如果掉调用借口 需要记录 数据给到 children 上\n let arr = new Array(1).fill([]);\n let api = false;\n let child: any[] = [];\n let mapping: any = {};\n\n if (Array.isArray(data)) {\n child = await Promise.all(\n data.map(async (v) => {\n if (v.key) {\n mapping = {\n ...mapping,\n [v.key]: v,\n };\n }\n if (setSelectFile?.[level] && v.key == setSelectFile[level]) {\n //有就用当前的\n if (Array.isArray(v?.children)) {\n let {\n layer,\n isApi,\n mapping: _map,\n } = await getRowData(\n v.children?.length ? v.children : null,\n setSelectFile,\n level + 1,\n );\n\n arr = layer;\n api = isApi;\n mapping = {\n ...mapping,\n ..._map,\n };\n\n return v;\n } else {\n //没有就重新拿一下\n let data = await onLoadData?.(v.key);\n let _child = [];\n if (Array.isArray(data) && data.length) {\n api = true;\n let {\n layer,\n child,\n mapping: _map,\n } = await getRowData(data, setSelectFile, level + 1);\n _child = child;\n arr = layer;\n mapping = {\n ...mapping,\n ..._map,\n };\n } else {\n arr[level + 1] = null;\n data = null;\n }\n return {\n ...v,\n children: _child,\n };\n }\n }\n return v;\n }),\n );\n }\n\n arr[level] = data;\n return {\n layer: arr,\n isApi: api,\n child,\n mapping,\n };\n }\n\n useEffect(() => {\n let w = cloneDeep(width);\n layer.forEach((v, i) => {\n if (v?.length && !w[i]) {\n w[i] = avg;\n }\n });\n\n setWidth(w);\n }, [layer, avg]);\n\n function handleMousemove(e: any) {\n if (!isdrag || !ref?.current) return;\n let dom = ref.current.getBoundingClientRect();\n let arr = cloneDeep(width);\n let data = arr.reduce((x, y, i) => {\n if (select_col > i) {\n return x + y;\n }\n return x + 0;\n }, 0);\n\n let num = scroll.y + e.nativeEvent.clientX - dom.left - data;\n\n arr[select_col] = num < 200 ? 200 : num;\n setWidth(arr);\n }\n\n function handleScroll(e: any) {\n setScroll({ x: e.target.scrollTop, y: e.target.scrollLeft });\n onScroll?.({ x: e.target.scrollTop, y: e.target.scrollLeft });\n if (total_width) {\n let num = width.reduce((x, y, i) => {\n x += y || 0;\n return x;\n }, 0);\n\n if (total_width > num + 50) {\n setTotalwidth(num);\n }\n }\n }\n\n function setlevel(data: string, level: number) {\n let arr = cloneDeep(store.expandkey);\n arr.fill('', level + 1);\n arr.splice(level, 1, data);\n return arr;\n }\n\n function setData(key: string, _data: any) {\n const fixdata = (data: any[], level: number) => {\n let arr = data;\n let i = 0;\n while (i < arr?.length) {\n let item = arr[i];\n\n if (item.key == key) {\n item['children'] = _data;\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n fixdata(item.children, level++);\n }\n i++;\n }\n return arr;\n };\n\n let arr = fixdata(data, 0);\n onChange(arr);\n }\n\n if (!data.length) {\n return (\n <div className='explorer-columns notdata'>\n <NotData />\n </div>\n );\n }\n\n function renderList(list: ExplorerItem[] | null, level: number, parent: ExplorerItem | null) {\n let curid = level == 0 ? store.curInfo?.key : store.expandkey?.[level - 1];\n\n let left = width.reduce((num, v, index) => {\n if (index < level) {\n return (num += v || avg);\n }\n return num;\n }, 0);\n //空\n if (!list) {\n return (\n <div\n data-id={curid}\n className={cx('layer empty', {\n select_col: select_col == level,\n })}\n onClick={(e) => {\n setSelectCol(level);\n if (store.expandkey[level - 1]) {\n store.setCurSelect(store.expandkey[level - 1]);\n }\n }}\n onContextMenu={(e: any) => {\n setSelectCol(level);\n if (store.expandkey[level - 1]) {\n store.setCurSelect(store.expandkey[level - 1]);\n }\n e.preventDefault();\n e.stopPropagation();\n let curinfo = null;\n if (level == 0) {\n curinfo = store.curInfo;\n } else {\n curinfo = store.dataMap?.[curid];\n }\n\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n let menudata: any = [];\n\n menudata = getMenu('cur-folder');\n store?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={curinfo}\n loadMenu={(v) => {\n if (['rename'].includes(v.key)) {\n return;\n }\n return store?.loadMenu?.(v);\n }}\n onChange={async (key: any, parent) => {\n if (key == 'update') {\n if (store?.curInfo) {\n store?.loadData();\n }\n store.closeMenu();\n return;\n }\n if (parent?.key == 'create-file') {\n store.createFolder(key, curinfo);\n store.closeMenu();\n return;\n }\n\n props?.onMenuClick?.(key, curinfo);\n store?.closeMenu();\n }}\n ></Menu>\n ),\n },\n { key: curid },\n );\n }}\n style={{\n left: left + 'px',\n width: width?.[level] || avg + 'px',\n }}\n >\n <div className='empty-is-null'>\n <div className='empty-icon'>\n <NullDataSvg></NullDataSvg>\n </div>\n <div className='empty-desc'>\n <span className=''>文件夹为空</span>\n </div>\n </div>\n </div>\n );\n }\n\n if (!Array.isArray(list) || !list.length) {\n return <></>;\n }\n\n return (\n <div\n data-id={curid}\n className={cx('layer list', {\n select_col: select_col == level,\n })}\n onClick={(e) => {\n setSelectCol(level);\n if (store.expandkey[level - 1]) {\n store.setCurSelect(store.expandkey[level - 1]);\n } else {\n store.setCurSelect(null);\n }\n }}\n style={{\n width: width[level] + 'px',\n left: left + 'px',\n }}\n onContextMenu={(e: any) => {\n setSelectCol(level);\n e.preventDefault();\n e.stopPropagation();\n\n let curinfo = null;\n if (level == 0) {\n curinfo = store.curInfo;\n } else {\n curinfo = store.dataMap?.[curid];\n }\n\n let x = 0;\n let y = 0;\n x = e.nativeEvent.clientX + 5;\n y = e.nativeEvent.clientY + 5;\n\n let menudata: any = [];\n\n menudata = getMenu('cur-folder');\n\n store?.openMenu(\n {\n x,\n y,\n content: (\n <Menu\n store={store}\n menu={menudata}\n info={curinfo}\n loadMenu={(v) => {\n if (['rename'].includes(v.key)) {\n return;\n }\n return store?.loadMenu?.(v);\n }}\n onChange={async (key: any, parent) => {\n console.log('🚀 ~ parent:', parent);\n if (key == 'update') {\n if (store?.curInfo) {\n store.loadData();\n }\n store.closeMenu();\n return;\n }\n if (parent?.key == 'create-file') {\n store.createFolder(key, curinfo);\n store.closeMenu();\n return;\n }\n\n props?.onMenuClick?.(key, curinfo);\n store?.closeMenu();\n }}\n ></Menu>\n ),\n },\n { key: curid },\n );\n }}\n >\n <div className='list-main'>\n <VirtualScroll\n className='list-scroll'\n item={list}\n itemHeight={32}\n renderItem={(v: any, i: number, end) => {\n return (\n <Item\n {...v}\n key={level + '-' + i}\n icon={icons}\n acitve={store.expandkey[level] == v.key}\n id={v.key}\n end={end}\n checks={checks?.includes(v.key)}\n selectedSuffix={store.selectedSuffix}\n isedit={store.reamekey == v.key || v.create_file}\n store={store}\n openMenu={store.openMenu}\n onRename={async (key: string, value: any, info: any) => {\n await props?.onRename?.(key, value, info);\n }}\n onMenuClick={props?.onMenuClick}\n onClick={async (e: any) => {\n //shift 键按下 进行展开\n if (store.shift) return;\n\n e.stopPropagation();\n store.closeMenu();\n store.setCurSelect(v.key);\n setSelectCol(level);\n if (v.type == 'folder') {\n let select = setlevel(v.key, level);\n let loaddata: any[] | null = null;\n let data = await onLoadData?.(v.key);\n if (Array.isArray(data) && data.length) {\n loaddata = data;\n }\n let arr =\n Array.isArray(v?.children) && v?.children.length\n ? [...v?.children]\n : loaddata;\n setData(v.key, arr);\n store.setExpandkey(select);\n }\n }}\n onDblclick={() => {\n onDblclick?.(v.key, v);\n }}\n parent={parent}\n ></Item>\n );\n }}\n ></VirtualScroll>\n </div>\n <div\n className={cx('drag')}\n onMouseDown={(e) => {\n e.stopPropagation();\n setSelectCol(level);\n setIsdarg(true);\n }}\n ></div>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cx('explorer-columns', { [className || '']: className })}\n onMouseMove={handleMousemove}\n onMouseUp={() => {\n setIsdarg(false);\n }}\n onMouseDown={(e) => {}}\n onContextMenu={(e) => {\n e.preventDefault();\n }}\n >\n <div className='explorer-columns-box-line'>\n <div\n style={{\n position: 'relative',\n left: `-${scroll.y}px`,\n minWidth: '100%',\n height: '100%',\n width: total_width,\n }}\n >\n {new Array(layer?.length).fill('').map((v, index) => {\n return (\n <div\n key={index}\n className='line-item'\n style={{\n width: width[index] ? width[index] : avg,\n }}\n ></div>\n );\n })}\n </div>\n </div>\n <div className='explorer-columns-box' onScroll={handleScroll}>\n <div\n className=''\n style={{\n height: '100%',\n width: total_width + 'px',\n transition: 'width 0.3s',\n }}\n >\n {layer.map((v: any, i) => {\n let parent = null;\n if (!i) {\n parent = store.curInfo;\n } else {\n let index = i - 1;\n let arr = layer[index];\n let key = store.expandkey[index];\n if (Array.isArray(arr) && key) {\n arr.map((v) => {\n if (v.key == key) {\n parent = v;\n }\n });\n }\n }\n\n return <React.Fragment key={i}>{renderList(v, i, parent)}</React.Fragment>;\n })}\n </div>\n </div>\n </div>\n );\n});\n\nexport default Columns;\n","import './index.less';\nimport { cx } from '../../../css';\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { ApiStatusEnum } from '../../../enum';\nimport { truncate } from 'lodash';\nimport { ExampleContext } from '../../../store';\nimport { convertBytesToSize } from '../../../utils/helper';\n\nimport { LoadingSvg } from '../../../components/icons';\nimport Tree from '../../../components/tree';\nimport Tile from '../../../components/tile';\nimport SelectBox from '../../../components/select-box';\nimport Columns from '../../../components/columns';\nimport { Pagination } from '@gingkoo/pandora';\n/**\n * 优化方案\n * 1.SelectBox\n * {\n * action: 'rotate',\n * className: 'file-select-box',\n * selectClass: '.file-continer-main .file',\n * }\n * 拆出来 暴露出去 来实现 拖动选框分区\n *\n * 2.组件要么彻底 业务话。要彻底组件话 现在有点不伦不类\n */\n\nconst template: any = {\n tile: {\n action: 'rotate',\n className: 'file-select-box',\n selectClass: '.file-continer-main .file',\n regionClass: '.file-select-box',\n },\n column: {\n className: 'explorer-columns',\n selectClass: '.explorer-columns-list',\n regionClass: '.explorer-columns .layer.list.select_col',\n },\n table: {\n className: 'explorer-tree table',\n dataClass: '.explorer-tree-row',\n selectClass: '.rc-tree-treenode',\n regionClass: '.file-select-box',\n },\n};\n\nlet time: any = null;\n\nconst Layout = (props: any) => {\n const {\n viewHeight: height,\n viewWidth: width,\n checks = [],\n isDrag = true,\n isNavtab = true,\n isSelectBoxes = true,\n isOpenMenu = true,\n\n loadData,\n loadNode,\n loadMenu,\n\n onClick,\n onCheck,\n onDblclick,\n showPages = false,\n onRename: _onRename,\n onMenuClick: _onMenuClick,\n } = props;\n\n const store = useContext(ExampleContext);\n\n const tile_srcoll = useRef<any>(null);\n const tree_srcoll = useRef<any>(null);\n const columns_srcoll = useRef<any>(null);\n\n const [_scroll, setScroll] = useState<any>({ x: 0, y: 0 });\n\n const [isdarg, setIsdarg] = useState(false);\n\n const scroll = useRef<any>({ x: 0, y: 0 });\n\n function Loading() {\n return (\n <div className='explorer-columns-loading'>\n <div className='loading-content'>\n <div className='loading-content-icon'>\n <LoadingSvg></LoadingSvg>\n </div>\n <div className='loading-content-title'>操作中 ...</div>\n </div>\n </div>\n );\n }\n\n function onMenuClick(key: string, props: any, type?: string) {\n let data = _onMenuClick(key, props, type ? type : 'main');\n if (data == 'update' && store.curInfo?.key) {\n loadData(store.curInfo?.key);\n }\n }\n\n function _onDblclick(key: string, info: any) {\n if (info.type == 'folder') {\n if (!isNavtab) return;\n\n if (Array.isArray(info?.children) && !info?.children.lenght) {\n store.setCurInfo(info);\n store.setCurList(info?.children);\n } else {\n loadData(key);\n }\n let arr = [...(store.log || [])];\n if (arr.length !== store.logindex) {\n arr = arr.slice(0, store.logindex - 1);\n }\n if (arr[arr.length - 1] !== info.key) {\n arr.push(info.key);\n }\n store.setLog(arr);\n store.setLogIndex(arr.length);\n } else {\n onDblclick?.(key, { ...info, isEdit: store.isEdit });\n }\n }\n\n function onRename(key: string, value: string | boolean, info: any) {\n _onRename(key, value, info, 'main');\n }\n\n function setRename(key: string) {\n store.setReName(key);\n }\n\n function toScroll(num: number) {\n if (store?.menutype == 'column') {\n columns_srcoll.current.toScroll({ x: num });\n }\n if (store?.menutype == 'table') {\n tree_srcoll.current.toScroll({ x: num });\n }\n if (store?.menutype == 'tile') {\n tile_srcoll.current?.toScroll({ x: num });\n }\n setScroll({ x: 0, y: num });\n }\n\n return (\n <div\n className='file-continer-main'\n onClick={() => {\n if (isdarg) return;\n if (store?.menutype !== 'column') {\n store.setCurSelect(null);\n store.setCurSelectFile(null);\n }\n }}\n >\n {store?.loading == ApiStatusEnum.LOADING && <Loading></Loading>}\n <SelectBox\n getContainer='.explorer-container'\n //业务\n checks={checks}\n checkType={store.checkType}\n checkMode={store.checkMode}\n loadMenu={loadMenu}\n loadData={loadNode}\n startPosition={_scroll}\n onMenuClick={onMenuClick}\n setScroll={(v: any, _type: string) => {\n // if (time) {\n // clearInterval(time);\n // time = null;\n // }\n // if (v < 0) return;\n // time = setInterval(() => {\n // if (_type == 'up') {\n // toScroll(scroll.current.y - v);\n // }\n // if (_type == 'down') {\n // toScroll(scroll.current.y + v);\n // }\n // }, 200);\n }}\n //功能\n className={cx('file-select-box', {\n [template[store?.menutype || '']?.className || '']: Boolean(\n template?.[store.menutype]?.className,\n ),\n })}\n isUpload={props.isUpload}\n isDrag={isDrag}\n isSelectBoxes={isSelectBoxes}\n dataClass={template?.[store.menutype]?.dataClass}\n selectClass={template?.[store.menutype]?.selectClass}\n action={template?.[store.menutype]?.action}\n regionClass={template?.[store.menutype]?.regionClass}\n onChange={(v: string[]) => {\n onCheck?.(v);\n }}\n onMouseup={(e: any) => {\n clearInterval(time);\n }}\n startDrag={(key: any[]) => {\n setIsdarg(true);\n props?.onStartDarg?.(key);\n }}\n endDrag={() => {\n props?.onEndDarg?.();\n setTimeout(() => {\n setIsdarg(false);\n }, 300);\n }}\n onMoveFile={props.onMoveFile}\n onUpload={props.onUpload}\n onFileDarg={props?.onFileDarg}\n >\n {store?.menutype == 'column' && (\n <Columns\n ref={columns_srcoll}\n store={store}\n icons={store.getIcons}\n data={store.curlist}\n checks={checks}\n onLoadData={loadNode}\n onClick={onClick}\n onRename={onRename}\n onMenuClick={onMenuClick}\n onDblclick={_onDblclick}\n height={height}\n width={width}\n onScroll={(v: any) => {\n scroll.current = v;\n setScroll(v);\n }}\n onChange={(v: any) => {\n store.setCurList(v);\n }}\n ></Columns>\n )}\n\n {store?.menutype == 'table' && (\n <Tree\n ref={tree_srcoll}\n type='table'\n checks={checks}\n activeKey={props?.activeFile}\n rename={store.reamekey}\n selectedKeys={[props?.activeFile || store.curSelect]}\n expandedKeys={store.expandkey}\n loadedKeys={store.loadkey}\n treeData={store.curlist as any}\n columns={store.columns}\n checkType={store.checkType}\n isEdit={store.isEdit}\n isDelect={store.isDelect}\n isDownload={store.isDownload}\n isUpload={store.isDownload}\n selectedSuffix={store.selectedSuffix}\n height={height - 24}\n width={width}\n animation={false}\n showLine={false}\n isOpenMenu={isOpenMenu}\n icon={store.getIcons}\n openMenu={store.openMenu}\n closeMenu={store.closeMenu}\n isload={true}\n ischeck={truncate}\n onScroll={(v: any) => {\n scroll.current = v;\n setScroll(v);\n }}\n onChecks={(arr: string[]) => {\n onCheck?.(arr);\n }}\n onSelect={(v: any) => {\n if (v?.type == 'folder' && v.expanded) {\n store.setCurSelectFile(v.key);\n }\n if (isdarg) return;\n store.setCurSelect(v.key);\n }}\n onRename={onRename}\n onMenuClick={onMenuClick}\n onDblclick={_onDblclick}\n loadData={loadNode}\n loadMenu={loadMenu}\n setRename={(v: string) => {\n setRename(v);\n }}\n onLoad={(v: any) => {\n store.setLoadKey(v);\n }}\n onExpand={(v: string[]) => {\n store.setExpandkey(v);\n }}\n onChange={(v: any) => {\n store.setCurList(v);\n }}\n ></Tree>\n )}\n\n {store?.menutype == 'tile' && (\n <Tile\n ref={tile_srcoll}\n width={width}\n store={store}\n height={height}\n rename={store.reamekey}\n select={store.curSelect}\n size={store.menuSize}\n data={store.curlist}\n icons={store.getIcons}\n checks={checks}\n openMenu={store.openMenu}\n closeMenu={store.closeMenu}\n onSelect={(key: any, v: any) => {\n store.setCurSelect(v.key);\n }}\n onDblclick={_onDblclick}\n onRename={onRename}\n onMenuClick={onMenuClick}\n setRename={(v: string) => {\n setRename(v);\n }}\n loadData={loadData}\n loadMenu={loadMenu}\n onScroll={(v: any) => {\n scroll.current = v;\n setScroll(v);\n }}\n ></Tile>\n )}\n </SelectBox>\n <div className='file-continer-footer'>\n <div className='desc'>\n <span className='desc-title'>{`${store.totalNum + '个'}项目`}</span>\n {store?.curSelect &&\n store.dataMap &&\n typeof store.dataMap[store?.curSelect]?.size == 'number' && (\n <span className='desc-size'>\n {convertBytesToSize(store.dataMap[store?.curSelect]?.size)}\n </span>\n )}\n </div>\n {showPages && (\n <div className='page'>\n <Pagination\n size='small'\n total={200}\n showSizeChange\n pageSize={100}\n onChange={(v) => {\n if (store?.curInfo?.key) {\n loadData(store.curInfo.key, {\n page: v,\n pageNum: 100,\n });\n }\n }}\n sizeOptions={[100, 200, 300, 400, 500]}\n onPageSizeChange={(v) => {}}\n bufferSize={1}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Layout;\n","import './index.less';\nimport cx from 'classnames';\nimport React, { useContext, useEffect, useState } from 'react';\n\nimport { DateFormat, convertBytesToSize } from '../../utils/helper';\nimport { ImgSuffix } from '../../enum';\nimport { Icons } from '../../explorer';\n\n// const Image = (src: string) => {\n// const [err, setErr] = useState(false);\n// if (err) {\n// return <div></div>;\n// }\n// return (\n// <img\n// src={src}\n// onError={() => {\n// setErr(true);\n// }}\n// ></img>\n// );\n// };\n\nfunction DetailsInfo(props: any) {\n const { info, getIcons, isheader = true } = props;\n\n const [isEdit, setIsEdit] = useState<any>(false);\n\n function rednerInfo() {\n return (\n <div className='panel-info'>\n <div className='panel-col'>\n <div className='title'>路径:</div>\n <div className='content'>{info?.pathDisplay || '-'}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>大小:</div>\n <div className='content'>\n {typeof info?.size == 'number' ? convertBytesToSize(info?.size) : info?.size || '-'}\n </div>\n </div>\n <div className='panel-col'>\n <div className='title'>创建时间 :</div>\n <div className='content'>{DateFormat(info?.createTime)}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>修改时间 :</div>\n <div className='content'>{DateFormat(info?.createTime)}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>创建人 :</div>\n <div className='content'>{}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>修改人 :</div>\n <div className='content'>{}</div>\n </div>\n <div className='panel-col'>\n <div className='title'>描述说明:</div>\n <div className='content'>\n {isEdit ? (\n <textarea autoFocus rows={1}></textarea>\n ) : (\n <div\n className='content-test'\n onClick={() => {\n setIsEdit(true);\n }}\n ></div>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={cx('explorer-details', {\n background: ImgSuffix.includes(info?.suffix),\n })}\n >\n {isheader && DetailHeader(info)}\n <div className='info-content'>\n {props?.renderFileInfo ? props.renderFileInfo?.(info) : rednerInfo()}\n </div>\n <div className='tab-group-line'></div>\n </div>\n );\n}\nexport default DetailsInfo;\n\nexport function DetailHeader(info: any) {\n if (info?.suffix && ImgSuffix.includes(info.suffix)) {\n return (\n <div className='info-header-background'>\n <img src={info.pic}></img>\n <div className='title'>{info?.title}</div>\n </div>\n );\n } else {\n return (\n <div className='info-header'>\n <div className='file-icon'>{Icons(info as any, '')}</div>\n <div className='file-name'>\n <div className='title'>{info?.title}</div>\n <div className='desc'>\n <span>\n {typeof info?.size == 'number' ? convertBytesToSize(info?.size) : info?.size || '-'}\n </span>\n <span>{info?.fixTime || ''}</span>\n </div>\n </div>\n </div>\n );\n }\n}\n","import './index.less';\nimport React, { useContext, useEffect, useState } from 'react';\n\nimport { ExampleContext } from '../../../store';\n\nimport DetailsInfo from '../../../components/details';\n\nfunction ExplorerInfo(props: any) {\n const { infoshow = false, getIcons, curInfo, dataMap, curSelect } = useContext(ExampleContext);\n const [info, setInfo] = useState<any>({});\n\n useEffect(() => {\n if (infoshow) {\n props?.setSize(285);\n } else {\n props?.onMinimize();\n }\n }, [infoshow]);\n\n useEffect(() => {\n if (curSelect) {\n setInfo(dataMap?.[curSelect]);\n } else {\n setInfo(curInfo);\n }\n }, [curInfo, dataMap, curSelect]);\n\n return (\n <div className='frame-main-info'>\n <DetailsInfo {...props} info={info} getIcons={getIcons}></DetailsInfo>;\n </div>\n );\n}\n\nexport default ExplorerInfo;\n","import './index.less';\nimport { css } from '../css';\nimport { useContext, useEffect } from 'react';\n\nimport { ExplorerItem, ExplorerProps } from '../';\nimport { ExampleContext } from '../store';\n\nimport Draggable from '../components/Draggable';\nimport ExplorerHead from './components/explorer-head';\nimport ExplorerMenu from './components/explorer-menu';\nimport ExplorerMain from './components/explorer-main';\nimport ExplorerInfo from './components/explorer-info';\n\ninterface ExploreLayout extends ExplorerProps {\n loadNode: (key: string) => Promise<any>;\n onMenuClick?: any;\n onMoveFile?: any;\n}\n\n//布局操作\nconst Layout = (props: ExploreLayout) => {\n const { isHeader = true, isNavtab = true, defaultViewType } = props;\n\n const store = useContext(ExampleContext);\n useEffect(() => {\n if (defaultViewType) {\n store?.setMenutype(defaultViewType);\n }\n }, [defaultViewType]);\n\n return (\n <div className='frame-explorer-main'>\n <Draggable\n placement={'horizontal'}\n poi={isNavtab ? [200] : [0, 'max']}\n fix={[true, false]}\n rang={[10, 350]}\n >\n {isNavtab ? <ExplorerMenu {...props} /> : <></>}\n <div className='frame-right'>\n {isHeader && (\n <div className='frame-header'>\n <ExplorerHead {...props} />\n </div>\n )}\n <div\n className='frame-main'\n style={{\n height: isNavtab ? 'calc(100% - 85px)' : '100%',\n }}\n >\n <Draggable\n className={css`\n position: absolute;\n width: 100%;\n left: 0;\n `}\n placement={'horizontal'}\n poi={['max']}\n fix={[false, true]}\n rang={[380, 285]}\n >\n <ExplorerMain {...props} />\n <ExplorerInfo {...props}></ExplorerInfo>\n </Draggable>\n </div>\n </div>\n </Draggable>\n </div>\n );\n};\n\nexport default Layout;\n","import './index.less';\nimport './components/tree/css/index.less';\n\nimport cx from 'classnames';\nimport {\n FC,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport _, { concat } from 'lodash';\nimport { createRoot } from 'react-dom/client';\nimport { ExplorerItem, ExplorerProps } from './types';\nimport { ApiStatusEnum, fileType } from './enum';\n\nimport { DateFormat, convertBytesToSize, getKey } from './utils/helper';\nimport { ExampleContext } from './store';\n\nimport { DoneSvg, IconsMap, ProcessingSvg, SuffixIcon, StatusIcon } from './components/icons';\nimport Layout from './layout';\nimport { cloneDeep } from 'lodash';\n//@ts-ignore\nimport { Modal2 } from '@gingkoo/pandora';\nimport DetailsInfo, { DetailHeader } from './components/details';\n// import '@gingkoo/pandora/lib/umd/index.min.css';\n// import '@gingkoo/pandora-icons/fonts/css/all.min.css';\n\nconst defaultColumns = [\n {\n title: '文件名',\n key: 'title',\n width: 300,\n },\n {\n title: '文件类型',\n key: 'suffix',\n width: 130,\n },\n {\n title: '状态',\n key: 'status',\n width: 130,\n render: (v: any) => {\n return (\n <>\n {v.status == 'done' && (\n <>\n <DoneSvg /> <span style={{ marginLeft: '5px', fontSize: '12px' }}> 预处理结束</span>\n </>\n )}\n {v.status == 'processing' && (\n <>\n <ProcessingSvg />\n <span style={{ marginLeft: '5px', fontSize: '12px' }}> 预处理中</span>\n </>\n )}\n </>\n );\n },\n },\n {\n title: '大小',\n key: 'size',\n width: 200,\n render: (v: any) => {\n return <>{convertBytesToSize(v.size)}</>;\n },\n },\n {\n title: '修改时间',\n key: 'modifyTime',\n width: 200,\n render: (v: any) => {\n return <>{DateFormat(v.modifyTime)}</>;\n },\n },\n {\n title: '创建时间',\n key: 'createdate',\n width: 200,\n render: (v: any) => {\n return <>{DateFormat(v.createTime)}</>;\n },\n },\n];\n\nif (!Array.prototype.hasOwnProperty('myforeach')) {\n Object.defineProperty(Array.prototype, 'myforeach', {\n value: async function (fn: (...rest: any) => void, context = null) {\n let index = 0;\n let arr: any = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n while (index < arr.length) {\n if (index in arr) {\n try {\n await fn.call(context, arr[index], index, arr);\n } catch (e) {}\n }\n index++;\n }\n },\n enumerable: false,\n });\n}\n\nexport const Icons = (v: any, className: string, style?: any) => {\n if (v?.label) {\n return (\n <span\n className={cx(`explorer-label-icon ${className || ''}`)}\n style={{\n ...(style || {}),\n }}\n >\n <div\n style={{\n background: 'red',\n }}\n ></div>\n </span>\n );\n }\n\n //特殊的用id\n if (v?.key && IconsMap.has(v?.key)) {\n return (\n <span\n className={cx(`${className || ''}`)}\n style={{\n ...(style || {}),\n }}\n >\n {IconsMap.get(v.key)}\n </span>\n );\n }\n // 自定义替换后缀\n if (v?.suffix && IconsMap.has(v?.suffix)) {\n return (\n <span\n className={cx(`${className || ''}`)}\n style={{\n ...(style || {}),\n }}\n >\n {IconsMap.get(v.suffix)}\n </span>\n );\n }\n\n //图片\n if (v?.pic && typeof v?.pic == 'string') {\n return (\n <span\n className={cx('explorer_icon', {\n [className || '']: className,\n })}\n >\n <img\n draggable='false'\n style={{\n ...(style || {}),\n }}\n src={v.pic}\n ></img>\n <StatusIcon status={v?.status} />\n </span>\n );\n }\n\n //文件\n if (v?.type == 'folder') {\n return (\n <SuffixIcon\n className={cx(`${className || ''}`)}\n status={v?.status}\n suffix={'folder'}\n ></SuffixIcon>\n );\n }\n // 默认后缀\n return (\n <SuffixIcon\n className={cx(`${className || ''}`)}\n status={v?.status}\n suffix={v?.suffix || 'unknown'}\n ></SuffixIcon>\n );\n};\n\nconst Explorer: FC<ExplorerProps> = forwardRef((props, ref) => {\n const {\n data,\n columns,\n checkType,\n checkMode = 'file',\n isDelect = true,\n isUpload = true,\n isEdit = true,\n isDownload = true,\n isOpenMenu = true,\n isNavtab = true,\n checks,\n accept,\n selectedSuffix,\n multiple = true,\n filelist,\n\n expandkey: _expandkey,\n createFile,\n\n onCopy,\n onShear,\n onPaste,\n onDelect,\n onChange,\n onChangeCurMap,\n onExpand,\n loadData: _loadData,\n onRename: _onRename,\n onSelectFile,\n onMenuClick: _onMenuClick,\n onMoveFile: _onMoveFile,\n } = props;\n\n //公用数据\n const [pathDisplay, setPathDisplay] = useState<string>('');\n const [curlist, setCurList] = useState<ExplorerItem[]>([]);\n const [curInfo, setCurInfo] = useState<ExplorerItem | null>(null);\n const [dataMap, setDataMap] = useState<{ [key: string]: ExplorerItem } | null>({});\n\n const [curSelect, setCurSelect] = useState<string | null>(null); //当前选中信息\n const [curSelectFile, setCurSelectFile] = useState<string | null>(''); //当前选中的文件( 选中文件 和 选中文件夹 回会同时纯在 上传用)\n\n const [menuSize, setMenuSize] = useState<number>(80);\n\n //重命名 reamekey 内容 menuRename 导航\n const [reamekey, setRename] = useState<string | null>(null);\n const [menuRename, setMenuRename] = useState<string | null>(null);\n\n //创建文件的状态\n const [createState, setCreateState] = useState(false);\n\n const [logindex, setLogIndex] = useState<number>(0); //前进\n const [log, setLog] = useState<string[]>([]); //后退\n const [expandkey, setExpandkey] = useState<any[]>([]);\n const [nav_expandkey, setExpandNavKey] = useState<string[]>([]);\n\n const [loadkey, setLoadKey] = useState<any[]>([]);\n const [nav_loadKey, setNavLoadKey] = useState<string[]>([]);\n\n const [menutype, setMenutype] = useState<'tile' | 'table' | 'column'>('tile');\n const [infoshow, setInfoShow] = useState<boolean>(false);\n const [loading, setLoading] = useState<ApiStatusEnum>(ApiStatusEnum.READY);\n\n const [pageNum, setPageNum] = useState<number>(100);\n const [curpage, setCurPage] = useState<number>(1);\n const [totalNum, setTotalNum] = useState<number>(0);\n\n const [shift, setShift] = useState(false);\n const [control, setControl] = useState(false);\n\n const box = useRef<any>(null);\n const boxMenu = useRef<any>(null);\n const menu = useRef<any>(null);\n\n useImperativeHandle(ref, () => ({\n removeLog: () => {\n //清空日志\n setLog([]);\n },\n\n updateNav: (key?: string, closeload?: boolean) => {\n if (key) {\n reloadNode(key);\n } else {\n curInfo?.key && reloadNode(curInfo.key);\n }\n },\n\n updateData: async (key?: string, closeload?: boolean) => {\n if (key) {\n await loadData(key, undefined, closeload);\n } else {\n await loadData(curInfo?.key || '', undefined, closeload);\n }\n },\n\n updateCurListNode: (key?: string) => {\n updateCurlist(key || '');\n },\n\n createFolder: createFolder,\n\n setNavSelect: (key: string) => {\n if (key) {\n setCurInfo({ key });\n }\n },\n }));\n\n useEffect(() => {\n if (filelist) {\n if (Array.isArray(filelist)) {\n setCurList(filelist);\n }\n setTimeout(() => {\n if (filelist?.length && _expandkey) {\n setExpandkey(_expandkey);\n } else {\n setExpandkey([]);\n }\n }, 0);\n } else {\n if (_expandkey) {\n setExpandkey(_expandkey);\n }\n }\n }, [filelist, _expandkey]);\n\n /* ************ 挂载监听 **************** */\n useEffect(() => {\n window.addEventListener('click', closeMenu);\n return () => {\n window.removeEventListener('click', closeMenu, false);\n window.removeEventListener('contextmenu', closeMenu, true);\n };\n }, []);\n\n useLayoutEffect(() => {\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n }, [curSelect, dataMap, isDelect, isEdit, reamekey]);\n\n const handleKeyDown = (e: any) => {\n if (e.altKey && e.key === '3') {\n setMenutype('column');\n }\n if (e.altKey && e.key === '2') {\n setMenutype('table');\n }\n if (e.altKey && e.key === '1') {\n setMenutype('tile');\n }\n // if ((e.ctrlKey || e.metaKey) && e.key === 'c') {\n // if (!isEdit) return;\n // if (curSelect && dataMap?.[curSelect]) {\n // onCopy?.(dataMap?.[curSelect]);\n // } else {\n // onCopy?.(null);\n // }\n // }\n // if ((e.ctrlKey || e.metaKey) && e.key === 'x') {\n // if (!isEdit) return;\n\n // if (curSelect && dataMap?.[curSelect]) {\n // onShear?.(dataMap?.[curSelect]);\n // } else {\n // onShear?.(null);\n // }\n // }\n // if ((e.ctrlKey || e.metaKey) && e.key === 'v') {\n // if (!isEdit || reamekey || menuRename) return;\n\n // curInfo && onPaste?.(curInfo);\n // curInfo && reloadNode(curInfo.key);\n // }\n if (e.key == 'Shift') {\n setShift(true);\n }\n if (e.key == 'Meta') {\n setControl(true);\n }\n };\n\n function handleKeyUp(e: any) {\n if (e.key == 'Shift') {\n setShift(false);\n }\n if (e.key == 'Meta') {\n setControl(false);\n }\n }\n\n const closeMenu = () => {\n boxMenu.current?.remove?.();\n boxMenu.current = null;\n menu.current = null;\n };\n\n useEffect(() => {\n if (!isNavtab) return;\n if (!curInfo) {\n setCurList(data?.[0]?.children || []);\n setCurInfo(data?.[0] || null);\n }\n }, [data, isNavtab]);\n\n useEffect(() => {\n /**\n * 分栏的 mapping 因为结构不同 所以在 columns 执行\n */\n if (menutype === 'column') return;\n let index = 0;\n const addLevel = (data: any, map: any, level: string) => {\n let i = 0;\n while (i < data.length) {\n let _level = level ? level + '-' + i : i + '';\n let item = data[i];\n item['index'] = index++;\n item['level'] = _level;\n map[item.key] = item;\n if (Array.isArray(item.children) && item.children.length > 0) {\n addLevel(item.children, map, _level);\n }\n i++;\n }\n return map;\n };\n\n let param = {};\n\n if (curInfo) {\n param = {\n [curInfo.key]: curInfo,\n };\n }\n\n let map = addLevel(curlist, param, '');\n setDataMap(map);\n }, [curlist, curSelectFile, curInfo, menutype]);\n\n //切换当前 文件目录时 需要清空的内容\n useEffect(() => {\n if (!curInfo?.key) return;\n\n setExpandkey([]);\n onExpand?.([]);\n setCurSelect(null);\n props?.onCheck?.([]);\n }, [curInfo?.key]);\n\n useEffect(() => {\n if (isNavtab) return;\n if (!curlist?.length) {\n if (Array.isArray(data)) {\n setCurList(data as any);\n }\n }\n }, [curlist, isNavtab, data]);\n\n useEffect(() => {\n onChangeCurMap?.(dataMap);\n }, [dataMap]);\n\n useEffect(() => {\n if (props?.expandedKeys) {\n setExpandNavKey(cloneDeep(props?.expandedKeys) || []);\n }\n }, [props.expandedKeys]);\n\n /* ************ 加载更新数据 **************** */\n\n async function loadData(key: string, param?: any, closeload = true) {\n if (!props?.loadData) return;\n closeload && setLoading(ApiStatusEnum.LOADING);\n let data: any = (await props.loadData?.(key, param)) || {};\n if (data.status == 'Err') {\n setTimeout(() => {\n closeload && setLoading(ApiStatusEnum.READY);\n }, 200);\n return null;\n }\n\n //清空加载过的结点记录\n setLoadKey([]);\n\n setCurList(data?.fileList || []);\n setCurInfo(data?.current || {});\n setTotalNum(data?.totalNum || 0);\n\n setTimeout(() => {\n closeload && setLoading(ApiStatusEnum.READY);\n }, 200);\n\n return data?.fileList || [];\n }\n\n async function loadNode(key: any) {\n if (!props.loadData) return;\n let data = await props.loadData?.(key);\n return data?.fileList || [];\n }\n\n // 直接通过 刷新数节点 达到刷新效果\n const reloadNode = (key: string, params?: ExplorerItem) => {\n let isfix = false;\n\n let level_index: number | null = null;\n let level_key: string[] = [key];\n const addData = (data: any[], key: string, level: number) => {\n let arr: any[] = data;\n let i = 0;\n while (i < arr.length) {\n let item: any = arr[i];\n if (item.key == key) {\n //刷新时需要 下一级展开内容记录 重新展开\n level_index = level;\n if (Array.isArray(item.children)) {\n item.children.map((v: any) => {\n level_key.push(v.key);\n });\n }\n isfix = true;\n item.api = true;\n item.isLeaf = false;\n item.children = [];\n if (item?.hasFolder == 0) {\n item.hasFolder = null;\n }\n }\n if (Array.isArray(item.children)) {\n item.children = addData(item.children, key, ++level);\n }\n i++;\n }\n return arr || [];\n };\n\n let arr = addData(cloneDeep(data) || [], key, 0);\n if (!isfix) {\n //路径可能不存在, 就需要更新他的更路径\n if (params?.source) {\n arr = addData(cloneDeep(data) || [], params.source, 0);\n }\n }\n\n onChange?.(arr);\n setTimeout(() => {\n if (!level_index) {\n setNavLoadKey([]);\n } else {\n let nav = nav_loadKey.filter((v: string) => !level_key.includes(v));\n setNavLoadKey(nav);\n }\n }, 100);\n };\n\n const fixNavNode = (key: string, type: 'add' | 'del' | 'update' | 'replace', params: any) => {\n const addNode = (item: any, params: any) => {\n let arr = [];\n if (Array.isArray(item.children)) {\n arr = [...item.children, params];\n } else {\n arr = [params];\n }\n item.children = arr;\n return item;\n };\n\n const replace = (key: string) => {};\n\n const updateinfo = (item: any, params: any) => {\n return {\n ...item,\n ...params,\n };\n };\n\n const delNode = (arr: any[], index: number) => {\n arr.splice(index, 1);\n return arr;\n };\n\n const filterData = (data: any[], key: string) => {\n let arr: any[] = data;\n let i = 0;\n let del_index: number | null = null;\n while (i < arr.length) {\n let item: any = arr[i];\n if (key == item.key) {\n if (type == 'add') item = addNode(item, params);\n if (type == 'update') item = updateinfo(item, params);\n if (type == 'del') del_index = i;\n }\n if (Array.isArray(item.children)) {\n item.children = filterData(item.children, key);\n }\n i++;\n }\n if (type == 'del' && typeof del_index == 'number') {\n arr = delNode(arr, del_index);\n }\n\n return arr || [];\n };\n let datas = filterData(cloneDeep(data) || [], key);\n onChange?.(datas);\n };\n\n function updata(id: string, param: any) {\n const fixData = (data: any[], id: string, param: any) => {\n let arr: any[] = data;\n let i = 0;\n while (i < arr.length) {\n let item: any = arr[i];\n if (item.key == id) {\n let arr = Object.keys(param);\n arr.map((v) => {\n item[v] = param[v];\n });\n }\n if (Array.isArray(item.children)) {\n item.children = fixData(item.children, id, param);\n }\n i++;\n }\n return arr || [];\n };\n\n let arr = fixData(data || [], id, param);\n onChange?.(arr);\n }\n\n async function updateCurlist(key: string) {\n let data = [];\n data = await reduceGetTreeData(curlist, key || curInfo?.key || '', expandkey);\n setCurList(data);\n }\n\n async function reduceGetTreeData(data: any[], key: string, expand: string[]) {\n let res: any[] = (await loadNode(key)) as any[];\n\n const newData: any[] = [];\n // @ts-ignore\n await data.myforeach(async (v: any) => {\n let obj = _.cloneDeep(v);\n if (expand.includes(obj.key)) {\n obj.children = await reduceGetTreeData(obj.children || [], obj.key, expand);\n }\n if (obj.type == 'file') {\n let match = res.filter((it: any) => it.key === obj.key);\n\n if (match.length) {\n newData.push(match[0]);\n return null;\n }\n }\n newData.push(obj);\n });\n\n return newData;\n }\n\n /* ************ 功能方法 **************** */\n\n async function uploadFile(param?: ExplorerItem) {\n if (!curInfo) return;\n\n let cur: any = param || curInfo;\n\n let input = document.createElement('input');\n input.type = 'file';\n input.accept = accept || '';\n input.multiple = true;\n input?.click();\n input.onchange = async (e: any) => {\n const files = Array.from(e.target.files);\n let _file = files.map((v) => {\n return { file: v, path: '' };\n });\n await props?.onUpload?.(_file, cur);\n loadData?.(curInfo?.key);\n };\n }\n\n //新建文件夹\n function createFolder(suffix?: string, params?: ExplorerItem) {\n let _type = 'folder';\n if (suffix && suffix !== 'folder') {\n _type = 'file';\n }\n setCreateState(true);\n\n const folderName = (folders: any[], folderName: string) => {\n let newName = folderName.trim();\n let count = 1;\n\n while (folders.includes(newName)) {\n if (newName?.includes('.')) {\n try {\n let arr = folderName?.split('.');\n let title = arr?.slice(0, -1);\n newName = `${title.join('.')} (${count}).${arr[arr.length - 1]} `;\n } catch (e) {}\n } else {\n newName = `${folderName} (${count})`;\n }\n\n count++;\n }\n return newName;\n };\n\n const addData = (data: any[], key: string, child: any) => {\n let arr: any[] = data;\n let file: any[] = [];\n let folder = [];\n\n if (key) {\n let i = 0;\n while (i < arr.length) {\n let item: any = arr[i];\n if (item.key == key) {\n if (Array.isArray(item.children)) {\n let titles: string[] = [];\n item.children.forEach((v: any) => {\n if (v.title) {\n titles.push(v.title);\n }\n if (v.type == 'folder') folder.push(v);\n if (v.type == 'file') file.push(v);\n });\n\n let data = folderName(titles, child.title);\n child['title'] = data;\n folder.push(child);\n item.children = [...folder, ...file];\n } else {\n item.children = [child];\n }\n i = arr.length;\n break;\n }\n\n if (Array.isArray(item.children)) {\n item.children = addData(item.children, key, child);\n }\n i++;\n }\n } else {\n if (arr.length) {\n let titles: string[] = [];\n arr.forEach((v: any) => {\n if (v.title) {\n titles.push(v.title);\n }\n\n if (v.type == 'folder') folder.push(v);\n if (v.type == 'file') file.push(v);\n });\n let title = folderName(titles, child.title);\n child['title'] = title;\n folder.push(child);\n arr = [...folder, ...file];\n } else {\n arr.push(child);\n }\n }\n\n return arr || [];\n };\n\n let arr = cloneDeep(curlist) || [];\n\n let target_key = params?.key || curSelectFile || '';\n\n if (params && params?.key === curInfo?.key) {\n target_key = '';\n }\n\n let list: any = addData(arr, target_key || '', {\n key: getKey(),\n type: _type,\n title: _type == 'folder' ? '新建文件夹' : `新建文件.${suffix}`,\n create_file: true,\n suffix: suffix,\n parent: params,\n });\n setCurList(list);\n }\n\n function openMenu(props: any, param?: any) {\n if (!isOpenMenu) return;\n closeMenu();\n let { x = 0, y = 0, className = '', placement, content } = props;\n let _menu: any = null;\n _menu = document.createElement('div');\n menu.current = createRoot(_menu);\n if (boxMenu.current) {\n boxMenu.current?.appendChild(menu);\n } else {\n let body = document.querySelector('body');\n let _body = document.createElement('div');\n _body.className = `_explorer-menu ${className}`;\n\n _body.style.cssText = `\n position:absolute;\n top: 0px;\n left: 0px;\n widht:0px;\n height: 0px;\n z-index:110;\n `;\n boxMenu.current = _body;\n _body?.appendChild(_menu);\n body?.appendChild(_body);\n }\n\n let _box = box.current.getBoundingClientRect();\n\n _menu.style.cssText = `\n position:absolute;\n top: -100px;\n left: -100px;\n background: #fff;\n opacity: 0;\n `;\n\n menu.current.render(content);\n\n setTimeout(() => {\n let cur = _menu.getBoundingClientRect();\n if (cur.height + y > _box.bottom) {\n let shift = cur.height + y - _box.bottom;\n y = y - shift - 10;\n }\n\n if (cur.width + x > _box.right) {\n let shift = cur.width + x - _box.right;\n x = x - shift - 10;\n }\n\n _menu.style.cssText = `\n position:absolute;\n top: ${y}px;\n left:${x}px;\n background: #fff;\n `;\n }, 100);\n }\n\n /* *********** 拦截进行特殊处理 *********** */\n async function onMenuClick(key: string, param: any, type: any) {\n if (key == 'remove') {\n if (type == 'menu') {\n await onDelect?.([param.key], param);\n } else {\n await onDelect?.(checks || [], param);\n }\n\n if (param.key == curInfo?.key) {\n data?.[0]?.key && loadData(data?.[0]?.key);\n } else {\n curInfo?.key && loadData(curInfo?.key);\n }\n\n if (param.type == 'folder') {\n reloadNode(param.parentPath);\n }\n\n onCheck?.([]);\n return;\n }\n\n if (key == 'copy') {\n onCopy?.(param);\n return;\n }\n\n if (key == 'shear') {\n onShear?.(param);\n return;\n }\n\n if (key == 'paste') {\n onPaste?.(param);\n curInfo?.key && loadData(curInfo.key);\n reloadNode(param.key);\n return;\n }\n\n if (key == 'info') {\n const o = Modal2.openModal({\n className: 'explorer-details-modal',\n modalWidth: 450,\n modalHeight: 620,\n customHeader: () => {\n return <DetailHeader {...param}></DetailHeader>;\n },\n content: (\n <DetailsInfo\n info={param}\n getIcons={Icons}\n isheader={false}\n renderFileInfo={props?.renderFileInfo}\n ></DetailsInfo>\n ),\n });\n }\n\n if (key == 'file-upload') {\n uploadFile(param);\n closeMenu();\n return;\n }\n\n if (key == 'create') {\n createFolder();\n closeMenu();\n return;\n }\n\n if (key == 'rename') {\n setRename(param.key);\n }\n\n if (key == 'open' && param.type == 'folder') {\n loadData(param?.key || '');\n return;\n }\n\n _onMenuClick?.(key, { ...param, isEdit: isEdit });\n }\n\n //创建和重名\n async function onRename(key: string, value: any, info: any, type?: 'menu' | 'main') {\n if (info.create_file) {\n const delata = (data: any[]) => {\n let arr: any[] = data;\n let filter = [];\n\n let i = 0;\n while (i < arr.length) {\n let item: any = arr[i];\n if (!item?.create_file) {\n filter.push(item);\n }\n if (Array.isArray(item.children)) {\n item.children = delata(item.children);\n }\n i++;\n }\n\n return filter || [];\n };\n\n //取消创建\n if (value === false) {\n let arr = delata(curlist);\n setCreateState(false);\n setCurList(arr);\n return;\n }\n\n let param: any = curInfo;\n\n if (curSelectFile && dataMap?.[curSelectFile]) {\n param = dataMap?.[curSelectFile];\n }\n\n if (curInfo || !isNavtab) {\n setLoading(ApiStatusEnum.LOADING);\n let create = await createFile?.(value, param, info);\n await loadData?.(curInfo?.key || '', null, false);\n\n if (create?.current) {\n fixNavNode(info.key, 'add', create.current);\n } else {\n reloadNode(curInfo?.key || '');\n }\n\n setCreateState(false);\n setLoading(ApiStatusEnum.READY);\n }\n } else {\n let data = await _onRename?.(key, value, info);\n\n if (info.type == 'folder' || type == 'menu') {\n if (data?.key) {\n if (key === curInfo?.key) {\n loadData(data.key);\n } else {\n curInfo?.key && loadData(curInfo?.key);\n }\n updata(key, { key: data.key, title: value });\n }\n } else {\n loadData(curInfo?.key || '');\n updata(key, { title: value });\n }\n }\n }\n\n async function onCheck(arr: string[]) {\n let map = dataMap || {};\n let param: ExplorerItem[] = [];\n\n if (!multiple) {\n arr = [arr[0]];\n }\n\n arr.forEach((checkedKeys: string) => {\n if (map[checkedKeys]) {\n param.push(map[checkedKeys]);\n }\n });\n\n props.onCheck?.(arr, param);\n }\n\n async function onMoveFile(cur: string[], target?: string) {\n let info: ExplorerItem | undefined = dataMap?.[target || ''];\n if (!cur?.length) return;\n let data: ExplorerItem[] = [];\n cur.forEach((v) => {\n if (dataMap?.[v]) {\n data.push(dataMap?.[v]);\n }\n });\n _onMoveFile?.(data, info);\n }\n\n return (\n <ExampleContext.Provider\n value={{\n //data\n dataMap,\n curlist,\n log,\n logindex,\n curInfo,\n\n //config\n isDelect: isDelect,\n isUpload: isUpload,\n isEdit: isEdit,\n isDownload: isDownload,\n selectedSuffix: selectedSuffix,\n multiple: multiple,\n shift,\n control,\n nav_expandkey,\n\n menutype,\n pathDisplay,\n columns: columns || defaultColumns,\n loading,\n menuSize,\n infoshow,\n checkType,\n checkMode,\n reamekey,\n menuRename,\n curSelect,\n curSelectFile,\n loadkey,\n nav_loadKey,\n expandkey,\n totalNum,\n createState,\n\n //icon\n getIcons: Icons,\n loadMenu: props?.loadMenu,\n uploadFile,\n createFolder,\n reloadNode,\n openMenu,\n closeMenu,\n setTotalNum,\n\n //set\n setLog,\n setLogIndex,\n setCurInfo,\n setInfoShow,\n setCurList,\n setMenuSize,\n setMenutype,\n setPathDisplay,\n setLoading,\n setReName: setRename,\n setMenuRename,\n setExpandNavKey,\n setCurSelect: (v: string | null) => {\n if (v == '_ending') {\n v = null;\n }\n setCurSelect(v);\n onSelectFile?.(v, dataMap?.[v || '']);\n },\n setCurSelectFile,\n setLoadKey,\n setNavLoadKey,\n setExpandkey: (v: any) => {\n onExpand?.(v);\n setExpandkey(v);\n },\n setDataMap,\n }}\n >\n <div className='explorer-container' ref={box}>\n <Layout\n {...props}\n loadData={loadData}\n loadNode={loadNode}\n onRename={onRename}\n onCheck={onCheck}\n onMenuClick={onMenuClick}\n onMoveFile={onMoveFile}\n />\n </div>\n </ExampleContext.Provider>\n );\n});\n\nexport default Explorer;\n"],"names":["ApiStatusEnum","ImgSuffix","getKey","randomLength","str","Number","Math","random","toString","substr","Date","now","toUpperCase","convertBytesToSize","bytes","thresh","abs","units","u","length","toFixed","DateFormat","date","toISOString","slice","ExampleContext","createContext","IconsMap","Map","_jsx","FavoriteSvg","SpaceSvg","NetdiskSvg","AlbumSvg","RecycleSvg","RecentlySvg","LinkSvg","TextSvg","ShareLinkSvg","_jsxs","className","viewBox","children","d","fill","InfoSvg","version","xmlns","ZoomUpSvg","FavSvg","FavTagSvg","LoadingSvg","ArrowLeftSvg","SearchSvg","ArrowRightSvg","ArrowTopSvg","AngleRightSvg","OutdentSvg","CaretRight","CircleCheckSvg","DoneSvg","width","height","ProcessingSvg","UpdateSvg","NullDataSvg","xmlnsXlink","gradientUnits","y2","x2","y1","x1","id","stopColor","offset","stopOpacity","xlinkHref","opacity","stroke","strokeWidth","strokeMiterlimit","transform","points","ry","rx","cy","cx","SuffixIcon","suffix","status","_file","is","includes","StatusIcon","_localimg","src","UploadSvg","flush","hydrate","merge","getRegisteredStyles","injectGlobal","keyframes","css","sheet","cache","createEmotion","key","Draggable","React","forwardRef","style","placement","poi","_poi","fix","rang","ref","boxRef","useRef","clickInfoRef","x","i","w","sashPlacement","sashClicked","setSashClicked","useState","minimum","setMinimum","maximum","setMaximum","setPoi","pSize","setParentSize","useImperativeHandle","parentSize","isMaximize","index","ps","calcMax","isMinimize","onMaximize","onMinimize","setSize","useEffect","ob","resizeObserver","document","addEventListener","cancelDrag","current","unobserve","removeEventListener","targetElement","ResizeObserver","entries","entry","contentRect","observe","handleMouseMove","e","clientX","pageX","clientY","pageY","$_width","min","max","$_w2","getElementRect","curPoi","p","handleMouseDown","size","s","childrenDom","useMemo","Children","map","child","viewWidth","viewHeight","left","top","visible","type","cloneElement","sashDom","hasZero","filter","v","it","active","onMouseDown","onMouseUp","Boolean","onMouseMove","returnDocument","element","window","Dropdown","props","dropdownRender","trigger","zIndex","onExpand","destroyPopupOnHide","capture","position","onContextMenu","expand","setExpand","newDiv","setNewDiv","menu","mouse","setMouse","root","setRoot","time","windowSize","setWindowSize","getSize","menuSize","setMenuSize","useLayoutEffect","handleResize","addEvent","delEvent","innerWidth","innerHeight","ids","querySelector","onclick","remove","content","newDivs","body","createElement","onClick","onClone","onmouseleave","setTimeout","onmouseenter","clearTimeout","appendChild","createRoot","setAttribute","render","lie","curX","curY","y","shiftX","getBoundingClientRect","box","right","bottom","trunc","documentClose","documentMenu","contains","target","container","offsetWidth","offsetHeight","cleanup","disconnect","stopPropagation","onMouseEnter","preventDefault","nativeEvent","onMouseLeave","iconFactory","getMenu","registerMenu","component","addMenuItem","keys","Array","isArray","arr","removeMenuItem","menuItem","item","icon","title","istoolbar","desc","menuIcon","test","Icons","isValidElement","Menu","onChange","loadMenu","store","info","data","edit","download","upload","delect","_menu","push","isEdit","disabled","isDelect","isDownload","isUpload","menus","Fragment","menudata","dom","ExplorerHead","loadData","useContext","pathInputRef","path","setPath","pathFocus","setFocus","curInfo","pathDisplay","Breadcrumb","split","dataMap","first","last","_t","_","exit","logindex","log","setLogIndex","forward","toolbar","empty","curSelect","checks","tool","more","Ellipsis","curSelectFile","toolBtn","param","hidden","curinfo","menutype","openMenu","setReName","onMenuClick","closeMenu","disable","parentPath","setLog","focus","name","value","onInput","spellCheck","onKeyDown","keyCode","onBlur","placeholder","createFolder","uploadFile","Slider","classname","setMenutype","onViewType","infoshow","setInfoShow","isdarg","setDarg","handleBodyMousemove","handleBodyMouseup","d_value","per","round","cur","num","TreeContext","DropIndicator","dropPosition","dropLevelOffset","indent","pointerEvents","backgroundColor","Indent","prefixCls","level","isStart","isEnd","widthStyle","baseClassName","list","classNames","memo","getEntity","keyEntities","getPosition","isTreeNode","node","pos","undefined","fillFieldNames","fieldNames","_title","mergedTitle","convertTreeToData","rootNodes","dig","treeNodes","toArray","treeNode","rest","dataNode","parsedChildren","flattenTreeData","treeNodeList","expandedKeys","fieldTitles","fieldKey","fieldChildren","expandedKeySet","Set","flattenList","parent","mergedKey","fieldTitle","flattenNode","omit","has","traverseDataNodes","dataNodes","callback","config","mergedConfig","externalGetKey","childrenPropName","mergeChildrenPropName","syntheticGetKey","processNode","pathNodes","connectNodes","parentPos","nodes","forEach","subNode","subIndex","convertDataToEntities","initWrapper","processEntity","onProcessFinished","legacyExternalGetKey","mergedExternalGetKey","posEntities","wrapper","entity","getTreeNodeProps","selectedKeys","loadedKeys","loadingKeys","checkedKeys","halfCheckedKeys","dragOverNodeKey","treeNodeProps","eventKey","expanded","indexOf","selected","loaded","loading","checked","halfChecked","String","dragOver","dragOverGapTop","dragOverGapBottom","convertNodePropsToEventData","eventData","Object","defineProperty","get","ICON_OPEN","ICON_CLOSE","defaultTitle","InternalTreeNode","Component","state","dragNodeHighlight","componentDidMount","syncLoadData","componentDidUpdate","onSelectorClick","context","onNodeClick","isSelectable","onSelect","onCheck","onSelectorDoubleClick","onNodeDoubleClick","isDisabled","onNodeSelect","disableCheckbox","onNodeCheck","isCheckable","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onDragStart","onNodeDragStart","setState","dataTransfer","setData","error","onDragEnter","onNodeDragEnter","onDragOver","onNodeDragOver","onDragLeave","onNodeDragLeave","onDragEnd","onNodeDragEnd","onDrop","onNodeDrop","onNodeExpand","setSelectHandle","selectHandle","getNodeState","isLeaf","hasChildren","treeDisabled","checkable","treeCheckable","onNodeLoad","selectable","treeSelectable","isDraggable","draggable","nodeDraggable","renderDragHandler","renderSwitcherIconDom","switcherIcon","switcherIconFromProps","switcherIconFromCtx","renderSwitcher","switcherIconDom","switcherCls","renderCheckbox","$custom","renderIcon","renderSelector","showIcon","treeIcon","titleRender","wrapClass","$icon","currentIcon","titleNode","$title","onDoubleClick","renderDropIndicator","dropIndicatorRender","direction","rootDraggable","showIndicator","mergedIndent","cacheIndent","domRef","indentWidth","otherProps","filterTreeNode","dropContainerKey","dropTargetKey","draggingNodeKey","dataOrAriaAttributeProps","pickAttrs","aria","isEndNode","mergedDraggable","draggableWithoutDisabled","dragging","ariaSelected","ContextTreeNode","Consumer","displayName","useUnmount","triggerStart","triggerEnd","firstMount","setFirstMount","MotionTreeNode","motion","motionNodes","motionType","onMotionStart","onOriginMotionStart","onMotionEnd","onOriginMotionEnd","treeNodeRequiredProps","setVisible","targetVisible","triggerMotionStart","triggerMotionEndRef","triggerMotionEnd","onVisibleChanged","nextVisible","CSSMotion","motionAppear","motionClassName","motionStyle","motionRef","restProps","_createElement","TreeNode","RefMotionTreeNode","findExpandedKeys","prev","next","prevLen","nextLen","add","find","shorter","longer","set","getExpandRange","shorterStartIndex","findIndex","shorterEndNode","longerStartIndex","longerEndIndex","HIDDEN_STYLE","display","overflow","border","padding","margin","noop","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","virtual","itemHeight","ceil","itemKey","getAccessibilityPath","NodeList","onVirtualScroll","focusable","activeItem","focused","tabIndex","onFocus","onActiveChange","onListChangeStart","onListChangeEnd","domProps","listRef","indentMeasurerRef","scrollTo","scroll","getIndentWidth","prevExpandedKeys","setPrevExpandedKeys","prevData","setPrevData","transitionData","setTransitionData","transitionRange","setTransitionRange","setMotionType","dataRef","latestData","diffExpanded","keyIndex","rangeNodes","newTransitionData","splice","mergedData","_Fragment","visibility","VirtualList","fullHeight","onVisibleChange","originList","fullList","originSet","restList","some","arrDel","clone","arrAdd","posToArr","getDragChildrenKeys","dragNodeKey","dragChildrenKeys","isLastChild","treeNodeEntity","posArr","isFirstChild","calcDropPosition","event","dragNode","targetNode","startMousePosition","allowDrop","flattenedNodes","expandKeys","horizontalMouseOffset","rawDropLevelOffset","filteredExpandKeys","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeIndex","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","abstractDragDataNode","abstractDropDataNode","dropAllowed","dropNode","dropTargetPos","calcSelectedKeys","multiple","parseCheckedKeys","keyProps","conductExpandParent","keyList","conductUp","removeFromCheckedKeys","filteredKeys","isCheckDisabled","fillConductCheck","levelEntities","maxLevel","syntheticGetCheckDisabled","entities","childEntity","visitedKeys","allChecked","partialChecked","from","cleanConductCheck","halfKeys","delete","conductCheck","getCheckDisabled","hasEntity","levelSet","result","MAX_RETRY_TIMES","Tree","defaultProps","showLine","checkStrictly","defaultExpandParent","autoExpandParent","defaultExpandAll","defaultExpandedKeys","defaultCheckedKeys","defaultSelectedKeys","expandAction","destroyed","loadingRetryTimes","treeData","flattenNodes","activeKey","listChanging","prevProps","dragStartMousePosition","currentMouseOverDroppableNodeKey","createRef","onUpdated","itemScrollOffset","componentWillUnmount","onWindowDragEnd","getDerivedStateFromProps","prevState","newState","needSync","entitiesMap","cloneKeyEntities","checkedKeyEntity","conductKeys","newExpandedKeys","setExpandedKeys","resetDragState","delayedDragEnterLogic","persist","currentTarget","relatedTarget","cleanDragState","outsideTree","abstractDropNodeProps","getTreeNodeRequiredProps","getActiveItem","dropResult","dragNodesKeys","concat","dropToGap","triggerExpandActionExpand","shiftKey","metaKey","ctrlKey","nodeItem","eventNode","targetSelected","selectedNodes","selectedKey","setUncontrolledState","oriCheckedKeys","oriHalfCheckedKeys","checkedObj","eventObj","checkedNodes","checkedKey","keySet","checkedNodesPositions","loadPromise","Promise","resolve","reject","onLoad","promise","then","currentLoadedKeys","newLoadedKeys","catch","onRightClick","args","targetExpanded","newFlattenTreeData","currentExpandedKeys","expandedKeysToRestore","newActiveKey","offsetActiveKey","which","KeyCode","UP","DOWN","expandable","LEFT","RIGHT","ENTER","SPACE","atomic","forceState","allPassed","onScroll","rootClassName","rootStyle","scrollWidth","draggableConfig","Provider","role","TableItem","columns","ischeck","isdrag","rename","onRename","selectedSuffix","isOpenMenu","flex","renderTool","autoFocus","defaultValue","create_file","lastIndexOf","setSelectionRange","setTitle","NotData","addLevel","levelIndex","filedata","hasFolder","hasFile","api","motionName","onAppearStart","onAppearActive","scrollHeight","onLeaveStart","onLeaveActive","_ref","_widht","isload","animation","onChecks","onDblclick","filterData","setRename","tree","header","motionshow","seTmotionShow","setWidth","toScroll","reduce","cloneDeep","floor","s_icon","open","s_table_icon","fontSize","setLeaf","curKey","loopLeaf","lev","l","getNewTreeData","loop","levelkey","onLoadData","table","scrollLeft","Header","onWidhtChange","checkType","TreeItem","defaultmenu","setIsDrag","dragindex","setDargIndex","up","a","diff","ExplorerMenu","loadNode","_onMenuClick","_onRename","select","setSelect","menuRename","nav_loadKey","nav_expandkey","getIcons","setPathDisplay","setNavLoadKey","setExpandNavKey","setMenuRename","VirtualScroll","renderItem","containerRef","scrollTop","setScrollTop","setdata","items","handleScroll","visibleCount","clientHeight","startIdx","endIdx","overflowY","paddingTop","Tile","icons","itemSize","setList","col","setCol","originalArray","chunkSize","resultArray","acc","curr","chunkIndex","row","isname","pic","lineHeight","rows","NotUpLoad","SelectBox","dataClass","selectClass","regionClass","getContainer","isDrag","isSelectBoxes","checkMode","startPosition","setScroll","action","startDrag","endDrag","onMouseup","onFileDarg","selectionRef","clickRef","showDragAnimation","text","textBox","isDclick","isDragFiles","setIsDragFiles","isDragUpload","setIsDragUpload","setDragging","selects","stageClickInfo","setStageClickInfo","show","getSelectBox","createText","bodyDragEnter","handleDragOver","handleDragLeave","handleDragEnter","handleDrop","curlist","isSelectTarget","isregion","drag","idx","querySelectorAll","dataDom","getAttribute","isupload","classList","curList_keys","pX","pY","sWidth","sHeight","createDragView","createBox","startkey","ismove","onMoveFile","removeDragView","selectionDom","cssText","renderDragtext","files","getFile","file","traverseFileTree","isFile","fileInfo","isDirectory","dirReader","createReader","readEntries","_entries","promises","webkitGetAsEntry","all","onUpload","cont","types","_box","_text","region","scrolly","endy","stop","sTop","sLeft","shift","initTop","initButtom","sRight","sBottom","leftCover","cmidst","rightCover","topCover","midst","bottomCover","_id","isDarg","curid","dragIcon","dragDesc","_cur","cloneNode","shiftSelectColumns","start","end","_start","_end","start_level","end_level","start_position","end_position","curIndex","shiftSelect","values","controlSelectColumns","curlevel","curnum","control","button","curColumnkey","scrollx","ReactDOM","createPortal","Item","acitve","isedit","setValue","Columns","_w","layer","setLayer","select_col","setSelectCol","setIsdarg","total_width","setTotalwidth","avg","setExpandkey","initdata","expandkey","setCurSelectFile","news","isApi","mapping","getRowData","setDataMap","setSelectFile","_map","_child","handleMousemove","setlevel","_data","fixdata","renderList","setCurSelect","console","reamekey","loaddata","minWidth","transition","template","tile","column","Layout","isNavtab","showPages","tile_srcoll","tree_srcoll","columns_srcoll","_scroll","Loading","_onDblclick","lenght","setCurInfo","setCurList","LOADING","_type","clearInterval","onStartDarg","onEndDarg","activeFile","loadkey","truncate","setLoadKey","totalNum","Pagination","total","showSizeChange","pageSize","page","pageNum","sizeOptions","onPageSizeChange","bufferSize","DetailsInfo","isheader","setIsEdit","rednerInfo","createTime","background","DetailHeader","renderFileInfo","fixTime","ExplorerInfo","setInfo","isHeader","defaultViewType","ExplorerMain","defaultColumns","marginLeft","modifyTime","prototype","hasOwnProperty","fn","TypeError","call","enumerable","label","Explorer","accept","filelist","_expandkey","createFile","onCopy","onShear","onPaste","onDelect","onChangeCurMap","_loadData","onSelectFile","_onMoveFile","createState","setCreateState","setLoading","READY","setPageNum","curpage","setCurPage","setTotalNum","setShift","setControl","boxMenu","removeLog","updateNav","closeload","reloadNode","updateData","updateCurListNode","updateCurlist","setNavSelect","handleKeyDown","handleKeyUp","altKey","_level","fileList","params","isfix","level_index","level_key","addData","source","nav","fixNavNode","addNode","datas","updata","fixData","reduceGetTreeData","res","newData","myforeach","obj","match","input","click","onchange","folderName","folders","newName","trim","count","join","folder","titles","target_key","_body","Modal2","openModal","modalWidth","modalHeight","customHeader","delata","create"],"mappings":"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EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,KAAK,EACL,OAAO,EACP,IAAI,EACJ,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,OAAO,EACP,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,EACL,GAAG,EACH,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,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","x_google_ignoreList":[0]}
|