feat(ai): 添加思维导图功能
- 在 ai/mindmap 页面添加 Right 组件 - 实现思维导图的初始化、渲染和下载功能 - 优化 markdown 内容的处理和展示 - 添加对思维导图库的依赖和类型定义pull/145/head
							parent
							
								
									1b236e89bf
								
							
						
					
					
						commit
						54066859c5
					
				|  | @ -7,7 +7,9 @@ import { alert, Page } from '@vben/common-ui'; | ||||||
| 
 | 
 | ||||||
| import { generateMindMap } from '#/api/ai/mindmap'; | import { generateMindMap } from '#/api/ai/mindmap'; | ||||||
| import { MindMapContentExample } from '#/utils/constants'; | import { MindMapContentExample } from '#/utils/constants'; | ||||||
|  | 
 | ||||||
| import Left from './modules/Left.vue'; | import Left from './modules/Left.vue'; | ||||||
|  | import Right from './modules/Right.vue'; | ||||||
| 
 | 
 | ||||||
| const ctrl = ref<AbortController>(); // 请求控制 | const ctrl = ref<AbortController>(); // 请求控制 | ||||||
| const isGenerating = ref(false); // 是否正在生成思维导图 | const isGenerating = ref(false); // 是否正在生成思维导图 | ||||||
|  | @ -80,6 +82,13 @@ onMounted(() => { | ||||||
|         @submit="submit" |         @submit="submit" | ||||||
|         @direct-generate="directGenerate" |         @direct-generate="directGenerate" | ||||||
|       /> |       /> | ||||||
|  |       <Right | ||||||
|  |         ref="rightRef" | ||||||
|  |         :generated-content="generatedContent" | ||||||
|  |         :is-end="isEnd" | ||||||
|  |         :is-generating="isGenerating" | ||||||
|  |         :is-start="isStart" | ||||||
|  |       /> | ||||||
|     </div> |     </div> | ||||||
|   </Page> |   </Page> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
|  | @ -1,108 +1,128 @@ | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
|  | import { nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'; | ||||||
|  | 
 | ||||||
|  | import { | ||||||
|  |   MarkdownIt, | ||||||
|  |   Markmap, | ||||||
|  |   Toolbar, | ||||||
|  |   Transformer, | ||||||
|  | } from '@vben/plugins/markmap'; | ||||||
|  | 
 | ||||||
| import { Button, Card, message } from 'ant-design-vue'; | import { Button, Card, message } from 'ant-design-vue'; | ||||||
| import markdownit from 'markdown-it'; |  | ||||||
| import { Markmap } from 'markmap-view' |  | ||||||
| import { Transformer } from 'markmap-lib' |  | ||||||
| import { Toolbar } from 'markmap-toolbar' |  | ||||||
| import { nextTick, onMounted, ref, watch } from 'vue'; |  | ||||||
| 
 | 
 | ||||||
| const md = markdownit(); | import { download } from '#/utils/download'; | ||||||
|  | 
 | ||||||
| const props = defineProps<{ | const props = defineProps<{ | ||||||
|   generatedContent: string // 生成结果 |   generatedContent: string; // 生成结果 | ||||||
|   isEnd: boolean // 是否结束 |   isEnd: boolean; // 是否结束 | ||||||
|   isGenerating: boolean // 是否正在生成 |   isGenerating: boolean; // 是否正在生成 | ||||||
|   isStart: boolean // 开始状态,开始时需要清除 html |   isStart: boolean; // 开始状态,开始时需要清除 html | ||||||
| }>() | }>(); | ||||||
| const contentRef = ref<HTMLDivElement>() // 右侧出来 header 以下的区域 | const md = MarkdownIt(); | ||||||
| const mdContainerRef = ref<HTMLDivElement>() // markdown 的容器,用来滚动到底下的 | const contentRef = ref<HTMLDivElement>(); // 右侧出来 header 以下的区域 | ||||||
| const mindMapRef = ref<HTMLDivElement>() // 思维导图的容器 | const mdContainerRef = ref<HTMLDivElement>(); // markdown 的容器,用来滚动到底下的 | ||||||
| const svgRef = ref<SVGElement>() // 思维导图的渲染 svg | const mindMapRef = ref<HTMLDivElement>(); // 思维导图的容器 | ||||||
| const toolBarRef = ref<HTMLDivElement>() // 思维导图右下角的工具栏,缩放等 | const svgRef = ref<SVGElement>(); // 思维导图的渲染 svg | ||||||
| const html = ref('') // 生成过程中的文本 | const toolBarRef = ref<HTMLDivElement>(); // 思维导图右下角的工具栏,缩放等 | ||||||
| const contentAreaHeight = ref(0) // 生成区域的高度,出去 header 部分 | const html = ref(''); // 生成过程中的文本 | ||||||
| let markMap: Markmap | null = null | const contentAreaHeight = ref(0); // 生成区域的高度,出去 header 部分 | ||||||
| const transformer = new Transformer() | let markMap: Markmap | null = null; | ||||||
| 
 | const transformer = new Transformer(); | ||||||
|  | let resizeObserver: null | ResizeObserver = null; | ||||||
|  | const initialized = false; | ||||||
| onMounted(() => { | onMounted(() => { | ||||||
|   contentAreaHeight.value = contentRef.value?.clientHeight || 0 // 获取区域高度 |   resizeObserver = new ResizeObserver(() => { | ||||||
|   /** 初始化思维导图 **/ |     contentAreaHeight.value = contentRef.value?.clientHeight || 0; | ||||||
|  |     // 先更新高度,再更新思维导图 | ||||||
|  |     if (contentAreaHeight.value && !initialized) { | ||||||
|  |       /** 初始化思维导图 */ | ||||||
|       try { |       try { | ||||||
|     markMap = Markmap.create(svgRef.value!) |         markMap = Markmap.create(svgRef.value!); | ||||||
|     const { el } = Toolbar.create(markMap) |         const { el } = Toolbar.create(markMap); | ||||||
|     toolBarRef.value?.append(el) |         toolBarRef.value?.append(el); | ||||||
|     nextTick(update) |         nextTick(update); | ||||||
|   } catch (e) { |       } catch { | ||||||
|     message.error('思维导图初始化失败') |         message.error('思维导图初始化失败'); | ||||||
|       } |       } | ||||||
| }) |     } | ||||||
|  |   }); | ||||||
|  |   if (contentRef.value) { | ||||||
|  |     resizeObserver.observe(contentRef.value); | ||||||
|  |   } | ||||||
|  | }); | ||||||
|  | onBeforeUnmount(() => { | ||||||
|  |   if (resizeObserver && contentRef.value) { | ||||||
|  |     resizeObserver.unobserve(contentRef.value); | ||||||
|  |   } | ||||||
|  | }); | ||||||
| watch(props, ({ generatedContent, isGenerating, isEnd, isStart }) => { | watch(props, ({ generatedContent, isGenerating, isEnd, isStart }) => { | ||||||
|   // 开始生成的时候清空一下 markdown 的内容 |   // 开始生成的时候清空一下 markdown 的内容 | ||||||
|   if (isStart) { |   if (isStart) { | ||||||
|     html.value = '' |     html.value = ''; | ||||||
|   } |   } | ||||||
|   // 生成内容的时候使用 markdown 来渲染 |   // 生成内容的时候使用 markdown 来渲染 | ||||||
|   if (isGenerating) { |   if (isGenerating) { | ||||||
|     html.value = md.render(generatedContent) |     html.value = md.render(generatedContent); | ||||||
|   } |   } | ||||||
|   // 生成结束时更新思维导图 |   // 生成结束时更新思维导图 | ||||||
|   if (isEnd) { |   if (isEnd) { | ||||||
|     update() |     update(); | ||||||
|   } |   } | ||||||
| }) | }); | ||||||
|  | 
 | ||||||
| /** 更新思维导图的展示 */ | /** 更新思维导图的展示 */ | ||||||
| const update = () => { | const update = () => { | ||||||
|   try { |   try { | ||||||
|     const { root } = transformer.transform(processContent(props.generatedContent)) |     const { root } = transformer.transform( | ||||||
|     markMap?.setData(root) |       processContent(props.generatedContent), | ||||||
|     markMap?.fit() |     ); | ||||||
|   } catch (e) { |     markMap?.setData(root); | ||||||
|     console.error(e) |     markMap?.fit(); | ||||||
|  |   } catch (error: any) { | ||||||
|  |     console.error(error); | ||||||
|   } |   } | ||||||
| } | }; | ||||||
| 
 |  | ||||||
| /** 处理内容 */ | /** 处理内容 */ | ||||||
| const processContent = (text: string) => { | const processContent = (text: string) => { | ||||||
|   const arr: string[] = [] |   const arr: string[] = []; | ||||||
|   const lines = text.split('\n') |   const lines = text.split('\n'); | ||||||
|   for (let line of lines) { |   for (let line of lines) { | ||||||
|     if (line.indexOf('```') !== -1) { |     if (line.includes('```')) { | ||||||
|       continue |       continue; | ||||||
|     } |     } | ||||||
|     line = line.replace(/([*_~`>])|(\d+\.)\s/g, '') |     // eslint-disable-next-line unicorn/prefer-string-replace-all | ||||||
|     arr.push(line) |     line = line.replace(/([*_~`>])|(\d+\.)\s/g, ''); | ||||||
|  |     arr.push(line); | ||||||
|   } |   } | ||||||
|   return arr.join('\n') |   return arr.join('\n'); | ||||||
| } | }; | ||||||
| 
 |  | ||||||
| /** 下载图片:download SVG to png file */ | /** 下载图片:download SVG to png file */ | ||||||
| const downloadImage = () => { | const downloadImage = () => { | ||||||
|   const svgElement = mindMapRef.value |   const svgElement = mindMapRef.value; | ||||||
|   // 将 SVG 渲染到图片对象 |   // 将 SVG 渲染到图片对象 | ||||||
|   const serializer = new XMLSerializer() |   const serializer = new XMLSerializer(); | ||||||
|   const source = `<?xml version="1.0" standalone="no"?>\r\n${serializer.serializeToString(svgRef.value!)}` |   const source = `<?xml version="1.0" standalone="no"?>\r\n${serializer.serializeToString(svgRef.value!)}`; | ||||||
|   const base64Url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(source)}` |   const base64Url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(source)}`; | ||||||
|   download.image({ |   download.image({ | ||||||
|     url: base64Url, |     url: base64Url, | ||||||
|     canvasWidth: svgElement?.offsetWidth, |     canvasWidth: svgElement?.offsetWidth, | ||||||
|     canvasHeight: svgElement?.offsetHeight, |     canvasHeight: svgElement?.offsetHeight, | ||||||
|     drawWithImageSize: false |     drawWithImageSize: false, | ||||||
|   }) |   }); | ||||||
| } | }; | ||||||
| 
 |  | ||||||
