From 070ab179c983473339f7f0bcaf25a2d5b6273dc7 Mon Sep 17 00:00:00 2001 From: yangqianjuan <1072483500@qq.com> Date: Thu, 18 Jan 2024 18:10:56 +0800 Subject: [PATCH] add chunk api --- web/src/.umi/core/EmptyRoute.tsx | 9 - web/src/.umi/core/defineApp.ts | 17 - web/src/.umi/core/helmet.ts | 10 - web/src/.umi/core/helmetContext.ts | 4 - web/src/.umi/core/history.ts | 66 ---- web/src/.umi/core/historyIntelli.ts | 132 -------- web/src/.umi/core/plugin.ts | 45 --- web/src/.umi/core/pluginConfig.ts | 292 ------------------ web/src/.umi/core/pluginConfigJoi.d.ts | 7 - web/src/.umi/core/polyfill.ts | 220 ------------- web/src/.umi/core/route.tsx | 22 -- web/src/.umi/core/terminal.ts | 37 --- web/src/.umi/exports.ts | 22 -- web/src/.umi/plugin-dva/dva.tsx | 60 ---- web/src/.umi/plugin-dva/index.ts | 5 - web/src/.umi/plugin-dva/models.ts | 20 -- web/src/.umi/plugin-dva/runtime.tsx | 9 - web/src/.umi/plugin-dva/runtimeConfig.d.ts | 19 -- web/src/.umi/plugin-dva/types.d.ts | 58 ---- web/src/.umi/plugin-icons/icons.tsx | 8 - web/src/.umi/plugin-icons/index.css | 27 -- web/src/.umi/plugin-icons/index.tsx | 243 --------------- web/src/.umi/testBrowser.tsx | 87 ------ web/src/.umi/tsconfig.json | 43 --- web/src/.umi/typings.d.ts | 136 -------- web/src/.umi/umi.ts | 76 ----- web/src/assets/1.pdf | Bin 6012133 -> 0 bytes .../knowledge-chunk/createModal.tsx | 103 ++++++ .../components/knowledge-chunk/editTag.tsx | 142 +++++++++ .../components/knowledge-chunk/index.less | 70 +++++ .../components/knowledge-chunk/index.tsx | 224 ++++++++++++++ .../components/knowledge-chunk/model.ts | 134 ++++++++ .../knowledge-file/createEFileModal.tsx | 1 - .../components/knowledge-file/index.less | 4 + .../components/knowledge-file/index.tsx | 49 +-- .../knowledge-file/segmentSetModal.tsx | 5 +- .../components/knowledge-file/upload.tsx | 2 +- .../components/knowledge-setting/index.tsx | 18 +- web/src/pages/add-knowledge/index.tsx | 29 +- web/src/pages/add-knowledge/model.ts | 26 +- web/src/pages/setting/List.tsx | 1 - web/src/pages/setting/SAKModal.tsx | 1 - web/src/pages/setting/SSModal.tsx | 1 - web/src/pages/setting/index.tsx | 2 +- web/src/pages/setting/model.ts | 1 - web/src/services/kbService.ts | 44 ++- web/src/utils/api.ts | 11 + 47 files changed, 813 insertions(+), 1729 deletions(-) delete mode 100644 web/src/.umi/core/EmptyRoute.tsx delete mode 100644 web/src/.umi/core/defineApp.ts delete mode 100644 web/src/.umi/core/helmet.ts delete mode 100644 web/src/.umi/core/helmetContext.ts delete mode 100644 web/src/.umi/core/history.ts delete mode 100644 web/src/.umi/core/historyIntelli.ts delete mode 100644 web/src/.umi/core/plugin.ts delete mode 100644 web/src/.umi/core/pluginConfig.ts delete mode 100644 web/src/.umi/core/pluginConfigJoi.d.ts delete mode 100644 web/src/.umi/core/polyfill.ts delete mode 100644 web/src/.umi/core/route.tsx delete mode 100644 web/src/.umi/core/terminal.ts delete mode 100644 web/src/.umi/exports.ts delete mode 100644 web/src/.umi/plugin-dva/dva.tsx delete mode 100644 web/src/.umi/plugin-dva/index.ts delete mode 100644 web/src/.umi/plugin-dva/models.ts delete mode 100644 web/src/.umi/plugin-dva/runtime.tsx delete mode 100644 web/src/.umi/plugin-dva/runtimeConfig.d.ts delete mode 100644 web/src/.umi/plugin-dva/types.d.ts delete mode 100644 web/src/.umi/plugin-icons/icons.tsx delete mode 100644 web/src/.umi/plugin-icons/index.css delete mode 100644 web/src/.umi/plugin-icons/index.tsx delete mode 100644 web/src/.umi/testBrowser.tsx delete mode 100644 web/src/.umi/tsconfig.json delete mode 100644 web/src/.umi/typings.d.ts delete mode 100644 web/src/.umi/umi.ts delete mode 100644 web/src/assets/1.pdf create mode 100644 web/src/pages/add-knowledge/components/knowledge-chunk/createModal.tsx create mode 100644 web/src/pages/add-knowledge/components/knowledge-chunk/editTag.tsx create mode 100644 web/src/pages/add-knowledge/components/knowledge-chunk/index.less create mode 100644 web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx create mode 100644 web/src/pages/add-knowledge/components/knowledge-chunk/model.ts diff --git a/web/src/.umi/core/EmptyRoute.tsx b/web/src/.umi/core/EmptyRoute.tsx deleted file mode 100644 index bee45a6f7..000000000 --- a/web/src/.umi/core/EmptyRoute.tsx +++ /dev/null @@ -1,9 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import React from 'react'; -import { Outlet, useOutletContext } from 'umi'; -export default function EmptyRoute() { - const context = useOutletContext(); - return ; -} diff --git a/web/src/.umi/core/defineApp.ts b/web/src/.umi/core/defineApp.ts deleted file mode 100644 index 2b9cb11f7..000000000 --- a/web/src/.umi/core/defineApp.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import type { IRuntimeConfig as Plugin0 } from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/.umi/plugin-dva/runtimeConfig.d' -interface IDefaultRuntimeConfig { - onRouteChange?: (props: { routes: any, clientRoutes: any, location: any, action: any, isFirst: boolean }) => void; - patchRoutes?: (props: { routes: any }) => void; - patchClientRoutes?: (props: { routes: any }) => void; - render?: (oldRender: () => void) => void; - rootContainer?: (lastRootContainer: JSX.Element, args?: any) => void; - [key: string]: any; -} -export type RuntimeConfig = IDefaultRuntimeConfig & Plugin0 - -export function defineApp(config: RuntimeConfig): RuntimeConfig { - return config; -} diff --git a/web/src/.umi/core/helmet.ts b/web/src/.umi/core/helmet.ts deleted file mode 100644 index 421d1903d..000000000 --- a/web/src/.umi/core/helmet.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import React from 'react'; -import { HelmetProvider } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/renderer-react'; -import { context } from './helmetContext'; - -export const innerProvider = (container) => { - return React.createElement(HelmetProvider, { context }, container); -} diff --git a/web/src/.umi/core/helmetContext.ts b/web/src/.umi/core/helmetContext.ts deleted file mode 100644 index 2faa97137..000000000 --- a/web/src/.umi/core/helmetContext.ts +++ /dev/null @@ -1,4 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -export const context = {}; diff --git a/web/src/.umi/core/history.ts b/web/src/.umi/core/history.ts deleted file mode 100644 index f963d6a27..000000000 --- a/web/src/.umi/core/history.ts +++ /dev/null @@ -1,66 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import { createHashHistory, createMemoryHistory, createBrowserHistory } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/renderer-react'; -import type { UmiHistory } from './historyIntelli'; - -let history: UmiHistory; -let basename: string = '/'; -export function createHistory(opts: any) { - let h; - if (opts.type === 'hash') { - h = createHashHistory(); - } else if (opts.type === 'memory') { - h = createMemoryHistory(opts); - } else { - h = createBrowserHistory(); - } - if (opts.basename) { - basename = opts.basename; - } - - - history = { - ...h, - push(to, state) { - h.push(patchTo(to, h), state); - }, - replace(to, state) { - h.replace(patchTo(to, h), state); - }, - get location() { - return h.location; - }, - get action() { - return h.action; - } - } - - return h; -} - -// Patch `to` to support basename -// Refs: -// https://github.com/remix-run/history/blob/3e9dab4/packages/history/index.ts#L484 -// https://github.com/remix-run/history/blob/dev/docs/api-reference.md#to -function patchTo(to: any, h: History) { - if (typeof to === 'string') { - return `${stripLastSlash(basename)}${to}`; - } else if (typeof to === 'object') { - - const currentPathname = h.location.pathname; - - return { - ...to, - pathname: to.pathname? `${stripLastSlash(basename)}${to.pathname}` : currentPathname, - }; - } else { - throw new Error(`Unexpected to: ${to}`); - } -} - -function stripLastSlash(path) { - return path.slice(-1) === '/' ? path.slice(0, -1) : path; -} - -export { history }; diff --git a/web/src/.umi/core/historyIntelli.ts b/web/src/.umi/core/historyIntelli.ts deleted file mode 100644 index 7acfae344..000000000 --- a/web/src/.umi/core/historyIntelli.ts +++ /dev/null @@ -1,132 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import { getRoutes } from './route' -import type { History } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/renderer-react' - -type Routes = Awaited>['routes'] -type AllRoute = Routes[keyof Routes] -type IsRoot = 'parentId' extends keyof T ? false : true - -// show `/` in not `layout / wrapper` only -type GetAllRouteWithoutLayout = Item extends any - ? 'isWrapper' extends keyof Item - ? never - : 'isLayout' extends keyof Item - ? never - : Item - : never -type AllRouteWithoutLayout = GetAllRouteWithoutLayout -type IndexRoutePathname = '/' extends AllRouteWithoutLayout['path'] - ? '/' - : never - -type GetChildrens = T extends any - ? IsRoot extends true - ? never - : T - : never -type Childrens = GetChildrens -type Root = Exclude -type AllIds = AllRoute['id'] - -type GetChildrensByParentId< - Id extends AllIds, - Item = AllRoute -> = Item extends any - ? 'parentId' extends keyof Item - ? Item['parentId'] extends Id - ? Item - : never - : never - : never - -type RouteObject< - Id extends AllIds, - Item = GetChildrensByParentId -> = IsNever extends true - ? '' - : Item extends AllRoute - ? { - [Key in Item['path'] as TrimSlash]: UnionMerge< - RouteObject - > - } - : never - -type GetRootRouteObject = Item extends Root - ? { - [K in Item['path'] as TrimSlash]: UnionMerge> - } - : never -type MergedResult = UnionMerge> - -// --- patch history types --- - -type HistoryTo = Parameters['0'] -type HistoryPath = Exclude - -type UmiPathname = Path | (string & {}) -interface UmiPath extends HistoryPath { - pathname: UmiPathname -} -type UmiTo = UmiPathname | UmiPath - -type UmiPush = (to: UmiTo, state?: any) => void -type UmiReplace = (to: UmiTo, state?: any) => void - - -export interface UmiHistory extends History { - push: UmiPush - replace: UmiReplace -} - -// --- type utils --- -type TrimLeftSlash = T extends `/${infer R}` - ? TrimLeftSlash - : T -type TrimRightSlash = T extends `${infer R}/` - ? TrimRightSlash - : T -type TrimSlash = TrimLeftSlash> - -type IsNever = [T] extends [never] ? true : false -type IsEqual = (() => G extends A ? 1 : 2) extends () => G extends B - ? 1 - : 2 - ? true - : false - -type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ( - k: infer I -) => void - ? I - : never -type UnionMerge = UnionToIntersection extends infer O - ? { [K in keyof O]: O[K] } - : never - -type ExcludeEmptyKey = IsEqual extends true ? never : T - -type PathConcat< - TKey extends string, - TValue, - N = TrimSlash -> = TValue extends string - ? ExcludeEmptyKey - : - | ExcludeEmptyKey - | `${N & string}${IsNever> extends true - ? '' - : '/'}${UnionPath}` - -type UnionPath = { - [K in keyof T]-?: PathConcat -}[keyof T] - -type MakeSureLeftSlash = T extends any - ? `/${TrimRightSlash}` - : never - -// exclude `/*`, because it always at the top of the IDE tip list -type Path> = Exclude, '/*'> | IndexRoutePathname diff --git a/web/src/.umi/core/plugin.ts b/web/src/.umi/core/plugin.ts deleted file mode 100644 index ddb50f983..000000000 --- a/web/src/.umi/core/plugin.ts +++ /dev/null @@ -1,45 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import * as Plugin_0 from '@@/core/helmet.ts'; -import * as Plugin_1 from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/.umi/plugin-dva/runtime.tsx'; -import { PluginManager } from 'umi'; - -function __defaultExport (obj) { - if (obj.default) { - return typeof obj.default === 'function' ? obj.default() : obj.default - } - return obj; -} -export function getPlugins() { - return [ - { - apply: Plugin_0, - path: process.env.NODE_ENV === 'production' ? void 0 : '@@/core/helmet.ts', - }, - { - apply: Plugin_1, - path: process.env.NODE_ENV === 'production' ? void 0 : 'C:/Users/zfc/Desktop/doc/ragflow/web/src/.umi/plugin-dva/runtime.tsx', - }, - ]; -} - -export function getValidKeys() { - return ['patchRoutes','patchClientRoutes','modifyContextOpts','modifyClientRenderOpts','rootContainer','innerProvider','i18nProvider','accessProvider','dataflowProvider','outerProvider','render','onRouteChange','dva',]; -} - -let pluginManager = null; - -export function createPluginManager() { - pluginManager = PluginManager.create({ - plugins: getPlugins(), - validKeys: getValidKeys(), - }); - - - return pluginManager; -} - -export function getPluginManager() { - return pluginManager; -} diff --git a/web/src/.umi/core/pluginConfig.ts b/web/src/.umi/core/pluginConfig.ts deleted file mode 100644 index 0ffd054f4..000000000 --- a/web/src/.umi/core/pluginConfig.ts +++ /dev/null @@ -1,292 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import { IConfigFromPluginsJoi } from "./pluginConfigJoi.d"; - -interface IConfigTypes { - codeSplitting: { - jsStrategy: "bigVendors" | "depPerChunk" | "granularChunks"; - jsStrategyOptions?: ({ - -} | undefined); - cssStrategy?: ("mergeAll" | undefined); - cssStrategyOptions?: ({ - -} | undefined); -}; - title: string; - styles: Array; - scripts: Array; - routes: Array<{ - component?: (string | undefined); - layout?: (false | undefined); - path?: (string | undefined); - redirect?: (string | undefined); - routes?: IConfigTypes['routes']; - wrappers?: (Array | undefined); -} | { [x: string]: any }>; - routeLoader: { - moduleType: "esm" | "cjs"; -}; - reactRouter5Compat: boolean | { - -}; - presets: Array; - plugins: Array; - npmClient: "pnpm" | "tnpm" | "cnpm" | "yarn" | "npm"; - mountElementId: string; - metas: Array<{ - charset?: (string | undefined); - content?: (string | undefined); - "http-equiv"?: (string | undefined); - name?: (string | undefined); -} | { [x: string]: any }>; - links: Array<{ - crossorigin?: (string | undefined); - href?: (string | undefined); - hreflang?: (string | undefined); - media?: (string | undefined); - referrerpolicy?: (string | undefined); - rel?: (string | undefined); - sizes?: (any | undefined); - title?: (any | undefined); - type?: (any | undefined); -} | { [x: string]: any }>; - historyWithQuery: { - -}; - history: { - type: "browser" | "hash" | "memory"; -}; - headScripts: Array; - esbuildMinifyIIFE: boolean; - conventionRoutes: { - base?: (string | undefined); - exclude?: (Array | undefined); -}; - conventionLayout: boolean; - base: string; - analyze: { - -}; - writeToDisk: boolean; - theme: { [x: string]: any }; - targets: { [x: string]: any }; - svgr: { [x: string]: any }; - svgo: { [x: string]: any } | boolean; - stylusLoader: { [x: string]: any }; - styleLoader: { [x: string]: any }; - srcTranspilerOptions: { - esbuild?: ({ [x: string]: any } | undefined); - swc?: ({ [x: string]: any } | undefined); -}; - srcTranspiler: "babel" | "esbuild" | "swc"; - sassLoader: { [x: string]: any }; - runtimePublicPath: { - -}; - purgeCSS: { [x: string]: any }; - publicPath: string; - proxy: { [x: string]: any } | Array; - postcssLoader: { [x: string]: any }; - outputPath: string; - normalCSSLoaderModules: { [x: string]: any }; - mfsu: { - cacheDirectory?: (string | undefined); - chainWebpack?: (((...args: any[]) => unknown) | undefined); - esbuild?: (boolean | undefined); - exclude?: (Array | undefined); - include?: (Array | undefined); - mfName?: (string | undefined); - remoteAliases?: (Array | undefined); - remoteName?: (string | undefined); - runtimePublicPath?: (boolean | undefined); - shared?: ({ [x: string]: any } | undefined); - strategy?: ("eager" | "normal" | undefined); -} | boolean; - mdx: { - loader?: (string | undefined); - loaderOptions?: ({ [x: string]: any } | undefined); -}; - manifest: { - basePath?: (string | undefined); - fileName?: (string | undefined); -}; - lessLoader: { [x: string]: any }; - jsMinifierOptions: { [x: string]: any }; - jsMinifier: "esbuild" | "swc" | "terser" | "uglifyJs" | "none"; - inlineLimit: number; - ignoreMomentLocale: boolean; - https: { - cert?: (string | undefined); - hosts?: (Array | undefined); - http2?: (boolean | undefined); - key?: (string | undefined); -}; - hash: boolean; - forkTSChecker: { [x: string]: any }; - fastRefresh: boolean; - extraPostCSSPlugins: Array; - extraBabelPresets: Array>; - extraBabelPlugins: Array>; - extraBabelIncludes: Array; - externals: { [x: string]: any } | string | ((...args: any[]) => unknown); - esm: { - -}; - devtool: "cheap-source-map" | "cheap-module-source-map" | "eval" | "eval-source-map" | "eval-cheap-source-map" | "eval-cheap-module-source-map" | "eval-nosources-cheap-source-map" | "eval-nosources-cheap-module-source-map" | "eval-nosources-source-map" | "source-map" | "hidden-source-map" | "hidden-nosources-cheap-source-map" | "hidden-nosources-cheap-module-source-map" | "hidden-nosources-source-map" | "hidden-cheap-source-map" | "hidden-cheap-module-source-map" | "inline-source-map" | "inline-cheap-source-map" | "inline-cheap-module-source-map" | "inline-nosources-cheap-source-map" | "inline-nosources-cheap-module-source-map" | "inline-nosources-source-map" | "nosources-source-map" | "nosources-cheap-source-map" | "nosources-cheap-module-source-map" | boolean; - depTranspiler: "babel" | "esbuild" | "swc" | "none"; - define: { [x: string]: any }; - deadCode: { - context?: (string | undefined); - detectUnusedExport?: (boolean | undefined); - detectUnusedFiles?: (boolean | undefined); - exclude?: (Array | undefined); - failOnHint?: (boolean | undefined); - patterns?: (Array | undefined); -}; - cssPublicPath: string; - cssMinifierOptions: { [x: string]: any }; - cssMinifier: "cssnano" | "esbuild" | "parcelCSS" | "none"; - cssLoaderModules: { [x: string]: any }; - cssLoader: { [x: string]: any }; - copy: Array<{ - from: string; - to: string; -} | string>; - checkDepCssModules?: boolean; - cacheDirectoryPath: string; - babelLoaderCustomize: string; - autoprefixer: { [x: string]: any }; - autoCSSModules: boolean; - alias: { [x: string]: any }; - crossorigin: boolean | { - includes?: (Array | undefined); -}; - esmi: { - cdnOrigin: string; - shimUrl?: (string | undefined); -}; - exportStatic: { - extraRoutePaths?: (((...args: any[]) => unknown) | Array | undefined); - ignorePreRenderError?: (boolean | undefined); -}; - favicons: Array; - helmet: boolean; - icons: { - autoInstall?: ({ - -} | undefined); - defaultComponentConfig?: ({ - -} | undefined); - alias?: ({ - -} | undefined); - include?: (Array | undefined); -}; - mock: { - exclude?: (Array | undefined); - include?: (Array | undefined); -}; - mpa: { - template?: (string | undefined); - layout?: (string | undefined); - getConfigFromEntryFile?: (boolean | undefined); - entry?: ({ - -} | undefined); -}; - phantomDependency: { - exclude?: (Array | undefined); -}; - polyfill: { - imports?: (Array | undefined); -}; - routePrefetch: { - -}; - terminal: { - -}; - tmpFiles: boolean; - clientLoader: { - -}; - routeProps: { - -}; - ssr: { - serverBuildPath?: (string | undefined); - platform?: (string | undefined); - builder?: ("esbuild" | "webpack" | undefined); -}; - lowImport: { - libs?: (Array | undefined); - css?: (string | undefined); -}; - vite: { - -}; - apiRoute: { - platform?: (string | undefined); -}; - monorepoRedirect: boolean | { - srcDir?: (Array | undefined); - exclude?: (Array | undefined); - peerDeps?: (boolean | undefined); -}; - test: { - -}; - clickToComponent: { - /** 默认情况下,点击将默认编辑器为vscode, 你可以设置编辑器 vscode 或者 vscode-insiders */ - editor?: (string | undefined); -}; - legacy: { - buildOnly?: (boolean | undefined); - nodeModulesTransform?: (boolean | undefined); - checkOutput?: (boolean | undefined); -}; - /** 设置 babel class-properties 启用 loose - @doc https://umijs.org/docs/api/config#classpropertiesloose */ - classPropertiesLoose: boolean | { - -}; - ui: { - -}; - hmrGuardian: boolean; - verifyCommit: { - scope?: (Array | undefined); - allowEmoji?: (boolean | undefined); -}; - run: { - globals?: (Array | undefined); -}; - dva: { - extraModels?: (Array | undefined); - immer?: ({ [x: string]: any } | undefined); - skipModelValidate?: (boolean | undefined); -}; -}; - -type PrettifyWithCloseable = { - [K in keyof T]: T[K] | false; -} & {}; - -export type IConfigFromPlugins = PrettifyWithCloseable< - IConfigFromPluginsJoi & Partial ->; diff --git a/web/src/.umi/core/pluginConfigJoi.d.ts b/web/src/.umi/core/pluginConfigJoi.d.ts deleted file mode 100644 index 215e7b52c..000000000 --- a/web/src/.umi/core/pluginConfigJoi.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -// Created by Umi Plugin - -export interface IConfigFromPluginsJoi { - -} diff --git a/web/src/.umi/core/polyfill.ts b/web/src/.umi/core/polyfill.ts deleted file mode 100644 index 15cc5c3bc..000000000 --- a/web/src/.umi/core/polyfill.ts +++ /dev/null @@ -1,220 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.error.cause.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.aggregate-error.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.aggregate-error.cause.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.at.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.find-last.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.find-last-index.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.push.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.reduce.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.reduce-right.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.to-reversed.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.to-sorted.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.to-spliced.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.array.with.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.map.group-by.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.object.group-by.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.object.has-own.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.promise.any.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.promise.with-resolvers.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.reflect.to-string-tag.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.regexp.flags.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.string.at-alternative.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.string.is-well-formed.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.string.replace-all.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.string.to-well-formed.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.typed-array.at.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.typed-array.find-last.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.typed-array.find-last-index.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.typed-array.set.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.typed-array.to-reversed.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.typed-array.to-sorted.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/es.typed-array.with.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.suppressed-error.constructor.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.from-async.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.filter-out.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.filter-reject.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.group.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.group-by.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.group-by-to-map.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.group-to-map.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.is-template-object.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.last-index.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.last-item.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array.unique-by.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array-buffer.detached.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array-buffer.transfer.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-disposable-stack.constructor.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.constructor.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.async-dispose.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.drop.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.every.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.filter.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.find.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.flat-map.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.for-each.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.from.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.indexed.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.map.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.reduce.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.some.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.take.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.async-iterator.to-array.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.bigint.range.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.composite-key.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.composite-symbol.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.data-view.get-float16.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.data-view.get-uint8-clamped.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.data-view.set-float16.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.data-view.set-uint8-clamped.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.disposable-stack.constructor.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.function.demethodize.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.function.is-callable.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.function.is-constructor.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.function.metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.function.un-this.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.constructor.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.dispose.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.drop.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.every.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.filter.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.find.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.flat-map.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.for-each.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.from.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.indexed.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.map.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.range.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.reduce.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.some.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.take.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.to-array.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.iterator.to-async.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.json.is-raw-json.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.json.parse.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.json.raw-json.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.delete-all.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.emplace.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.every.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.filter.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.find.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.find-key.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.from.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.includes.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.key-by.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.key-of.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.map-keys.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.map-values.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.merge.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.of.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.reduce.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.some.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.update.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.update-or-insert.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.map.upsert.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.clamp.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.deg-per-rad.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.degrees.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.fscale.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.f16round.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.iaddh.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.imulh.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.isubh.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.rad-per-deg.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.radians.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.scale.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.seeded-prng.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.signbit.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.math.umulh.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.number.from-string.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.number.range.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.object.iterate-entries.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.object.iterate-keys.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.object.iterate-values.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.observable.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.promise.try.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.define-metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.delete-metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.get-metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.has-metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.reflect.metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.regexp.escape.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.add-all.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.delete-all.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.difference.v2.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.difference.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.every.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.filter.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.find.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.from.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.intersection.v2.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.intersection.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.is-disjoint-from.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.is-subset-of.v2.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.is-subset-of.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.is-superset-of.v2.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.is-superset-of.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.join.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.map.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.of.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.reduce.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.some.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.symmetric-difference.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.union.v2.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.set.union.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.string.at.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.string.cooked.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.string.code-points.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.string.dedent.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.async-dispose.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.dispose.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.is-registered-symbol.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.is-registered.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.is-well-known-symbol.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.is-well-known.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.matcher.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.metadata.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.metadata-key.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.observable.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.pattern-match.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.symbol.replace-all.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.typed-array.from-async.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.typed-array.filter-out.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.typed-array.filter-reject.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.typed-array.group-by.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.typed-array.to-spliced.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.typed-array.unique-by.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.uint8-array.from-base64.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.uint8-array.from-hex.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.uint8-array.to-base64.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.uint8-array.to-hex.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-map.delete-all.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-map.from.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-map.of.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-map.emplace.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-map.upsert.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-set.add-all.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-set.delete-all.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-set.from.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/esnext.weak-set.of.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/web.dom-exception.stack.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/web.immediate.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/web.self.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/web.structured-clone.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/web.url.can-parse.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/web.url-search-params.delete.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/web.url-search-params.has.js"; -import "C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/core-js/modules/web.url-search-params.size.js"; -import 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/preset-umi/node_modules/regenerator-runtime/runtime.js'; -export {}; diff --git a/web/src/.umi/core/route.tsx b/web/src/.umi/core/route.tsx deleted file mode 100644 index c654fffe0..000000000 --- a/web/src/.umi/core/route.tsx +++ /dev/null @@ -1,22 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import React from 'react'; - -export async function getRoutes() { - const routes = {"1":{"path":"/login","layout":false,"id":"1"},"2":{"path":"/","redirect":"/knowledge","parentId":"@@/global-layout","id":"2"},"3":{"id":"3","name":"知识库","icon":"home","auth":[3,4,100],"path":"/knowledge","pathname":"knowledge","parentId":"@@/global-layout"},"4":{"id":"4","name":"知识库","icon":"home","auth":[3,4,100],"path":"/knowledge/add/*","pathname":"knowledge","parentId":"@@/global-layout"},"5":{"id":"5","name":"聊天","icon":"home","auth":[3,4,100],"path":"/chat","pathname":"chat","parentId":"@@/global-layout"},"6":{"id":"6","name":"设置","icon":"home","auth":[3,4,100],"path":"/setting","pathname":"setting","parentId":"@@/global-layout"},"7":{"id":"7","name":"文件","icon":"file","auth":[3,4,100],"path":"/file","pathname":"file","parentId":"@@/global-layout"},"8":{"path":"/*","layout":false,"id":"8"},"@@/global-layout":{"id":"@@/global-layout","path":"/","isLayout":true}} as const; - return { - routes, - routeComponents: { -'1': React.lazy(() => import(/* webpackChunkName: "p__login__index" */'@/pages/login/index.tsx')), -'2': React.lazy(() => import(/* webpackChunkName: "layouts__index" */'@/layouts/index.tsx')), -'3': React.lazy(() => import(/* webpackChunkName: "p__knowledge__index" */'@/pages/knowledge/index.tsx')), -'4': React.lazy(() => import(/* webpackChunkName: "p__add-knowledge__index" */'@/pages/add-knowledge/index.tsx')), -'5': React.lazy(() => import(/* webpackChunkName: "p__chat__index" */'@/pages/chat/index.tsx')), -'6': React.lazy(() => import(/* webpackChunkName: "p__setting__index" */'@/pages/setting/index.tsx')), -'7': React.lazy(() => import(/* webpackChunkName: "p__file__index" */'@/pages/file/index.tsx')), -'8': React.lazy(() => import(/* webpackChunkName: "p__404" */'@/pages/404.jsx')), -'@@/global-layout': React.lazy(() => import(/* webpackChunkName: "layouts__index" */'C:/Users/zfc/Desktop/doc/ragflow/web/src/layouts/index.tsx')), -}, - }; -} diff --git a/web/src/.umi/core/terminal.ts b/web/src/.umi/core/terminal.ts deleted file mode 100644 index b07942d59..000000000 --- a/web/src/.umi/core/terminal.ts +++ /dev/null @@ -1,37 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -let count = 0; -let groupLevel = 0; -function send(type: string, message?: string) { - if(process.env.NODE_ENV==='production'){ - return; - }else{ - const encodedMessage = message ? `&m=${encodeURI(message)}` : ''; - fetch(`/__umi/api/terminal?type=${type}&t=${Date.now()}&c=${count++}&g=${groupLevel}${encodedMessage}`, { mode: 'no-cors' }) - } -} -function prettyPrint(obj: any) { - return JSON.stringify(obj, null, 2); -} -function stringifyObjs(objs: any[]) { - const obj = objs.length > 1 ? objs.map(stringify).join(' ') : objs[0]; - return typeof obj === 'object' ? `${prettyPrint(obj)}` : obj.toString(); -} -function stringify(obj: any) { - return typeof obj === 'object' ? `${JSON.stringify(obj)}` : obj.toString(); -} -const terminal = { - log(...objs: any[]) { send('log', stringifyObjs(objs)) }, - info(...objs: any[]) { send('info', stringifyObjs(objs)) }, - warn(...objs: any[]) { send('warn', stringifyObjs(objs)) }, - error(...objs: any[]) { send('error', stringifyObjs(objs)) }, - group() { groupLevel++ }, - groupCollapsed() { groupLevel++ }, - groupEnd() { groupLevel && --groupLevel }, - clear() { send('clear') }, - trace(...args: any[]) { console.trace(...args) }, - profile(...args: any[]) { console.profile(...args) }, - profileEnd(...args: any[]) { console.profileEnd(...args) }, -}; -export { terminal }; diff --git a/web/src/.umi/exports.ts b/web/src/.umi/exports.ts deleted file mode 100644 index 43f49a115..000000000 --- a/web/src/.umi/exports.ts +++ /dev/null @@ -1,22 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -// defineApp -export { defineApp } from './core/defineApp' -export type { RuntimeConfig } from './core/defineApp' -// plugins -export { connect, useDispatch, useStore, useSelector, getDvaApp } from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/.umi/plugin-dva'; -export { Icon } from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/.umi/plugin-icons'; -// plugins types.d.ts -export * from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/.umi/plugin-dva/types.d'; -// @umijs/renderer-* -export { createBrowserHistory, createHashHistory, createMemoryHistory, Helmet, HelmetProvider, createSearchParams, generatePath, matchPath, matchRoutes, Navigate, NavLink, Outlet, resolvePath, useLocation, useMatch, useNavigate, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes, useSearchParams, useAppData, useClientLoaderData, useRouteProps, useSelectedRoutes, useServerLoaderData, renderClient, __getRoot, Link, useRouteData, __useFetcher, withRouter } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/renderer-react'; -export type { History } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/renderer-react' -// umi/client/client/plugin -export { ApplyPluginsType, PluginManager } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/umi/client/client/plugin.js'; -export { history, createHistory } from './core/history'; -export { terminal } from './core/terminal'; -// react ssr -export const useServerInsertedHTML: Function = () => {}; -// test -export { TestBrowser } from './testBrowser'; diff --git a/web/src/.umi/plugin-dva/dva.tsx b/web/src/.umi/plugin-dva/dva.tsx deleted file mode 100644 index 1c4831146..000000000 --- a/web/src/.umi/plugin-dva/dva.tsx +++ /dev/null @@ -1,60 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -// It's faked dva -// aliased to @umijs/plugins/templates/dva -import { create, Provider } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/plugins/libs/dva.tsx'; -import createLoading from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/dva-loading/dist/index.js'; - -import React, { useRef } from 'react'; -import { history, ApplyPluginsType, useAppData } from 'umi'; -import { models } from './models'; - -let dvaApp: any; - -export function RootContainer(props: any) { - const { pluginManager } = useAppData(); - const app = useRef(); - const runtimeDva = pluginManager.applyPlugins({ - key: 'dva', - type: ApplyPluginsType.modify, - initialValue: {}, - }); - if (!app.current) { - app.current = create( - { - history, - ...(runtimeDva.config || {}), - }, - { - initialReducer: {}, - setupMiddlewares(middlewares: Function[]) { - return [...middlewares]; - }, - setupApp(app: IDvaApp) { - app._history = history; - }, - }, - ); - dvaApp = app.current; - app.current.use(createLoading()); - - - - (runtimeDva.plugins || []).forEach((p) => { - app.current.use(p); - }); - for (const id of Object.keys(models)) { - app.current.model({ - namespace: models[id].namespace, - ...models[id].model, - }); - } - app.current.start(); - } - return {props.children}; -} - -export function getDvaApp() { - return dvaApp; -} diff --git a/web/src/.umi/plugin-dva/index.ts b/web/src/.umi/plugin-dva/index.ts deleted file mode 100644 index 5c1a1f8b4..000000000 --- a/web/src/.umi/plugin-dva/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -export { connect, useDispatch, useStore, useSelector } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/plugins/libs/dva.tsx'; -export { getDvaApp } from './dva'; diff --git a/web/src/.umi/plugin-dva/models.ts b/web/src/.umi/plugin-dva/models.ts deleted file mode 100644 index deb7d3324..000000000 --- a/web/src/.umi/plugin-dva/models.ts +++ /dev/null @@ -1,20 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import model_1 from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/pages/add-knowledge/components/knowledge-file/model'; -import model_2 from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/pages/add-knowledge/components/knowledge-setting/model'; -import model_3 from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/pages/add-knowledge/model'; -import model_4 from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/pages/chat/model'; -import model_5 from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/pages/knowledge/model'; -import model_6 from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/pages/login/model'; -import model_7 from 'C:/Users/zfc/Desktop/doc/ragflow/web/src/pages/setting/model'; - -export const models = { -model_1: { namespace: 'add-knowledge.components.knowledge-file.model', model: model_1 }, -model_2: { namespace: 'add-knowledge.components.knowledge-setting.model', model: model_2 }, -model_3: { namespace: 'add-knowledge.model', model: model_3 }, -model_4: { namespace: 'chat.model', model: model_4 }, -model_5: { namespace: 'knowledge.model', model: model_5 }, -model_6: { namespace: 'login.model', model: model_6 }, -model_7: { namespace: 'setting.model', model: model_7 }, -} as const diff --git a/web/src/.umi/plugin-dva/runtime.tsx b/web/src/.umi/plugin-dva/runtime.tsx deleted file mode 100644 index 504d89ceb..000000000 --- a/web/src/.umi/plugin-dva/runtime.tsx +++ /dev/null @@ -1,9 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import React from 'react'; -import { RootContainer } from './dva'; - -export function dataflowProvider(container, opts) { - return React.createElement(RootContainer, opts, container); -} diff --git a/web/src/.umi/plugin-dva/runtimeConfig.d.ts b/web/src/.umi/plugin-dva/runtimeConfig.d.ts deleted file mode 100644 index aa3f59fb6..000000000 --- a/web/src/.umi/plugin-dva/runtimeConfig.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -export interface IRuntimeConfig { - dva?: { - config?: { - initialState?: Record; - onError?: any; - onStateChange?: any; - onAction?: any; - onHmr?: any; - onReducer?: any; - onEffect?: any; - extraReducers?: any; - extraEnhancers?: any; - [key: string]: any; - }, - plugins?: string[]; - } -} diff --git a/web/src/.umi/plugin-dva/types.d.ts b/web/src/.umi/plugin-dva/types.d.ts deleted file mode 100644 index 555f6b8cd..000000000 --- a/web/src/.umi/plugin-dva/types.d.ts +++ /dev/null @@ -1,58 +0,0 @@ -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import type { History } from 'umi'; - -export interface ConnectProps { - dispatch?: Dispatch; -} -type RequiredConnectProps = Required -export type ConnectRC< - T = {}, - > = React.ForwardRefRenderFunction; -interface Action { - type: T -} -interface AnyAction extends Action { - // Allows any extra properties to be defined in an action. - [extraProps: string]: any -} -interface Dispatch { - (action: T): T -} -interface EffectsCommandMap { - put: (action: A) => any, - call: Function, - select: Function, - take: Function, - cancel: Function, - [key: string]: any, -} -interface Action { - type: T -} -export type Reducer = (prevState: S, action: A) => S; -export type Effect = (action: AnyAction, effects: EffectsCommandMap) => void; -type EffectType = 'takeEvery' | 'takeLatest' | 'watcher' | 'throttle'; -type EffectWithType = [Effect, { type: EffectType }]; -export type Subscription = (api: SubscriptionAPI, done: Function) => void; - -export interface ReducersMapObject { - [key: string]: Reducer, -} -export interface EffectsMapObject { - [key: string]: Effect | EffectWithType, -} -export interface SubscriptionAPI { - dispatch: Dispatch, - history: History, -} -export interface SubscriptionsMapObject { - [key: string]: Subscription, -} -export interface DvaModel> { - namespace: string, - state?: T, - reducers?: R, - effects?: E, - subscriptions?: SubscriptionsMapObject, -} diff --git a/web/src/.umi/plugin-icons/icons.tsx b/web/src/.umi/plugin-icons/icons.tsx deleted file mode 100644 index 3ce469b2b..000000000 --- a/web/src/.umi/plugin-icons/icons.tsx +++ /dev/null @@ -1,8 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import React from 'react'; -const localGoogle = props => ; -export { localGoogle }; -const localGithub = props => ; -export { localGithub }; diff --git a/web/src/.umi/plugin-icons/index.css b/web/src/.umi/plugin-icons/index.css deleted file mode 100644 index cef01b6f2..000000000 --- a/web/src/.umi/plugin-icons/index.css +++ /dev/null @@ -1,27 +0,0 @@ -.umiIconDoNotUseThisHover { - display: none; -} -.umiIconDoNotUseThis:hover svg { - display: none; -} -.umiIconDoNotUseThis:hover .umiIconDoNotUseThisHover { - display: inline-block; -} -.umiIconLoadingCircle { - display: inline-block; - -webkit-animation: loadingCircle 1s infinite linear; - animation: umiIconLoadingCircle 1s linear infinite; -} - -@-webkit-keyframes umiIconLoadingCircle { - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes umiIconLoadingCircle { - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} diff --git a/web/src/.umi/plugin-icons/index.tsx b/web/src/.umi/plugin-icons/index.tsx deleted file mode 100644 index c96240f74..000000000 --- a/web/src/.umi/plugin-icons/index.tsx +++ /dev/null @@ -1,243 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import React from 'react'; -import * as iconsMap from './icons'; -import './index.css'; - -const alias = {}; -type AliasKeys = keyof typeof alias; -const localIcons = ["github","google"] as const; -type LocalIconsKeys = typeof localIcons[number]; - -type IconCollections = 'academicons' | - 'akar-icons' | - 'ant-design' | - 'arcticons' | - 'basil' | - 'bi' | - 'bpmn' | - 'brandico' | - 'bx' | - 'bxl' | - 'bxs' | - 'bytesize' | - 'carbon' | - 'charm' | - 'ci' | - 'cib' | - 'cif' | - 'cil' | - 'circle-flags' | - 'circum' | - 'clarity' | - 'codicon' | - 'cryptocurrency-color' | - 'cryptocurrency' | - 'dashicons' | - 'ei' | - 'el' | - 'emblemicons' | - 'emojione-monotone' | - 'emojione-v1' | - 'emojione' | - 'entypo-social' | - 'entypo' | - 'eos-icons' | - 'ep' | - 'et' | - 'eva' | - 'fa-brands' | - 'fa-regular' | - 'fa-solid' | - 'fa' | - 'fa6-brands' | - 'fa6-regular' | - 'fa6-solid' | - 'fad' | - 'fe' | - 'feather' | - 'file-icons' | - 'flag' | - 'flagpack' | - 'flat-color-icons' | - 'flat-ui' | - 'fluent-emoji-flat' | - 'fluent-emoji-high-contrast' | - 'fluent-emoji' | - 'fluent-mdl2' | - 'fluent' | - 'fontelico' | - 'fontisto' | - 'foundation' | - 'fxemoji' | - 'gala' | - 'game-icons' | - 'geo' | - 'gg' | - 'gis' | - 'gridicons' | - 'grommet-icons' | - 'healthicons' | - 'heroicons-outline' | - 'heroicons-solid' | - 'heroicons' | - 'humbleicons' | - 'ic' | - 'icomoon-free' | - 'icon-park-outline' | - 'icon-park-solid' | - 'icon-park-twotone' | - 'icon-park' | - 'iconoir' | - 'icons8' | - 'il' | - 'ion' | - 'iwwa' | - 'jam' | - 'la' | - 'line-md' | - 'logos' | - 'ls' | - 'lucide' | - 'majesticons' | - 'maki' | - 'map' | - 'material-symbols' | - 'mdi-light' | - 'mdi' | - 'medical-icon' | - 'memory' | - 'mi' | - 'mingcute' | - 'mono-icons' | - 'nimbus' | - 'nonicons' | - 'noto-v1' | - 'noto' | - 'octicon' | - 'oi' | - 'ooui' | - 'openmoji' | - 'pajamas' | - 'pepicons-pop' | - 'pepicons-print' | - 'pepicons' | - 'ph' | - 'pixelarticons' | - 'prime' | - 'ps' | - 'quill' | - 'radix-icons' | - 'raphael' | - 'ri' | - 'si-glyph' | - 'simple-icons' | - 'simple-line-icons' | - 'skill-icons' | - 'subway' | - 'svg-spinners' | - 'system-uicons' | - 'tabler' | - 'teenyicons' | - 'topcoat' | - 'twemoji' | - 'typcn' | - 'uil' | - 'uim' | - 'uis' | - 'uit' | - 'uiw' | - 'vaadin' | - 'vs' | - 'vscode-icons' | - 'websymbol' | - 'whh' | - 'wi' | - 'wpf' | - 'zmdi' | - 'zondicons'; -type Icon = `${IconCollections}:${string}`; - -interface IUmiIconProps extends React.SVGAttributes { - icon: AliasKeys | Icon | `local:${LocalIconsKeys}`; - hover?: AliasKeys | string; - className?: string; - viewBox?: string; - width?: string; - height?: string; - style?: any; - spin?: boolean; - rotate?: number | string; - flip?: 'vertical' | 'horizontal' | 'horizontal,vertical' | 'vertical,horizontal'; -} - -export const Icon = React.forwardRef((props, ref) => { - const { icon, hover, style, className = '' , rotate, spin, flip, ...extraProps } = props; - const iconName = normalizeIconName(alias[icon] || icon); - const Component = iconsMap[iconName]; - if (!Component) { - // TODO: give a error icon when dev, to help developer find the error - return null; - } - const HoverComponent = hover ? iconsMap[normalizeIconName(alias[hover] || hover)] : null; - const cls = spin ? 'umiIconLoadingCircle' : undefined; - const svgStyle = {}; - const transform: string[] = []; - if (rotate) { - const rotateDeg = normalizeRotate(rotate); - transform.push(`rotate(${rotateDeg}deg)`); - } - if (flip) { - const flipMap = flip.split(',').reduce((memo, item) => { - memo[item] = 1; - return memo; - }, {}); - if (flipMap.vertical) { - transform.push(`rotateY(180deg)`); - } - if (flipMap.horizontal) { - transform.push(`rotateX(180deg)`); - } - } - if (transform.length) { - const transformStr = transform.join(''); - svgStyle.msTransform = transformStr; - svgStyle.transform = transformStr; - } - - const spanClassName = HoverComponent ? 'umiIconDoNotUseThis ' : '' + className; - const spanClass = spanClassName ? { className: spanClassName } : {}; - - return ( - - - { - HoverComponent ? : null - } - - ); -}); - -function normalizeRotate(rotate: number | string) { - if (typeof rotate === 'number') { - return rotate * 90; - } - if (typeof rotate === 'string') { - if (rotate.endsWith('deg')) { - return parseInt(rotate, 10); - } - if (rotate.endsWith('%')) { - return parseInt(rotate, 10) / 100 * 360; - } - return 0; - } -} - -function camelCase(str: string) { - return str.replace(/\//g, '-').replace(/-([a-zA-Z]|[1-9])/g, (g) => g[1].toUpperCase()); -} - -function normalizeIconName(name: string) { - return camelCase(name.replace(':', '-')); -} diff --git a/web/src/.umi/testBrowser.tsx b/web/src/.umi/testBrowser.tsx deleted file mode 100644 index 9e7f4a04e..000000000 --- a/web/src/.umi/testBrowser.tsx +++ /dev/null @@ -1,87 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import React, { useEffect, useState } from 'react'; -import { ApplyPluginsType } from 'umi'; -import { renderClient, RenderClientOpts } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/renderer-react'; -import { createHistory } from './core/history'; -import { createPluginManager } from './core/plugin'; -import { getRoutes } from './core/route'; -import type { Location } from 'history'; - - -const publicPath = '/'; -const runtimePublicPath = false; - -type TestBrowserProps = { - location?: Partial; - historyRef?: React.MutableRefObject; -}; - -export function TestBrowser(props: TestBrowserProps) { - const pluginManager = createPluginManager(); - const [context, setContext] = useState( - undefined - ); - useEffect(() => { - const genContext = async () => { - const { routes, routeComponents } = await getRoutes(pluginManager); - // allow user to extend routes - await pluginManager.applyPlugins({ - key: 'patchRoutes', - type: ApplyPluginsType.event, - args: { - routes, - routeComponents, - }, - }); - const contextOpts = pluginManager.applyPlugins({ - key: 'modifyContextOpts', - type: ApplyPluginsType.modify, - initialValue: {}, - }); - const basename = contextOpts.basename || '/'; - const history = createHistory({ - type: 'memory', - basename, - }); - const context = { - routes, - routeComponents, - pluginManager, - rootElement: contextOpts.rootElement || document.getElementById('root'), - publicPath, - runtimePublicPath, - history, - basename, - components: true, - }; - const modifiedContext = pluginManager.applyPlugins({ - key: 'modifyClientRenderOpts', - type: ApplyPluginsType.modify, - initialValue: context, - }); - return modifiedContext; - }; - genContext().then((context) => { - setContext(context); - if (props.location) { - context?.history?.push(props.location); - } - if (props.historyRef) { - props.historyRef.current = context?.history; - } - }); - }, []); - - if (context === undefined) { - return
; - } - - const Children = renderClient(context); - return ( - - - - ); -} diff --git a/web/src/.umi/tsconfig.json b/web/src/.umi/tsconfig.json deleted file mode 100644 index 83899c5e5..000000000 --- a/web/src/.umi/tsconfig.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "moduleResolution": "bundler", - "importHelpers": true, - "noEmit": true, - "jsx": "react-jsx", - "esModuleInterop": true, - "sourceMap": true, - "baseUrl": "../../", - "strict": true, - "resolveJsonModule": true, - "allowSyntheticDefaultImports": true, - "paths": { - "@/*": [ - "src/*" - ], - "@@/*": [ - "src/.umi/*" - ], - "umi": [ - "C:\\Users\\zfc\\Desktop\\doc\\ragflow\\web\\node_modules\\umi" - ], - "umi/typings": [ - "src/.umi/typings" - ] - } - }, - "include": [ - "../../.umirc.ts", - "../../**/*.d.ts", - "../../**/*.ts", - "../../**/*.tsx" - ] -} diff --git a/web/src/.umi/typings.d.ts b/web/src/.umi/typings.d.ts deleted file mode 100644 index 19725a340..000000000 --- a/web/src/.umi/typings.d.ts +++ /dev/null @@ -1,136 +0,0 @@ -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -type CSSModuleClasses = { readonly [key: string]: string } -declare module '*.css' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.scss' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.sass' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.less' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.styl' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.stylus' { - const classes: CSSModuleClasses - export default classes -} - -// images -declare module '*.jpg' { - const src: string - export default src -} -declare module '*.jpeg' { - const src: string - export default src -} -declare module '*.png' { - const src: string - export default src -} -declare module '*.gif' { - const src: string - export default src -} -declare module '*.svg' { - import * as React from 'react'; - export const ReactComponent: React.FunctionComponent & { title?: string }>; - - const src: string - export default src -} -declare module '*.ico' { - const src: string - export default src -} -declare module '*.webp' { - const src: string - export default src -} -declare module '*.avif' { - const src: string - export default src -} - -// media -declare module '*.mp4' { - const src: string - export default src -} -declare module '*.webm' { - const src: string - export default src -} -declare module '*.ogg' { - const src: string - export default src -} -declare module '*.mp3' { - const src: string - export default src -} -declare module '*.wav' { - const src: string - export default src -} -declare module '*.flac' { - const src: string - export default src -} -declare module '*.aac' { - const src: string - export default src -} - -// fonts -declare module '*.woff' { - const src: string - export default src -} -declare module '*.woff2' { - const src: string - export default src -} -declare module '*.eot' { - const src: string - export default src -} -declare module '*.ttf' { - const src: string - export default src -} -declare module '*.otf' { - const src: string - export default src -} - -// other -declare module '*.wasm' { - const initWasm: (options: WebAssembly.Imports) => Promise - export default initWasm -} -declare module '*.webmanifest' { - const src: string - export default src -} -declare module '*.pdf' { - const src: string - export default src -} -declare module '*.txt' { - const src: string - export default src -} diff --git a/web/src/.umi/umi.ts b/web/src/.umi/umi.ts deleted file mode 100644 index 097976a49..000000000 --- a/web/src/.umi/umi.ts +++ /dev/null @@ -1,76 +0,0 @@ -// @ts-nocheck -// This file is generated by Umi automatically -// DO NOT CHANGE IT MANUALLY! -import './core/polyfill'; - -import { renderClient } from 'C:/Users/zfc/Desktop/doc/ragflow/web/node_modules/@umijs/renderer-react'; -import { getRoutes } from './core/route'; -import { createPluginManager } from './core/plugin'; -import { createHistory } from './core/history'; -import { ApplyPluginsType } from 'umi'; - - -const publicPath = "/client/dist/"; -const runtimePublicPath = false; - -async function render() { - const pluginManager = createPluginManager(); - const { routes, routeComponents } = await getRoutes(pluginManager); - - // allow user to extend routes - await pluginManager.applyPlugins({ - key: 'patchRoutes', - type: ApplyPluginsType.event, - args: { - routes, - routeComponents, - }, - }); - - const contextOpts = pluginManager.applyPlugins({ - key: 'modifyContextOpts', - type: ApplyPluginsType.modify, - initialValue: {}, - }); - - const basename = contextOpts.basename || '/'; - const historyType = contextOpts.historyType || 'hash'; - - const history = createHistory({ - type: historyType, - basename, - ...contextOpts.historyOpts, - }); - - return (pluginManager.applyPlugins({ - key: 'render', - type: ApplyPluginsType.compose, - initialValue() { - const context = { - routes, - routeComponents, - pluginManager, - rootElement: contextOpts.rootElement || document.getElementById('root'), - publicPath, - runtimePublicPath, - history, - historyType, - basename, - callback: contextOpts.callback, - }; - const modifiedContext = pluginManager.applyPlugins({ - key: 'modifyClientRenderOpts', - type: ApplyPluginsType.modify, - initialValue: context, - }); - return renderClient(modifiedContext); - }, - }))(); -} - - -render(); - -window.g_umi = { - version: '4.1.0', -}; diff --git a/web/src/assets/1.pdf b/web/src/assets/1.pdf deleted file mode 100644 index 43b8558ec3d49399ccd2e7fafb3fd10ab32222fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6012133 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