@rsdoctor/components 1.3.12 → 1.3.13-beta.1
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/dist/components/Charts/TreeMap.d.ts +5 -1
- package/dist/components/Charts/TreeMap.mjs +538 -212
- package/dist/components/Charts/TreeMap.mjs.map +1 -1
- package/dist/components/Charts/constants.d.ts +1 -10
- package/dist/components/Charts/constants.mjs +13 -60
- package/dist/components/Charts/constants.mjs.map +1 -1
- package/dist/components/Charts/treemap.module.mjs +32 -4
- package/dist/components/Charts/treemap.module.mjs.map +1 -1
- package/dist/components/Charts/treemap_module.css +193 -39
- package/dist/components/Charts/treemap_module.css.map +1 -1
- package/dist/pages/ModuleAnalyze/components/fileTreeCom.mjs +37 -14
- package/dist/pages/ModuleAnalyze/components/fileTreeCom.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/fileTree.d.ts +3 -0
- package/dist/pages/ModuleAnalyze/fileTree.mjs +80 -35
- package/dist/pages/ModuleAnalyze/fileTree.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/index.css +47 -0
- package/dist/pages/ModuleAnalyze/index.css.map +1 -1
- package/dist/pages/ModuleAnalyze/index.d.ts +1 -2
- package/dist/pages/ModuleAnalyze/index.mjs +69 -65
- package/dist/pages/ModuleAnalyze/index.mjs.map +1 -1
- package/dist/pages/ModuleAnalyze/utils/hooks.mjs +6 -5
- package/dist/pages/ModuleAnalyze/utils/hooks.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Charts/TreeMap.mjs","sources":["../../../src/components/Charts/TreeMap.tsx"],"sourcesContent":["import React, { useEffect, useState, memo, useMemo } from 'react';\nimport EChartsReactCore from 'echarts-for-react/esm/core';\nimport * as echarts from 'echarts/core';\nimport { TreemapChart } from 'echarts/charts';\nimport { TooltipComponent } from 'echarts/components';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { BUNDLE_ANALYZER_COLORS, COLOR_GROUPS } from './constants';\nimport { Checkbox, Card, Typography, Space, Tooltip, Tag } from 'antd';\nimport {\n VerticalAlignBottomOutlined,\n VerticalAlignTopOutlined,\n InfoCircleOutlined,\n} from '@ant-design/icons';\nimport { formatSize, useI18n } from 'src/utils';\nimport { SearchModal } from 'src/pages/BundleSize/components/search-modal';\nimport Styles from './treemap.module.scss';\n\n// TreeNode type should match the output of flattenTreemapData\nexport type TreeNode = {\n name: string;\n value?: number;\n children?: TreeNode[];\n path?: string;\n sourceSize?: number;\n bundledSize?: number;\n gzipSize?: number;\n};\n\ninterface TreeMapProps {\n treeData: TreeNode[];\n valueKey?: 'sourceSize' | 'bundledSize'; // which value to show as area\n style?: React.CSSProperties;\n onChartClick?: (params: any) => void;\n}\n\n// Simple hash function for string (djb2)\nfunction hashString(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash << 5) + hash + str.charCodeAt(i); /* hash * 33 + c */\n }\n return hash >>> 0; // Ensure unsigned\n}\n\nfunction getLevelOption() {\n return [\n {\n itemStyle: {\n color: 'white',\n borderColor: '#eee',\n borderWidth: 5,\n gapWidth: 5,\n },\n emphasis: {\n itemStyle: {\n borderColor: '#a29f9f',\n },\n },\n },\n {\n colorSaturation: [0.25, 0.5],\n itemStyle: {\n borderWidth: 5,\n gapWidth: 5,\n borderColorSaturation: 0.5,\n borderColor: '#eee',\n },\n },\n ];\n}\n\nconst TreeMapInner: React.FC<TreeMapProps & { forwardedRef?: React.Ref<any> }> =\n memo(\n ({\n treeData,\n valueKey = 'sourceSize',\n style,\n onChartClick,\n forwardedRef,\n }) => {\n const [option, setOption] = useState<any>(null);\n const chartRef = React.useRef<any>(null);\n\n // Expose chartRef to parent if forwardedRef is provided\n useEffect(() => {\n if (forwardedRef && chartRef.current) {\n if (typeof forwardedRef === 'function') {\n forwardedRef(chartRef.current);\n } else {\n (forwardedRef as React.MutableRefObject<any>).current =\n chartRef.current;\n }\n }\n }, [forwardedRef, chartRef.current]);\n\n // Register ECharts components\n useEffect(() => {\n echarts.use([TreemapChart, TooltipComponent, CanvasRenderer]);\n }, []);\n\n useEffect(() => {\n if (!treeData) return;\n // Helper to recursively add value field for ECharts\n function convert(\n node: TreeNode,\n colorGroup: keyof typeof BUNDLE_ANALYZER_COLORS,\n level = 0,\n ): any {\n const groupColors = BUNDLE_ANALYZER_COLORS[colorGroup];\n const children = node.children?.map((c, _i) =>\n convert(c, colorGroup, level + 1),\n );\n\n return {\n id: node.path ? hashString(node.path) : undefined,\n name: node.name,\n value: node[valueKey] || node.value || node['sourceSize'] || 0,\n path: node.path,\n sourceSize: node.sourceSize ?? node.value,\n bundledSize: node.bundledSize,\n gzipSize: node.gzipSize,\n children: children && children.length > 0 ? children : undefined,\n itemStyle: {\n borderWidth: 2,\n gapWidth: 2,\n borderColorSaturation: 0.2,\n colorSaturation: 0.2,\n color: groupColors[level % groupColors.length],\n borderColor: groupColors[level % groupColors.length],\n },\n level,\n };\n }\n const data = treeData.map((item, index) => {\n const group = COLOR_GROUPS[index % COLOR_GROUPS.length];\n return convert(item, group, 0);\n });\n\n setOption({\n title: {\n text: 'Bundle Tree Map',\n left: 'center',\n },\n tooltip: {\n position: 'top',\n formatter: function (info: any) {\n var treePathInfo = info.treePathInfo;\n var treePath = [];\n for (var i = 1; i < treePathInfo.length; i++) {\n treePath.push(treePathInfo[i].name);\n }\n // Get extra info from node data\n var node = info.data || {};\n var path = node.path || treePath.join('/');\n var sourceSize = node.sourceSize;\n var bundledSize = node.bundledSize;\n var gzipSize = node.gzipSize;\n var level = node.level;\n\n function makeRow(\n label: string,\n value: string,\n valueColor?: string,\n ) {\n return (\n `<div class=\"${Styles['tooltip-row']}\">` +\n `<span class=\"${Styles['tooltip-label']}\">${label}</span>` +\n `<span${valueColor ? ` style=\"color: ${valueColor}\"` : ''}>${value}</span>` +\n '</div>'\n );\n }\n return [\n `<div class=\"${Styles['tooltip-path']}\">` +\n echarts.format.encodeHTML(path) +\n '</div>',\n makeRow(\n level === 0 ? 'Asset' : 'Source',\n sourceSize !== undefined ? formatSize(sourceSize) : '-',\n ),\n !bundledSize\n ? ''\n : makeRow('Bundled', formatSize(bundledSize), '#1890ff'),\n !gzipSize\n ? ''\n : makeRow('Gzipped', formatSize(gzipSize), '#52c41a'),\n ].join('');\n },\n },\n series: [\n {\n name: 'Bundle Tree Map',\n id: 'bundle-treemap',\n type: 'treemap',\n visibleMin: 300,\n left: 10,\n right: 10,\n top: 10,\n bottom: 10,\n label: {\n show: true,\n formatter: '{b}',\n color: '#000',\n },\n upperLabel: {\n show: true,\n height: 30,\n },\n\n levels: getLevelOption(),\n data: data,\n },\n ],\n });\n }, [treeData, valueKey]);\n\n return option ? (\n <div>\n <EChartsReactCore\n ref={chartRef}\n option={option}\n echarts={echarts}\n onEvents={onChartClick ? { click: onChartClick } : undefined}\n style={{\n width: '100%',\n minHeight: '500px',\n maxHeight: '1000px',\n border: '5px solid white',\n borderRadius: '10px',\n ...style,\n }}\n className={Styles['chart-container']}\n />\n </div>\n ) : null;\n },\n );\n\nexport const TreeMap = React.forwardRef<any, TreeMapProps>((props, ref) => (\n <TreeMapInner {...props} forwardedRef={ref} />\n));\n\nexport const AssetTreemapWithFilter: React.FC<{\n treeData: TreeNode[];\n onChartClick?: (params: any) => void;\n bundledSize?: boolean;\n}> = ({ treeData, onChartClick, bundledSize = false }) => {\n const assetNames = useMemo(\n () => treeData.map((item) => item.name),\n [treeData],\n );\n const [checkedAssets, setCheckedAssets] = useState<string[]>(assetNames);\n const [collapsed, setCollapsed] = useState(false);\n const [searchModalOpen, setSearchModalOpen] = useState(false);\n const chartRef = React.useRef<any>(null);\n const { t } = useI18n();\n\n const filteredTreeData = useMemo(\n () => treeData.filter((item) => checkedAssets.includes(item.name)),\n [treeData, checkedAssets],\n );\n\n // Handler for search modal click\n const handleModuleClick = (module: any) => {\n if (!module?.path) return;\n const nodeId = hashString(module.path);\n if (chartRef.current) {\n const echartsInstance = chartRef.current.getEchartsInstance();\n echartsInstance.dispatchAction({\n type: 'treemapZoomToNode',\n seriesId: 'bundle-treemap',\n targetNodeId: nodeId.toString(),\n });\n }\n setSearchModalOpen(false);\n };\n\n return (\n <div\n style={{ display: 'flex', flexDirection: 'column', gap: 16 }}\n className={Styles.treemap}\n >\n <Space direction=\"vertical\" style={{ width: '100%' }}>\n <Card\n title={\n <Space>\n <Typography.Text>{t('Output Assets List')}</Typography.Text>\n <SearchModal\n onModuleClick={handleModuleClick}\n open={searchModalOpen}\n setOpen={setSearchModalOpen}\n isIcon={true}\n />\n <Tooltip\n color={'white'}\n title={\n <span>\n ✨ In Rspack, TreeMap proportions are always based on\n Bundled Size by default.\n <br />\n ✨ In Webpack, TreeMap proportions are based on Bundled Size\n only when SourceMap is enabled.\n <br />✨ <b>Bundled Size</b>: The size of a module after\n bundling and minification.\n <br />✨ <b>Source Size</b>: The size of a module after\n compilation (e.g., TypeScript/JSX to JS), but before\n bundling and minification.\n <br />✨ <b>Gzipped Size</b>: The compressed file size that\n users actually download, as most web servers use gzip\n compression.\n <br />\n </span>\n }\n overlayInnerStyle={{ width: 620, color: 'black' }}\n >\n <InfoCircleOutlined\n style={{ color: '#1890ff', marginLeft: 8 }}\n />\n </Tooltip>\n <Tag color=\"blue\">\n TreeMap area based on{' '}\n {bundledSize ? 'Bundled Size' : 'Source Size'}\n </Tag>\n </Space>\n }\n extra={\n <span\n className={Styles['collapse-icon']}\n onClick={() => setCollapsed((c) => !c)}\n aria-label={collapsed ? t('Expand') : t('Collapse')}\n >\n {collapsed ? (\n <VerticalAlignBottomOutlined />\n ) : (\n <VerticalAlignTopOutlined />\n )}\n </span>\n }\n size=\"small\"\n className={`card-body ${collapsed ? 'collapsed' : ''}`}\n >\n <div className={`checkbox-container ${collapsed ? 'collapsed' : ''}`}>\n <Checkbox\n key=\"all-none-checkbox\"\n indeterminate={\n checkedAssets.length > 0 &&\n checkedAssets.length < assetNames.length\n }\n checked={checkedAssets.length === assetNames.length}\n onChange={(e) =>\n setCheckedAssets(e.target.checked ? assetNames : [])\n }\n className={Styles['all-none-checkbox']}\n >\n {'ALL / NONE'}\n </Checkbox>\n <Checkbox.Group\n key=\"asset-checkbox-group\"\n options={assetNames}\n value={checkedAssets}\n onChange={setCheckedAssets}\n className={`checkbox-container ${collapsed ? 'collapsed' : ''} ${Styles['asset-checkbox-group']}`}\n />\n </div>\n </Card>\n <div style={{ flex: 1 }}>\n <TreeMap\n ref={chartRef}\n treeData={filteredTreeData}\n valueKey={bundledSize ? 'bundledSize' : 'sourceSize'}\n onChartClick={onChartClick}\n />\n </div>\n </Space>\n </div>\n );\n};\n"],"names":["hashString","str","hash","i","getLevelOption","TreeMapInner","memo","treeData","valueKey","style","onChartClick","forwardedRef","option","setOption","useState","chartRef","React","useEffect","echarts","TreemapChart","TooltipComponent","CanvasRenderer","convert","node","colorGroup","level","groupColors","BUNDLE_ANALYZER_COLORS","children","c","_i","undefined","data","item","index","group","COLOR_GROUPS","info","treePathInfo","treePath","path","sourceSize","bundledSize","gzipSize","makeRow","label","value","valueColor","Styles","formatSize","EChartsReactCore","TreeMap","props","ref","AssetTreemapWithFilter","assetNames","useMemo","checkedAssets","setCheckedAssets","collapsed","setCollapsed","searchModalOpen","setSearchModalOpen","t","useI18n","filteredTreeData","handleModuleClick","module","nodeId","echartsInstance","Space","Card","Typography","SearchModal","Tooltip","InfoCircleOutlined","Tag","VerticalAlignBottomOutlined","VerticalAlignTopOutlined","Checkbox","e"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components/Charts/TreeMap.mjs","sources":["../../../src/components/Charts/TreeMap.tsx"],"sourcesContent":["import React, { useEffect, useState, memo, useMemo, useCallback } from 'react';\nimport EChartsReactCore from 'echarts-for-react/esm/core';\nimport * as echarts from 'echarts/core';\nimport { TreemapChart } from 'echarts/charts';\nimport { TooltipComponent } from 'echarts/components';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { Checkbox, Radio, Input } from 'antd';\nimport {\n LeftOutlined,\n RightOutlined,\n SearchOutlined,\n FullscreenOutlined,\n FullscreenExitOutlined,\n} from '@ant-design/icons';\nimport { formatSize } from 'src/utils';\nimport { SDK } from '@rsdoctor/types';\nimport { ServerAPIProvider } from 'src/components/Manifest';\nimport Styles from './treemap.module.scss';\nimport { TREE_COLORS } from './constants';\n\necharts.use([TreemapChart, TooltipComponent, CanvasRenderer]);\n\nexport type TreeNode = {\n name: string;\n value?: number;\n children?: TreeNode[];\n path?: string;\n sourceSize?: number;\n bundledSize?: number;\n gzipSize?: number;\n};\n\nexport type SizeType = 'stat' | 'parsed' | 'gzip' | 'value';\n\ninterface TreeMapProps {\n treeData: TreeNode[];\n sizeType: SizeType;\n style?: React.CSSProperties;\n onChartClick?: (params: any) => void;\n highlightNodeId?: number;\n centerNodeId?: number;\n rootPath?: string;\n}\n\nfunction hashString(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash << 5) + hash + str.charCodeAt(i);\n }\n return hash >>> 0;\n}\n\nfunction blendWithWhite(hex: string, ratio: number): string {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n\n const blendedR = Math.round(r * ratio + 255 * (1 - ratio));\n const blendedG = Math.round(g * ratio + 255 * (1 - ratio));\n const blendedB = Math.round(b * ratio + 255 * (1 - ratio));\n\n return `#${blendedR.toString(16).padStart(2, '0')}${blendedG.toString(16).padStart(2, '0')}${blendedB.toString(16).padStart(2, '0')}`;\n}\n\nfunction getLevelOption() {\n return [\n {\n itemStyle: {\n borderWidth: 0,\n gapWidth: 2,\n },\n },\n {\n itemStyle: {\n borderColorAlpha: [1, 0.3],\n borderWidth: 5,\n gapWidth: 1,\n },\n upperLabel: {\n show: true,\n color: '#555555',\n height: 30,\n },\n emphasis: {\n itemStyle: {\n borderColor: '#ccc',\n },\n },\n },\n ];\n}\n\nconst TreeMapInner: React.FC<TreeMapProps & { forwardedRef?: React.Ref<any> }> =\n memo(\n ({\n treeData,\n sizeType,\n style,\n onChartClick,\n forwardedRef,\n highlightNodeId,\n centerNodeId,\n rootPath,\n }) => {\n const [option, setOption] = useState<any>(null);\n const chartRef = React.useRef<any>(null);\n const chartDataRef = React.useRef<any[]>([]);\n\n useEffect(() => {\n if (forwardedRef && chartRef.current) {\n if (typeof forwardedRef === 'function') {\n forwardedRef(chartRef.current);\n } else {\n (forwardedRef as React.MutableRefObject<any>).current =\n chartRef.current;\n }\n }\n }, [forwardedRef, chartRef.current]);\n useEffect(() => {\n if (!treeData) return;\n function convert(\n node: TreeNode,\n index = 0,\n level = 0,\n parentColor?: string,\n siblingIndex = 0,\n siblingCount = 1,\n ): any {\n const baseColor =\n parentColor || TREE_COLORS[index % TREE_COLORS.length];\n\n const children = node.children?.map((c, childIndex) =>\n convert(\n c,\n index,\n level + 1,\n baseColor,\n childIndex,\n node.children?.length || 0,\n ),\n );\n\n let val = 0;\n if (sizeType === 'stat') val = node.sourceSize || 0;\n else if (sizeType === 'parsed') val = node.bundledSize || 0;\n else if (sizeType === 'gzip') val = node.gzipSize || 0;\n else if (sizeType === 'value') val = node.value || 0;\n\n if (!val && node.value) val = node.value;\n\n const nodeId = node.path\n ? hashString(node.path)\n : hashString(node.name || '');\n const isHighlighted = highlightNodeId === nodeId;\n\n const baseColorRatio =\n level === 0 ? 1 : Math.max(0.2, 1 - level * 0.2);\n const baseBorderRatio =\n level === 0 ? 1 : Math.max(0.3, 1 - level * 0.25);\n\n const siblingGradientRange = 0.15;\n const siblingRatio =\n siblingCount > 1\n ? 1 - (siblingIndex / (siblingCount - 1)) * siblingGradientRange\n : 1;\n\n const colorRatio = baseColorRatio * siblingRatio;\n const borderRatio = baseBorderRatio * siblingRatio;\n\n const nodeColor = isHighlighted\n ? '#fff5f5'\n : level === 0\n ? blendWithWhite(baseColor, 0.8)\n : blendWithWhite(baseColor, colorRatio);\n\n const nodeBorderColor = isHighlighted\n ? '#ff4d4f'\n : level === 0\n ? baseColor\n : blendWithWhite(baseColor, borderRatio);\n\n const result: any = {\n id: nodeId,\n name: node.name,\n value: val,\n path: node.path || node.name,\n sourceSize: node.sourceSize ?? (sizeType === 'stat' ? val : 0),\n bundledSize: node.bundledSize ?? (sizeType === 'parsed' ? val : 0),\n gzipSize: node.gzipSize ?? (sizeType === 'gzip' ? val : 0),\n itemStyle: {\n borderWidth: isHighlighted ? 4 : 1,\n color: nodeColor,\n borderColor: nodeBorderColor,\n ...(level === 0 && { gapWidth: 2 }),\n },\n };\n\n if (children && children.length > 0) {\n result.children = children;\n }\n\n if (isHighlighted) {\n result.emphasis = {\n itemStyle: {\n borderColor: '#ff4d4f',\n borderWidth: 4,\n color: '#fff5f5',\n },\n };\n }\n\n return result;\n }\n\n const data = treeData\n .map((item, index) =>\n convert(item, index, 0, undefined, index, treeData.length),\n )\n .filter(\n (item) =>\n item.value > 0 || (item.children && item.children.length > 0),\n );\n\n chartDataRef.current = data;\n\n setOption({\n color: TREE_COLORS,\n title: {\n text: 'Rsdoctor TreeMap',\n left: 'center',\n top: 10,\n textStyle: {\n fontSize: 16,\n fontWeight: 'bold',\n color: 'rgba(0, 0, 0, 0.8)',\n },\n },\n tooltip: {\n padding: 10,\n backgroundColor: '#fff',\n borderColor: '#eee',\n borderWidth: 1,\n textStyle: {\n color: 'rgba(0, 0, 0, 0.8)',\n },\n confine: true,\n extraCssText: 'max-width: 450px; word-wrap: break-word;',\n position: function (\n pos: any,\n _params: any,\n _dom: any,\n _rect: any,\n size: any,\n ) {\n var obj = { top: pos[1] + 10 };\n if (pos[0] < size.viewSize[0] / 2) {\n (obj as any).left = pos[0] + 10;\n } else {\n (obj as any).right = size.viewSize[0] - pos[0] + 10;\n }\n return obj;\n },\n formatter: function (info: any) {\n const node = info.data || {};\n const name = node.name;\n let path = node.path || name;\n\n if (rootPath && path) {\n const normalizedRoot = rootPath\n .replace(/\\\\/g, '/')\n .replace(/\\/$/, '');\n const normalizedPath = path.replace(/\\\\/g, '/');\n if (normalizedPath.startsWith(normalizedRoot + '/')) {\n path = normalizedPath.slice(normalizedRoot.length + 1);\n } else if (normalizedPath === normalizedRoot) {\n path = '';\n }\n }\n\n const sourceSize = node.sourceSize || node.value;\n const bundledSize = node.bundledSize;\n const gzipSize = node.gzipSize;\n\n function makeRow(label: string, value: string, color: string) {\n return `<div class=\"${Styles['tooltip-row']}\">\n <span class=\"${Styles['tooltip-label']}\" style=\"color: ${color};\">${label}</span>\n <span style=\"color: ${color};\">${value}</span>\n </div>`;\n }\n\n const rows = [];\n if (sourceSize !== undefined) {\n rows.push(\n makeRow('Stat size', formatSize(sourceSize), '#52c41a'),\n ); // Green\n }\n if (bundledSize !== undefined) {\n rows.push(\n makeRow('Parsed size', formatSize(bundledSize), '#fadb14'),\n ); // Yellow\n }\n if (gzipSize !== undefined) {\n rows.push(\n makeRow('Gzipped size', formatSize(gzipSize), '#1677ff'),\n ); // Blue\n }\n\n return `\n <div style=\"font-family: sans-serif; font-size: 12px; line-height: 1.5;\">\n <div style=\"margin-bottom: 6px; max-width: 400px; word-wrap: break-word; overflow-wrap: break-word; word-break: break-all; white-space: normal; color: rgba(0, 0, 0, 0.8);\">${echarts.format.encodeHTML(path)}</div>\n ${rows.join('')}\n </div>\n `;\n },\n },\n series: [\n {\n type: 'treemap',\n label: {\n show: true,\n formatter: '{b}',\n fontSize: 12,\n color: '#000',\n position: 'inside',\n fontWeight: 'normal',\n textBorderColor: '#fff',\n textBorderWidth: 2,\n padding: [4, 8, 4, 8],\n },\n upperLabel: {\n show: true,\n height: 30,\n color: '#000',\n fontSize: 12,\n fontWeight: 'normal',\n padding: [0, 0, 0, 4],\n },\n levels: getLevelOption(),\n data: data,\n breadcrumb: {\n show: true,\n left: 'center',\n top: 'bottom',\n height: 22,\n emptyItemWidth: 25,\n itemStyle: {\n color: '#999',\n borderColor: 'transparent',\n borderWidth: 0,\n borderRadius: 0,\n },\n emphasis: {\n itemStyle: {\n color: '#333',\n },\n },\n textStyle: {\n fontFamily: 'sans-serif',\n fontSize: 12,\n color: '#666',\n },\n },\n roam: true,\n nodeClick: false,\n zoomToNodeRatio: 0.5,\n animationDurationUpdate: 500,\n width: '100%',\n height: '100%',\n top: 40,\n bottom: 30,\n left: 0,\n right: 0,\n },\n ],\n });\n }, [treeData, sizeType, highlightNodeId, rootPath]);\n\n useEffect(() => {\n if (centerNodeId && chartRef.current && option) {\n const chartInstance = chartRef.current.getEchartsInstance();\n if (chartInstance) {\n const findNodeInfo = (\n data: any[],\n targetId: number,\n path: string[] = [],\n ): { name: string; path: string[] } | null => {\n for (const item of data) {\n const currentPath = [...path, item.name];\n if (item.id === targetId) {\n return { name: item.name, path: currentPath };\n }\n if (item.children) {\n const found = findNodeInfo(\n item.children,\n targetId,\n currentPath,\n );\n if (found) return found;\n }\n }\n return null;\n };\n\n setTimeout(() => {\n const nodeInfo = findNodeInfo(chartDataRef.current, centerNodeId);\n if (!nodeInfo) return;\n\n try {\n chartInstance.dispatchAction({\n type: 'highlight',\n seriesIndex: 0,\n name: nodeInfo.name,\n });\n } catch (e) {}\n\n const zoomStrategies: Array<() => void> = [\n () =>\n chartInstance.dispatchAction({\n type: 'treemapZoomToNode',\n seriesIndex: 0,\n targetNodeId: String(centerNodeId),\n }),\n () =>\n chartInstance.dispatchAction({\n type: 'treemapZoomToNode',\n seriesIndex: 0,\n name: nodeInfo.name,\n }),\n () =>\n chartInstance.dispatchAction({\n type: 'treemapZoomToNode',\n seriesIndex: 0,\n name: nodeInfo.path.join('/'),\n }),\n () =>\n nodeInfo.path.length > 0 &&\n chartInstance.dispatchAction({\n type: 'treemapZoomToNode',\n seriesIndex: 0,\n name: nodeInfo.path[nodeInfo.path.length - 1],\n }),\n ];\n\n for (const strategy of zoomStrategies) {\n try {\n strategy();\n return;\n } catch (e) {\n console.error(\n 'Failed to zoom to node with id:',\n centerNodeId,\n e,\n );\n }\n }\n\n console.warn('Failed to zoom to node with id:', centerNodeId);\n }, 200);\n }\n }\n }, [centerNodeId, option]);\n\n return option ? (\n <div className={Styles['chart-container']} style={style}>\n <EChartsReactCore\n ref={chartRef}\n option={option}\n echarts={echarts}\n onEvents={{\n click: (params: any) => {\n if (chartRef.current) {\n const instance = chartRef.current.getEchartsInstance();\n if (instance && params?.data?.id) {\n instance.dispatchAction({\n type: 'treemapZoomToNode',\n seriesIndex: 0,\n targetNodeId: String(params.data.id),\n });\n }\n }\n onChartClick?.(params);\n },\n }}\n style={{\n width: '100%',\n height: '100%',\n }}\n />\n </div>\n ) : null;\n },\n );\n\nexport const TreeMap = React.forwardRef<any, TreeMapProps>((props, ref) => (\n <TreeMapInner {...props} forwardedRef={ref} />\n));\n\nexport const AssetTreemapWithFilter: React.FC<{\n treeData: TreeNode[];\n onChartClick?: (params: any) => void;\n bundledSize?: boolean;\n}> = ({ treeData, onChartClick, bundledSize = true }) => {\n return (\n <ServerAPIProvider api={SDK.ServerAPI.API.GetProjectInfo}>\n {(projectInfo) => {\n return (\n <AssetTreemapWithFilterInner\n treeData={treeData}\n onChartClick={onChartClick}\n bundledSize={bundledSize}\n rootPath={projectInfo.root}\n />\n );\n }}\n </ServerAPIProvider>\n );\n};\n\nconst AssetTreemapWithFilterInner: React.FC<{\n treeData: TreeNode[];\n onChartClick?: (params: any) => void;\n bundledSize?: boolean;\n rootPath: string;\n}> = ({ treeData, onChartClick, bundledSize = true, rootPath }) => {\n const assetNames = useMemo(\n () => treeData.map((item) => item.name),\n [treeData],\n );\n\n const [checkedAssets, setCheckedAssets] = useState<string[]>(assetNames);\n const [collapsed, setCollapsed] = useState(false);\n const [sizeType, setSizeType] = useState<SizeType>(\n bundledSize ? 'parsed' : 'stat',\n );\n const [searchQuery, setSearchQuery] = useState('');\n const [isFullscreen, setIsFullscreen] = useState(false);\n const [highlightNodeId, setHighlightNodeId] = useState<number | undefined>();\n const [centerNodeId, setCenterNodeId] = useState<number | undefined>();\n\n const chartRef = React.useRef<any>(null);\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n const enterFullscreen = useCallback(() => {\n if (containerRef.current) {\n containerRef.current\n .requestFullscreen()\n .then(() => setIsFullscreen(true))\n .catch((err) => console.error('Failed to enter fullscreen:', err));\n }\n }, []);\n\n const exitFullscreen = useCallback(() => {\n document\n .exitFullscreen()\n .then(() => setIsFullscreen(false))\n .catch((err) => console.error('Failed to exit fullscreen:', err));\n }, []);\n\n const toggleFullscreen = useCallback(() => {\n if (isFullscreen) {\n exitFullscreen();\n } else {\n enterFullscreen();\n }\n }, [isFullscreen, enterFullscreen, exitFullscreen]);\n\n useEffect(() => {\n const handleFullscreenChange = () => {\n setIsFullscreen(!!document.fullscreenElement);\n };\n document.addEventListener('fullscreenchange', handleFullscreenChange);\n return () => {\n document.removeEventListener('fullscreenchange', handleFullscreenChange);\n };\n }, []);\n\n const searchResults = useMemo(() => {\n if (!searchQuery.trim()) return [];\n\n const regex = new RegExp(searchQuery, 'i');\n const results: Array<{ path: string; nodeId: number }> = [];\n\n const collectMatchingPaths = (node: TreeNode) => {\n if (node.path && regex.test(node.path)) {\n const nodeId = hashString(node.path);\n results.push({ path: node.path, nodeId });\n }\n if (node.children) {\n node.children.forEach(collectMatchingPaths);\n }\n };\n\n treeData.forEach(collectMatchingPaths);\n return results;\n }, [treeData, searchQuery]);\n\n const filteredTreeData = useMemo(() => {\n let filtered = treeData.filter((item) => checkedAssets.includes(item.name));\n\n return filtered;\n }, [treeData, checkedAssets]);\n\n const handleSearchResultClick = useCallback((nodeId: number) => {\n setHighlightNodeId(nodeId);\n setCenterNodeId(nodeId);\n }, []);\n\n const removeRootPath = useCallback(\n (filepath: string): string => {\n if (!rootPath || !filepath) return filepath;\n const normalizedRoot = rootPath.replace(/\\\\/g, '/').replace(/\\/$/, '');\n const normalizedPath = filepath.replace(/\\\\/g, '/');\n\n if (normalizedPath.startsWith(normalizedRoot + '/')) {\n return normalizedPath.slice(normalizedRoot.length + 1);\n } else if (normalizedPath === normalizedRoot) {\n return '';\n }\n return filepath;\n },\n [rootPath],\n );\n\n const getSize = useCallback((node: TreeNode, type?: SizeType) => {\n if (type === 'stat') return node.sourceSize || 0;\n if (type === 'parsed') return node.bundledSize || 0;\n if (type === 'gzip') return node.gzipSize || 0;\n if (type === 'value') return node.value || 0;\n if (node.value) return node.value;\n return 0;\n }, []);\n\n const calculateNodeTotalSize = useCallback(\n (node: TreeNode, type: SizeType): number => {\n let size = getSize(node, type);\n\n if (node.children && node.children.length > 0) {\n const childrenSize = node.children.reduce(\n (sum, child) => sum + calculateNodeTotalSize(child, type),\n 0,\n );\n if (size === 0 || (!node.path && childrenSize > 0)) {\n size = childrenSize;\n }\n }\n\n return size;\n },\n [getSize],\n );\n\n const getChunkSize = useCallback(\n (name: string, type?: SizeType) => {\n const node = treeData.find((n) => n.name === name);\n if (!node) return 0;\n const sizeTypeToUse = type || sizeType;\n return calculateNodeTotalSize(node, sizeTypeToUse);\n },\n [treeData, sizeType, calculateNodeTotalSize],\n );\n\n return (\n <div className={Styles.treemap} ref={containerRef}>\n <button\n className={Styles['fullscreen-button']}\n onClick={toggleFullscreen}\n title={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'}\n aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'}\n >\n {isFullscreen ? <FullscreenExitOutlined /> : <FullscreenOutlined />}\n </button>\n\n <div className={`${Styles.sidebar} ${collapsed ? Styles.collapsed : ''}`}>\n <div\n className={`${Styles['sidebar-toggle']} ${collapsed ? Styles.collapsed : ''}`}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <RightOutlined /> : <LeftOutlined />}\n </div>\n <div className={Styles['sidebar-content']}>\n <div>\n <h4>Treemap sizes</h4>\n <Radio.Group\n value={sizeType}\n onChange={(e) => setSizeType(e.target.value)}\n size=\"small\"\n buttonStyle=\"solid\"\n >\n <Radio.Button value=\"stat\">Stat</Radio.Button>\n <Radio.Button value=\"parsed\">Parsed</Radio.Button>\n <Radio.Button value=\"gzip\">Gzipped</Radio.Button>\n </Radio.Group>\n </div>\n\n <div>\n <h4>Search modules</h4>\n <Input\n placeholder=\"Enter regexp\"\n value={searchQuery}\n onChange={(e) => {\n setSearchQuery(e.target.value);\n setHighlightNodeId(undefined);\n setCenterNodeId(undefined);\n }}\n suffix={<SearchOutlined style={{ color: '#ccc' }} />}\n allowClear\n size=\"small\"\n />\n {searchQuery.trim() && searchResults.length > 0 && (\n <div className={Styles['search-results']}>\n <div className={Styles['search-results-header']}>\n Found {searchResults.length} file\n {searchResults.length > 1 ? 's' : ''}\n </div>\n <div className={Styles['search-results-list']}>\n {searchResults.map((result, index) => {\n const displayPath = removeRootPath(result.path);\n return (\n <div\n key={index}\n className={Styles['search-result-item']}\n onClick={() => handleSearchResultClick(result.nodeId)}\n title={result.path}\n >\n {displayPath || result.path}\n </div>\n );\n })}\n </div>\n </div>\n )}\n {searchQuery.trim() && searchResults.length === 0 && (\n <div className={Styles['search-results-empty']}>\n No files found matching \"{searchQuery}\"\n </div>\n )}\n </div>\n\n <div>\n <h4>Show chunks</h4>\n <Checkbox\n indeterminate={\n checkedAssets.length > 0 &&\n checkedAssets.length < assetNames.length\n }\n checked={checkedAssets.length === assetNames.length}\n onChange={(e) =>\n setCheckedAssets(e.target.checked ? assetNames : [])\n }\n className={Styles['all-none-checkbox']}\n >\n All\n </Checkbox>\n <div className={Styles['chunk-list']}>\n {assetNames.map((name) => (\n <div key={name} className={Styles['chunk-item']}>\n <Checkbox\n checked={checkedAssets.includes(name)}\n onChange={(e) => {\n if (e.target.checked) {\n setCheckedAssets([...checkedAssets, name]);\n } else {\n setCheckedAssets(\n checkedAssets.filter((a) => a !== name),\n );\n }\n }}\n >\n <span title={name}>{name}</span>\n </Checkbox>\n <span className={Styles['size-tag']}>\n {formatSize(getChunkSize(name, 'value'))}\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n\n <div className={Styles['chart-wrapper']}>\n <TreeMap\n ref={chartRef}\n treeData={filteredTreeData}\n sizeType={sizeType}\n onChartClick={onChartClick}\n highlightNodeId={highlightNodeId}\n centerNodeId={centerNodeId}\n rootPath={rootPath}\n style={{ width: '100%', height: '100%' }}\n />\n </div>\n </div>\n );\n};\n"],"names":["echarts","TreemapChart","TooltipComponent","CanvasRenderer","hashString","str","hash","i","blendWithWhite","hex","ratio","r","parseInt","g","b","blendedR","Math","blendedG","blendedB","getLevelOption","TreeMapInner","memo","treeData","sizeType","style","onChartClick","forwardedRef","highlightNodeId","centerNodeId","rootPath","option","setOption","useState","chartRef","React","chartDataRef","useEffect","convert","node","index","level","parentColor","siblingIndex","siblingCount","baseColor","TREE_COLORS","children","c","childIndex","val","nodeId","isHighlighted","baseColorRatio","baseBorderRatio","siblingGradientRange","siblingRatio","colorRatio","borderRatio","nodeColor","nodeBorderColor","result","data","item","undefined","pos","_params","_dom","_rect","size","obj","info","name","path","normalizedRoot","normalizedPath","sourceSize","bundledSize","gzipSize","makeRow","label","value","color","Styles","rows","formatSize","chartInstance","findNodeInfo","targetId","currentPath","found","setTimeout","nodeInfo","e","zoomStrategies","String","strategy","console","EChartsReactCore","params","instance","TreeMap","props","ref","AssetTreemapWithFilter","ServerAPIProvider","SDK","projectInfo","AssetTreemapWithFilterInner","assetNames","useMemo","checkedAssets","setCheckedAssets","collapsed","setCollapsed","setSizeType","searchQuery","setSearchQuery","isFullscreen","setIsFullscreen","setHighlightNodeId","setCenterNodeId","containerRef","enterFullscreen","useCallback","err","exitFullscreen","document","toggleFullscreen","handleFullscreenChange","searchResults","regex","RegExp","results","collectMatchingPaths","filteredTreeData","filtered","handleSearchResultClick","removeRootPath","filepath","getSize","type","calculateNodeTotalSize","childrenSize","sum","child","getChunkSize","n","sizeTypeToUse","FullscreenExitOutlined","FullscreenOutlined","RightOutlined","LeftOutlined","Radio","Input","SearchOutlined","displayPath","Checkbox","a"],"mappings":"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"}
|
|
@@ -7,13 +7,4 @@ export declare enum ChartTypes {
|
|
|
7
7
|
Loader = 4,
|
|
8
8
|
Normal = 5
|
|
9
9
|
}
|
|
10
|
-
export declare const
|
|
11
|
-
readonly green: readonly [string, string, string, string, string, string, string];
|
|
12
|
-
readonly blue: readonly [string, string, string, string, string, string, string];
|
|
13
|
-
readonly purple: readonly [string, string, string, string, string, string, string];
|
|
14
|
-
readonly yellow: readonly [string, string, string, string, string, string, string];
|
|
15
|
-
readonly grey: readonly [string, string, string, string, string, string, string];
|
|
16
|
-
};
|
|
17
|
-
type ColorGroup = keyof typeof BUNDLE_ANALYZER_COLORS;
|
|
18
|
-
export declare const COLOR_GROUPS: ColorGroup[];
|
|
19
|
-
export {};
|
|
10
|
+
export declare const TREE_COLORS: string[];
|
|
@@ -36,66 +36,19 @@ var constants_ChartTypes = /*#__PURE__*/ function(ChartTypes) {
|
|
|
36
36
|
ChartTypes[ChartTypes["Normal"] = 5] = "Normal";
|
|
37
37
|
return ChartTypes;
|
|
38
38
|
}({});
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
hexToRgba('#5eb3fa', 0.6),
|
|
52
|
-
hexToRgba('#8ccafc', 0.8),
|
|
53
|
-
hexToRgba('#b3d8f8', 1),
|
|
54
|
-
hexToRgba('#cde6fa', 1),
|
|
55
|
-
hexToRgba('#e0f2fd', 1),
|
|
56
|
-
hexToRgba('#c8e0ef', 1)
|
|
57
|
-
],
|
|
58
|
-
purple: [
|
|
59
|
-
hexToRgba('#a04ddb', 0.6),
|
|
60
|
-
hexToRgba('#b26ef0', 0.6),
|
|
61
|
-
hexToRgba('#c49ff5', 0.8),
|
|
62
|
-
hexToRgba('#d1b3e6', 1),
|
|
63
|
-
hexToRgba('#e0c8f2', 1),
|
|
64
|
-
hexToRgba('#f0e6fa', 1),
|
|
65
|
-
hexToRgba('#d6c8e6', 1)
|
|
66
|
-
],
|
|
67
|
-
yellow: [
|
|
68
|
-
hexToRgba('#ffe066', 0.6),
|
|
69
|
-
hexToRgba('#ffec80', 0.6),
|
|
70
|
-
hexToRgba('#fff599', 0.8),
|
|
71
|
-
hexToRgba('#fff9c4', 1),
|
|
72
|
-
hexToRgba('#fffbe0', 1),
|
|
73
|
-
hexToRgba('#fffde7', 1),
|
|
74
|
-
hexToRgba('#f5f2c8', 1)
|
|
75
|
-
],
|
|
76
|
-
grey: [
|
|
77
|
-
hexToRgba('#7a7a7a', 0.7),
|
|
78
|
-
hexToRgba('#969696', 0.7),
|
|
79
|
-
hexToRgba('#b0b0b0', 0.8),
|
|
80
|
-
hexToRgba('#c8c8c8', 1),
|
|
81
|
-
hexToRgba('#dcdcdc', 1),
|
|
82
|
-
hexToRgba('#ededed', 1),
|
|
83
|
-
hexToRgba('#f7f7f7', 1)
|
|
84
|
-
]
|
|
85
|
-
};
|
|
86
|
-
function hexToRgba(hex, alpha = 1) {
|
|
87
|
-
const r = parseInt(hex.slice(1, 3), 16);
|
|
88
|
-
const g = parseInt(hex.slice(3, 5), 16);
|
|
89
|
-
const b = parseInt(hex.slice(5, 7), 16);
|
|
90
|
-
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
|
|
91
|
-
}
|
|
92
|
-
const COLOR_GROUPS = [
|
|
93
|
-
'blue',
|
|
94
|
-
'purple',
|
|
95
|
-
'yellow',
|
|
96
|
-
'grey',
|
|
97
|
-
'green'
|
|
39
|
+
const TREE_COLORS = [
|
|
40
|
+
'#6F3FE1',
|
|
41
|
+
'#5781FD',
|
|
42
|
+
'#4DB1CB',
|
|
43
|
+
'#3EBD7C',
|
|
44
|
+
'#F7A925',
|
|
45
|
+
'#bda29a',
|
|
46
|
+
'#ca8622',
|
|
47
|
+
'#749f83',
|
|
48
|
+
'#6e7074',
|
|
49
|
+
'#546570',
|
|
50
|
+
'#c4ccd3'
|
|
98
51
|
];
|
|
99
|
-
export {
|
|
52
|
+
export { constants_ChartTypes as ChartTypes, PALETTE_COLORS, TREE_COLORS };
|
|
100
53
|
|
|
101
54
|
//# sourceMappingURL=constants.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Charts/constants.mjs","sources":["../../../src/components/Charts/constants.ts"],"sourcesContent":["export const PALETTE_COLORS = [\n '#F2793D',\n '#F28B24',\n '#F2A200',\n '#F5CC00',\n '#F5E000',\n '#A3D900',\n '#66CC00',\n '#0AC419',\n '#0AC496',\n '#0AC7D1',\n '#00A8E0',\n '#1471F5',\n '#4060FF',\n '#7559FF',\n '#884DFF',\n '#A526FF',\n '#BA39E5',\n '#C700D9',\n '#D900B5',\n '#E50099',\n '#E52E6B',\n '#F24957',\n '#30B2F2',\n '#00BF70',\n '#5959FF',\n '#9F40FF',\n '#528BFF',\n];\n\nexport enum ChartTypes {\n Bootstrap,\n Compile,\n Done,\n Minify,\n Loader,\n Normal,\n}\n\nexport const
|
|
1
|
+
{"version":3,"file":"components/Charts/constants.mjs","sources":["../../../src/components/Charts/constants.ts"],"sourcesContent":["export const PALETTE_COLORS = [\n '#F2793D',\n '#F28B24',\n '#F2A200',\n '#F5CC00',\n '#F5E000',\n '#A3D900',\n '#66CC00',\n '#0AC419',\n '#0AC496',\n '#0AC7D1',\n '#00A8E0',\n '#1471F5',\n '#4060FF',\n '#7559FF',\n '#884DFF',\n '#A526FF',\n '#BA39E5',\n '#C700D9',\n '#D900B5',\n '#E50099',\n '#E52E6B',\n '#F24957',\n '#30B2F2',\n '#00BF70',\n '#5959FF',\n '#9F40FF',\n '#528BFF',\n];\n\nexport enum ChartTypes {\n Bootstrap,\n Compile,\n Done,\n Minify,\n Loader,\n Normal,\n}\n\nexport const TREE_COLORS = [\n '#6F3FE1',\n '#5781FD',\n '#4DB1CB',\n '#3EBD7C',\n '#F7A925',\n '#bda29a',\n '#ca8622',\n '#749f83',\n '#6e7074',\n '#546570',\n '#c4ccd3',\n];\n"],"names":["PALETTE_COLORS","ChartTypes","TREE_COLORS"],"mappings":"AAAO,MAAMA,iBAAiB;IAC5B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAEM,IAAKC,uBAAUA,WAAAA,GAAAA,SAAVA,UAAU;;;;;;;WAAVA;;AASL,MAAMC,cAAc;IACzB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD"}
|
|
@@ -1,14 +1,42 @@
|
|
|
1
1
|
import "./treemap_module.css";
|
|
2
2
|
const treemap_module = {
|
|
3
3
|
treemap: "treemap-DOrYiA",
|
|
4
|
+
sidebar: "sidebar-Pww0Wm",
|
|
5
|
+
collapsed: "collapsed-hxz3Bf",
|
|
6
|
+
"sidebar-content": "sidebar-content-WuURH8",
|
|
7
|
+
sidebarContent: "sidebar-content-WuURH8",
|
|
8
|
+
"sidebar-toggle": "sidebar-toggle-NaGZQP",
|
|
9
|
+
sidebarToggle: "sidebar-toggle-NaGZQP",
|
|
10
|
+
"chart-wrapper": "chart-wrapper-w7fJr6",
|
|
11
|
+
chartWrapper: "chart-wrapper-w7fJr6",
|
|
12
|
+
"chart-container": "chart-container-gPlZC7",
|
|
13
|
+
chartContainer: "chart-container-gPlZC7",
|
|
14
|
+
"fullscreen-button": "fullscreen-button-jVdrxO",
|
|
15
|
+
fullscreenButton: "fullscreen-button-jVdrxO",
|
|
16
|
+
"chunk-list": "chunk-list-TUqr7U",
|
|
17
|
+
chunkList: "chunk-list-TUqr7U",
|
|
18
|
+
"chunk-item": "chunk-item-dQ0XI7",
|
|
19
|
+
chunkItem: "chunk-item-dQ0XI7",
|
|
20
|
+
"size-tag": "size-tag-EM4AKE",
|
|
21
|
+
sizeTag: "size-tag-EM4AKE",
|
|
22
|
+
"search-box": "search-box-RXJSAo",
|
|
23
|
+
searchBox: "search-box-RXJSAo",
|
|
4
24
|
"tooltip-row": "tooltip-row-sZbl0R",
|
|
5
25
|
tooltipRow: "tooltip-row-sZbl0R",
|
|
6
26
|
"tooltip-label": "tooltip-label-INs_JK",
|
|
7
27
|
tooltipLabel: "tooltip-label-INs_JK",
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
28
|
+
"search-results": "search-results-emVgaj",
|
|
29
|
+
searchResults: "search-results-emVgaj",
|
|
30
|
+
"search-results-header": "search-results-header-oyQ0jw",
|
|
31
|
+
searchResultsHeader: "search-results-header-oyQ0jw",
|
|
32
|
+
"search-results-list": "search-results-list-FSMG6d",
|
|
33
|
+
searchResultsList: "search-results-list-FSMG6d",
|
|
34
|
+
"search-result-item": "search-result-item-IZR6nt",
|
|
35
|
+
searchResultItem: "search-result-item-IZR6nt",
|
|
36
|
+
"search-results-empty": "search-results-empty-_khCd5",
|
|
37
|
+
searchResultsEmpty: "search-results-empty-_khCd5",
|
|
38
|
+
"all-none-checkbox": "all-none-checkbox-kw3p6X",
|
|
39
|
+
allNoneCheckbox: "all-none-checkbox-kw3p6X"
|
|
12
40
|
};
|
|
13
41
|
export { treemap_module as default };
|
|
14
42
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Charts/treemap.module.mjs","sources":["../../../src/components/Charts/treemap.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./treemap_module.css\"\nexport default {\"treemap\":\"treemap-DOrYiA\",\"tooltip-row\":\"tooltip-row-sZbl0R\",\"tooltipRow\":\"tooltip-row-sZbl0R\",\"tooltip-label\":\"tooltip-label-INs_JK\",\"tooltipLabel\":\"tooltip-label-INs_JK\",\"
|
|
1
|
+
{"version":3,"file":"components/Charts/treemap.module.mjs","sources":["../../../src/components/Charts/treemap.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./treemap_module.css\"\nexport default {\"treemap\":\"treemap-DOrYiA\",\"sidebar\":\"sidebar-Pww0Wm\",\"collapsed\":\"collapsed-hxz3Bf\",\"sidebar-content\":\"sidebar-content-WuURH8\",\"sidebarContent\":\"sidebar-content-WuURH8\",\"sidebar-toggle\":\"sidebar-toggle-NaGZQP\",\"sidebarToggle\":\"sidebar-toggle-NaGZQP\",\"chart-wrapper\":\"chart-wrapper-w7fJr6\",\"chartWrapper\":\"chart-wrapper-w7fJr6\",\"chart-container\":\"chart-container-gPlZC7\",\"chartContainer\":\"chart-container-gPlZC7\",\"fullscreen-button\":\"fullscreen-button-jVdrxO\",\"fullscreenButton\":\"fullscreen-button-jVdrxO\",\"chunk-list\":\"chunk-list-TUqr7U\",\"chunkList\":\"chunk-list-TUqr7U\",\"chunk-item\":\"chunk-item-dQ0XI7\",\"chunkItem\":\"chunk-item-dQ0XI7\",\"size-tag\":\"size-tag-EM4AKE\",\"sizeTag\":\"size-tag-EM4AKE\",\"search-box\":\"search-box-RXJSAo\",\"searchBox\":\"search-box-RXJSAo\",\"tooltip-row\":\"tooltip-row-sZbl0R\",\"tooltipRow\":\"tooltip-row-sZbl0R\",\"tooltip-label\":\"tooltip-label-INs_JK\",\"tooltipLabel\":\"tooltip-label-INs_JK\",\"search-results\":\"search-results-emVgaj\",\"searchResults\":\"search-results-emVgaj\",\"search-results-header\":\"search-results-header-oyQ0jw\",\"searchResultsHeader\":\"search-results-header-oyQ0jw\",\"search-results-list\":\"search-results-list-FSMG6d\",\"searchResultsList\":\"search-results-list-FSMG6d\",\"search-result-item\":\"search-result-item-IZR6nt\",\"searchResultItem\":\"search-result-item-IZR6nt\",\"search-results-empty\":\"search-results-empty-_khCd5\",\"searchResultsEmpty\":\"search-results-empty-_khCd5\",\"all-none-checkbox\":\"all-none-checkbox-kw3p6X\",\"allNoneCheckbox\":\"all-none-checkbox-kw3p6X\"};"],"names":[],"mappings":";AAEA,uBAAe;IAAC,SAAU;IAAiB,SAAU;IAAiB,WAAY;IAAmB,mBAAkB;IAAyB,gBAAiB;IAAyB,kBAAiB;IAAwB,eAAgB;IAAwB,iBAAgB;IAAuB,cAAe;IAAuB,mBAAkB;IAAyB,gBAAiB;IAAyB,qBAAoB;IAA2B,kBAAmB;IAA2B,cAAa;IAAoB,WAAY;IAAoB,cAAa;IAAoB,WAAY;IAAoB,YAAW;IAAkB,SAAU;IAAkB,cAAa;IAAoB,WAAY;IAAoB,eAAc;IAAqB,YAAa;IAAqB,iBAAgB;IAAuB,cAAe;IAAuB,kBAAiB;IAAwB,eAAgB;IAAwB,yBAAwB;IAA+B,qBAAsB;IAA+B,uBAAsB;IAA6B,mBAAoB;IAA6B,sBAAqB;IAA4B,kBAAmB;IAA4B,wBAAuB;IAA8B,oBAAqB;IAA8B,qBAAoB;IAA2B,iBAAkB;AAA0B"}
|
|
@@ -1,82 +1,236 @@
|
|
|
1
1
|
.treemap-DOrYiA {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
background-color: #fff;
|
|
3
|
+
border: 2px solid #e8e8e8;
|
|
4
|
+
flex-direction: row;
|
|
5
|
+
height: calc(100vh - 100px);
|
|
4
6
|
display: flex;
|
|
7
|
+
position: relative;
|
|
8
|
+
overflow: hidden;
|
|
5
9
|
}
|
|
6
10
|
|
|
7
11
|
.treemap-DOrYiA .ant-checkbox-wrapper {
|
|
12
|
+
-webkit-user-select: none;
|
|
13
|
+
user-select: none;
|
|
8
14
|
font-size: 12px;
|
|
9
|
-
font-weight:
|
|
15
|
+
font-weight: 400;
|
|
10
16
|
}
|
|
11
17
|
|
|
12
|
-
.treemap-DOrYiA .
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
:-webkit-any(.treemap-DOrYiA:-webkit-full-screen, .treemap-DOrYiA:-webkit-full-screen, .treemap-DOrYiA:fullscreen, .treemap-DOrYiA:fullscreen) {
|
|
19
|
+
border: none;
|
|
20
|
+
width: 100vw;
|
|
21
|
+
height: 100vh;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:-moz-any(.treemap-DOrYiA:fullscreen, .treemap-DOrYiA:fullscreen, .treemap-DOrYiA:-moz-full-screen, .treemap-DOrYiA:fullscreen) {
|
|
25
|
+
border: none;
|
|
26
|
+
width: 100vw;
|
|
27
|
+
height: 100vh;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
:is(.treemap-DOrYiA:fullscreen, .treemap-DOrYiA:fullscreen, .treemap-DOrYiA:fullscreen, .treemap-DOrYiA:-ms-fullscreen) {
|
|
31
|
+
border: none;
|
|
32
|
+
width: 100vw;
|
|
33
|
+
height: 100vh;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
:is(.treemap-DOrYiA:fullscreen, .treemap-DOrYiA:fullscreen, .treemap-DOrYiA:fullscreen, .treemap-DOrYiA:fullscreen) {
|
|
37
|
+
border: none;
|
|
38
|
+
width: 100vw;
|
|
39
|
+
height: 100vh;
|
|
16
40
|
}
|
|
17
41
|
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
-
|
|
42
|
+
.sidebar-Pww0Wm {
|
|
43
|
+
z-index: 10;
|
|
44
|
+
background-color: #f6f6f6;
|
|
45
|
+
border-right: 1px solid #e8e8e8;
|
|
46
|
+
flex-direction: column;
|
|
47
|
+
width: 300px;
|
|
48
|
+
min-width: 300px;
|
|
49
|
+
height: 100%;
|
|
50
|
+
transition: transform .3s;
|
|
21
51
|
display: flex;
|
|
52
|
+
position: relative;
|
|
53
|
+
overflow: visible;
|
|
22
54
|
}
|
|
23
55
|
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
56
|
+
.sidebar-Pww0Wm.collapsed-hxz3Bf {
|
|
57
|
+
position: absolute;
|
|
58
|
+
left: 0;
|
|
59
|
+
transform: translateX(-100%);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.sidebar-content-WuURH8 {
|
|
63
|
+
flex-direction: column;
|
|
64
|
+
flex: 1;
|
|
65
|
+
gap: 20px;
|
|
66
|
+
padding: 15px;
|
|
67
|
+
display: flex;
|
|
68
|
+
overflow-y: auto;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.sidebar-content-WuURH8 h4 {
|
|
72
|
+
color: #333;
|
|
73
|
+
margin: 0 0 10px;
|
|
74
|
+
font-size: 14px;
|
|
75
|
+
font-weight: bold;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.sidebar-toggle-NaGZQP {
|
|
79
|
+
z-index: 20;
|
|
80
|
+
cursor: pointer;
|
|
81
|
+
background: #fff;
|
|
82
|
+
border: 1px solid #ccc;
|
|
83
|
+
border-radius: 4px;
|
|
84
|
+
padding: 5px;
|
|
85
|
+
transition: right .3s;
|
|
86
|
+
position: absolute;
|
|
87
|
+
top: 10px;
|
|
88
|
+
right: 10px;
|
|
30
89
|
}
|
|
31
90
|
|
|
32
|
-
.
|
|
33
|
-
|
|
91
|
+
.sidebar-toggle-NaGZQP.collapsed-hxz3Bf {
|
|
92
|
+
right: -40px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.chart-wrapper-w7fJr6 {
|
|
96
|
+
flex: 1;
|
|
97
|
+
width: 100%;
|
|
98
|
+
height: 100%;
|
|
99
|
+
position: relative;
|
|
34
100
|
overflow: hidden;
|
|
35
101
|
}
|
|
36
102
|
|
|
37
|
-
.
|
|
38
|
-
|
|
39
|
-
|
|
103
|
+
.chart-container-gPlZC7 {
|
|
104
|
+
width: 100%;
|
|
105
|
+
height: 100%;
|
|
106
|
+
position: relative;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.fullscreen-button-jVdrxO {
|
|
110
|
+
z-index: 100;
|
|
111
|
+
cursor: pointer;
|
|
112
|
+
color: #333;
|
|
113
|
+
background: #ffffffe6;
|
|
114
|
+
border: 1px solid #d9d9d9;
|
|
115
|
+
border-radius: 4px;
|
|
116
|
+
justify-content: center;
|
|
117
|
+
align-items: center;
|
|
118
|
+
padding: 8px 12px;
|
|
119
|
+
font-size: 16px;
|
|
120
|
+
transition: all .3s;
|
|
121
|
+
display: flex;
|
|
122
|
+
position: absolute;
|
|
123
|
+
top: 10px;
|
|
124
|
+
right: 10px;
|
|
125
|
+
box-shadow: 0 2px 8px #00000026;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.fullscreen-button-jVdrxO:hover {
|
|
129
|
+
color: #40a9ff;
|
|
130
|
+
background: #fff;
|
|
131
|
+
border-color: #40a9ff;
|
|
132
|
+
box-shadow: 0 4px 12px #0003;
|
|
40
133
|
}
|
|
41
134
|
|
|
42
|
-
.
|
|
43
|
-
|
|
44
|
-
gap: 8px;
|
|
45
|
-
transition: opacity .3s;
|
|
135
|
+
.fullscreen-button-jVdrxO:active {
|
|
136
|
+
transform: scale(.95);
|
|
46
137
|
}
|
|
47
138
|
|
|
48
|
-
.
|
|
49
|
-
|
|
139
|
+
.chunk-list-TUqr7U {
|
|
140
|
+
flex-direction: column;
|
|
141
|
+
gap: 6px;
|
|
142
|
+
display: flex;
|
|
50
143
|
}
|
|
51
144
|
|
|
52
|
-
.
|
|
145
|
+
.chunk-item-dQ0XI7 {
|
|
146
|
+
justify-content: space-between;
|
|
147
|
+
align-items: center;
|
|
148
|
+
font-size: 12px;
|
|
149
|
+
display: flex;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.chunk-item-dQ0XI7 .ant-checkbox-wrapper {
|
|
153
|
+
text-overflow: ellipsis;
|
|
154
|
+
white-space: nowrap;
|
|
53
155
|
width: 100%;
|
|
156
|
+
overflow: hidden;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.size-tag-EM4AKE {
|
|
160
|
+
color: #999;
|
|
161
|
+
white-space: nowrap;
|
|
162
|
+
margin-left: 8px;
|
|
163
|
+
font-size: 11px;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.search-box-RXJSAo {
|
|
167
|
+
margin-bottom: 10px;
|
|
54
168
|
}
|
|
55
169
|
|
|
56
170
|
.tooltip-row-sZbl0R {
|
|
57
171
|
justify-content: space-between;
|
|
172
|
+
margin-top: 4px;
|
|
58
173
|
font-size: 12px;
|
|
59
174
|
display: flex;
|
|
60
175
|
}
|
|
61
176
|
|
|
62
177
|
.tooltip-label-INs_JK {
|
|
63
|
-
color: #
|
|
178
|
+
color: #333;
|
|
179
|
+
margin-right: 10px;
|
|
180
|
+
font-weight: bold;
|
|
64
181
|
}
|
|
65
182
|
|
|
66
|
-
.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
183
|
+
.search-results-emVgaj {
|
|
184
|
+
background-color: #fff;
|
|
185
|
+
border: 1px solid #e8e8e8;
|
|
186
|
+
border-radius: 4px;
|
|
187
|
+
max-height: 300px;
|
|
188
|
+
margin-top: 10px;
|
|
189
|
+
overflow-y: auto;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.search-results-header-oyQ0jw {
|
|
193
|
+
color: #666;
|
|
194
|
+
background-color: #f5f5f5;
|
|
195
|
+
border-bottom: 1px solid #e8e8e8;
|
|
196
|
+
padding: 8px 12px;
|
|
73
197
|
font-size: 12px;
|
|
74
|
-
|
|
198
|
+
font-weight: bold;
|
|
75
199
|
}
|
|
76
200
|
|
|
77
|
-
.
|
|
201
|
+
.search-results-list-FSMG6d {
|
|
202
|
+
max-height: 250px;
|
|
203
|
+
overflow-y: auto;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.search-result-item-IZR6nt {
|
|
207
|
+
color: #333;
|
|
78
208
|
cursor: pointer;
|
|
79
|
-
|
|
209
|
+
word-break: break-all;
|
|
210
|
+
border-bottom: 1px solid #f0f0f0;
|
|
211
|
+
padding: 8px 12px;
|
|
212
|
+
font-size: 12px;
|
|
213
|
+
transition: background-color .2s;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.search-result-item-IZR6nt:hover {
|
|
217
|
+
background-color: #e6f7ff;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.search-result-item-IZR6nt:last-child {
|
|
221
|
+
border-bottom: none;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.search-results-empty-_khCd5 {
|
|
225
|
+
color: #999;
|
|
226
|
+
text-align: center;
|
|
227
|
+
margin-top: 10px;
|
|
228
|
+
padding: 8px 12px;
|
|
229
|
+
font-size: 12px;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.all-none-checkbox-kw3p6X {
|
|
233
|
+
margin-bottom: 6px;
|
|
80
234
|
}
|
|
81
235
|
|
|
82
236
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://./src/components/Charts/treemap.module.scss"],"names":[],"mappings":"AADA;EAEE,sBAAsB;EACtB,
|
|
1
|
+
{"version":3,"sources":["webpack://./src/components/Charts/treemap.module.scss"],"names":[],"mappings":"AADA;EAEE,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,2BAA2B;EAC3B,aAAa;EACb,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,yBAAyB;EACzB,iBAAiB;EACjB,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,YAAY;EACZ,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,YAAY;EACZ,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,YAAY;EACZ,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,WAAW;EACX,yBAAyB;EACzB,+BAA+B;EAC/B,sBAAsB;EACtB,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,yBAAyB;EACzB,aAAa;EACb,kBAAkB;EAClB,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;EAClB,OAAO;EACP,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,OAAO;EACP,SAAS;EACT,aAAa;EACb,aAAa;EACb,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,gBAAgB;EAChB,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,WAAW;EACX,eAAe;EACf,gBAAgB;EAChB,sBAAsB;EACtB,kBAAkB;EAClB,YAAY;EACZ,qBAAqB;EACrB,kBAAkB;EAClB,SAAS;EACT,WAAW;AACb;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,OAAO;EACP,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,eAAe;EACf,WAAW;EACX,qBAAqB;EACrB,yBAAyB;EACzB,kBAAkB;EAClB,uBAAuB;EACvB,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;EACf,mBAAmB;EACnB,aAAa;EACb,kBAAkB;EAClB,SAAS;EACT,WAAW;EACX,+BAA+B;AACjC;;AAEA;EACE,cAAc;EACd,gBAAgB;EAChB,qBAAqB;EACrB,4BAA4B;AAC9B;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,sBAAsB;EACtB,QAAQ;EACR,aAAa;AACf;;AAEA;EACE,8BAA8B;EAC9B,mBAAmB;EACnB,eAAe;EACf,aAAa;AACf;;AAEA;EACE,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,mBAAmB;EACnB,gBAAgB;EAChB,eAAe;AACjB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,8BAA8B;EAC9B,eAAe;EACf,eAAe;EACf,aAAa;AACf;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;AACnB;;AAEA;EACE,sBAAsB;EACtB,yBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,yBAAyB;EACzB,gCAAgC;EAChC,iBAAiB;EACjB,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,eAAe;EACf,qBAAqB;EACrB,gCAAgC;EAChC,iBAAiB;EACjB,eAAe;EACf,gCAAgC;AAClC;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;AACjB;;AAEA;EACE,kBAAkB;AACpB","sourcesContent":[".treemap{display:flex;flex-direction:row;height:calc(100vh - 100px);position:relative;overflow:hidden;border:2px solid #e8e8e8;background-color:#fff}.treemap :global .ant-checkbox-wrapper{font-weight:400;font-size:12px;user-select:none}.treemap:fullscreen,.treemap:-webkit-full-screen,.treemap:-moz-full-screen,.treemap:-ms-fullscreen{height:100vh;width:100vw;border:none}.sidebar{width:300px;min-width:300px;background-color:#f6f6f6;border-right:1px solid #e8e8e8;display:flex;flex-direction:column;transition:transform .3s ease;z-index:10;height:100%;position:relative;overflow:visible}.sidebar.collapsed{transform:translateX(-100%);position:absolute;left:0}.sidebar-content{padding:15px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.sidebar-content h4{margin:0 0 10px 0;font-size:14px;font-weight:bold;color:#333}.sidebar-toggle{position:absolute;top:10px;right:10px;z-index:20;background:#fff;border:1px solid #ccc;border-radius:4px;padding:5px;cursor:pointer;transition:right .3s ease}.sidebar-toggle.collapsed{right:-40px}.chart-wrapper{flex:1;position:relative;height:100%;width:100%;overflow:hidden}.chart-container{position:relative;width:100%;height:100%}.fullscreen-button{position:absolute;top:10px;right:10px;z-index:100;background:hsla(0,0%,100%,.9);border:1px solid #d9d9d9;border-radius:4px;padding:8px 12px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:#333;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:all .3s ease}.fullscreen-button:hover{background:#fff;border-color:#40a9ff;color:#40a9ff;box-shadow:0 4px 12px rgba(0,0,0,.2)}.fullscreen-button:active{transform:scale(0.95)}.chunk-list{display:flex;flex-direction:column;gap:6px}.chunk-item{display:flex;justify-content:space-between;align-items:center;font-size:12px}.chunk-item :global .ant-checkbox-wrapper{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.size-tag{color:#999;font-size:11px;margin-left:8px;white-space:nowrap}.search-box{margin-bottom:10px}.tooltip-row{font-size:12px;display:flex;justify-content:space-between;margin-top:4px}.tooltip-label{font-weight:bold;margin-right:10px;color:#333}.search-results{margin-top:10px;max-height:300px;overflow-y:auto;border:1px solid #e8e8e8;border-radius:4px;background-color:#fff}.search-results-header{padding:8px 12px;font-size:12px;font-weight:bold;color:#666;background-color:#f5f5f5;border-bottom:1px solid #e8e8e8}.search-results-list{max-height:250px;overflow-y:auto}.search-result-item{padding:8px 12px;font-size:12px;color:#333;cursor:pointer;border-bottom:1px solid #f0f0f0;word-break:break-all;transition:background-color .2s}.search-result-item:hover{background-color:#e6f7ff}.search-result-item:last-child{border-bottom:none}.search-results-empty{margin-top:10px;padding:8px 12px;font-size:12px;color:#999;text-align:center}.all-none-checkbox{margin-bottom:6px}"],"sourceRoot":""}
|