| defineExpose({ | defineExpose({ | ||||||
|   scrollBottom() { |   scrollBottom() { | ||||||
|     mdContainerRef.value?.scrollTo(0, mdContainerRef.value?.scrollHeight) |     mdContainerRef.value?.scrollTo(0, mdContainerRef.value?.scrollHeight); | ||||||
|   } |   }, | ||||||
| }) | }); | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <template> | <template> | ||||||
|   <Card class="my-card h-full flex-grow"> |   <Card class="my-card h-full flex-grow"> | ||||||
|     <template #title> |     <template #title> | ||||||
|       <h3 class="m-0 flex shrink-0 items-center justify-between px-7"> |       <div class="m-0 flex shrink-0 items-center justify-between px-7"> | ||||||
|         <span>思维导图预览</span> |         <h3>思维导图预览</h3> | ||||||
|         <!-- 展示在右上角 --> |         <Button type="primary" size="small" class="flex" @click="downloadImage"> | ||||||
|         <Button v-show="isEnd" size="small" type="primary" style="display: flex;" @click="downloadImage"> |  | ||||||
|           <template #icon> |           <template #icon> | ||||||
|             <div class="flex items-center justify-center"> |             <div class="flex items-center justify-center"> | ||||||
|               <span class="icon-[ant-design--copy-twotone]"></span> |               <span class="icon-[ant-design--copy-twotone]"></span> | ||||||
|  | @ -110,16 +130,27 @@ defineExpose({ | ||||||
|           </template> |           </template> | ||||||
|           下载图片 |           下载图片 | ||||||
|         </Button> |         </Button> | ||||||
|       </h3> |       </div> | ||||||
|     </template> |     </template> | ||||||
|     <div ref="contentRef" class="hide-scroll-bar h-full box-border"> |     <div ref="contentRef" class="hide-scroll-bar box-border h-full"> | ||||||
|       <!--展示 markdown 的容器,最终生成的是 html 字符串,直接用 v-html 嵌入--> |       <!--展示 markdown 的容器,最终生成的是 html 字符串,直接用 v-html 嵌入--> | ||||||
|       <div v-if="isGenerating" ref="mdContainerRef" class="wh-full overflow-y-auto"> |       <div | ||||||
|         <div class="flex flex-col items-center justify-center" v-html="html"></div> |         v-if="isGenerating" | ||||||
|  |         ref="mdContainerRef" | ||||||
|  |         class="wh-full overflow-y-auto" | ||||||
|  |       > | ||||||
|  |         <div | ||||||
|  |           class="flex flex-col items-center justify-center" | ||||||
|  |           v-html="html" | ||||||
|  |         ></div> | ||||||
|       </div> |       </div> | ||||||
| 
 | 
 | ||||||
|       <div ref="mindMapRef" class="wh-full"> |       <div ref="mindMapRef" class="wh-full"> | ||||||
|         <svg ref="svgRef" :style="{ height: `${contentAreaHeight}px` }" class="w-full" /> |         <svg | ||||||
|  |           ref="svgRef" | ||||||
|  |           :style="{ height: `${contentAreaHeight}px` }" | ||||||
|  |           class="w-full" | ||||||
|  |         /> | ||||||
|         <div ref="toolBarRef" class="absolute bottom-[10px] right-5"></div> |         <div ref="toolBarRef" class="absolute bottom-[10px] right-5"></div> | ||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
|  | @ -127,7 +158,8 @@ defineExpose({ | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||||
| .hide-scroll-bar { | // 定义一个 mixin 替代 extend | ||||||
|  | @mixin hide-scroll-bar { | ||||||
|   -ms-overflow-style: none; |   -ms-overflow-style: none; | ||||||
|   scrollbar-width: none; |   scrollbar-width: none; | ||||||
| 
 | 
 | ||||||
|  | @ -137,17 +169,21 @@ defineExpose({ | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .hide-scroll-bar { | ||||||
|  |   @include hide-scroll-bar; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .my-card { | .my-card { | ||||||
|   display: flex; |   display: flex; | ||||||
|   flex-direction: column; |   flex-direction: column; | ||||||
| 
 | 
 | ||||||
|   :deep(.el-card__body) { |   :deep(.ant-card-body) { | ||||||
|     @extend .hide-scroll-bar; |  | ||||||
| 
 |  | ||||||
|     padding: 0; |  | ||||||
|     overflow-y: auto; |  | ||||||
|     box-sizing: border-box; |     box-sizing: border-box; | ||||||
|     flex-grow: 1; |     flex-grow: 1; | ||||||
|  |     padding: 0; | ||||||
|  |     overflow-y: auto; | ||||||
|  | 
 | ||||||
|  |     @include hide-scroll-bar; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -25,6 +25,10 @@ | ||||||
|     "./motion": { |     "./motion": { | ||||||
|       "types": "./src/motion/index.ts", |       "types": "./src/motion/index.ts", | ||||||
|       "default": "./src/motion/index.ts" |       "default": "./src/motion/index.ts" | ||||||
|  |     }, | ||||||
|  |     "./markmap": { | ||||||
|  |       "types": "./src/markmap/index.ts", | ||||||
|  |       "default": "./src/markmap/index.ts" | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|  | @ -40,8 +44,16 @@ | ||||||
|     "@vueuse/core": "catalog:", |     "@vueuse/core": "catalog:", | ||||||
|     "@vueuse/motion": "catalog:", |     "@vueuse/motion": "catalog:", | ||||||
|     "echarts": "catalog:", |     "echarts": "catalog:", | ||||||
|  |     "markdown-it": "^14.1.0", | ||||||
|  |     "markmap-common": "^0.16.0", | ||||||
|  |     "markmap-lib": "^0.16.1", | ||||||
|  |     "markmap-toolbar": "^0.17.0", | ||||||
|  |     "markmap-view": "^0.16.0", | ||||||
|     "vue": "catalog:", |     "vue": "catalog:", | ||||||
|     "vxe-pc-ui": "catalog:", |     "vxe-pc-ui": "catalog:", | ||||||
|     "vxe-table": "catalog:" |     "vxe-table": "catalog:" | ||||||
|  |   }, | ||||||
|  |   "devDependencies": { | ||||||
|  |     "@types/markdown-it": "^14.1.2" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | export { default as MarkdownIt } from 'markdown-it'; | ||||||
|  | export { Transformer } from 'markmap-lib'; | ||||||
|  | export { Toolbar } from 'markmap-toolbar'; | ||||||
|  | 
 | ||||||
|  | export * from 'markmap-view'; | ||||||
							
								
								
									
										673
									
								
								pnpm-lock.yaml
								
								
								
								
							
							
						
						
									
										673
									
								
								pnpm-lock.yaml
								
								
								
								
							|  | @ -1812,6 +1812,21 @@ importers: | ||||||
|       echarts: |       echarts: | ||||||
|         specifier: 'catalog:' |         specifier: 'catalog:' | ||||||
|         version: 5.6.0 |         version: 5.6.0 | ||||||
|  |       markdown-it: | ||||||
|  |         specifier: ^14.1.0 | ||||||
|  |         version: 14.1.0 | ||||||
|  |       markmap-common: | ||||||
|  |         specifier: ^0.16.0 | ||||||
|  |         version: 0.16.0 | ||||||
|  |       markmap-lib: | ||||||
|  |         specifier: ^0.16.1 | ||||||
|  |         version: 0.16.1(markmap-common@0.16.0) | ||||||
|  |       markmap-toolbar: | ||||||
|  |         specifier: ^0.17.0 | ||||||
|  |         version: 0.17.2(markmap-common@0.16.0) | ||||||
|  |       markmap-view: | ||||||
|  |         specifier: ^0.16.0 | ||||||
|  |         version: 0.16.0(markmap-common@0.16.0) | ||||||
|       vue: |       vue: | ||||||
|         specifier: ^3.5.13 |         specifier: ^3.5.13 | ||||||
|         version: 3.5.13(typescript@5.8.3) |         version: 3.5.13(typescript@5.8.3) | ||||||
|  | @ -1821,6 +1836,10 @@ importers: | ||||||
|       vxe-table: |       vxe-table: | ||||||
|         specifier: 'catalog:' |         specifier: 'catalog:' | ||||||
|         version: 4.13.28(vue@3.5.13(typescript@5.8.3)) |         version: 4.13.28(vue@3.5.13(typescript@5.8.3)) | ||||||
|  |     devDependencies: | ||||||
|  |       '@types/markdown-it': | ||||||
|  |         specifier: ^14.1.2 | ||||||
|  |         version: 14.1.2 | ||||||
| 
 | 
 | ||||||
|   packages/effects/request: |   packages/effects/request: | ||||||
|     dependencies: |     dependencies: | ||||||
|  | @ -3730,6 +3749,9 @@ packages: | ||||||
|   '@gar/promisify@1.1.3': |   '@gar/promisify@1.1.3': | ||||||
|     resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} |     resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} | ||||||
| 
 | 
 | ||||||
|  |   '@gera2ld/jsx-dom@2.2.2': | ||||||
|  |     resolution: {integrity: sha512-EOqf31IATRE6zS1W1EoWmXZhGfLAoO9FIlwTtHduSrBdud4npYBxYAkv8dZ5hudDPwJeeSjn40kbCL4wAzr8dA==} | ||||||
|  | 
 | ||||||
|   '@humanfs/core@0.19.1': |   '@humanfs/core@0.19.1': | ||||||
|     resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} |     resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} | ||||||
|     engines: {node: '>=18.18.0'} |     engines: {node: '>=18.18.0'} | ||||||
|  | @ -4540,6 +4562,99 @@ packages: | ||||||
|   '@types/crypto-js@4.2.2': |   '@types/crypto-js@4.2.2': | ||||||
|     resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} |     resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} | ||||||
| 
 | 
 | ||||||
|  |   '@types/d3-array@3.2.1': | ||||||
|  |     resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-axis@3.0.6': | ||||||
|  |     resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-brush@3.0.6': | ||||||
|  |     resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-chord@3.0.6': | ||||||
|  |     resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-color@3.1.3': | ||||||
|  |     resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-contour@3.0.6': | ||||||
|  |     resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-delaunay@6.0.4': | ||||||
|  |     resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-dispatch@3.0.6': | ||||||
|  |     resolution: {integrity: sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-drag@3.0.7': | ||||||
|  |     resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-dsv@3.0.7': | ||||||
|  |     resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-ease@3.0.2': | ||||||
|  |     resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-fetch@3.0.7': | ||||||
|  |     resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-force@3.0.10': | ||||||
|  |     resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-format@3.0.4': | ||||||
|  |     resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-geo@3.1.0': | ||||||
|  |     resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-hierarchy@3.1.7': | ||||||
|  |     resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-interpolate@3.0.4': | ||||||
|  |     resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-path@3.1.1': | ||||||
|  |     resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-polygon@3.0.2': | ||||||
|  |     resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-quadtree@3.0.6': | ||||||
|  |     resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-random@3.0.3': | ||||||
|  |     resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-scale-chromatic@3.1.0': | ||||||
|  |     resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-scale@4.0.9': | ||||||
|  |     resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-selection@3.0.11': | ||||||
|  |     resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-shape@3.1.7': | ||||||
|  |     resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-time-format@4.0.3': | ||||||
|  |     resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-time@3.0.4': | ||||||
|  |     resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-timer@3.0.2': | ||||||
|  |     resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-transition@3.0.9': | ||||||
|  |     resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-zoom@3.0.8': | ||||||
|  |     resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} | ||||||
|  | 
 | ||||||
|  |   '@types/d3@7.4.3': | ||||||
|  |     resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} | ||||||
|  | 
 | ||||||
|   '@types/eslint@9.6.1': |   '@types/eslint@9.6.1': | ||||||
|     resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} |     resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} | ||||||
| 
 | 
 | ||||||
|  | @ -4549,6 +4664,9 @@ packages: | ||||||
|   '@types/estree@1.0.7': |   '@types/estree@1.0.7': | ||||||
|     resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} |     resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} | ||||||
| 
 | 
 | ||||||
|  |   '@types/geojson@7946.0.16': | ||||||
|  |     resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} | ||||||
|  | 
 | ||||||
|   '@types/hast@3.0.4': |   '@types/hast@3.0.4': | ||||||
|     resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} |     resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} | ||||||
| 
 | 
 | ||||||
|  | @ -5398,6 +5516,9 @@ packages: | ||||||
|   atomically@2.0.3: |   atomically@2.0.3: | ||||||
|     resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} |     resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} | ||||||
| 
 | 
 | ||||||
|  |   autolinker@3.16.2: | ||||||
|  |     resolution: {integrity: sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==} | ||||||
|  | 
 | ||||||
|   autoprefixer@10.4.21: |   autoprefixer@10.4.21: | ||||||
|     resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} |     resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} | ||||||
|     engines: {node: ^10 || ^12 || >=14} |     engines: {node: ^10 || ^12 || >=14} | ||||||
|  | @ -5633,6 +5754,10 @@ packages: | ||||||
|     resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} |     resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} | ||||||
|     engines: {node: '>=18.17'} |     engines: {node: '>=18.17'} | ||||||
| 
 | 
 | ||||||
|  |   cheerio@1.0.0-rc.12: | ||||||
|  |     resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} | ||||||
|  |     engines: {node: '>= 6'} | ||||||
|  | 
 | ||||||
|   chokidar@3.6.0: |   chokidar@3.6.0: | ||||||
|     resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} |     resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} | ||||||
|     engines: {node: '>= 8.10.0'} |     engines: {node: '>= 8.10.0'} | ||||||
|  | @ -6138,6 +6263,139 @@ packages: | ||||||
|     engines: {node: '>=v12.20.0'} |     engines: {node: '>=v12.20.0'} | ||||||
|     hasBin: true |     hasBin: true | ||||||
| 
 | 
 | ||||||
|  |   d3-array@3.2.4: | ||||||
|  |     resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-axis@3.0.0: | ||||||
|  |     resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-brush@3.0.0: | ||||||
|  |     resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-chord@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-color@3.1.0: | ||||||
|  |     resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-contour@4.0.2: | ||||||
|  |     resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-delaunay@6.0.4: | ||||||
|  |     resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-dispatch@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-drag@3.0.0: | ||||||
|  |     resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-dsv@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  |     hasBin: true | ||||||
|  | 
 | ||||||
|  |   d3-ease@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-fetch@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-flextree@2.1.2: | ||||||
|  |     resolution: {integrity: sha512-gJiHrx5uTTHq44bjyIb3xpbmmdZcWLYPKeO9EPVOq8EylMFOiH2+9sWqKAiQ4DcFuOZTAxPOQyv0Rnmji/g15A==} | ||||||
|  | 
 | ||||||
|  |   d3-force@3.0.0: | ||||||
|  |     resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-format@3.1.0: | ||||||
|  |     resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-geo@3.1.1: | ||||||
|  |     resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-hierarchy@1.1.9: | ||||||
|  |     resolution: {integrity: sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==} | ||||||
|  | 
 | ||||||
|  |   d3-hierarchy@3.1.2: | ||||||
|  |     resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-interpolate@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-path@3.1.0: | ||||||
|  |     resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-polygon@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-quadtree@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-random@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-scale-chromatic@3.1.0: | ||||||
|  |     resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-scale@4.0.2: | ||||||
|  |     resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-selection@3.0.0: | ||||||
|  |     resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-shape@3.2.0: | ||||||
|  |     resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-time-format@4.1.0: | ||||||
|  |     resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-time@3.1.0: | ||||||
|  |     resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-timer@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3-transition@3.0.1: | ||||||
|  |     resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  |     peerDependencies: | ||||||
|  |       d3-selection: 2 - 3 | ||||||
|  | 
 | ||||||
|  |   d3-zoom@3.0.0: | ||||||
|  |     resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|  |   d3@7.9.0: | ||||||
|  |     resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|   dargs@8.1.0: |   dargs@8.1.0: | ||||||
|     resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} |     resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} | ||||||
|     engines: {node: '>=12'} |     engines: {node: '>=12'} | ||||||
|  | @ -6273,6 +6531,9 @@ packages: | ||||||
|   defu@6.1.4: |   defu@6.1.4: | ||||||
|     resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} |     resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} | ||||||
| 
 | 
 | ||||||
|  |   delaunator@5.0.1: | ||||||
|  |     resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} | ||||||
|  | 
 | ||||||
|   delayed-stream@1.0.0: |   delayed-stream@1.0.0: | ||||||
|     resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} |     resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} | ||||||
|     engines: {node: '>=0.4.0'} |     engines: {node: '>=0.4.0'} | ||||||
|  | @ -7518,6 +7779,10 @@ packages: | ||||||
|     resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} |     resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} | ||||||
|     engines: {node: '>= 0.4'} |     engines: {node: '>= 0.4'} | ||||||
| 
 | 
 | ||||||
|  |   internmap@2.0.3: | ||||||
|  |     resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} | ||||||
|  |     engines: {node: '>=12'} | ||||||
|  | 
 | ||||||
|   ioredis@5.6.1: |   ioredis@5.6.1: | ||||||
|     resolution: {integrity: sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==} |     resolution: {integrity: sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==} | ||||||
|     engines: {node: '>=12.22.0'} |     engines: {node: '>=12.22.0'} | ||||||
|  | @ -7939,6 +8204,10 @@ packages: | ||||||
|     resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} |     resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} | ||||||
|     engines: {node: '>=18'} |     engines: {node: '>=18'} | ||||||
| 
 | 
 | ||||||
|  |   katex@0.16.22: | ||||||
|  |     resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} | ||||||
|  |     hasBin: true | ||||||
|  | 
 | ||||||
|   keyv@4.5.4: |   keyv@4.5.4: | ||||||
|     resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} |     resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} | ||||||
| 
 | 
 | ||||||
|  | @ -8266,6 +8535,29 @@ packages: | ||||||
|     resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} |     resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} | ||||||
|     hasBin: true |     hasBin: true | ||||||
| 
 | 
 | ||||||
|  |   markmap-common@0.16.0: | ||||||
|  |     resolution: {integrity: sha512-q3nlNDMKuWXTm3VwZFY9V5zteL/+iBLZanUK5vS+e26bUbzTSG5VtAzsyJbmgJm1WhwmIIAxbXEnp6JdvtTduA==} | ||||||
|  | 
 | ||||||
|  |   markmap-html-parser@0.16.1: | ||||||
|  |     resolution: {integrity: sha512-/Mgm4g1qMQ8uEOz8h8K+jPspdgjfw29NqmfTLZSt8yG+vW7fWWduPjGRFc5axAZxCzP7PTzZLEuOxAqOwEg8Bg==} | ||||||
|  |     peerDependencies: | ||||||
|  |       markmap-common: '*' | ||||||
|  | 
 | ||||||
|  |   markmap-lib@0.16.1: | ||||||
|  |     resolution: {integrity: sha512-jD8VsB67m677IRehGSwwVJDlC6PS+xzDKsJOwdvjZ+ndfXrHa1lyqfvR6mIwvGGUIciF86YEITSKL9hQTHE4Rw==} | ||||||
|  |     peerDependencies: | ||||||
|  |       markmap-common: '*' | ||||||
|  | 
 | ||||||
|  |   markmap-toolbar@0.17.2: | ||||||
|  |     resolution: {integrity: sha512-WQ05P2xvQmZT0ybRUE0uRzrs30aXlJ6/yEUsA6A9nYEwm8T9jSwBxIM/5zYlkH/XzUcsRRxtCa4k1IWR74gkpQ==} | ||||||
|  |     peerDependencies: | ||||||
|  |       markmap-common: '*' | ||||||
|  | 
 | ||||||
|  |   markmap-view@0.16.0: | ||||||
|  |     resolution: {integrity: sha512-JOiSEThs8B4bAP9E6rcCWOz2SsMwCBFaR76wLARRVb04C/qLiLmvrm675kNPq4lRBAwtugHCYvjG0otpSlB4Cw==} | ||||||
|  |     peerDependencies: | ||||||
|  |       markmap-common: '*' | ||||||
|  | 
 | ||||||
|   math-intrinsics@1.1.0: |   math-intrinsics@1.1.0: | ||||||
|     resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} |     resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} | ||||||
|     engines: {node: '>= 0.4'} |     engines: {node: '>= 0.4'} | ||||||
|  | @ -8673,6 +8965,9 @@ packages: | ||||||
|     resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} |     resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} | ||||||
|     engines: {node: '>=18'} |     engines: {node: '>=18'} | ||||||
| 
 | 
 | ||||||
|  |   npm2url@0.2.4: | ||||||
|  |     resolution: {integrity: sha512-arzGp/hQz0Ey+ZGhF64XVH7Xqwd+1Q/po5uGiBbzph8ebX6T0uvt3N7c1nBHQNsQVykQgHhqoRTX7JFcHecGuw==} | ||||||
|  | 
 | ||||||
|   npmlog@5.0.1: |   npmlog@5.0.1: | ||||||
|     resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} |     resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} | ||||||
|     deprecated: This package is no longer supported. |     deprecated: This package is no longer supported. | ||||||
|  | @ -9562,6 +9857,10 @@ packages: | ||||||
|     resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} |     resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} | ||||||
|     engines: {node: '>=18'} |     engines: {node: '>=18'} | ||||||
| 
 | 
 | ||||||
|  |   prismjs@1.30.0: | ||||||
|  |     resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} | ||||||
|  |     engines: {node: '>=6'} | ||||||
|  | 
 | ||||||
|   process-nextick-args@2.0.1: |   process-nextick-args@2.0.1: | ||||||
|     resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} |     resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} | ||||||
| 
 | 
 | ||||||
|  | @ -9769,6 +10068,14 @@ packages: | ||||||
|     resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} |     resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} | ||||||
|     engines: {node: '>= 0.10'} |     engines: {node: '>= 0.10'} | ||||||
| 
 | 
 | ||||||
|  |   remarkable-katex@1.2.1: | ||||||
|  |     resolution: {integrity: sha512-Y1VquJBZnaVsfsVcKW2hmjT+pDL7mp8l5WAVlvuvViltrdok2m1AIKmJv8SsH+mBY84PoMw67t3kTWw1dIm8+g==} | ||||||
|  | 
 | ||||||
|  |   remarkable@2.0.1: | ||||||
|  |     resolution: {integrity: sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==} | ||||||
|  |     engines: {node: '>= 6.0.0'} | ||||||
|  |     hasBin: true | ||||||
|  | 
 | ||||||
|   remove-accents@0.5.0: |   remove-accents@0.5.0: | ||||||
|     resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} |     resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} | ||||||
| 
 | 
 | ||||||
|  | @ -9849,6 +10156,9 @@ packages: | ||||||
|     engines: {node: 20 || >=22} |     engines: {node: 20 || >=22} | ||||||
|     hasBin: true |     hasBin: true | ||||||
| 
 | 
 | ||||||
|  |   robust-predicates@3.0.2: | ||||||
|  |     resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} | ||||||
|  | 
 | ||||||
|   rollup-plugin-dts@6.2.1: |   rollup-plugin-dts@6.2.1: | ||||||
|     resolution: {integrity: sha512-sR3CxYUl7i2CHa0O7bA45mCrgADyAQ0tVtGSqi3yvH28M+eg1+g5d7kQ9hLvEz5dorK3XVsH5L2jwHLQf72DzA==} |     resolution: {integrity: sha512-sR3CxYUl7i2CHa0O7bA45mCrgADyAQ0tVtGSqi3yvH28M+eg1+g5d7kQ9hLvEz5dorK3XVsH5L2jwHLQf72DzA==} | ||||||
|     engines: {node: '>=16'} |     engines: {node: '>=16'} | ||||||
|  | @ -9894,6 +10204,9 @@ packages: | ||||||
|   run-parallel@1.2.0: |   run-parallel@1.2.0: | ||||||
|     resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} |     resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} | ||||||
| 
 | 
 | ||||||
|  |   rw@1.3.3: | ||||||
|  |     resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} | ||||||
|  | 
 | ||||||
|   sade@1.8.1: |   sade@1.8.1: | ||||||
|     resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} |     resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} | ||||||
|     engines: {node: '>=6'} |     engines: {node: '>=6'} | ||||||
|  | @ -13515,6 +13828,10 @@ snapshots: | ||||||
| 
 | 
 | ||||||
|   '@gar/promisify@1.1.3': {} |   '@gar/promisify@1.1.3': {} | ||||||
| 
 | 
 | ||||||
|  |   '@gera2ld/jsx-dom@2.2.2': | ||||||
|  |     dependencies: | ||||||
|  |       '@babel/runtime': 7.27.1 | ||||||
|  | 
 | ||||||
|   '@humanfs/core@0.19.1': {} |   '@humanfs/core@0.19.1': {} | ||||||
| 
 | 
 | ||||||
|   '@humanfs/node@0.16.6': |   '@humanfs/node@0.16.6': | ||||||
|  | @ -14460,6 +14777,123 @@ snapshots: | ||||||
| 
 | 
 | ||||||
|   '@types/crypto-js@4.2.2': {} |   '@types/crypto-js@4.2.2': {} | ||||||
| 
 | 
 | ||||||
|  |   '@types/d3-array@3.2.1': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-axis@3.0.6': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-selection': 3.0.11 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-brush@3.0.6': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-selection': 3.0.11 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-chord@3.0.6': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-color@3.1.3': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-contour@3.0.6': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-array': 3.2.1 | ||||||
|  |       '@types/geojson': 7946.0.16 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-delaunay@6.0.4': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-dispatch@3.0.6': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-drag@3.0.7': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-selection': 3.0.11 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-dsv@3.0.7': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-ease@3.0.2': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-fetch@3.0.7': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-dsv': 3.0.7 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-force@3.0.10': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-format@3.0.4': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-geo@3.1.0': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/geojson': 7946.0.16 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-hierarchy@3.1.7': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-interpolate@3.0.4': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-color': 3.1.3 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-path@3.1.1': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-polygon@3.0.2': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-quadtree@3.0.6': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-random@3.0.3': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-scale-chromatic@3.1.0': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-scale@4.0.9': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-time': 3.0.4 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-selection@3.0.11': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-shape@3.1.7': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-path': 3.1.1 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-time-format@4.0.3': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-time@3.0.4': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-timer@3.0.2': {} | ||||||
|  | 
 | ||||||
|  |   '@types/d3-transition@3.0.9': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-selection': 3.0.11 | ||||||
|  | 
 | ||||||
|  |   '@types/d3-zoom@3.0.8': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-interpolate': 3.0.4 | ||||||
|  |       '@types/d3-selection': 3.0.11 | ||||||
|  | 
 | ||||||
|  |   '@types/d3@7.4.3': | ||||||
|  |     dependencies: | ||||||
|  |       '@types/d3-array': 3.2.1 | ||||||
|  |       '@types/d3-axis': 3.0.6 | ||||||
|  |       '@types/d3-brush': 3.0.6 | ||||||
|  |       '@types/d3-chord': 3.0.6 | ||||||
|  |       '@types/d3-color': 3.1.3 | ||||||
|  |       '@types/d3-contour': 3.0.6 | ||||||
|  |       '@types/d3-delaunay': 6.0.4 | ||||||
|  |       '@types/d3-dispatch': 3.0.6 | ||||||
|  |       '@types/d3-drag': 3.0.7 | ||||||
|  |       '@types/d3-dsv': 3.0.7 | ||||||
|  |       '@types/d3-ease': 3.0.2 | ||||||
|  |       '@types/d3-fetch': 3.0.7 | ||||||
|  |       '@types/d3-force': 3.0.10 | ||||||
|  |       '@types/d3-format': 3.0.4 | ||||||
|  |       '@types/d3-geo': 3.1.0 | ||||||
|  |       '@types/d3-hierarchy': 3.1.7 | ||||||
|  |       '@types/d3-interpolate': 3.0.4 | ||||||
|  |       '@types/d3-path': 3.1.1 | ||||||
|  |       '@types/d3-polygon': 3.0.2 | ||||||
|  |       '@types/d3-quadtree': 3.0.6 | ||||||
|  |       '@types/d3-random': 3.0.3 | ||||||
|  |       '@types/d3-scale': 4.0.9 | ||||||
|  |       '@types/d3-scale-chromatic': 3.1.0 | ||||||
|  |       '@types/d3-selection': 3.0.11 | ||||||
|  |       '@types/d3-shape': 3.1.7 | ||||||
|  |       '@types/d3-time': 3.0.4 | ||||||
|  |       '@types/d3-time-format': 4.0.3 | ||||||
|  |       '@types/d3-timer': 3.0.2 | ||||||
|  |       '@types/d3-transition': 3.0.9 | ||||||
|  |       '@types/d3-zoom': 3.0.8 | ||||||
|  | 
 | ||||||
|   '@types/eslint@9.6.1': |   '@types/eslint@9.6.1': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@types/estree': 1.0.7 |       '@types/estree': 1.0.7 | ||||||
|  | @ -14469,6 +14903,8 @@ snapshots: | ||||||
| 
 | 
 | ||||||
|   '@types/estree@1.0.7': {} |   '@types/estree@1.0.7': {} | ||||||
| 
 | 
 | ||||||
|  |   '@types/geojson@7946.0.16': {} | ||||||
|  | 
 | ||||||
|   '@types/hast@3.0.4': |   '@types/hast@3.0.4': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@types/unist': 3.0.3 |       '@types/unist': 3.0.3 | ||||||
|  | @ -15465,6 +15901,10 @@ snapshots: | ||||||
|       stubborn-fs: 1.2.5 |       stubborn-fs: 1.2.5 | ||||||
|       when-exit: 2.1.4 |       when-exit: 2.1.4 | ||||||
| 
 | 
 | ||||||
|  |   autolinker@3.16.2: | ||||||
|  |     dependencies: | ||||||
|  |       tslib: 2.8.1 | ||||||
|  | 
 | ||||||
|   autoprefixer@10.4.21(postcss@8.5.3): |   autoprefixer@10.4.21(postcss@8.5.3): | ||||||
|     dependencies: |     dependencies: | ||||||
|       browserslist: 4.24.5 |       browserslist: 4.24.5 | ||||||
|  | @ -15767,6 +16207,16 @@ snapshots: | ||||||
|       undici: 6.21.3 |       undici: 6.21.3 | ||||||
|       whatwg-mimetype: 4.0.0 |       whatwg-mimetype: 4.0.0 | ||||||
| 
 | 
 | ||||||
|  |   cheerio@1.0.0-rc.12: | ||||||
|  |     dependencies: | ||||||
|  |       cheerio-select: 2.1.0 | ||||||
|  |       dom-serializer: 2.0.0 | ||||||
|  |       domhandler: 5.0.3 | ||||||
|  |       domutils: 3.2.2 | ||||||
|  |       htmlparser2: 8.0.2 | ||||||
|  |       parse5: 7.3.0 | ||||||
|  |       parse5-htmlparser2-tree-adapter: 7.1.0 | ||||||
|  | 
 | ||||||
|   chokidar@3.6.0: |   chokidar@3.6.0: | ||||||
|     dependencies: |     dependencies: | ||||||
|       anymatch: 3.1.3 |       anymatch: 3.1.3 | ||||||
|  | @ -16333,6 +16783,164 @@ snapshots: | ||||||
| 
 | 
 | ||||||
|   czg@1.11.1: {} |   czg@1.11.1: {} | ||||||
| 
 | 
 | ||||||
|  |   d3-array@3.2.4: | ||||||
|  |     dependencies: | ||||||
|  |       internmap: 2.0.3 | ||||||
|  | 
 | ||||||
|  |   d3-axis@3.0.0: {} | ||||||
|  | 
 | ||||||
|  |   d3-brush@3.0.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-dispatch: 3.0.1 | ||||||
|  |       d3-drag: 3.0.0 | ||||||
|  |       d3-interpolate: 3.0.1 | ||||||
|  |       d3-selection: 3.0.0 | ||||||
|  |       d3-transition: 3.0.1(d3-selection@3.0.0) | ||||||
|  | 
 | ||||||
|  |   d3-chord@3.0.1: | ||||||
|  |     dependencies: | ||||||
|  |       d3-path: 3.1.0 | ||||||
|  | 
 | ||||||
|  |   d3-color@3.1.0: {} | ||||||
|  | 
 | ||||||
|  |   d3-contour@4.0.2: | ||||||
|  |     dependencies: | ||||||
|  |       d3-array: 3.2.4 | ||||||
|  | 
 | ||||||
|  |   d3-delaunay@6.0.4: | ||||||
|  |     dependencies: | ||||||
|  |       delaunator: 5.0.1 | ||||||
|  | 
 | ||||||
|  |   d3-dispatch@3.0.1: {} | ||||||
|  | 
 | ||||||
|  |   d3-drag@3.0.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-dispatch: 3.0.1 | ||||||
|  |       d3-selection: 3.0.0 | ||||||
|  | 
 | ||||||
|  |   d3-dsv@3.0.1: | ||||||
|  |     dependencies: | ||||||
|  |       commander: 7.2.0 | ||||||
|  |       iconv-lite: 0.6.3 | ||||||
|  |       rw: 1.3.3 | ||||||
|  | 
 | ||||||
|  |   d3-ease@3.0.1: {} | ||||||
|  | 
 | ||||||
|  |   d3-fetch@3.0.1: | ||||||
|  |     dependencies: | ||||||
|  |       d3-dsv: 3.0.1 | ||||||
|  | 
 | ||||||
|  |   d3-flextree@2.1.2: | ||||||
|  |     dependencies: | ||||||
|  |       d3-hierarchy: 1.1.9 | ||||||
|  | 
 | ||||||
|  |   d3-force@3.0.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-dispatch: 3.0.1 | ||||||
|  |       d3-quadtree: 3.0.1 | ||||||
|  |       d3-timer: 3.0.1 | ||||||
|  | 
 | ||||||
|  |   d3-format@3.1.0: {} | ||||||
|  | 
 | ||||||
|  |   d3-geo@3.1.1: | ||||||
|  |     dependencies: | ||||||
|  |       d3-array: 3.2.4 | ||||||
|  | 
 | ||||||
|  |   d3-hierarchy@1.1.9: {} | ||||||
|  | 
 | ||||||
|  |   d3-hierarchy@3.1.2: {} | ||||||
|  | 
 | ||||||
|  |   d3-interpolate@3.0.1: | ||||||
|  |     dependencies: | ||||||
|  |       d3-color: 3.1.0 | ||||||
|  | 
 | ||||||
|  |   d3-path@3.1.0: {} | ||||||
|  | 
 | ||||||
|  |   d3-polygon@3.0.1: {} | ||||||
|  | 
 | ||||||
|  |   d3-quadtree@3.0.1: {} | ||||||
|  | 
 | ||||||
|  |   d3-random@3.0.1: {} | ||||||
|  | 
 | ||||||
|  |   d3-scale-chromatic@3.1.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-color: 3.1.0 | ||||||
|  |       d3-interpolate: 3.0.1 | ||||||
|  | 
 | ||||||
|  |   d3-scale@4.0.2: | ||||||
|  |     dependencies: | ||||||
|  |       d3-array: 3.2.4 | ||||||
|  |       d3-format: 3.1.0 | ||||||
|  |       d3-interpolate: 3.0.1 | ||||||
|  |       d3-time: 3.1.0 | ||||||
|  |       d3-time-format: 4.1.0 | ||||||
|  | 
 | ||||||
|  |   d3-selection@3.0.0: {} | ||||||
|  | 
 | ||||||
|  |   d3-shape@3.2.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-path: 3.1.0 | ||||||
|  | 
 | ||||||
|  |   d3-time-format@4.1.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-time: 3.1.0 | ||||||
|  | 
 | ||||||
|  |   d3-time@3.1.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-array: 3.2.4 | ||||||
|  | 
 | ||||||
|  |   d3-timer@3.0.1: {} | ||||||
|  | 
 | ||||||
|  |   d3-transition@3.0.1(d3-selection@3.0.0): | ||||||
|  |     dependencies: | ||||||
|  |       d3-color: 3.1.0 | ||||||
|  |       d3-dispatch: 3.0.1 | ||||||
|  |       d3-ease: 3.0.1 | ||||||
|  |       d3-interpolate: 3.0.1 | ||||||
|  |       d3-selection: 3.0.0 | ||||||
|  |       d3-timer: 3.0.1 | ||||||
|  | 
 | ||||||
|  |   d3-zoom@3.0.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-dispatch: 3.0.1 | ||||||
|  |       d3-drag: 3.0.0 | ||||||
|  |       d3-interpolate: 3.0.1 | ||||||
|  |       d3-selection: 3.0.0 | ||||||
|  |       d3-transition: 3.0.1(d3-selection@3.0.0) | ||||||
|  | 
 | ||||||
|  |   d3@7.9.0: | ||||||
|  |     dependencies: | ||||||
|  |       d3-array: 3.2.4 | ||||||
|  |       d3-axis: 3.0.0 | ||||||
|  |       d3-brush: 3.0.0 | ||||||
|  |       d3-chord: 3.0.1 | ||||||
|  |       d3-color: 3.1.0 | ||||||
|  |       d3-contour: 4.0.2 | ||||||
|  |       d3-delaunay: 6.0.4 | ||||||
|  |       d3-dispatch: 3.0.1 | ||||||
|  |       d3-drag: 3.0.0 | ||||||
|  |       d3-dsv: 3.0.1 | ||||||
|  |       d3-ease: 3.0.1 | ||||||
|  |       d3-fetch: 3.0.1 | ||||||
|  |       d3-force: 3.0.0 | ||||||
|  |       d3-format: 3.1.0 | ||||||
|  |       d3-geo: 3.1.1 | ||||||
|  |       d3-hierarchy: 3.1.2 | ||||||
|  |       d3-interpolate: 3.0.1 | ||||||
|  |       d3-path: 3.1.0 | ||||||
|  |       d3-polygon: 3.0.1 | ||||||
|  |       d3-quadtree: 3.0.1 | ||||||
|  |       d3-random: 3.0.1 | ||||||
|  |       d3-scale: 4.0.2 | ||||||
|  |       d3-scale-chromatic: 3.1.0 | ||||||
|  |       d3-selection: 3.0.0 | ||||||
|  |       d3-shape: 3.2.0 | ||||||
|  |       d3-time: 3.1.0 | ||||||
|  |       d3-time-format: 4.1.0 | ||||||
|  |       d3-timer: 3.0.1 | ||||||
|  |       d3-transition: 3.0.1(d3-selection@3.0.0) | ||||||
|  |       d3-zoom: 3.0.0 | ||||||
|  | 
 | ||||||
|   dargs@8.1.0: {} |   dargs@8.1.0: {} | ||||||
| 
 | 
 | ||||||
|   data-uri-to-buffer@4.0.1: {} |   data-uri-to-buffer@4.0.1: {} | ||||||
|  | @ -16422,6 +17030,10 @@ snapshots: | ||||||
| 
 | 
 | ||||||
|   defu@6.1.4: {} |   defu@6.1.4: {} | ||||||
| 
 | 
 | ||||||
|  |   delaunator@5.0.1: | ||||||
|  |     dependencies: | ||||||
|  |       robust-predicates: 3.0.2 | ||||||
|  | 
 | ||||||
|   delayed-stream@1.0.0: {} |   delayed-stream@1.0.0: {} | ||||||
| 
 | 
 | ||||||
|   delegate@3.2.0: {} |   delegate@3.2.0: {} | ||||||
|  | @ -17926,6 +18538,8 @@ snapshots: | ||||||
|       hasown: 2.0.2 |       hasown: 2.0.2 | ||||||
|       side-channel: 1.1.0 |       side-channel: 1.1.0 | ||||||
| 
 | 
 | ||||||
|  |   internmap@2.0.3: {} | ||||||
|  | 
 | ||||||
|   ioredis@5.6.1: |   ioredis@5.6.1: | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@ioredis/commands': 1.2.0 |       '@ioredis/commands': 1.2.0 | ||||||
|  | @ -18298,6 +18912,10 @@ snapshots: | ||||||
| 
 | 
 | ||||||
|   jwt-decode@4.0.0: {} |   jwt-decode@4.0.0: {} | ||||||
| 
 | 
 | ||||||
|  |   katex@0.16.22: | ||||||
|  |     dependencies: | ||||||
|  |       commander: 8.3.0 | ||||||
|  | 
 | ||||||
|   keyv@4.5.4: |   keyv@4.5.4: | ||||||
|     dependencies: |     dependencies: | ||||||
|       json-buffer: 3.0.1 |       json-buffer: 3.0.1 | ||||||
|  | @ -18632,6 +19250,46 @@ snapshots: | ||||||
|       punycode.js: 2.3.1 |       punycode.js: 2.3.1 | ||||||
|       uc.micro: 2.1.0 |       uc.micro: 2.1.0 | ||||||
| 
 | 
 | ||||||
|  |   markmap-common@0.16.0: | ||||||
|  |     dependencies: | ||||||
|  |       '@babel/runtime': 7.27.1 | ||||||
|  |       '@gera2ld/jsx-dom': 2.2.2 | ||||||
|  |       npm2url: 0.2.4 | ||||||
|  | 
 | ||||||
|  |   markmap-html-parser@0.16.1(markmap-common@0.16.0): | ||||||
|  |     dependencies: | ||||||
|  |       '@babel/runtime': 7.27.1 | ||||||
|  |       cheerio: 1.0.0-rc.12 | ||||||
|  |       markmap-common: 0.16.0 | ||||||
|  | 
 | ||||||
|  |   markmap-lib@0.16.1(markmap-common@0.16.0): | ||||||
|  |     dependencies: | ||||||
|  |       '@babel/runtime': 7.27.1 | ||||||
|  |       highlight.js: 11.11.1 | ||||||
|  |       js-yaml: 4.1.0 | ||||||
|  |       katex: 0.16.22 | ||||||
|  |       markmap-common: 0.16.0 | ||||||
|  |       markmap-html-parser: 0.16.1(markmap-common@0.16.0) | ||||||
|  |       markmap-view: 0.16.0(markmap-common@0.16.0) | ||||||
|  |       prismjs: 1.30.0 | ||||||
|  |       remarkable: 2.0.1 | ||||||
|  |       remarkable-katex: 1.2.1 | ||||||
|  | 
 | ||||||
|  |   markmap-toolbar@0.17.2(markmap-common@0.16.0): | ||||||
|  |     dependencies: | ||||||
|  |       '@babel/runtime': 7.27.1 | ||||||
|  |       '@gera2ld/jsx-dom': 2.2.2 | ||||||
|  |       markmap-common: 0.16.0 | ||||||
|  | 
 | ||||||
|  |   markmap-view@0.16.0(markmap-common@0.16.0): | ||||||
|  |     dependencies: | ||||||
|  |       '@babel/runtime': 7.27.1 | ||||||
|  |       '@gera2ld/jsx-dom': 2.2.2 | ||||||
|  |       '@types/d3': 7.4.3 | ||||||
|  |       d3: 7.9.0 | ||||||
|  |       d3-flextree: 2.1.2 | ||||||
|  |       markmap-common: 0.16.0 | ||||||
|  | 
 | ||||||
|   math-intrinsics@1.1.0: {} |   math-intrinsics@1.1.0: {} | ||||||
| 
 | 
 | ||||||
|   mathml-tag-names@2.1.3: {} |   mathml-tag-names@2.1.3: {} | ||||||
|  | @ -19094,6 +19752,8 @@ snapshots: | ||||||
|       path-key: 4.0.0 |       path-key: 4.0.0 | ||||||
|       unicorn-magic: 0.3.0 |       unicorn-magic: 0.3.0 | ||||||
| 
 | 
 | ||||||
|  |   npm2url@0.2.4: {} | ||||||
|  | 
 | ||||||
|   npmlog@5.0.1: |   npmlog@5.0.1: | ||||||
|     dependencies: |     dependencies: | ||||||
|       are-we-there-yet: 2.0.0 |       are-we-there-yet: 2.0.0 | ||||||
|  | @ -19954,6 +20614,8 @@ snapshots: | ||||||
|     dependencies: |     dependencies: | ||||||
|       parse-ms: 4.0.0 |       parse-ms: 4.0.0 | ||||||
| 
 | 
 | ||||||
|  |   prismjs@1.30.0: {} | ||||||
|  | 
 | ||||||
|   process-nextick-args@2.0.1: {} |   process-nextick-args@2.0.1: {} | ||||||
| 
 | 
 | ||||||
|   process@0.11.10: {} |   process@0.11.10: {} | ||||||
|  | @ -20201,6 +20863,13 @@ snapshots: | ||||||
| 
 | 
 | ||||||
|   relateurl@0.2.7: {} |   relateurl@0.2.7: {} | ||||||
| 
 | 
 | ||||||
|  |   remarkable-katex@1.2.1: {} | ||||||
|  | 
 | ||||||
|  |   remarkable@2.0.1: | ||||||
|  |     dependencies: | ||||||
|  |       argparse: 1.0.10 | ||||||
|  |       autolinker: 3.16.2 | ||||||
|  | 
 | ||||||
|   remove-accents@0.5.0: {} |   remove-accents@0.5.0: {} | ||||||
| 
 | 
 | ||||||
|   remove-trailing-separator@1.1.0: {} |   remove-trailing-separator@1.1.0: {} | ||||||
|  | @ -20262,6 +20931,8 @@ snapshots: | ||||||
|       glob: 11.0.2 |       glob: 11.0.2 | ||||||
|       package-json-from-dist: 1.0.1 |       package-json-from-dist: 1.0.1 | ||||||
| 
 | 
 | ||||||
|  |   robust-predicates@3.0.2: {} | ||||||
|  | 
 | ||||||
|   rollup-plugin-dts@6.2.1(rollup@4.40.2)(typescript@5.8.3): |   rollup-plugin-dts@6.2.1(rollup@4.40.2)(typescript@5.8.3): | ||||||
|     dependencies: |     dependencies: | ||||||
|       magic-string: 0.30.17 |       magic-string: 0.30.17 | ||||||
|  | @ -20327,6 +20998,8 @@ snapshots: | ||||||
|     dependencies: |     dependencies: | ||||||
|       queue-microtask: 1.2.3 |       queue-microtask: 1.2.3 | ||||||
| 
 | 
 | ||||||
|  |   rw@1.3.3: {} | ||||||
|  | 
 | ||||||
|   sade@1.8.1: |   sade@1.8.1: | ||||||
|     dependencies: |     dependencies: | ||||||
|       mri: 1.2.0 |       mri: 1.2.0 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 gjd
						gjd